/* Tube Dubes store: styles layered on the approved base.css (lime / ink / cream). */



:root { --danger: #a23a20; --ok: #3d6a16; --soft: #e9eddf; --radius: 6px; }



.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.h2-size { font-size: clamp(34px, 4vw, 58px); line-height: 1.07; }

.stack > * + * { margin-top: 16px; }

.centred { text-align: center; }

.num { text-align: right; font-variant-numeric: tabular-nums; }

.free { color: var(--ok); }

.callout { background: var(--soft); border-left: 3px solid #667d37; padding: 12px 16px; font-size: 14px; border-radius: 0 var(--radius) var(--radius) 0; }

.dark-link { border-color: var(--ink); color: var(--ink); }

.link-button { background: none; border: 0; padding: 0; text-decoration: underline; font-size: 12px; color: inherit; cursor: pointer; }

hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }

.crumbs { padding: 18px 6% 0; font-size: 12px; color: var(--muted); }

.crumbs a { text-decoration: underline; }

address { font-style: normal; line-height: 1.6; }



/* top bars, header, flash */

.devbar { background: #3a1d12; color: #ffd7c4; text-align: center; padding: 7px 16px; font-size: 10px; letter-spacing: .12em; font-weight: 700; }

.preview a { display: block; }

.preview span { margin-left: 8px; }

.header-actions { display: flex; align-items: center; gap: 18px; }

.account-link { font-size: 13px; }

.account-link:hover { color: var(--lime); }

.bag { text-decoration: none; display: inline-block; }

.flash { margin: 0; padding: 14px 6%; font-size: 14px; border-bottom: 1px solid var(--line); }

.flash-success { background: #e4f2cf; color: #2c4a0c; }

.flash-error { background: #fbe3dc; color: var(--danger); }

.flash-info { background: var(--soft); color: #333b28; }

p.flash { border-radius: var(--radius); padding: 12px 16px; }



/* footer */

.site-footer { display: block; padding: 45px 6% 28px; }

.footer-top { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); gap: 40px; align-items: start; }

.site-footer img { width: 130px; }

.footer-brand p { font-size: 12px; line-height: 1.5; color: #c4cabd; margin: 10px 0 0; }

.footer-brand .footer-pickup-note { color: var(--lime); }

.footer-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 20px; font-size: 13px; }

.footer-links a:hover { color: var(--lime); }

.site-footer small { display: block; margin-top: 30px; border-top: 1px solid #ffffff20; padding-top: 20px; font-size: 10px; color: #8e9786; }



/* cart drawer */

dialog.drawer { margin: 0 0 0 auto; height: 100vh; max-height: 100vh; width: min(440px, 100vw); max-width: 100vw; padding: 0; border-radius: 0; display: none; flex-direction: column; background: var(--cream); }

dialog.drawer[open] { display: flex; }

.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--line); }

.drawer-head h2 { font-size: 24px; }

.drawer-close { position: static; font-size: 30px; background: none; line-height: 1; padding: 0 6px; }

.drawer-body { flex: 1; overflow: auto; padding: 8px 24px 24px; }

.drawer-line { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }

.drawer-line img { width: 64px; height: 84px; object-fit: contain; background: #e5e8dd; border-radius: 4px; }

.drawer-line h3 { font-size: 15px; letter-spacing: -.02em; }

.drawer-line p { margin: 3px 0; font-size: 12px; color: var(--muted); line-height: 1.4; }

.drawer-qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 4px; margin-top: 8px; }

.drawer-qty button { background: none; width: 30px; height: 30px; font-size: 16px; }

.drawer-qty span { min-width: 26px; text-align: center; font-size: 13px; }

.drawer-foot { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 8px; }

.drawer-foot .button { width: 100%; margin-top: 12px; justify-content: center; }

.progress { height: 6px; background: #dfe3d3; border-radius: 3px; overflow: hidden; margin: 8px 0; }

.progress i { display: block; height: 100%; background: var(--lime); border-right: 1px solid #577100; }

.ship-progress { font-size: 13px; background: var(--soft); padding: 10px 14px; border-radius: var(--radius); }

.ship-progress.ok { background: #e4f2cf; color: #2c4a0c; }



/* collection and filters */

.filters .chip { border: 1px solid var(--line); border-radius: 30px; padding: 10px 19px; font-size: 12px; }

.filters .chip.active { background: var(--ink); color: #fff; border-color: var(--ink); }

.filters .chip:hover { border-color: var(--ink); }

.filters { flex-wrap: wrap; }

.product-card { display: block; }



/* pickup banner (deliberately prominent) */

.pickup-banner { display: grid; grid-template-columns: auto 1.4fr 1fr; gap: 28px; align-items: center; margin: 0; padding: 36px 6%; background: var(--lime); color: var(--ink); }

.pickup-badge { width: 84px; height: 84px; border-radius: 50%; background: var(--ink); color: var(--lime); display: grid; place-items: center; font-family: 'Space Grotesk', Arial, sans-serif; font-weight: 700; font-size: 20px; transform: rotate(-8deg); }

.pickup-banner h2 { font-size: clamp(26px, 3vw, 38px); }

.pickup-banner .eyebrow { margin-bottom: 8px; }

.pickup-banner p { margin: 8px 0 0; font-size: 14px; }

.pickup-address { font-size: 14px; line-height: 1.6; background: #ffffff55; border-radius: var(--radius); padding: 16px 18px; }

.pickup-address a { display: inline-block; margin-top: 6px; text-decoration: underline; font-weight: 700; font-size: 12px; }

.pickup-compact { padding: 22px 24px; grid-template-columns: auto 1fr; border-radius: var(--radius); margin: 24px 6%; }

.pickup-compact .pickup-address { grid-column: 1 / -1; }

.pickup-compact .pickup-badge { width: 60px; height: 60px; font-size: 14px; }

.cart-summary .pickup-compact, .contact-aside .pickup-compact { margin: 20px 0 0; }

.pickup-callout { background: var(--soft); border-left: 4px solid var(--lime); border-radius: 0 var(--radius) var(--radius) 0; padding: 14px 18px; margin: 14px 0; font-size: 14px; }

.pickup-callout address { margin: 6px 0; font-weight: 600; }

.pickup-callout.big { background: var(--lime); border-left: 0; border-radius: 10px; padding: 24px 28px; margin: 24px 0; }

.pickup-callout.big h2 { font-size: 28px; margin: 4px 0 10px; }



/* configurator extras */

.price-box strong.free { font-size: 14px; letter-spacing: 0; font-family: inherit; }

.field-error { color: var(--danger); font-size: 12px; margin: 6px 0 0; line-height: 1.4; }

#config-error { margin: 0 0 12px; font-size: 13px; }

.config-options .button.lime { margin-top: 10px; }



/* generic guided product page */

.product-detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: 6%; align-items: start; }

.product-detail-visual { position: sticky; top: 110px; }

.product-detail-visual > .small { margin: 12px 0 0; }

.product-detail-info { min-width: 0; }

.product-description { line-height: 1.6; }

.product-config { margin-top: 26px; }

.product-config label, .product-option-step legend { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; }

.product-config input[type=number] { width: 140px; min-height: 52px; padding: 12px; border: 1px solid #c4cab9; border-radius: 5px; background: #fff; font: inherit; font-size: 19px; }

.product-option-step { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }

.product-step-number { display: inline-grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: var(--soft); font-size: 12px; }

.product-option-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }

.product-option-step:first-child .product-option-cards { display: flex; gap: 8px; }

.product-option-step:first-child .product-option-card { flex: 1 1 0; min-width: 0; padding: 12px 8px; text-align: center; }

.product-option-card { min-height: 58px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 6px; background: transparent; color: var(--ink); text-align: left; font: inherit; font-weight: 600; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }

.product-option-card:hover { border-color: #74894b; }

.product-option-card.active { border: 2px solid var(--ink); background: #fff; box-shadow: 0 2px 9px #1d241711; }

.product-option-step select { width: 100%; margin-top: 10px; padding: 14px; border: 1px solid #c4cab9; border-radius: 5px; background: #fff; color: var(--ink); font: inherit; }

.product-price-panel { background: var(--soft); border-radius: 9px; padding: 20px 22px; margin: 20px 0 0; }

.product-price-panel > div { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; padding: 8px 0; }

.product-price-panel > div + div { border-top: 1px solid #cbd2be; margin-top: 8px; padding-top: 16px; }

.product-price-panel strong { font-family: 'Space Grotesk', Arial, sans-serif; font-size: clamp(23px, 2.4vw, 34px); white-space: nowrap; }

.product-tier-panel { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 18px; }

.product-tier-panel h2 { margin: 0 0 8px; font-size: 16px; }

.product-tier-row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; color: var(--muted); border-bottom: 1px solid #e1e4dc; font-size: 14px; }

.product-tier-row strong { color: var(--ink); white-space: nowrap; }

.product-qty-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }

.product-qty-chip { border: 1px solid var(--line); border-radius: 99px; background: transparent; padding: 8px 13px; color: var(--ink); cursor: pointer; font: inherit; font-size: 13px; }

.product-qty-chip:hover, .product-qty-chip:focus-visible { border-color: var(--ink); background: #fff; }

.product-delivery-note { margin-top: 24px; padding: 17px 18px; border: 1px solid var(--line); border-radius: 7px; font-size: 13px; }

.product-delivery-note p { margin: 5px 0 8px; color: var(--muted); line-height: 1.5; }

.product-delivery-note a { text-decoration: underline; }

.product-config .button:disabled { opacity: .55; cursor: not-allowed; }

.product-detail-info label { display: block; font-size: 12px; margin: 14px 0 6px; font-weight: 600; }

.product-config .product-option-step legend { display: flex; align-items: center; gap: 10px; width: 100%; margin-bottom: 10px; }

.product-config .product-option-step legend > span { float: none; color: inherit; }



/* forms */

.field { margin: 0 0 14px; }

.field label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 6px; }

.field input, .field select, .field textarea, .admin-card input:not([type=checkbox]), .admin-card select {

  width: 100%; padding: 12px 13px; border: 1px solid #c4cab9; background: #fff; border-radius: 4px; font-size: 15px; color: var(--ink);

}

.field textarea { resize: vertical; line-height: 1.5; font-family: inherit; }

.field input:disabled { background: #eef0e8; color: var(--muted); }

.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--danger); }

.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.check { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; cursor: pointer; margin: 10px 0; }

.check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--ink); flex: none; }

.hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }

input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #577100; outline-offset: 2px; }



/* cart page */

.cart-layout { display: grid; grid-template-columns: 1.7fr 1fr; gap: 5%; align-items: start; }

.cart-line { display: grid; grid-template-columns: 90px 1fr auto auto; gap: 18px; align-items: start; padding: 20px 0; border-top: 1px solid var(--line); }

.cart-line:last-child { border-bottom: 1px solid var(--line); }

.cart-line img { width: 90px; height: 110px; object-fit: contain; background: #e5e8dd; border-radius: 6px; }

.cart-line h2 { font-size: 20px; letter-spacing: -.03em; }

.cart-line p { margin: 4px 0; font-size: 14px; }

.cart-line.unavailable { opacity: .75; }

.qty-form { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }

.qty-form input { width: 76px; padding: 9px; border: 1px solid #c4cab9; border-radius: 4px; background: #fff; font-size: 14px; }

.cart-line-total { font-family: 'Space Grotesk', Arial, sans-serif; font-size: 18px; white-space: nowrap; }

.cart-summary { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 24px; position: sticky; top: 110px; }

.cart-summary h2 { font-size: 24px; margin-bottom: 14px; }

.cart-summary .button { width: 100%; justify-content: center; margin: 14px 0 6px; }

.empty-cart { padding: 30px 0; display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }

.totals { margin: 16px 0; }

.totals > div { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; font-size: 14px; }

.totals dt, .totals dd { margin: 0; }

.totals .grand { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 14px; font-size: 17px; }

.totals .grand small { color: var(--muted); font-size: 11px; margin-right: 6px; }



/* checkout */

.checkout-header { position: static; padding: 18px 6%; }

.checkout-header .logo img { width: 140px; }

.back-to-cart { font-size: 13px; text-decoration: underline; color: #fff; }

.back-to-cart:hover { color: var(--lime); }

.checkout-footer { display: flex; gap: 22px; flex-wrap: wrap; justify-content: center; padding: 28px 6% 40px; font-size: 12px; color: var(--muted); border-top: 1px solid var(--line); }

.checkout-footer a { text-decoration: underline; }

.checkout-layout { display: grid; grid-template-columns: 1.25fr 1fr; min-height: 80vh; }

.checkout-main { padding: 40px 6% 60px 10%; }

.checkout-summary { background: #ecefe3; border-left: 1px solid var(--line); padding: 40px 8% 60px 5%; }

.co-section { margin-bottom: 34px; }

.co-section h2 { font-size: 22px; letter-spacing: -.03em; margin-bottom: 14px; }

.co-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; }

.co-head h2 { margin: 0; }

.co-sub { font-size: 16px; letter-spacing: -.02em; margin: 24px 0 12px; font-weight: 600; }

.method-group { border: 0; padding: 0; margin: 0 0 14px; display: grid; gap: 10px; }

.method-card { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border: 1px solid #c4cab9; background: #fff; border-radius: 8px; padding: 16px 18px; cursor: pointer; }

.method-card.selected { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); background: #fbfdf4; }

.method-card input { width: 18px; height: 18px; accent-color: var(--ink); }

.method-main strong { display: block; font-size: 15px; }

.method-main small { display: block; color: var(--muted); font-size: 12px; line-height: 1.5; margin-top: 3px; }

.method-price { font-weight: 700; font-size: 14px; white-space: nowrap; }

.summary-lines { list-style: none; padding: 0; margin: 0 0 8px; }

.summary-lines li { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 12px 0; }

.summary-lines li:not(:has(.summary-img)) { grid-template-columns: 1fr auto; border-bottom: 1px solid var(--line); }

.summary-img { position: relative; width: 64px; height: 76px; background: #fff; border: 1px solid var(--line); border-radius: 8px; display: grid; place-items: center; }

.summary-img img { max-width: 100%; max-height: 100%; object-fit: contain; }

.qty-badge { position: absolute; top: -8px; right: -8px; background: #555c4d; color: #fff; border-radius: 50%; min-width: 22px; height: 22px; display: grid; place-items: center; font-size: 11px; }

.summary-info { display: flex; flex-direction: column; gap: 2px; font-size: 14px; }

.summary-price { font-size: 14px; white-space: nowrap; }

#pay-button[disabled] { opacity: .5; cursor: not-allowed; }

.pay-page { min-height: 55vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }

.pay-page form { margin: 18px 0 6px; }



/* order page */

.order-head { margin-bottom: 26px; }

.order-head .button { margin-top: 14px; }

.status-pill { display: inline-block; background: var(--ink); color: var(--lime); border-radius: 30px; padding: 6px 14px; font-size: 12px; font-weight: 700; margin: 14px 0 0; letter-spacing: .04em; }

.order-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 6%; align-items: start; }

.order-grid h2 { font-size: 22px; margin: 6px 0 12px; }

.plain-address { font-size: 15px; margin-bottom: 20px; }

.timeline { list-style: none; padding: 0; margin: 0 0 20px; font-size: 13px; }

.timeline li { padding: 8px 0 8px 16px; border-left: 2px solid var(--line); line-height: 1.5; }

.timeline li span { display: block; color: var(--muted); font-size: 11px; }



/* tables */

.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }

.data-table th { text-align: left; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); }

.data-table td { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }

.data-table th.num, .data-table td.num { text-align: right; }



/* account / auth */

.auth-page { display: grid; place-items: start center; }

.auth-card { width: min(460px, 100%); }

.account-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 6%; align-items: start; }

.account-grid h2 { font-size: 22px; margin: 6px 0 14px; }



/* pages */

.policy-wide .contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 7%; align-items: start; }

.contact-aside h2 { font-size: 22px; margin: 22px 0 8px; }

.contact-aside h3 { font-size: 16px; margin: 20px 0 6px; font-weight: 600; letter-spacing: -.02em; }

.contact-aside p, .contact-aside li { font-size: 14px; }

.error-page { min-height: 50vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }



/* admin */

.admin { background: #f1f2ec; }

.admin-header { position: static; display: flex; flex-wrap: wrap; align-items: center; gap: 22px; padding: 14px 24px; }

.admin-brand { font-family: 'Space Grotesk', Arial, sans-serif; font-size: 18px; color: var(--lime); }

.admin-brand span { color: #fff; font-size: 12px; margin-left: 4px; }

.admin-header nav { gap: 20px; }

.admin-header nav a.current { color: var(--lime); }

.admin-user { margin-left: auto; font-size: 13px; display: flex; gap: 12px; align-items: center; }

.admin-user .link-button { color: #fff; }

.admin-main { max-width: 1200px; margin: 0 auto; padding: 28px 24px 60px; }

.admin-main h1 { font-size: 34px; margin: 6px 0 16px; }

.admin-main h2 { font-size: 20px; margin: 0 0 12px; }

.admin-card { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 22px; margin-bottom: 20px; }

.admin-card.narrow { max-width: 420px; margin: 40px auto; }

.admin-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 20px; align-items: start; }

.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 26px; }

.stat { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 18px; font-size: 13px; color: var(--muted); display: block; }

.stat span { display: block; font-family: 'Space Grotesk', Arial, sans-serif; font-size: 32px; color: var(--ink); letter-spacing: -.04em; }

.inline-form { display: grid; grid-template-columns: auto 1fr 2fr auto; gap: 10px; align-items: center; margin: 12px 0; }

.inline-form label { font-size: 12px; font-weight: 600; }

.inline-form .button { padding: 12px 18px; }

.danger-zone { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }

.danger-zone .inline-form { grid-template-columns: 1fr auto; }

.enquiry.is-new { border-left: 4px solid var(--lime); }

.price-input { max-width: 130px; }



@media (max-width: 1000px) {

  .footer-top { grid-template-columns: minmax(160px, .8fr) minmax(0, 1.2fr); gap: 28px; }

  .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .checkout-layout { grid-template-columns: 1fr; }

  .checkout-summary { order: -1; border-left: 0; border-bottom: 1px solid var(--line); padding: 24px 6%; }

  .checkout-main { padding: 28px 6% 50px; }

  .cart-layout, .order-grid, .account-grid, .policy-wide .contact-grid, .admin-grid, .product-detail-grid { grid-template-columns: 1fr; }

  .product-detail-visual { position: static; }

  .cart-summary { position: static; }

  .stat-row { grid-template-columns: 1fr 1fr; }

  .pickup-banner { grid-template-columns: auto 1fr; }

  .pickup-banner .pickup-address { grid-column: 1 / -1; }

}

@media (max-width: 700px) {

  .header-actions { gap: 12px; }

  header { flex-wrap: wrap; gap: 10px 14px; }

  header nav { order: 3; width: 100%; gap: 14px; flex-wrap: wrap; }

  header nav a:last-child { display: block; }

  .bag { font-size: 12px; padding: 8px 12px; border: 1px solid #ffffff50; }

  .bag span { margin-left: 6px; }

  .field-row { grid-template-columns: 1fr; gap: 0; }

  .cart-line { grid-template-columns: 70px 1fr; }

  .cart-line img { width: 70px; height: 90px; }

  .cart-line .qty-form, .cart-line .cart-line-total { grid-column: 2; }

  .footer-top { grid-template-columns: 1fr; gap: 20px; }

  .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }

  .inline-form { grid-template-columns: 1fr; }

  .admin-header { gap: 12px; }

  .admin-user { margin-left: 0; }

  .data-table { font-size: 13px; }

  .pickup-banner { padding: 26px 5%; }

  .pickup-badge { width: 64px; height: 64px; font-size: 15px; }

}



.mail-body { white-space: pre-wrap; word-break: break-word; font: 13px/1.55 ui-monospace, Menlo, monospace; background: #f6f7f1; padding: 14px; border-radius: 6px; margin: 12px 0 0; }

details.admin-card summary { cursor: pointer; }



/* admin: email designer */

.design-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }

.design-controls .chip { padding: 6px 14px; }

.mail-frame-wrap { background: #e4e7dc; border-radius: 10px; padding: 14px; display: flex; justify-content: center; }

.mail-preview { width: 100%; max-width: 660px; height: 1200px; border: 0; background: #ecefe3; border-radius: 6px; }

.mail-preview.phone { max-width: 390px; }

.admin-main code { background: #eef0e6; padding: 2px 6px; border-radius: 4px; font-size: 12px; }



/* ---------- accessibility, cookie notice ---------- */

.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--lime);color:var(--ink);padding:12px 18px;border-radius:5px;font-weight:700}

.skip-link:focus{left:8px}

.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:620px;background:var(--ink);color:#fff;border:1px solid #ffffff30;border-radius:12px;padding:18px 20px;box-shadow:0 12px 40px #0006;display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:env(safe-area-inset-bottom,0)}

.cookie-banner[hidden]{display:none}

.cookie-banner h2{font-size:17px;letter-spacing:-.02em;margin:0 0 6px;font-family:'Space Grotesk',Arial,sans-serif}

.cookie-banner h2:focus{outline:none}

.cookie-banner p{margin:0;font-size:14px;line-height:1.5;color:#d6dacf}

.cookie-banner a{color:var(--lime);text-decoration:underline}

.cookie-text{flex:1 1 280px}

.cookie-actions{display:flex;gap:10px;flex:0 0 auto;flex-wrap:wrap}

.cookie-actions .button{padding:13px 18px;min-height:46px;justify-content:center;font-size:14px}

.cookie-actions .button.dark{background:var(--lime);color:var(--ink)}

.button.outline{background:transparent;border:1px solid currentColor;color:inherit}

.cookie-banner .button.outline{color:#fff;border-color:#ffffff80}

@media(max-width:700px){.cookie-banner{left:10px;right:10px;bottom:10px;padding:16px}.cookie-actions{width:100%}.cookie-actions .button{flex:1 1 0}}



/* ---------- back office additions ---------- */

.admin-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

.admin-title-row .button{padding:13px 20px}

.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

.table-scroll table{min-width:640px}

.admin-card.narrow-wide{max-width:760px}

.admin-card textarea{width:100%;padding:12px;border:1px solid #c4cab9;border-radius:4px;background:#fff;font:inherit;line-height:1.5}

.admin-card textarea.editor{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.55;min-height:420px}

.admin-picture{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}

.admin-picture img{width:120px;height:120px;object-fit:contain;background:#e9ebe3;border-radius:8px}

.admin-picture>div{flex:1 1 260px}

.data-table input.price-input,.data-table input.narrow-input{width:110px}

.data-table input.tier-input{width:220px;min-width:220px}

.data-table input.gtin-input{width:150px}

.add-option{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}

.copy-row input{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}

.pill{display:inline-block;border-radius:30px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}

.pill-error{background:#fbe3dc;color:#8b2c14}.pill-warning{background:#fdf0c7;color:#6b4f00}.pill-info{background:#e4eadc;color:#33401f}

.placeholder-list dt{margin-top:10px}.placeholder-list dd{margin:2px 0 0;color:var(--muted)}

.revisions{list-style:none;padding:0;margin:0}.revisions li{padding:8px 0;border-bottom:1px solid var(--line)}

form.inline{display:inline}

.admin-name{color:#fff;text-decoration:underline;text-underline-offset:3px}

.preview-card{border-color:#667d37}

@media(max-width:700px){.admin-header nav{overflow-x:auto;white-space:nowrap;flex-wrap:nowrap;width:100%;padding-bottom:6px}.admin-header nav a{padding:8px 4px}.admin-main{padding:20px 16px 60px}}

.facts{margin:0}.facts div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.facts dt{color:var(--muted);font-size:12px;font-weight:600}.facts dd{margin:0}

@media print{header,.admin-header,.devbar,.preview,.skip-link,.cookie-banner,form,.button,.danger-zone,details{display:none!important}.admin-main{padding:0;max-width:none}.admin-card{border:0;padding:0 0 14px;break-inside:avoid}.admin-grid{grid-template-columns:1fr 1fr}a{text-decoration:none}}

.section-head h1{font-size:clamp(34px,4vw,58px);line-height:1.07}



/* ---------- phones: readable text, 44 px tap targets, no zoom when a field is focused ---------- */

@media (max-width: 760px) {

  .devbar { font-size: 12px; letter-spacing: .04em; padding: 8px 12px; }

  .preview { padding: 0; font-size: 12px; letter-spacing: .06em; }

  .preview a { padding: 14px 14px; }

  header { position: static; padding: 6px 5% 4px; gap: 0 12px; }

  header .logo { display: flex; align-items: center; min-height: 48px; }

  header nav { gap: 0 2px; margin: 0 -10px; width: calc(100% + 20px); }

  header nav a, header nav a:last-child { font-size: 14px; padding: 13px 10px; min-height: 44px; display: inline-flex; align-items: center; }

  .account-link { font-size: 14px; padding: 13px 8px; min-height: 44px; display: inline-flex; align-items: center; }

  .bag { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; padding: 9px 16px; }

  .eyebrow, .art-tag, .visual-title, .card-badge { font-size: 12px; }

  .floating-note, .ticker, .ticker span, .feature-strip, .feature-strip span, .catalogue-note { font-size: 12px; }

  .small, .muted.small, p.small, small, .product-card p, .price-box p, .finish-options small, .crumbs, .field label { font-size: 12px; }

  .site-footer small { font-size: 12px; }

  .site-footer a, .footer-links a { display: inline-block; padding: 13px 0; font-size: 14px; }

  .site-footer .footer-links { gap: 0; }

  .filters .chip, .filters button { padding: 13px 18px; font-size: 13px; min-height: 44px; }

  .quantities button, .swatches button, .finish-options button { min-height: 44px; font-size: 13px; }

  .colour-extra summary, details summary { min-height: 44px; display: flex; align-items: center; font-size: 14px; }

  .more { padding: 15px 0; }

  .crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; padding-top: 6px; }

  .crumbs a, .back-to-cart, .checkout-footer a { display: inline-block; padding: 13px 2px; font-size: 13px; }

  .checkout-footer { gap: 4px 12px; }

  .link-button { font-size: 13px; padding: 12px 8px; min-height: 44px; }

  .checkout-main a.small, .checkout-main .small a { display: inline-block; padding: 12px 0; }

  .field input, .field select, .field textarea, .admin-card input:not([type=checkbox]), .admin-card select, .admin-card textarea { font-size: 16px; }

  small { font-size: 12px; }

  /* 16 px stops iPhones zooming the page when a field is tapped */

  input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]), select, textarea { font-size: 16px; min-height: 46px; }

  .check { padding: 6px 0; }

  .check input { width: 22px; height: 22px; }

  .method-card, .method { min-height: 56px; }

  .flash { font-size: 15px; }

}



/* ---------- Google Shopping back-office pages ---------- */

.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 6px}

.button-row .button{padding:13px 18px;min-height:44px}

.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45}

.checklist .mark{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;background:#e4eadc;color:#33401f}

.checklist .check-todo .mark{background:#fbe3dc;color:#8b2c14}.checklist .check-manual .mark{background:#e8e8e2;color:#555}

.bulk-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.bulk-bar select{width:auto;min-width:230px}.bulk-bar .button{padding:12px 18px}

.feed-table .feed-title{display:flex;gap:12px;align-items:center;min-width:260px}.feed-table .feed-title a{text-decoration:underline}

.thumb{width:44px;height:44px;object-fit:contain;background:#e9ebe3;border-radius:6px;flex:none}.thumb.big{width:96px;height:96px}

.filters .count{opacity:.6;margin-left:4px;font-size:11px}

.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.pager .chip{border:1px solid var(--line);border-radius:30px;padding:8px 14px;font-size:13px}.pager .chip.active{background:var(--ink);color:#fff}

.pill-state-ok{background:#e4f2cf;color:#2c4a0c}.pill-state-warning{background:#fdf0c7;color:#6b4f00}.pill-state-error{background:#fbe3dc;color:#8b2c14}.pill-state-off{background:#e8e8e2;color:#555}.pill-plain{background:transparent;color:var(--muted);padding-left:0;text-transform:none;letter-spacing:0;font-weight:500}

.attr-table th{width:150px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;text-transform:none;letter-spacing:0;color:var(--muted);padding-right:10px;word-break:break-all}.attr-table td{font-size:13px;word-break:break-word}

.static-field{margin:0;padding:12px 0;font-size:15px}

.listing-card{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px}.listing-card img{width:96px;height:96px;object-fit:contain;background:#f1f2ec;border-radius:8px;flex:none}.listing-price{margin:0;font-weight:700;font-size:18px}.listing-title{margin:4px 0;font-size:14px;line-height:1.4}.listing-card p{line-height:1.35}

.check-list{list-style:none;padding:0;margin:0}.check-list li{padding:8px 0;border-bottom:1px solid var(--line);line-height:1.5}

.sticky-card{position:sticky;top:12px}

@media(max-width:900px){.sticky-card{position:static}}

.admin-grid.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}

@media(max-width:900px){.admin-grid.even{grid-template-columns:1fr}}

.admin-main h3{font-size:16px;letter-spacing:-.01em;margin:22px 0 6px;font-weight:700}

.admin-main h3 .small{font-weight:400}

.attr-table th{width:120px}



/* Payment choices at checkout, and the EFT banking details (checkout, order page) */

.bank-list { display: grid; gap: 8px; margin: 10px 0 14px; }

.bank-list div { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid rgba(23, 26, 22, .15); padding-bottom: 6px; }

.bank-list dt { font-size: 13px; opacity: .75; }

.bank-list dd { margin: 0; font-weight: 700; text-align: right; }

.pay-panel { border: 1px solid #c4cab9; background: #fbfdf4; border-radius: 8px; padding: 14px 18px; margin: 0 0 14px; font-size: 14px; }

.pay-panel[hidden] { display: none; }

.method-card small { display: block; font-weight: 400; opacity: .75; }

.method-card[hidden] { display: none; }

.co-terms { margin: 4px 0 14px; color: var(--ink); }



/* Tube order summary: delivery choice, free-delivery offer, cash-on-delivery notice */

.price-box .delivery-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }

.price-box .delivery-row label { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; font-size: 13px; }

.price-box .delivery-row select { margin: 0; min-width: 0; max-width: 100%; }

.finish-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }

.finish-options button { min-width: 0; padding: 14px 11px; }

.finish-options strong { font-size: 11px; }

.finish-options small { font-size: 10px; line-height: 1.35; }

@media (max-width: 520px) {

  .price-box .delivery-row { grid-template-columns: 1fr; gap: 6px; }

  .price-box .delivery-row label { grid-template-columns: 1fr; gap: 5px; }

  .finish-options button { padding: 11px 8px; }

  .finish-options strong { font-size: 10px; }

  .finish-options small { font-size: 9px; }

}

.price-box .shipping-upgrade-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; }

.price-box .shipping-upgrade-row button { border: 1px solid var(--ink); background: var(--lime); border-radius: 8px; padding: 8px 12px; font-weight: 700; cursor: pointer; }

.price-box [hidden], .tube-cod-notice[hidden] { display: none; }

.tube-cod-notice { margin: 10px 0 0; font-size: 14px; }



/* One-colour label preview: a short vertical name on the tube */

.product-stage #name-label-preview { position: absolute; left: 47%; top: 36%; width: 7%; height: 36%; display: flex; align-items: center; justify-content: center; background: linear-gradient(90deg, #151515, #343434, #111); color: #fff; border-radius: 2px; overflow: hidden; white-space: nowrap; }

.product-stage #name-label-preview.light { background: linear-gradient(90deg, #ddd, #fff, #ddd); color: #111; }

.product-stage #name-label-preview span { transform: rotate(-90deg); display: block; flex-shrink: 0; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; }

.product-stage #name-label-preview[hidden] { display: none; }



/* Packaging priced by the piece */

#supplier-breaks p { margin: 4px 0; }

#supplier-add[disabled] { opacity: .5; cursor: not-allowed; }



/* Purchase summary: preserve readable amounts as the product panel reflows. */

.product-detail-info { container: product-info / inline-size; }

.product-order-row { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,1.45fr); gap:14px; align-items:end; background:var(--soft); border-radius:12px; padding:20px 16px; margin-top:6px; }

.product-order-cell { min-width:0; text-align:center; }

.product-order-row .product-order-label, .product-order-row label { display:block; margin:0 0 12px; font-size:15px; font-weight:700; line-height:1.3; color:var(--ink); }

.product-order-row input[type=number] { display:block; width:100%; max-width:104px; min-height:48px; margin:0 auto; text-align:center; padding:10px 6px; }

.product-order-cell strong { display:flex; align-items:center; justify-content:center; min-height:48px; font-family:'Space Grotesk',Arial,sans-serif; font-size:clamp(16px,1.45vw,20px); white-space:nowrap; overflow-wrap:normal; font-variant-numeric:tabular-nums; }

.product-order-row .button { grid-column:1/-1; min-height:48px; padding:14px 18px; font-size:16px; gap:12px; white-space:nowrap; }

#supplier-add, #add-to-cart { background:var(--lime); color:var(--ink); }
#supplier-add:hover:not(:disabled), #add-to-cart:hover:not(:disabled) { background:#c4ef32; }
#supplier-add:disabled, #add-to-cart:disabled { opacity:.5; cursor:not-allowed; }

.product-tier-row.active { background:var(--soft); color:var(--ink); padding-left:8px; padding-right:8px; border-radius:4px; }

.product-detail-visual .product-stage { position:relative; aspect-ratio:1; overflow:hidden; }

.product-zoom-open { display:block; margin:12px auto 0; border:0; background:transparent; color:var(--ink); text-decoration:underline; cursor:pointer; font:inherit; padding:10px; }

.product-zoom { width:min(92vw,850px); max-height:94dvh; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--paper,#f6f6f0); }

.product-zoom::backdrop { background:#10150dcc; }

.product-zoom > .button { margin-left:auto; }

.product-zoom-stage { position:relative; width:min(76dvh,100%); aspect-ratio:1; margin:10px auto 0; overflow:hidden; }

.product-zoom-stage img { width:100%; height:100%; object-fit:contain; }

@media(max-width:620px) {

 .product-order-row { gap:10px; padding:16px 12px; }

 .product-order-row .button { grid-column:1/-1; }

 .product-order-row .product-order-label, .product-order-row label { font-size:14px; }

 .product-order-cell strong { font-size:18px; }

}



/* Keep the dosing-cup collection image upright and at a useful scale. */

.product-card[href$="/spiral-dosing-cups"] .product-picture { position:relative; overflow:hidden; }

.product-picture img[src*="td-cgsdcups-9ml-cnl-original.png"] { position:absolute; width:440.254777%; height:auto; max-width:none; max-height:none; left:50%; top:50%; object-fit:contain; transform-origin:50.052083% 38.177083%; transform:translate(-50.052083%, -38.177083%) rotate(180deg); }

.product-picture img[src*="td-cgsdcups-20ml-cnl-original.png"] { position:absolute; width:388.314607%; height:auto; max-width:none; max-height:none; left:50%; top:50%; object-fit:contain; transform-origin:50.052083% 38.645833%; transform:translate(-50.052083%, -38.645833%) rotate(180deg); }

.product-picture img[src*="td-cgsdcups-40ml-cnl-original.png"] { position:absolute; width:309.955157%; height:auto; max-width:none; max-height:none; left:50%; top:50%; object-fit:contain; transform-origin:50.052083% 38.020833%; transform:translate(-50.052083%, -38.020833%) rotate(180deg); }



/* All specifications remain visible as blocks, including unavailable choices. */

.product-option-step:first-child .product-option-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }

.product-option-card { overflow-wrap:anywhere; }

.product-option-card.is-out-of-stock { border-color:#c54848; background-image:linear-gradient(to top right,transparent calc(50% - 1px),#c5363644 50%,transparent calc(50% + 1px)),linear-gradient(to bottom right,transparent calc(50% - 1px),#c5363644 50%,transparent calc(50% + 1px)); }

.product-stock-badge { display:block; color:#a32020; font-size:12px; font-weight:700; margin-top:5px; }

.product-stock-note { border:1px solid #c54848; color:#8f2020; background:#fff4f1; }

.product-stock-note p { margin-bottom:0; }

.product-order-row .button { align-self:center; }

.product-description-dropdown { margin-top:28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0; }

.product-description-dropdown > summary { padding:20px 4px; cursor:pointer; font-weight:700; font-size:18px; }

.product-description-dropdown > summary:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

.product-description-content { padding:0 4px 18px; line-height:1.65; }

.product-description-content p { margin:0 0 12px; }

.product-description-content ul { margin:0; padding-left:22px; }

.tube-product-description { padding-top:0; padding-bottom:0; }

.product-description-dropdown > summary { display:flex; justify-content:space-between; gap:16px; list-style:none; }

.product-description-dropdown > summary::-webkit-details-marker { display:none; }

.product-description-dropdown > summary::after { content:'+'; font-size:22px; font-weight:400; }

.product-description-dropdown[open] > summary::after { content:'−'; }



/* Pre-order tabs: local preview only. */

.product-size-tabs { display:flex; align-items:center; gap:22px; min-width:0; flex-wrap:wrap; }

.product-size-tabs button { border:0; border-bottom:3px solid transparent; background:transparent; padding:10px 0; color:var(--muted); font:inherit; font-weight:700; cursor:pointer; }

.product-size-tabs button[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--ink); }

.product-size-tabs button:disabled { opacity:.4; cursor:default; }

.product-size-tabs button:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }

.product-option-step:first-child #product-size-options:has(> button:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }

.product-preorder-notice { margin:0 0 18px; padding:12px 15px; border-left:3px solid #7d8a4e; background:var(--soft); font-size:14px; line-height:1.5; }

@media(max-width:480px) { .product-size-tabs { gap:16px; } .product-size-tabs button { font-size:14px; } }



/* Pre-order quotes are flagged clearly without changing colour-level stock status. */

#product-preorder-notice { border:1px solid #b52a2a; border-left-width:4px; color:#9c1f1f; background:#fff0ee; font-weight:600; }

.product-order-row:has(#supplier-add[hidden]) { grid-template-columns:repeat(3,minmax(0,1fr)); }


/* Pre-orders retain indicative bulk bands, without an online quantity/price panel. */
.product-order-row[hidden] { display:none; }
.product-data-list { margin:0; }
.product-data-list > div { display:grid; grid-template-columns:minmax(110px,1fr) minmax(0,3fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.product-data-list dt { font-weight:700; }
.product-data-list dd { margin:0; overflow-wrap:anywhere; }
.product-description-content h3 { margin:20px 0 10px; font-size:16px; }
@media(max-width:540px) { .product-data-list > div { grid-template-columns:1fr; gap:4px; } }

.product-option-card.is-enquiry .product-stock-badge { color: #425b54; }

/* Respond to the actual purchase-panel width, including browser zoom. */
@container product-info (max-width:420px) {
 .product-order-row, .product-order-row:has(#supplier-add[hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #supplier-total-cell { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:12px; }
 #supplier-total-cell .product-order-label { margin:0; }
 #supplier-total-cell strong { min-height:36px; font-size:22px; }
}
/* Fallback for small screens without container-query support. */
@media(max-width:480px) {
 .product-order-row, .product-order-row:has(#supplier-add[hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #supplier-total-cell { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:12px; }
 #supplier-total-cell .product-order-label { margin:0; }
 #supplier-total-cell strong { min-height:36px; font-size:22px; }
}

/* Quantity pricing stays visible for both flat and tiered options. */
.product-tier-heading { display:flex; justify-content:space-between; gap:16px; padding:8px 0; font-size:14px; font-weight:700; color:var(--ink); border-bottom:1px solid var(--line); }
#supplier-breaks-note { margin:0 0 10px; }

/* Questions and answers on a product page (one list: shown here and marked up as the page's FAQPage) */
.product-faq { margin: 24px 0 8px; }
.product-faq h2 { font-size: 20px; margin: 0 0 6px; }
.product-faq details { border-bottom: 1px solid #c4cab9; }
.product-faq summary { padding: 12px 4px; font-weight: 600; cursor: pointer; }
.product-faq details p { padding: 0 4px 12px; margin: 0; }

/* Keep links inside product information dropdowns visibly clickable. */
.details-section details p a {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  font-weight: 600;
}
.details-section details p a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

/* Approved Quick answers / Visual category guide page designs. Scoped to these pages. */
.info-page{width:min(1120px,100%);margin:0 auto;padding:48px 24px 64px}
.info-page .info-intro{max-width:700px;margin-bottom:34px}
.info-page .info-intro .eyebrow{margin-bottom:16px}
.info-page h1{font-size:clamp(38px,5.4vw,66px);line-height:1.02;letter-spacing:-.055em}
.info-page .info-intro-copy{max-width:570px;font-size:17px;color:#4d5547;margin:18px 0 0}
.info-page h2{font-size:clamp(24px,3vw,32px);line-height:1.2}
.info-page h3{font-size:19px;line-height:1.3}
.info-page p{line-height:1.65}
.info-page .info-small{font-size:13px;color:#4d5547;line-height:1.6}
.info-page .info-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin:0 0 12px}
.delivery-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.delivery-card{background:#fffef9;border:1px solid var(--line);border-radius:12px;padding:26px;display:flex;flex-direction:column}
.delivery-card .delivery-rate{font-family:'Space Grotesk',Arial,sans-serif;font-size:46px;line-height:1.15;letter-spacing:-.04em;margin:0 0 12px}
.delivery-rate span{font-family:'DM Sans',Arial,sans-serif;font-size:14px;letter-spacing:normal;margin-left:10px}
.delivery-card>p:not(.delivery-rate):not(.delivery-free){margin:0 0 14px}
.delivery-card .delivery-free{background:var(--lime);color:var(--ink);border-radius:5px;padding:12px 14px;font-size:15px;font-weight:700;margin:auto 0 0}
.info-page .delivery-explainer{margin:17px 0 0;max-width:900px}
.info-page .info-block{margin-top:38px}
.delivery-timings{margin-top:16px}
.delivery-time-row{display:grid;grid-template-columns:1fr 1.3fr;gap:28px;padding:18px 0;border-bottom:1px solid var(--line)}
.delivery-time-row h3{font-family:'DM Sans',Arial,sans-serif;font-size:15px;font-weight:600;letter-spacing:0}
.delivery-time-row p{margin:0;font-size:15px}
.time-kind{display:inline-block;margin-top:7px;font-size:11px;font-weight:700;letter-spacing:.03em;color:#4d5547}
.timing-notes p{margin:16px 0 10px}
.collection-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:34px;padding:24px 0;border-top:1px solid var(--line)}
.collection-strip h2{font-size:23px}.collection-strip p{margin:10px 0 0;font-size:14px;color:#4d5547}
.info-text-link,.info-page a:not(.button):not(.packaging-category){text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px}
.info-text-link{white-space:nowrap;font-weight:600;font-size:14px}
.info-page .info-disclosure{border-top:1px solid var(--line);padding:14px 0;margin:0}
.info-page .info-disclosure summary{cursor:pointer;font-weight:600;font-size:14px;padding:3px 0}
.info-page .info-disclosure p{font-size:14px;margin:12px 0 2px}
.delivery-card .info-disclosure{margin:0 0 14px}
.info-page .info-large{padding:18px 0}.info-page .info-large summary{font-size:16px}
.info-page .info-prose p,.info-page .info-prose li{font-size:14px}
.info-page .info-prose ul{padding-left:20px;line-height:1.7}
.info-page .info-prose address{font-style:normal}.info-help{margin-top:25px;font-size:14px}
.info-page .shipping-fallback{padding:0;max-width:none}
.packaging-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.packaging-category{border:1px solid var(--line);border-radius:10px;background:#fffef9;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s ease}
.packaging-category:hover{border-color:var(--ink)}
.packaging-category-image{height:185px;background:#e9eddf;display:flex;align-items:center;justify-content:center;padding:20px}
.packaging-category-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.packaging-category:not(:first-child) .packaging-category-image img{transform:scale(1.5)}
.packaging-category-copy{padding:20px;display:flex;flex:1;flex-direction:column}
.packaging-category-copy h2{font-size:23px}.packaging-category-copy p{font-size:13px;color:#4d5547;flex:1;margin:12px 0 18px}
.packaging-category-copy span{font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.packaging-checklist{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.packaging-checklist li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.packaging-checklist li>span{font-family:'Space Grotesk',Arial,sans-serif;color:#4d5547;font-size:15px;padding-top:2px}
.packaging-checklist strong{font-size:15px}.packaging-checklist p{font-size:13px;margin:6px 0 0;color:#4d5547}
.stocked-summary{background:#e9eddf;border-radius:10px;padding:25px;margin:30px 0}.stocked-summary h2{font-size:26px}.stocked-summary p{margin-bottom:0}
.pre-order-summary{display:grid;grid-template-columns:1.5fr 1fr;gap:35px;padding:6px 0 28px;scroll-margin-top:130px}
.pre-order-summary p{font-size:14px}.pre-order-summary .button{font-size:13px;padding:14px 18px;margin-top:7px}
.quote-checklist{background:#fffef9;border:1px solid var(--line);border-radius:10px;padding:24px;align-self:start}.quote-checklist h3{font-size:20px}.quote-checklist ul{font-size:14px;padding-left:18px;line-height:1.9;margin-bottom:0}
.guide-next-links{display:flex;gap:18px 28px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:16px;font-size:14px;font-weight:600}
@media(max-width:850px){.packaging-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.pre-order-summary{grid-template-columns:1fr 1fr;gap:20px}}
@media(max-width:560px){.info-page{padding:30px 18px 45px}.delivery-cards{grid-template-columns:1fr;gap:16px}.delivery-card{padding:22px}.delivery-card .delivery-rate{font-size:40px}.delivery-time-row{grid-template-columns:1fr;gap:7px}.collection-strip{align-items:flex-start;flex-direction:column;gap:16px}.packaging-categories{gap:12px}.packaging-category-image{height:140px;padding:12px}.packaging-category-copy{padding:15px}.packaging-category-copy h2{font-size:20px}.packaging-category-copy p{font-size:12px}.packaging-category-copy span{font-size:12px}.packaging-checklist{grid-template-columns:1fr}.pre-order-summary{grid-template-columns:1fr}.info-page .info-intro-copy{font-size:15px}.guide-next-links{flex-direction:column;gap:18px}.stocked-summary{padding:20px}.info-page summary{min-height:36px}}

/* Compact shipping summary; optional guidance is grouped into native disclosures. */
.shipping-tidy{padding-top:34px}
.shipping-tidy .info-intro{margin-bottom:25px}
.shipping-tidy h1{font-size:clamp(34px,4.4vw,52px)}
.shipping-tidy .info-intro-copy{margin-top:12px}
.shipping-tidy .info-block{margin-top:26px}
.shipping-tidy .delivery-time-row{padding:14px 0}
.shipping-tidy .shipping-detail-group{margin-top:28px}
.shipping-tidy .shipping-detail-group details{padding:17px 0}
.shipping-tidy .shipping-detail-group details[open]{padding-bottom:22px}
.shipping-tidy .shipping-detail-group summary{line-height:1.5}
.shipping-tidy .shipping-detail-group .info-prose{padding:5px 0 0 20px;max-width:920px}
@media(max-width:560px){.shipping-tidy{padding-top:26px}.shipping-tidy .shipping-detail-group .info-prose{padding-left:0}.shipping-tidy .delivery-time-row{gap:5px}}

/* Buying guide: visible choices, compact checklist, expandable supporting guidance. */
.packaging-tidy{padding-top:34px}
.packaging-tidy .info-intro{margin-bottom:25px;max-width:850px}
.packaging-tidy h1{font-size:clamp(32px,4.4vw,52px)}
.packaging-tidy .info-intro-copy{margin-top:12px}
.packaging-tidy .info-block{margin-top:26px}
.packaging-tidy .packaging-checklist{margin-top:12px}
.packaging-tidy .packaging-checklist li{padding:14px 0}
.packaging-tidy .packaging-detail-group{margin-top:28px}
.packaging-tidy .packaging-detail-group details{padding:17px 0}
.packaging-tidy .packaging-detail-group details[open]{padding-bottom:22px}
.packaging-tidy .packaging-detail-group summary{line-height:1.5}
.packaging-tidy .packaging-detail-group .info-prose{padding:5px 0 0 20px;max-width:920px}
.packaging-tidy .packaging-detail-group .button{font-size:13px;padding:13px 17px;margin-top:14px}
@media(max-width:560px){.packaging-tidy{padding-top:26px}.packaging-tidy .packaging-detail-group .info-prose{padding-left:0}}
