@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Newsreader:ital,opsz,wght@1,6..72,500&display=swap");

.l4d-shop-page { --ink:#17352f; --green:#315f57; --green-dark:#244b44; --lime:#8aa35f; --orange:#dc8b43; --paper:#fbfaf6; --sage:#eff3e9; --line:rgba(23,53,47,.14); --muted:#687b75; --he-shop-sticky-top:7rem; width:100%; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; }
.l4d-shop-page * { box-sizing:border-box; }
.l4d-shop-page :where(a) { color:inherit; text-decoration:none; }
.l4d-shop-page :where(button,input,select) { font:inherit; }
.l4d-shop-page .he-sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.l4d-shop-page :where(button,input,select) { color-scheme:light; }
.l4d-shop-page button { -webkit-appearance:none; appearance:none; }
.he-shop-mobile-search-trigger,.he-shop-mobile-search-head { display:none; }
.l4d-shop-page input[type="checkbox"] { accent-color:var(--green); }
.he-shop-shell,.he-shop-results { width:100%; padding-inline:clamp(1.25rem,5vw,4.875rem); }
.he-shop-hero { padding-block:clamp(4rem,7vw,7.5rem); background:linear-gradient(125deg,#eef4ed,#faf8f2 58%,#edf2e8); }
.he-shop-shell { max-width:82rem; margin:auto; text-align:center; }
.he-shop-kicker { display:flex; justify-content:center; align-items:center; gap:.65rem; margin:0 0 1rem; color:var(--lime); font-size:.75rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.he-shop-kicker > span:not(.he-shop-kicker-label) { flex:0 0 1.75rem; width:1.75rem; height:1px; background:currentColor; }
.he-shop-kicker-label { width:auto; height:auto; background:none; }
.he-shop-hero h1 { max-width:54rem; margin:0 auto; font-size:clamp(2.75rem,5vw,5.25rem); letter-spacing:-.065em; line-height:1.02; }
.he-shop-hero h1 em { color:var(--orange); font-family:"Newsreader",Georgia,serif; font-weight:500; }
.he-shop-hero > .he-shop-shell > p:not(.he-shop-kicker) { max-width:42rem; margin:1.25rem auto 2rem; color:var(--muted); font-size:1rem; line-height:1.65; }
.he-shop-search { max-width:70rem; margin:auto; }
.he-shop-search-main { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.75rem; min-height:4.5rem; padding:.5rem .5rem .5rem 1.25rem; border:1px solid rgba(255,255,255,.85); border-radius:999px; background:#fff; box-shadow:0 1rem 2.75rem rgba(23,53,47,.1); }
.he-shop-search-main > svg { width:1.25rem; fill:none; stroke:var(--green); stroke-width:1.7; stroke-linecap:round; }
.he-shop-search-main input { width:100%; min-width:0; border:0; outline:0; color:var(--ink); background:transparent; font-size:1rem; }
.he-shop-search-main input::placeholder { color:#7c8984; }
.he-shop-search-submit,.he-shop-filter-toggle { min-height:3.25rem; border:0; border-radius:999px; font-size:.9375rem; font-weight:700; cursor:pointer; }
.he-shop-search-submit { min-width:9.25rem; padding-inline:1.25rem; background:var(--green); color:#fff; }
.he-shop-search-submit:hover { background:var(--green-dark); }
.he-shop-filter-toggle { display:none; padding-inline:1rem; border:1px solid var(--line); background:#f4f6f1; color:var(--green); }
.he-shop-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; gap:.75rem; margin-top:1rem; text-align:left; }
.he-shop-filters label { position:relative; display:block; }
.he-shop-filters label > span:first-child { position:absolute; z-index:1; top:.55rem; left:1rem; color:var(--muted); font-size:.6875rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; pointer-events:none; }
.he-shop-filters select { width:100%; min-height:4rem; padding:1.25rem 1rem .35rem; border:1px solid rgba(255,255,255,.9); border-radius:1rem; outline:0; appearance:auto; background:rgba(255,255,255,.9); color:var(--ink); font-size:.9375rem; font-weight:600; }
.he-shop-stock { display:flex !important; align-items:center; gap:.55rem; min-height:4rem; padding:0 1rem; border:1px solid rgba(255,255,255,.9); border-radius:1rem; background:rgba(255,255,255,.9); color:var(--ink); font-size:.875rem; font-weight:600; white-space:nowrap; }
.he-shop-stock span { position:static !important; color:inherit !important; font:inherit !important; letter-spacing:0 !important; text-transform:none !important; }
.he-shop-results { padding-block:clamp(4rem,7vw,7rem); }
.he-shop-results-head { display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:2.25rem; }
.he-shop-results-head .he-shop-kicker { justify-content:flex-start; margin-bottom:.75rem; }
.he-shop-results-head :is(h1,h2) { margin:0; font-size:clamp(2.25rem,4vw,3.875rem); letter-spacing:-.055em; line-height:1.05; }
.he-shop-result-count { margin:0; color:var(--muted); font-size:.9375rem; }
.he-shop-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; }
.he-shop-card { display:grid; grid-template-rows:auto 1fr; min-width:0; overflow:hidden; }
.he-shop-card-image { display:grid; place-items:center; aspect-ratio:.92; overflow:hidden; border:1px solid var(--line); border-radius:1.25rem; background:#f4f6f3; }
.he-shop-card-image img { width:100%; height:100%; padding:1.5rem; object-fit:contain; mix-blend-mode:multiply; }
.he-shop-card-image span { color:var(--muted); font-size:.8125rem; font-weight:600; }
.he-shop-card-body { display:flex; flex-direction:column; min-height:12rem; padding:1rem .25rem 0; }
.he-shop-card-category { min-height:1.1rem; margin:0 0 .35rem; color:var(--muted); font-size:.6875rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.he-shop-card h3 { min-height:3.15rem; margin:0; font-size:1.2rem; font-weight:500; line-height:1.3; }
.he-shop-card h3 a { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.he-shop-stock-status { display:inline-flex; align-items:center; align-self:flex-start; width:max-content; max-width:100%; min-height:1.75rem; margin:.45rem 0 .75rem; padding:.3rem .65rem; border:1px solid rgba(49,95,87,.14); border-radius:999px; background:rgba(49,95,87,.06); color:var(--muted); font-size:.7rem; font-weight:700; line-height:1.2; }
.he-shop-stock-status.is-orderable { border-color:rgba(138,90,43,.14); background:rgba(138,90,43,.06); color:#7a624b; }
.he-shop-card-footer { display:grid; grid-template-columns:1fr; gap:.65rem; margin-top:auto; padding-top:.85rem; border-top:1px solid var(--line); }
.he-shop-price { font-size:1.25rem; font-weight:700; letter-spacing:-.02em; }
.he-shop-actions { display:grid; grid-template-columns:1fr; gap:.5rem; }
.he-shop-button { display:inline-flex; align-items:center; justify-content:center; min-height:2.7rem; padding:.5rem .8rem; border:1px solid var(--green); border-radius:999px; background:var(--green); color:#fff; font-size:.8125rem; font-weight:700; cursor:pointer; }
.he-shop-button:hover { background:var(--green-dark); }
.he-shop-button.is-unavailable { border-color:var(--line); background:#eef0ed; color:#66736e; cursor:default; }
.he-shop-button.is-adding { opacity:.7; }
.he-shop-loading,.he-shop-empty { padding:3rem 1rem; color:var(--muted); text-align:center; }
.he-shop-loading { align-items:center; justify-content:center; gap:.7rem; min-height:12rem; font-size:1rem; font-weight:600; }
.he-shop-spinner { width:1.5rem; height:1.5rem; border:.1875rem solid rgba(49,95,87,.2); border-top-color:var(--green); border-radius:50%; animation:he-shop-spin .72s linear infinite; }
@keyframes he-shop-spin { to { transform:rotate(360deg); } }
.l4d-shop-page .he-shop-loading[hidden],.l4d-shop-page .he-shop-empty[hidden] { display:none !important; }
.he-shop-pagination { display:flex; justify-content:center; align-items:center; gap:1rem; margin-top:3rem; }
.l4d-shop-page .he-shop-pagination[hidden] { display:none !important; }
.he-shop-reset { display:inline-block; margin:.75rem 0; color:var(--green); font-weight:700; text-decoration:underline; }
.he-shop-pagination button { min-height:2.75rem; padding:0 1rem; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--green); font-weight:700; cursor:pointer; }
.he-shop-pagination button:disabled { opacity:.4; cursor:not-allowed; }

/* Compact catalogue cards and a persistent search dock. */
.l4d-shop-page .he-shop-hero { padding-block:clamp(2.75rem,4vw,4.75rem) clamp(4.25rem,6vw,6.25rem); }
.l4d-shop-page .he-shop-hero h1 { max-width:47rem; font-size:clamp(2.5rem,4.25vw,4.5rem); }
.l4d-shop-page .he-shop-hero > .he-shop-shell > p:not(.he-shop-kicker) { margin-bottom:0; font-size:1.0625rem; }
.l4d-shop-page .he-shop-search-dock { position:sticky; z-index:20; top:var(--he-shop-sticky-top); margin-top:-2.4rem; pointer-events:none; }
.l4d-shop-page .he-shop-search-dock .he-shop-shell { max-width:76rem; pointer-events:auto; }
.l4d-shop-page .he-shop-search { position:relative; max-width:none; }
.l4d-shop-page .he-shop-search-main { grid-template-columns:auto minmax(0,1fr) auto auto; min-height:4rem; padding:.4rem .4rem .4rem 1.1rem; box-shadow:0 .75rem 2rem rgba(23,53,47,.14); }
.l4d-shop-page .he-shop-filter-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:5.7rem; padding-inline:1rem; }
.l4d-shop-page .he-shop-filter-toggle { width:3.15rem; min-width:3.15rem; height:3.15rem; min-height:3.15rem; padding:0; border-radius:50%; }
.l4d-shop-page .he-shop-filter-toggle { border:1px solid var(--green) !important; background:var(--green) !important; color:#fff !important; box-shadow:none !important; }
.l4d-shop-page .he-shop-filter-toggle:hover { border-color:var(--green-dark) !important; background:var(--green-dark) !important; color:#fff !important; }
.l4d-shop-page .he-shop-filter-toggle:active { background:#1f4540 !important; transform:scale(.97); }
.l4d-shop-page .he-shop-filter-toggle svg { width:1.2rem; height:1.2rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:1.7; }
.l4d-shop-page .he-shop-search-submit { min-width:7.8rem; min-height:3.15rem; border-radius:999px !important; }
.l4d-shop-page .he-shop-search-submit { display:inline-flex !important; align-items:center; justify-content:center; border:1px solid var(--green) !important; border-radius:999px !important; background:var(--green) !important; color:#fff !important; box-shadow:none !important; text-decoration:none !important; }
.l4d-shop-page .he-shop-search-submit:hover { border-color:var(--green-dark) !important; background:var(--green-dark) !important; color:#fff !important; }
.l4d-shop-page .he-shop-search-submit:active { border-color:#1f4540 !important; background:#1f4540 !important; color:#fff !important; transform:scale(.98); }
.l4d-shop-page .he-shop-filters { display:none; position:absolute; z-index:2; top:calc(100% + .6rem); right:0; left:0; grid-template-columns:repeat(3,minmax(0,1fr)) auto; padding:.75rem; border:1px solid var(--line); border-radius:1.1rem; background:rgba(251,250,246,.98); box-shadow:0 1.1rem 2.5rem rgba(23,53,47,.16); }
.l4d-shop-page .he-shop-filters.is-open { display:grid; }
.l4d-shop-page .he-shop-results { padding-top:clamp(5rem,8vw,7.5rem); }
.l4d-shop-page .he-shop-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,13.25rem),16rem)); justify-content:start; gap:1.5rem 1.25rem; }
.l4d-shop-page .he-shop-card { max-width:16rem; }
.l4d-shop-page .he-shop-card-image { aspect-ratio:1; border-radius:1rem; }
.l4d-shop-page .he-shop-card-image img { padding:1.1rem; }
.l4d-shop-page .he-shop-card-body { min-height:10.75rem; padding:.85rem .125rem 0; }
.l4d-shop-page .he-shop-card h3 { min-height:2.8rem; font-size:1.0625rem; }
.l4d-shop-page .he-shop-card-footer { gap:.6rem; padding-top:.75rem; }
.l4d-shop-page .he-shop-price { font-size:1.125rem; }
.l4d-shop-page .he-shop-actions { display:grid; grid-template-columns:1fr; gap:.45rem; }
.l4d-shop-page .he-shop-actions.is-in-cart { grid-template-columns:4fr 1fr; }
.l4d-shop-page .he-shop-button { width:100%; min-height:2.55rem; padding:.45rem .65rem; border-radius:999px !important; font-size:.75rem; white-space:nowrap; }
.l4d-shop-page .he-shop-button.is-secondary { border-color:var(--green); background:#fff; color:var(--green); }
.l4d-shop-page .he-shop-button.is-secondary:hover { background:#edf3ef !important; color:var(--green) !important; }
.l4d-shop-page .he-shop-button:hover:not(.is-secondary):not(.is-unavailable) { background:var(--green-dark) !important; color:#fff !important; }
.l4d-shop-page .he-shop-button.is-unavailable { border-color:var(--line); background:#eef0ed; color:#66736e; }
.l4d-shop-page .he-shop-remove { padding:0; border-radius:999px !important; border-color:rgba(23,53,47,.18); background:#fff; color:var(--green); }
.l4d-shop-page .he-shop-remove[hidden] { display:none !important; }
.l4d-shop-page .he-shop-remove svg { width:1.125rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:2; }
.l4d-shop-page .he-shop-remove:hover:not(:disabled) { border-color:#b6403d; background:#b6403d; color:#fff; }
.l4d-shop-page .he-shop-remove.is-removing { opacity:.55; }
.l4d-shop-page .he-shop-actions-static { grid-template-columns:1fr 1fr; }
.l4d-shop-page .he-shop-pagination button { -webkit-appearance:none; appearance:none; min-height:2.75rem; border:1px solid var(--line) !important; border-radius:999px !important; background:#fff !important; color:var(--green) !important; box-shadow:none !important; font-weight:700; }
.l4d-shop-page .he-shop-pagination button:hover:not(:disabled) { border-color:var(--green) !important; background:var(--green) !important; color:#fff !important; }
.l4d-shop-page .he-shop-pagination button:active:not(:disabled) { border-color:var(--green-dark) !important; background:var(--green-dark) !important; color:#fff !important; transform:scale(.98); }
.l4d-shop-page .he-shop-pagination button:disabled { border-color:rgba(23,53,47,.1) !important; background:#f4f6f3 !important; color:#9aa7a2 !important; opacity:1 !important; }
.l4d-shop-page :where(.he-shop-search-main input,.he-shop-filters select,.he-shop-pagination button,.he-shop-button,.he-shop-filter-toggle):focus { outline:none !important; }
.l4d-shop-page :where(.he-shop-search-main input,.he-shop-filters select,.he-shop-pagination button,.he-shop-button,.he-shop-filter-toggle):focus-visible { outline:2px solid var(--lime) !important; outline-offset:3px; box-shadow:none !important; }
.l4d-shop-page .he-shop-filters select:focus { border-color:var(--green); box-shadow:0 0 0 2px rgba(49,95,87,.14); }

/* Product quantity stepper: price and live basket quantity share one row. */
.l4d-shop-page .he-shop-price-row { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; min-width:0; }
.l4d-shop-page .he-shop-cart-quantity { flex:0 0 auto; color:var(--muted); font-size:.72rem; font-weight:700; white-space:nowrap; }
.l4d-shop-page .he-shop-cart-quantity[hidden] { display:none !important; }
.l4d-shop-page .he-shop-actions[data-he-product-controls],
.l4d-shop-page .he-shop-actions[data-he-product-controls].is-in-cart { display:grid; grid-template-columns:minmax(0,1fr) 2.55rem 2.55rem; gap:.45rem; }
.l4d-shop-page .he-shop-actions[data-he-product-controls]:not(.is-in-cart) { grid-template-columns:minmax(0,1fr); }
.l4d-shop-page .he-shop-actions[data-he-product-controls] .he-shop-add { grid-column:1; }
.l4d-shop-page .he-shop-actions[data-he-product-controls] .he-shop-remove { grid-column:2; }
.l4d-shop-page .he-shop-actions[data-he-product-controls] .he-shop-increase { grid-column:3; }
.l4d-shop-page .he-shop-actions[data-he-product-controls] .he-shop-quantity-button[hidden] { display:none !important; }
.l4d-shop-page .he-shop-actions[data-he-product-controls].is-updating { opacity:.65; }
.l4d-shop-page .he-shop-quantity-button { width:2.55rem; min-width:2.55rem; padding:0; border-color:rgba(23,53,47,.2); background:#fff; color:var(--green); }
.l4d-shop-page .he-shop-quantity-button svg { width:1.05rem; height:1.05rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.l4d-shop-page .he-shop-quantity-button:hover:not(:disabled) { border-color:var(--green) !important; background:var(--green) !important; color:#fff !important; }
.l4d-shop-page .he-shop-quantity-button:disabled { border-color:rgba(23,53,47,.1); background:#f1f2ef; color:#9aa7a2; cursor:not-allowed; }

@media (max-width:600px) {
  .l4d-shop-page .he-shop-cart-quantity { font-size:.625rem; }
  .l4d-shop-page .he-shop-actions[data-he-product-controls],
  .l4d-shop-page .he-shop-actions[data-he-product-controls].is-in-cart { grid-template-columns:minmax(0,1fr) 2.35rem 2.35rem; gap:.3rem; }
  .l4d-shop-page .he-shop-actions[data-he-product-controls]:not(.is-in-cart) { grid-template-columns:minmax(0,1fr); }
  .l4d-shop-page .he-shop-quantity-button { width:2.35rem; min-width:2.35rem; }
}

@media (max-width:899px) { .l4d-shop-page .he-shop-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .l4d-shop-page .he-shop-stock { grid-column:1 / -1; } }
@media (min-width:601px) { .l4d-shop-page .he-shop-filter-toggle { display:none; } .l4d-shop-page .he-shop-filters { display:grid; position:absolute; z-index:2; top:calc(100% + .6rem); right:0; left:0; grid-template-columns:repeat(3,minmax(0,1fr)) auto; margin-top:0; padding:.7rem; border:1px solid rgba(23,53,47,.1); border-radius:1.1rem; background:rgba(255,255,255,.96); box-shadow:0 .65rem 1.8rem rgba(23,53,47,.08); } }
@media (min-width:601px) and (max-width:899px) { .l4d-shop-page .he-shop-results { padding-top:9rem; } }
.l4d-shop-page.is-shop-search-stuck .he-shop-filter-toggle { display:inline-flex; align-items:center; justify-content:center; }
.l4d-shop-page.is-shop-search-stuck .he-shop-filters { display:none; position:absolute; top:calc(100% + .6rem); right:0; left:0; grid-template-columns:repeat(3,minmax(0,1fr)) auto; margin-top:0; padding:.75rem; border:1px solid var(--line); border-radius:1.1rem; background:rgba(251,250,246,.98); box-shadow:0 1.1rem 2.5rem rgba(23,53,47,.16); }
.l4d-shop-page.is-shop-search-stuck .he-shop-filters.is-open { display:grid; }
@media (max-width:600px) { .l4d-shop-page { --he-shop-sticky-top:5rem; }.l4d-shop-page .he-shop-shell,.l4d-shop-page .he-shop-results { padding-inline:1rem; } .l4d-shop-page .he-shop-hero { padding-block:2.75rem 4.25rem; } .l4d-shop-page .he-shop-hero h1 { font-size:clamp(2.35rem,11vw,3.25rem); } .l4d-shop-page .he-shop-search-dock { margin-top:-1.9rem; } .l4d-shop-page .he-shop-search-main { grid-template-columns:auto minmax(0,1fr) auto; min-height:3.65rem; gap:.35rem; padding:.3rem .3rem .3rem .75rem; } .l4d-shop-page .he-shop-search-submit { display:none; } .l4d-shop-page .he-shop-filter-toggle { width:3.05rem; min-width:3.05rem; height:3.05rem; min-height:3.05rem; font-size:0; } .l4d-shop-page .he-shop-filter-toggle::before { content:none; } .l4d-shop-page .he-shop-filters { grid-template-columns:1fr; padding:.6rem; } .l4d-shop-page .he-shop-stock { grid-column:auto; } .l4d-shop-page .he-shop-results { padding-top:4.5rem; } .l4d-shop-page .he-shop-results-head { margin-bottom:1.4rem; } .l4d-shop-page .he-shop-results-head :is(h1,h2) { font-size:2rem; } .l4d-shop-page .he-shop-result-count { font-size:.75rem; } .l4d-shop-page .he-shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem .75rem; } .l4d-shop-page .he-shop-card { display:grid; grid-template-columns:1fr; gap:0; max-width:none; } .l4d-shop-page .he-shop-card-image { aspect-ratio:1; } .l4d-shop-page .he-shop-card-image img { padding:.65rem; } .l4d-shop-page .he-shop-card-body { min-height:0; padding:.65rem 0 0; } .l4d-shop-page .he-shop-card-category { min-height:0; margin-bottom:.25rem; font-size:.5625rem; } .l4d-shop-page .he-shop-card h3 { min-height:2.5rem; font-size:.9375rem; line-height:1.25; } .l4d-shop-page .he-shop-card-footer { gap:.5rem; margin-top:.45rem; padding-top:.6rem; } .l4d-shop-page .he-shop-price { font-size:1rem; } .l4d-shop-page .he-shop-button { min-height:2.35rem; padding:.4rem .3rem; font-size:.6875rem; } .l4d-shop-page .he-shop-actions-static { grid-template-columns:1fr; } }

@media (max-width:600px) { body.he-shop-mobile-search-open { overflow:hidden; }.l4d-shop-page .he-shop-search-dock .he-shop-shell { display:flex; justify-content:flex-end; }.l4d-shop-page .he-shop-mobile-search-trigger { display:inline-flex !important; align-items:center; justify-content:center; gap:.55rem; min-height:3.35rem; padding:.55rem 1rem; border:1px solid var(--green) !important; border-radius:999px !important; background:var(--green) !important; color:#fff !important; box-shadow:0 .7rem 1.6rem rgba(23,53,47,.15) !important; font-size:.9rem; font-weight:800; }.l4d-shop-page .he-shop-mobile-search-trigger:hover,.l4d-shop-page .he-shop-mobile-search-trigger:active { border-color:var(--green-dark) !important; background:var(--green-dark) !important; color:#fff !important; }.l4d-shop-page .he-shop-mobile-search-trigger svg { width:1.05rem; height:1.05rem; fill:none; stroke:currentColor; stroke-linecap:round; stroke-width:1.8; }.l4d-shop-page .he-shop-search { display:none; }.l4d-shop-page.is-mobile-search-open .he-shop-search { position:fixed; z-index:2147483647; inset:0; display:block; width:100%; max-width:none; margin:0; padding:1.2rem 1rem 2rem; overflow:auto; background:var(--paper); }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1.5rem; color:var(--ink); font-size:1.2rem; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head button { display:grid; place-items:center; width:2.65rem; height:2.65rem; padding:0; border:1px solid var(--line) !important; border-radius:50% !important; background:#fff !important; color:var(--ink) !important; font-size:1.55rem; line-height:1; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main { display:grid; grid-template-columns:auto minmax(0,1fr); min-height:3.8rem; padding:.45rem .8rem; border:1px solid var(--line); border-radius:1rem; box-shadow:none; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main input { font-size:1rem; }.l4d-shop-page.is-mobile-search-open .he-shop-filter-toggle { display:none !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-submit { display:flex !important; grid-column:1 / -1; width:100%; margin-top:1rem; min-height:3.3rem; border-radius:999px !important; background:var(--green) !important; color:#fff !important; }.l4d-shop-page.is-mobile-search-open .he-shop-filters { display:grid !important; position:static; grid-template-columns:1fr; gap:.8rem; margin-top:1rem; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }.l4d-shop-page.is-mobile-search-open .he-shop-filters select,.l4d-shop-page.is-mobile-search-open .he-shop-stock { min-height:4rem; border:1px solid var(--line) !important; border-radius:.9rem !important; background:#fff !important; }.l4d-shop-page.is-mobile-search-open .he-shop-filters label > span:first-child { color:var(--muted); }.l4d-shop-page .he-shop-results { padding-top:5.5rem; } }
@media (max-width:1199px) { .he-shop-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:899px) { .he-shop-filter-toggle { display:inline-flex; align-items:center; justify-content:center; } .he-shop-filters { display:none; grid-template-columns:repeat(2,minmax(0,1fr)); } .he-shop-filters.is-open { display:grid; } .he-shop-stock { grid-column:1/-1; } .he-shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .he-shop-hero { padding-block:3.5rem 4rem; } .he-shop-hero h1 { font-size:clamp(2.5rem,12vw,3.5rem); } .he-shop-search-main { grid-template-columns:auto minmax(0,1fr) auto; gap:.35rem; padding-left:.9rem; } .he-shop-search-main input { font-size:.875rem; } .he-shop-search-submit { grid-column:1/-1; width:100%; min-width:0; } .he-shop-filter-toggle { min-width:3.25rem; padding:0; font-size:0; } .he-shop-filter-toggle::before { content:"☷"; font-size:1.15rem; } .he-shop-filters.is-open { grid-template-columns:1fr; } .he-shop-stock { grid-column:auto; } .he-shop-results-head { align-items:start; } .he-shop-results-head :is(h1,h2) { font-size:2.5rem; } .he-shop-result-count { padding-top:.5rem; text-align:right; } .he-shop-grid { grid-template-columns:1fr; gap:1.5rem; } .he-shop-card { grid-template-columns:minmax(8.5rem,35vw) 1fr; grid-template-rows:none; gap:.875rem; } .he-shop-card-body { min-height:0; padding:0; } .he-shop-card h3 { min-height:0; font-size:1.125rem; } .he-shop-card-category { margin-bottom:.25rem; } .he-shop-card-footer { margin-top:.75rem; padding-top:.65rem; } }

/* Equal-width catalogue columns use all available row space. */
@media (min-width:601px) { .l4d-shop-page .he-shop-grid { grid-template-columns:repeat(auto-fill,minmax(13.25rem,16rem)); justify-content:space-between; } .l4d-shop-page .he-shop-card { max-width:16rem; } }

/* The global sticky header carries search after the hero; this dock should
   introduce the controls once and then leave the viewport with the hero. */
.l4d-shop-page .he-shop-search-dock { position:relative; top:auto; }

/* Mobile search is an overlay: products remain visible behind the filter sheet. */
@media (max-width:600px) { .l4d-shop-page.is-mobile-search-open .he-shop-search { position:fixed !important; z-index:2147483647 !important; inset:0 !important; display:block !important; width:100vw !important; height:100dvh !important; margin:0 !important; padding:1rem !important; overflow-y:auto !important; background:rgba(23,53,47,.48) !important; backdrop-filter:blur(2px); }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head { display:flex !important; align-items:center !important; justify-content:space-between !important; width:min(100%,34rem) !important; margin:0 auto 1rem !important; padding:.15rem .15rem .15rem .9rem !important; border-radius:999px !important; background:rgba(255,253,249,.96) !important; color:var(--ink) !important; box-shadow:0 1rem 2.5rem rgba(0,0,0,.18) !important; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head button { display:grid !important; place-items:center !important; width:2.85rem !important; min-width:2.85rem !important; height:2.85rem !important; min-height:2.85rem !important; margin:0 !important; padding:0 !important; border:1px solid var(--green) !important; border-radius:50% !important; background:var(--green) !important; color:#fff !important; font-size:1.6rem !important; line-height:1 !important; box-shadow:none !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main,.l4d-shop-page.is-mobile-search-open .he-shop-filters { width:min(100%,34rem) !important; margin-left:auto !important; margin-right:auto !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main { margin-top:0 !important; background:rgba(255,253,249,.97) !important; box-shadow:0 1rem 2.5rem rgba(0,0,0,.18) !important; }.l4d-shop-page.is-mobile-search-open .he-shop-filters { margin-top:1rem !important; padding:1rem !important; border:1px solid rgba(255,255,255,.65) !important; border-radius:1rem !important; background:rgba(255,253,249,.94) !important; box-shadow:0 1rem 2.5rem rgba(0,0,0,.18) !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-submit { width:min(100%,34rem) !important; margin:1rem auto 0 !important; box-shadow:0 1rem 2.5rem rgba(0,0,0,.18) !important; } }
@media (max-width:600px) { .l4d-shop-page.is-mobile-search-open .he-shop-search-main { border:1px solid var(--line) !important; border-radius:1rem !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main:focus-within { border-color:var(--green) !important; box-shadow:0 0 0 3px rgba(49,95,87,.18),0 1rem 2.5rem rgba(0,0,0,.18) !important; }.l4d-shop-page.is-mobile-search-open .he-shop-search-main input,.l4d-shop-page.is-mobile-search-open .he-shop-search-main input:focus,.l4d-shop-page.is-mobile-search-open .he-shop-search-main input:active { min-height:2.9rem !important; margin:0 !important; padding:0 !important; border:0 !important; border-radius:.65rem !important; outline:0 !important; background:transparent !important; color:var(--ink) !important; box-shadow:none !important; } }
@media (max-width:600px) { .l4d-shop-page.is-mobile-search-open .he-shop-search { display:flex !important; flex-direction:column !important; justify-content:flex-end !important; padding:1rem !important; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head,.l4d-shop-page.is-mobile-search-open .he-shop-search-main,.l4d-shop-page.is-mobile-search-open .he-shop-filters,.l4d-shop-page.is-mobile-search-open .he-shop-search-submit { flex:0 0 auto !important; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head { margin-bottom:.75rem !important; }.l4d-shop-page.is-mobile-search-open .he-shop-filters { max-height:45dvh; overflow-y:auto; }.l4d-shop-page.is-mobile-search-open .he-shop-search-submit { margin-top:.75rem !important; } }
@media (max-width:600px) { .l4d-shop-page .he-shop-mobile-search-trigger { width:100% !important; justify-content:center !important; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head { justify-content:center !important; width:100% !important; padding:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important; }.l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head button { flex:0 0 auto !important; } }

/* Match the Home and sticky-header mobile search: a centred, complete dialog. */
@media (max-width:600px) {
  .l4d-shop-page.is-mobile-search-open .he-shop-search { align-items:center !important; justify-content:center !important; }
  .l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head { display:flex !important; align-items:center !important; justify-content:space-between !important; width:min(100%,32rem) !important; margin:0 !important; padding:.75rem .85rem !important; border:1px solid rgba(255,255,255,.7) !important; border-bottom:0 !important; border-radius:1.15rem 1.15rem 0 0 !important; background:var(--paper) !important; color:var(--ink) !important; box-shadow:0 1.5rem 3.5rem rgba(0,0,0,.24) !important; }
  .l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-head strong { font-size:1rem; }
  .l4d-shop-page.is-mobile-search-open .he-shop-search-main { width:min(100%,32rem) !important; margin:0 !important; border-radius:0 !important; background:var(--paper) !important; box-shadow:none !important; }
  .l4d-shop-page.is-mobile-search-open .he-shop-filters { width:min(100%,32rem) !important; max-height:42dvh; margin:0 !important; padding:.85rem !important; border-radius:0 !important; background:var(--paper) !important; box-shadow:none !important; }
  .l4d-shop-page.is-mobile-search-open .he-shop-search-submit { width:min(100%,32rem) !important; min-height:3.25rem; margin:0 !important; border-radius:0 0 1.15rem 1.15rem !important; box-shadow:0 1.5rem 3.5rem rgba(0,0,0,.24) !important; }
}

/* Shared responsive guardrails: contain unpredictable CMS content. */
.l4d-shop-page { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.l4d-shop-page :where(img,video,canvas,iframe) { max-width:100%; }
.l4d-shop-page :where(input,select,textarea) { max-width:100%; }
.l4d-shop-page .he-shop-price del { margin-right:.4rem; color:var(--muted); font-size:.8em; font-weight:400; }
.l4d-shop-page .he-shop-price ins { background:transparent; color:inherit; text-decoration:none; }
.l4d-shop-page .he-shop-offer-end-date { margin:0 0 .75rem; color:var(--green); font-size:.82rem; font-weight:600; line-height:1.5; }

/* November 2026 specials and combos: isolated banner styles. */
.l4d-shop-page .he-november-promo-wrap { margin:20px clamp(18px,2.8vw,44px) 24px; }
.l4d-shop-page .he-november-promo { position:relative; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-height:370px; padding:48px 58px; overflow:hidden; border-radius:28px; background:#153d30 url("assets/november-specials-botanical.png") center center / cover no-repeat; color:#fff; font-family:"DM Sans",Arial,sans-serif; }
.l4d-shop-page .he-november-promo-copy { position:relative; z-index:1; max-width:74%; }
.l4d-shop-page .he-november-promo-kicker { margin:0 0 12px; color:#d3e48b; font-size:1.125rem; font-weight:700; line-height:1.4; letter-spacing:0; }
.l4d-shop-page .he-november-promo h2 { margin:0 0 18px; color:#fff; font-family:"DM Sans",Arial,sans-serif; font-size:clamp(2.25rem,4vw,3.75rem); font-weight:700; letter-spacing:-.045em; line-height:1.12; text-wrap:balance; }
.l4d-shop-page .he-november-promo h2 em { color:#ef9b51; font-family:"Newsreader",Georgia,serif; font-size:1.08em; font-style:italic; font-weight:500; white-space:nowrap; }
.l4d-shop-page .he-november-promo-description { margin:0; color:#fff; font-size:1.2rem; line-height:1.5; }
.l4d-shop-page .he-november-promo-actions { position:relative; z-index:1; display:flex; gap:16px; flex-wrap:wrap; margin-top:28px; }
.l4d-shop-page a.he-november-promo-link { display:inline-flex; align-items:center; justify-content:center; min-height:60px; padding:14px 30px; border:2px solid #fff; border-radius:999px; background:#fff; color:#123c32; font-size:1rem; font-weight:700; line-height:1.3; text-align:center; text-decoration:none; transition:background-color .15s,color .15s; }
.l4d-shop-page a.he-november-promo-link--outline { background:transparent; color:#fff; }
.l4d-shop-page a.he-november-promo-link:hover,.l4d-shop-page a.he-november-promo-link:active { background:#e7efda; border-color:#e7efda; color:#123c32; }
.l4d-shop-page a.he-november-promo-link:focus-visible { outline:3px solid #f5bc70; outline-offset:5px; }
@media(max-width:1000px) { .l4d-shop-page .he-november-promo { padding:36px; min-height:330px; } .l4d-shop-page .he-november-promo-copy { max-width:75%; } .l4d-shop-page .he-november-promo h2 { font-size:2.55rem; } }
@media(max-width:600px) { .l4d-shop-page .he-november-promo-wrap { margin:16px 16px 20px; } .l4d-shop-page .he-november-promo { min-height:0; padding:28px 22px; border-radius:22px; background-image:none; background-color:#153d30; } .l4d-shop-page .he-november-promo-copy { max-width:100%; } .l4d-shop-page .he-november-promo-kicker { font-size:.85rem; } .l4d-shop-page .he-november-promo h2 { font-size:2.05rem; } .l4d-shop-page .he-november-promo-description { font-size:1rem; } .l4d-shop-page .he-november-promo-actions { width:100%; gap:10px; margin-top:22px; } .l4d-shop-page a.he-november-promo-link { flex:1 1 130px; min-height:48px; padding:12px 14px; font-size:.875rem; } }
.l4d-shop-page .he-november-promo--compact { min-height:164px; padding:26px 52px; flex-direction:row; align-items:center; justify-content:flex-start; gap:28px; background-size:auto 230%; background-position:right 53%; }
.l4d-shop-page .he-november-promo--compact .he-november-promo-copy { max-width:46%; }
.l4d-shop-page .he-november-promo--compact .he-november-promo-kicker { margin-bottom:5px; font-size:.875rem; }
.l4d-shop-page .he-november-promo--compact h2 { margin-bottom:8px; font-size:clamp(1.6rem,2.8vw,2.5rem); }
.l4d-shop-page .he-november-promo--compact .he-november-promo-description { font-size:.95rem; }
.l4d-shop-page .he-november-promo--compact .he-november-promo-actions { flex-shrink:0; gap:14px; margin-top:0; }
.l4d-shop-page .he-november-promo--compact a.he-november-promo-link { min-height:48px; padding:12px 24px; font-size:.875rem; }
@media(min-width:601px) and (max-width:1100px) { .l4d-shop-page .he-november-promo--compact { flex-direction:column; align-items:flex-start; padding:30px; gap:20px; background-size:cover; } .l4d-shop-page .he-november-promo--compact .he-november-promo-copy { max-width:72%; } }
@media(max-width:600px) { .l4d-shop-page .he-november-promo--compact { display:flex; flex-direction:column; align-items:flex-start; gap:0; padding:24px 22px; } .l4d-shop-page .he-november-promo--compact .he-november-promo-copy { max-width:100%; } .l4d-shop-page .he-november-promo--compact h2 { font-size:1.9rem; } .l4d-shop-page .he-november-promo--compact .he-november-promo-actions { width:100%; margin-top:20px; } .l4d-shop-page .he-november-promo--compact a.he-november-promo-link { flex:1 1 130px; padding:12px 14px; } }

@media(min-width:601px) { .l4d-shop-page .he-november-promo--compact { background-size:auto 150%; background-position:right bottom; } }

@media(max-width:600px) { .l4d-shop-page .he-november-promo h2 em { display:block; } }
@media(min-width:601px) { .l4d-shop-page .he-november-promo--compact { background-image:none; } .l4d-shop-page .he-november-promo--compact::before { content:""; position:absolute; inset:0 0 0 auto; width:45%; background:url("assets/november-specials-botanical.png") right bottom / auto 100% no-repeat; -webkit-mask-image:linear-gradient(to right,transparent,#000 28%); mask-image:linear-gradient(to right,transparent,#000 28%); pointer-events:none; } }

@media(min-width:1101px) { .l4d-shop-page .he-november-promo--compact .he-november-promo-kicker { font-size:1.125rem; } .l4d-shop-page .he-november-promo--compact h2 { font-size:clamp(2rem,3vw,2.75rem); } .l4d-shop-page .he-november-promo--compact .he-november-promo-description { font-size:1.125rem; } .l4d-shop-page .he-november-promo--compact a.he-november-promo-link { min-height:52px; padding:12px 26px; font-size:1.0625rem; } }

/* Keep the search and its expanded filters in the page layout. */
.l4d-shop-page .he-shop-search-dock { margin-top: 0; padding-top: 1.25rem; }
.l4d-shop-page .he-shop-filters,
.l4d-shop-page.is-shop-search-stuck .he-shop-filters {
  position: static;
  margin-top: .75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width:600px) {
  body.he-shop-mobile-search-open { overflow: auto; }
  .l4d-shop-page.is-mobile-search-open .he-shop-search-dock .he-shop-shell { display: block; }
  .l4d-shop-page.is-mobile-search-open .he-shop-mobile-search-trigger { display: none !important; }
  .l4d-shop-page.is-mobile-search-open .he-shop-search {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    background: transparent !important;
    backdrop-filter: none;
    overflow: visible !important;
  }
  .l4d-shop-page.is-mobile-search-open .he-shop-filters { max-height: none; overflow: visible; }
}
