.mode-switch{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;padding:1rem 0}.mode-switch a[aria-current]{background:var(--green,#414b36);color:white}.mode-switch a{padding:.7rem 1rem;border:1px solid #bbc0b4;text-decoration:none}.buy-hero{padding-top:4rem;padding-bottom:3rem;max-width:850px}.buy-hero h1{font-size:clamp(2.5rem,6vw,5rem);margin:.4em 0}.sale-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 2rem}.sale-card{min-width:0;border-bottom:1px solid #d8d9ce;padding-bottom:1.5rem}.sale-card h3{font-size:1.15rem}.sale-card .sale-photo{width:100%;aspect-ratio:1;background:white;border:0;cursor:pointer;padding:0}.sale-photo img{width:100%;height:100%;object-fit:contain}.sale-card .button{width:100%;margin-top:1rem}.sale-price{font-size:1.25rem;font-weight:600}.sale-tools{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.sale-tools label{flex:1;min-width:180px}.sale-tools input,.sale-tools select{width:100%;padding:.85rem;background:transparent;border:1px solid #bbc0b4;font:inherit}.sale-dialog{width:min(900px,94vw);max-height:92dvh;padding:2rem}.sale-detail-photo{width:100%;max-height:45vh;object-fit:contain;background:white}.sale-gallery{display:flex;overflow:auto;gap:.5rem}.sale-gallery button{width:75px;height:75px;padding:0;border:1px solid #bbb;background:white;flex-shrink:0}.sale-gallery img{width:100%;height:100%;object-fit:contain}.sale-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1rem 0}.sale-actions input{width:90px;padding:.7rem;font:inherit}.sale-row{display:grid;grid-template-columns:1fr 80px auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid #d8d9ce}.sale-row input{width:70px;padding:.6rem;font:inherit}.discount-code{padding:1.3rem 0;margin:1rem 0;border-block:1px solid #d8d9ce}.discount-code label{display:block;font-weight:600;margin-bottom:.6rem}.coupon-entry{display:flex;gap:.6rem;flex-wrap:wrap}.coupon-entry input{min-width:140px;flex:1;width:100%;padding:.8rem;font:inherit;border:1px solid #bbc0b4;background:white}.coupon-entry .button{width:auto;min-width:100px;margin:0}.discount-code #couponTotals>div{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0}.coupon-admin{max-width:800px}.coupon-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.coupon-list article{border:1px solid #bbc0b4;padding:1.5rem}.sale-notice{background:#e9ecdf;padding:1.5rem;margin:1.5rem 0}.sale-status{min-height:2rem}.sale-empty{text-align:center;padding:3rem}.sale-cart{width:min(680px,96vw);max-height:94dvh;overflow-y:auto;padding:2rem}.sale-cart form label{display:block;margin:1rem 0}.sale-cart input,.sale-cart textarea{padding:.7rem;font:inherit;width:100%;border:1px solid #bbc0b4;background:transparent}.sale-cart fieldset{border:0;padding:0}.sale-cart .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.sale-row .remove{font-size:.9rem}.sale-summary>div{display:flex;justify-content:space-between;gap:1rem;margin:1rem 0}.sale-cart .close,.sale-dialog .close{position:static;float:right}.sale-module{padding:1rem;background:#e9ecdf;margin:1rem 0}.sale-module label{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0}.sale-module input{width:80px;padding:.5rem}.sale-module-total{font-weight:bold}.sale-card small{display:block;color:#666}.sale-product-switch{margin:1rem 0}.sale-detail-price{font-size:1.5rem;font-weight:bold}@media(max-width:800px){.sale-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}.coupon-list{grid-template-columns:1fr}}@media(max-width:500px){.sale-grid{grid-template-columns:1fr}.sale-cart,.sale-dialog{padding:1rem}.sale-row{grid-template-columns:1fr 70px}.sale-row .remove{grid-column:1/-1;justify-self:start}.sale-cart .two{grid-template-columns:1fr}.buy-hero{padding-top:2rem}}

/* Keep purchase products visible immediately below the page header. */
.buy-page .sale-catalog{padding-top:30px;padding-bottom:55px}.sale-catalog-heading{margin-bottom:22px}.sale-catalog-heading .eyebrow{margin-bottom:10px}.sale-catalog-heading h1{font-size:clamp(30px,3.4vw,46px);letter-spacing:-1.5px;margin:0 0 12px}.sale-catalog-heading>p:not(.eyebrow){margin-bottom:7px;max-width:850px;font-size:13px}.sale-catalog-heading>p.hint{font-size:11px;color:var(--muted)}.buy-page .catalog-tools{align-items:flex-start}.buy-page .filters{flex:1}.buy-page .search{flex-shrink:0;margin-bottom:0}.buy-page .sale-status{font-size:11px;color:var(--muted);margin:15px 0 18px;min-height:0}@media(max-width:640px){.buy-page .sale-catalog{padding-top:22px}.sale-catalog-heading{margin-bottom:18px}.sale-catalog-heading h1{font-size:31px}.buy-page .search{margin-top:15px}.buy-page .sale-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 13px}.buy-page .sale-card h3{font-size:13px;margin:12px 0 6px}.buy-page .sale-card>p:not(.sale-price){font-size:11px}.buy-page .sale-price{font-size:15px}.buy-page .sale-card small{font-size:10px}.buy-page .sale-card .button{font-size:11px;padding:12px;gap:8px}}

.sale-colour-options{margin:12px 0}.sale-colour-options>p{font-size:12px;margin-bottom:8px}.sale-swatches{display:flex;flex-wrap:wrap;gap:9px;padding:3px}.sale-swatch{width:27px;height:27px;min-width:27px;border-radius:50%;background:var(--swatch);border:1px solid #777;box-shadow:inset 0 0 0 2px #ffffff70;padding:0}.sale-swatch:hover,.sale-swatch[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:3px}.sale-detail .sale-swatches{gap:12px}@media(max-width:640px){.sale-swatches{gap:10px}.sale-swatch{width:28px;height:28px;min-width:28px}}

/* Keep purchase actions aligned across cards with different text and colour counts. */
.buy-page .sale-card{display:flex;flex-direction:column}.buy-page .sale-card .sale-photo{flex-shrink:0}.buy-page .sale-card>small{margin-bottom:1rem}.buy-page .sale-card>.button{margin-top:auto;min-height:48px;background:var(--olive);color:white;border:1px solid var(--olive)}

.sale-card .sale-photo{position:relative}.sale-kind{position:absolute;top:14px;left:14px;padding:6px 9px;background:var(--paper);color:var(--ink);font-size:10px;letter-spacing:1px}.sale-module-note{font-size:12px;color:var(--muted)}

/* Shared rows keep prices and actions aligned within each product row. */
@supports(grid-template-rows:subgrid){.buy-page .sale-card{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:12px;align-content:start}.buy-page .sale-card>h3,.buy-page .sale-card>.sale-price,.buy-page .sale-card>small{margin:0}.buy-page .sale-card>.button{margin:0;align-self:stretch}.sale-card-info{align-self:start}.sale-card-info>p{margin:0}.sale-card-info .sale-colour-options{margin:0 0 12px}.sale-card-info .sale-module-note{margin:0 0 8px}.buy-page .sale-card-info>p{font-size:inherit}@media(max-width:640px){.buy-page .sale-card-info>p{font-size:11px}}}

/* Tap-friendly quantity controls for products, modules and the purchase basket. */
.sale-quantity{display:inline-grid;grid-template-columns:44px 48px 44px;align-items:stretch;flex-shrink:0;border:1px solid var(--line,#bbc0b4);background:white;width:max-content}
.sale-quantity button{width:44px;min-height:44px;padding:0;border:0;background:transparent;font-size:22px;color:var(--ink)}
.sale-quantity input{width:48px!important;min-width:0;height:44px;margin:0;padding:4px!important;border:0!important;border-inline:1px solid var(--line,#bbc0b4)!important;background:transparent;text-align:center;font-size:16px;appearance:textfield;-moz-appearance:textfield}
.sale-quantity input::-webkit-inner-spin-button,.sale-quantity input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sale-quantity button:disabled{opacity:.3}.sale-quantity-field>span{display:block;margin-bottom:6px}.sale-module-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin:14px 0}.sale-module-row>span{min-width:0}.sale-row{grid-template-columns:minmax(0,1fr) auto auto}.sale-cart .sale-quantity{margin:0}
@media(max-width:500px){.sale-row{grid-template-columns:minmax(0,1fr) auto}.sale-row>div:first-child{grid-column:1/-1}.sale-row .remove{grid-column:auto}.sale-module-row{grid-template-columns:1fr;gap:8px}.sale-actions{align-items:flex-end}}

.sale-product-intro{display:flex;flex-direction:column}.sale-product-intro>div{min-width:0;display:contents}.sale-product-intro .eyebrow{order:-2}.sale-product-intro h2{order:-1}.sale-product-intro .sale-detail-photo{margin-bottom:16px}
@media(max-width:640px){
 .sale-dialog{padding:12px;max-height:94dvh}.sale-dialog>.close{margin:0 0 6px 8px}
 .sale-product-intro{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;clear:both;align-items:center;margin-bottom:8px}
 .sale-product-intro>div{display:block}.sale-product-intro .sale-detail-photo{height:120px;max-height:none;margin:0}
 .sale-product-intro .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:6px}
 .sale-product-intro h2{font-size:20px;letter-spacing:-.6px;line-height:1.15;margin:0 0 6px}
 .sale-product-intro p:not(.eyebrow){font-size:11px;line-height:1.4;margin:0}
 .sale-dialog .sale-gallery{margin:4px 0 8px;gap:6px}.sale-dialog .sale-gallery button{width:54px;height:48px}
 .sale-dialog .sale-detail-price{font-size:20px;margin:8px 0}.sale-dialog .sale-detail-price small{font-size:11px}
 .sale-dialog .sale-colour-options{margin:8px 0}.sale-dialog .sale-colour-options>p{margin-bottom:6px;font-size:12px}
 .sale-dialog .sale-actions{gap:10px;margin:10px 0}.sale-dialog .sale-actions>.button{padding:12px 16px;min-height:46px}
 .sale-dialog .sale-product-info{margin:12px 0;padding-top:10px}.sale-dialog .sale-product-switch{font-size:12px;margin:12px 0 0}
 .sale-dialog .sale-module{padding:10px;margin:10px 0}.sale-dialog .sale-module-row{margin:10px 0}
}

.buy-page .sale-card>.button{margin:10px 0 0;font-size:12px;min-height:44px;padding:9px 12px;line-height:1.3;justify-content:center;gap:6px}
@supports(grid-template-rows:subgrid){.buy-page .sale-card>.button{margin:0}}

/* Align desktop add action with the quantity control, below its label. */
@media(min-width:641px){.sale-dialog .sale-actions{align-items:flex-end}.sale-dialog .sale-actions>.button{box-sizing:border-box;height:46px;min-height:46px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center}}

/* Keep all three quantity controls on one baseline in the purchase basket. */
.sale-quantity{align-items:stretch;grid-auto-rows:44px;vertical-align:middle}
.sale-quantity>button,.sale-quantity>input{height:44px!important;min-height:44px;max-height:44px;margin:0!important;align-self:stretch;line-height:1}
.sale-quantity>button{display:grid;place-items:center;padding:0!important}
