/* Shop pages: product page, set builder, basket and checkout. Loaded only where needed. */

	/* ---- Product page ---- */
	.pdp__top { display: grid; gap: var(--s6); padding-top: var(--s4); }
	@media (min-width: 64em) { .pdp__top { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s8); align-items: start; padding-top: var(--s5); } }

	.pdp__gallery { position: relative; min-width: 0; }
	.gallery__track { list-style: none; padding: 0; margin: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; margin-inline: calc(-1 * var(--gutter)); }
	.gallery__track::-webkit-scrollbar { display: none; }
	.gallery__slide { scroll-snap-align: start; aspect-ratio: 1; background: var(--mat); }
	/* Secondary photos are shot on white: multiply blends the white into the stone mat. */
	.gallery__slide:not(:first-child) img, .gallery__slide.is-size img { mix-blend-mode: multiply; object-fit: contain; padding: 6%; }
	@media (max-width: 63.99em) { .gallery__slide { aspect-ratio: 5 / 4; } }
	.gallery__zoom { display: block; width: 100%; height: 100%; cursor: zoom-in; }
	.gallery__zoom img { width: 100%; height: 100%; object-fit: cover; }
	.gallery__thumbs { display: flex; gap: var(--s2); list-style: none; padding: 0; margin-top: var(--s3); }
	.gallery__thumbs a { display: block; width: 3.5rem; aspect-ratio: 1; border: 1px solid transparent; opacity: .7; transition: opacity var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out); }
	.gallery__thumbs a[aria-current="true"] { opacity: 1; border-color: var(--oud); }
	.gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
	@media (min-width: 64em) {
		.gallery__track { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: var(--s2); overflow: visible; margin-inline: 0; }
		.gallery__slide:first-child { grid-column: 1 / -1; }
		.gallery__thumbs { display: none; }
	}

	.pdp__buy { min-width: 0; }
	@media (min-width: 64em) { .buybox { position: sticky; top: calc(var(--header-h) + var(--s5)); } }
	.buybox { display: grid; gap: var(--s4); }
	.buybox__fams { display: flex; flex-wrap: wrap; gap: .4rem 1rem; }
	.buybox__fams a { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; color: var(--ink-2); }
	.buybox__fams a:hover { color: var(--ink); }
	.buybox__name { font-size: clamp(2.5rem, 1.8rem + 2.6vw, 4rem); line-height: 1; }
	.buybox__rating { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; margin-top: calc(-1 * var(--s2)); font-size: var(--fs-small); color: var(--ink-2); text-decoration: none; }
	.buybox__rating strong { color: var(--ink); font-weight: 500; }
	.buybox__rating:hover > span:last-child { text-decoration: underline; text-underline-offset: .2em; }
	.buybox__g { width: 1rem; height: 1rem; flex: none; }
	.buybox__kind { font-size: var(--fs-small); color: var(--ink-2); margin-top: calc(-1 * var(--s2)); }
	.buybox__line { color: var(--ink); }
	.buybox__about { display: grid; gap: .35rem; justify-items: start; }
	.buybox__about-text { font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
	.buybox__about-text > * + * { margin-top: .7em; }
	.buybox__about.is-folded .buybox__about-text { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
	.buybox__about.is-folded .buybox__about-text > * + * { display: none; }
	.buybox__more { color: var(--ink); }
	.buybox__oos { padding: var(--s4); background: var(--mat); }
	.buyform { display: grid; gap: var(--s4); margin-top: var(--s2); }
	.sizes { border: 0; padding: 0; margin: 0; min-width: 0; }
	.sizes__legend { display: flex; justify-content: space-between; width: 100%; font: 500 var(--fs-ui)/1.3 var(--sans); margin-bottom: var(--s3); padding: 0; }
	.sizes__legend .muted { font-weight: 400; font-size: var(--fs-small); }
	.sizes__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
	@media (min-width: 30em) { .sizes__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
	.size { position: relative; display: grid; gap: .1rem; align-content: start; min-height: 5.25rem; padding: .75rem .8rem; border: 1px solid var(--sand); border-radius: var(--radius); cursor: pointer; transition: border-color var(--dur-tap) var(--ease-out), background-color var(--dur-tap) var(--ease-out), transform var(--dur-tap) var(--ease-out); }
	.size:hover { border-color: var(--oud); }
	.size:active { transform: scale(.98); }
	.size input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
	.size__ml { font: 500 1.0625rem/1.2 var(--sans); }
	.size__price { font-variant-numeric: tabular-nums; }
	.size__per { font-size: .75rem; }
	.size__tick { position: absolute; top: .55rem; right: .55rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--oud); color: var(--paper); display: grid; place-items: center; opacity: 0; transform: scale(.8); transition: opacity var(--dur-tap) var(--ease-out), transform var(--dur-tap) var(--ease-out); }
	.size__tick .icon { width: .75rem; height: .75rem; stroke-width: 2.25; }
	.size:has(input:checked) { border-color: var(--oud); background: var(--limestone); box-shadow: inset 0 0 0 1px var(--oud); }
	.size:has(input:checked) .size__tick { opacity: 1; transform: none; }
	.size:has(input:focus-visible) { outline: 2px solid var(--amber); outline-offset: 2px; }
	.size.is-out { color: var(--clay); cursor: not-allowed; background: repeating-linear-gradient(135deg, transparent 0 6px, rgb(140 120 98 / .08) 6px 7px); }
	.size.is-out .size__ml { text-decoration: line-through; }
	.buyform__add { gap: .5rem; }
	.buyform__add[aria-busy="true"] { cursor: progress; }
	.buybox__facts { display: grid; gap: var(--s3); list-style: none; padding: var(--s4) 0 0; margin: 0; border-top: 1px solid var(--line); font-size: var(--fs-small); color: var(--ink-2); }
	.buybox__facts li { display: grid; grid-template-columns: 1.25rem 1fr; gap: var(--s3); align-items: start; }
	.buybox__facts .icon { width: 1.25rem; height: 1.25rem; }
	.buybox__try { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--s4); padding: var(--s4); background: var(--limestone); text-decoration: none; font-size: var(--fs-small); transition: background-color var(--dur-quick) var(--ease-out); }
	.buybox__try:hover { background: var(--travertine); text-decoration: none; }
	.buybox__try .wells { gap: 3px; flex-wrap: nowrap; }
	.buybox__try .wells span.is-full { background: var(--fam); }
	.buybox__try .icon { width: 1.1rem; height: 1.1rem; }

	/* The label + dry-down */
	.pdp__label-grid { display: grid; gap: var(--s8); }
	@media (min-width: 64em) { .pdp__label-grid { grid-template-columns: 1fr 1fr; gap: var(--s9); align-items: start; } }
	.label { border: 1px solid var(--ink); padding: var(--s5) var(--s5) var(--s3); background: var(--paper); position: relative; }
	.label::before { content: ""; position: absolute; inset: 5px; border: 1px solid var(--line); pointer-events: none; }
	.label__title { font: 500 var(--fs-eyebrow)/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); padding-bottom: var(--s3); border-bottom: 1px solid var(--ink); }
	.label__rows { display: grid; }
	.label__rows > div { display: grid; grid-template-columns: 8.5rem 1fr; gap: var(--s4); padding-block: .8rem; border-bottom: 1px solid var(--line); }
	.label__rows > div:last-child { border-bottom: 0; }
	.label__rows dt { font: 400 var(--fs-data)/1.5 var(--mono); color: var(--ink-2); padding-top: .15rem; }
	.label__rows dd { font-size: var(--fs-small); line-height: 1.5; }
	.label__name { font-size: 1.5rem !important; line-height: 1.1 !important; }
	@media (max-width: 29.99em) { .label__rows > div { grid-template-columns: 1fr; gap: .2rem; } }

	.drydown h2 { margin-bottom: var(--s6); }
	.drydown__line { list-style: none; padding: 0; display: grid; gap: var(--s6); position: relative; }
	.drydown__line::before { content: ""; position: absolute; left: .4rem; top: .5rem; bottom: .5rem; width: 1px; background: var(--line); }
	.drydown__stage { position: relative; padding-left: 2.25rem; display: grid; gap: .25rem; }
	.drydown__node { position: absolute; left: 0; top: .2rem; width: .85rem; height: .85rem; border-radius: 50%; background: var(--canvas); border: 1px solid var(--ink); }
	.drydown__stage:last-child .drydown__node { background: var(--fam); border-color: var(--fam); }
	.drydown__stage:nth-child(2) .drydown__node { background: linear-gradient(to top, var(--fam) 50%, var(--canvas) 50%); }
	.drydown__what { font-size: 1.5rem; line-height: 1.15; }
	.drydown__notes { color: var(--ink-2); }

	.pdp__story { background: var(--limestone); }
	.pdp__story-grid { display: grid; gap: var(--s6); }
	@media (min-width: 64em) { .pdp__story-grid { grid-template-columns: 1fr 1.6fr; gap: var(--s9); } .pdp__story-grid h2 { position: sticky; top: calc(var(--header-h) + var(--s6)); align-self: start; } }
	.pdp__story .prose p:first-child { font: 400 calc(var(--fs-lead) * 1.06)/1.5 var(--accent); }
	.pdp__faq { display: grid; gap: var(--s5); }
	@media (min-width: 64em) { .pdp__faq { grid-template-columns: 1fr 1.6fr; gap: var(--s9); } }

	/* Sticky buy bar (phones/tablets) */
	.buybar { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; padding: .75rem var(--gutter) calc(.75rem + env(safe-area-inset-bottom)); background: rgb(246 241 232 / .96); border-top: 1px solid var(--line); transform: translateY(105%); transition: transform var(--dur-base) var(--ease-out); }
	@supports (backdrop-filter: blur(10px)) { .buybar { background: rgb(246 241 232 / .85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } }
	.buybar.is-on { transform: none; }
	.buybar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); max-width: var(--max); margin-inline: auto; }
	.buybar__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.buybar__name .serif { font-size: 1.125rem; }
	.buybar .btn { min-height: 2.75rem; padding-inline: 1.25rem; flex: none; }
	@media (min-width: 64em) { .buybar { display: none; } }
	@media (prefers-reduced-motion: reduce) { .buybar { transition: opacity var(--dur-quick) var(--ease-out); transform: none; opacity: 0; pointer-events: none; } .buybar.is-on { opacity: 1; pointer-events: auto; } }

	/* Lightbox */
	dialog.lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--paper); }
	dialog.lightbox::backdrop { background: var(--paper); }
	dialog.lightbox img { width: 100%; height: 100%; object-fit: contain; touch-action: pinch-zoom; }
	.lightbox__close { position: absolute; top: var(--s4); right: var(--s4); background: var(--paper); }
	dialog.lightbox[open] { opacity: 1; transition: opacity var(--dur-base) var(--ease-out); }
	@starting-style { dialog.lightbox[open] { opacity: 0; } }

	/* ---- Set builder ---- */
	.set__head { display: grid; gap: var(--s6); padding-block: var(--s5) var(--s7); align-items: center; }
	@media (min-width: 64em) { .set__head { grid-template-columns: 1.2fr 1fr; gap: var(--s9); } }
	.set__intro { display: grid; gap: var(--s4); }
	.set__intro h1 { font-size: clamp(2.5rem, 1.7rem + 3vw, 4.5rem); line-height: 1; }
	.set__points { display: grid; gap: .5rem; padding-left: 1.1rem; color: var(--ink-2); }
	.set__hero { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mat); }
	.set__hero img { width: 100%; height: 100%; object-fit: cover; }
	@media (max-width: 63.99em) { .set__hero { order: -1; margin-inline: calc(-1 * var(--gutter)); aspect-ratio: 16 / 10; } }
	.set__body { display: grid; gap: var(--s7); padding-bottom: var(--section); }
	@media (min-width: 64em) { .set__body { grid-template-columns: minmax(0, 1fr) 22rem; gap: var(--s8); align-items: start; } }
	.set__h2 { margin-bottom: var(--s5); }
	.set__label { font-size: var(--fs-small); color: var(--ink-2); }
	.set__label .eyebrow { display: block; margin-bottom: .25rem; color: var(--ink); }
	/* Mixes are cards (a ready-made set), visually distinct from the family filter tabs below. */
	.mixes { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.25rem, 1fr)); gap: var(--s3); }
	@media (max-width: 47.99em) { .mixes { grid-auto-flow: column; grid-auto-columns: 72%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); } .mix { scroll-snap-align: start; } }
	.mix { display: grid; gap: .45rem; align-content: start; text-align: left; padding: var(--s4); border: 1px solid var(--line); background: var(--limestone); transition: border-color var(--dur-quick) var(--ease-out), background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out); }
	.mix:hover { border-color: var(--sand); }
	.mix[aria-pressed="true"] { background: var(--oud); border-color: var(--oud); color: var(--paper); }
	.mix__dots { display: flex; gap: 3px; }
	.mix__dots span { width: .7rem; height: .7rem; border-radius: 50%; background: var(--fam); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .15); }
	.mix__name { font: 500 1.125rem/1.2 var(--display); }
	.mix__eg { font-size: .8125rem; line-height: 1.4; color: var(--ink-2); }
	.mix[aria-pressed="true"] .mix__eg { color: var(--travertine); }
	.set__tools { display: grid; gap: var(--s3); margin-bottom: var(--s6); background: var(--canvas); padding-block: var(--s3); border-bottom: 1px solid var(--line); }
	.set__search { position: relative; display: flex; align-items: center; border-bottom: 1px solid var(--sand); }
	.set__search .icon { position: absolute; left: 0; width: 1.05rem; height: 1.05rem; color: var(--ink-2); }
	.set__search input { width: 100%; min-height: 2.75rem; padding: 0 0 0 1.6rem; border: 0; background: transparent; font: inherit; font-size: var(--fs-small); color: var(--ink); }
	.set__search input:focus { outline: none; }
	.set__search:focus-within { border-color: var(--oud); }
	.set__search:has(input:focus-visible) { outline: 2px solid var(--amber); outline-offset: 4px; }
	@media (min-width: 64em) { .set__tools { position: sticky; top: calc(var(--header-h) - 1px); z-index: 5; } }
	.opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s5) var(--gap); list-style: none; padding: 0; }
	@media (min-width: 48em) { .opts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
	.opt__name { font: 500 1.25rem/1.15 var(--display); }
	.opt__fam { display: flex; align-items: center; gap: .4rem; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
	.opt__desc { font-size: var(--fs-small); color: var(--ink-2); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.set__empty { padding: var(--s6) 0; }
	.set:not(.is-ready) .tray, .set:not(.is-ready) .set__mixes { display: none; }

	/* The tray: right rail on desktop, sticky bottom sheet on phones. */
	.tray { z-index: 20; }
	.tray__inner { display: grid; gap: var(--s4); padding: var(--s5); background: var(--oud); color: var(--paper); --ink: var(--paper); --ink-2: var(--travertine); --line: rgb(246 241 232 / .18); }
	@media (min-width: 64em) { .tray { position: sticky; top: calc(var(--header-h) + var(--s5)); } }
	@media (max-width: 63.99em) {
		.tray { position: sticky; bottom: 0; margin-inline: calc(-1 * var(--gutter)); }
		.tray__inner { padding: var(--s4) var(--gutter) calc(var(--s4) + env(safe-area-inset-bottom)); gap: var(--s3); box-shadow: 0 -12px 30px -18px rgb(42 28 20 / .6); }
		.tray__head { display: flex; justify-content: space-between; align-items: baseline; }
		.tray__title { font-size: 1.25rem !important; }
		.set__body { padding-bottom: 0; }
	}
	.tray__title { font: 500 1.5rem/1.1 var(--display); }
	.tray__count { font-size: var(--fs-small); color: var(--travertine); font-variant-numeric: tabular-nums; }
	/* Slots: a named list on desktop; a row of wells with the names on one line beneath on phones. */
	.tray__wells { display: grid; gap: .15rem; list-style: none; padding: 0; }
	.slot { display: grid; grid-template-columns: 2.25rem 1fr auto; align-items: center; gap: var(--s3); min-height: 2.75rem; }
	.slot__name { font-size: var(--fs-small); color: rgb(246 241 232 / .5); line-height: 1.2; min-width: 0; }
	.slot.is-full .slot__name { color: var(--paper); font: 500 1rem/1.2 var(--display); }
	.slot__fam { display: block; font: 400 .6875rem/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--travertine); margin-top: .15rem; }
	.slot__x { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; color: var(--travertine); }
	.slot__x:hover { background: rgb(246 241 232 / .1); color: var(--paper); }
	.slot__x svg { width: 1rem; height: 1rem; }
	.well { position: relative; width: 2.25rem; aspect-ratio: 1; border-radius: 50%; border: 1px dashed rgb(246 241 232 / .45); display: grid; place-items: center; overflow: hidden; }
	.well__n { font: 400 .75rem var(--mono); color: rgb(246 241 232 / .55); }
	.slot.is-full .well { border: 1px solid transparent; }
	.tray__names { font-size: .8125rem; line-height: 1.35; color: var(--travertine); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	@media (min-width: 64em) { .tray__names { display: none; } }
	@media (max-width: 63.99em) {
		.tray__wells { display: flex; gap: .4rem; }
		.slot { display: block; flex: 1 1 0; max-width: 2.6rem; min-height: 0; }
		.slot .well { width: 100%; }
		.slot__name, .slot__x { display: none; }
	}
	.well__fill { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--fam), #fff 22%), color-mix(in oklab, var(--fam), #000 22%) 75%); }
	.well__initial { position: relative; font: 500 1rem/1 var(--display); color: var(--paper); }
	.slot.is-filling .well__fill { animation: hoa-fill calc(420ms * var(--motion)) var(--ease-settle) both; }
	@keyframes hoa-fill { from { transform: scale(.4); opacity: 0; } }
	.tray__progress { display: block; position: relative; height: 1px; background: rgb(246 241 232 / .2); }
	.tray__progress span { position: absolute; inset: 0; background: var(--saffron); transform-origin: left; transform: scaleX(0); transition: transform var(--dur-progress) var(--ease-luxe); }
	.tray__actions { display: grid; gap: var(--s2); justify-items: center; }
	.tray .btn--primary { --bg: var(--paper); --fg: var(--oud); --bd: var(--paper); }
	.tray .btn--primary:hover { --bg: var(--limestone); --bd: var(--limestone); }
	.tray .btn[aria-disabled="true"] { --bg: transparent; --fg: var(--paper); --bd: rgb(246 241 232 / .45); }
	.set.is-complete .tray .btn--primary { --bg: var(--saffron); --bd: var(--saffron); --fg: var(--oud); }
	.tray__note { text-align: center; }
	.tray .link { color: var(--paper); }
	.tray.is-flash .tray__inner { animation: hoa-flash calc(600ms * var(--motion)) var(--ease-out); }
	@keyframes hoa-flash { 30% { box-shadow: inset 0 0 0 2px var(--saffron); } }
	@media (max-width: 63.99em) { .tray__note { display: none; } }

	/* ---- Basket page and checkout (WooCommerce markup, restyled) ---- */
	.woo-page .woocommerce-notices-wrapper:empty { display: none; }
	.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; padding: var(--s4); margin: 0 0 var(--s5); background: var(--limestone); border-left: 2px solid var(--amber); font-size: var(--fs-small); }
	.woocommerce-error { border-color: var(--rose); }
	.woo-page table.shop_table { width: 100%; font-size: var(--fs-small); }
	.woo-page table.shop_table th, .woo-page table.shop_table td { padding: var(--s4) var(--s3) var(--s4) 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
	.woo-page .button, .woo-page button[type="submit"], .woo-page .checkout-button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .75rem 1.5rem; background: var(--oud); color: var(--paper); border: 1px solid var(--oud); border-radius: var(--radius); font: 500 var(--fs-ui)/1.2 var(--sans); text-decoration: none; cursor: pointer; }
	.woo-page .button:hover { background: var(--resin); }
	.woo-page input.input-text, .woo-page select, .woo-page textarea { min-height: 3rem; padding: .65rem .9rem; border: 1px solid var(--clay); border-radius: var(--radius); background: var(--paper); font-size: 1rem; width: 100%; }
	.woo-page .cart-collaterals { margin-top: var(--s7); max-width: 28rem; margin-left: auto; }
	.woo-page .product-thumbnail img { width: 4.5rem; height: auto; }
	.woo-page .product-remove a { font-size: 1.25rem; text-decoration: none; color: var(--ink-2); }


/* Checkout chrome */
.cohead { border-bottom: 1px solid var(--line); background: var(--canvas); }
.cohead__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 4.5rem; }
.cohead__secure { justify-self: end; color: var(--ink-2); }
/* Small phones: logo + "Basket" fill the bar; the pay button already carries the security note. */
@media (max-width: 29.99em) { .cohead__secure { display: none; } }
.cohead .link { justify-self: start; text-decoration: none; }
.cofoot { padding-block: var(--s7); border-top: 1px solid var(--line); }
.cofoot a { color: var(--ink-2); }
.set__points { list-style: none; padding: 0; }
.set__points li { position: relative; padding-left: 1.4rem; }
.set__points li::before { content: ""; position: absolute; left: 0; top: .72em; width: .8rem; height: 1px; background: var(--amber); }
.set__points li::after { content: ""; position: absolute; left: .55rem; top: calc(.72em - 2.5px); width: 6px; height: 6px; border-radius: 50%; background: var(--amber); }
.pdp__label-grid > * { min-width: 0; }
.label__rows dd.num { white-space: normal; }

/* Basket page */
.basketpage { display: grid; gap: var(--s8); padding-bottom: var(--s8); }
@media (min-width: 64em) { .basketpage { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--s9); align-items: start; } }
.basketpage__lines .drawer-body { max-width: 46rem; }
.basketpage__aside .promises { grid-template-columns: 1fr; padding: var(--s6); background: var(--limestone); }
.basketpage .line { grid-template-columns: 6rem 1fr; }
.basketpage .line__media img { width: 6rem; height: 7.5rem; }
/* The basket drawer's "View basket" link, on the basket itself (fragments are built over AJAX, where is_cart() is false). */
.woocommerce-cart .drawer-actions .link { display: none; }


/* Thank you: the seal draws once (the only celebration in the journey). */
.thanks { padding-block: var(--s8) var(--section); }
.thanks__head { display: grid; justify-items: center; gap: var(--s4); margin-bottom: var(--s7); }
.thanks__head h1 { font-size: var(--fs-display); line-height: 1; }
.thanks__seal { color: var(--amber); margin-bottom: var(--s3); }
.thanks__seal .seal-ring { stroke-dasharray: 340; stroke-dashoffset: 340; animation: hoa-draw calc(900ms * var(--motion)) var(--ease-luxe) .15s forwards; }
.thanks__seal .seal-tick { stroke-dasharray: 60; stroke-dashoffset: 60; animation: hoa-draw calc(500ms * var(--motion)) var(--ease-luxe) .85s forwards; }
@keyframes hoa-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .thanks__seal .seal-ring, .thanks__seal .seal-tick { animation: none; stroke-dashoffset: 0; } }
.thanks__body { margin-bottom: var(--s8); }
.thanks__next { display: grid; gap: var(--s5); }
.thanks__steps { display: grid; gap: var(--s4); list-style: none; padding: 0; }
.thanks__steps li { display: grid; grid-template-columns: 2rem 1fr; gap: var(--s3); padding: var(--s4); background: var(--limestone); }
.thanks__body .woocommerce-thankyou-order-received { display: none; }

/* Back in stock */
.bis { display: grid; gap: var(--s3); padding: var(--s4); background: var(--limestone); }
.bis__row { display: flex; gap: var(--s2); }
.bis__row .field { flex: 1; min-height: 3rem; }
.bis__consent { display: flex; gap: .5rem; align-items: flex-start; color: var(--ink-2); }
.bis-wrap summary { cursor: pointer; color: var(--ink-2); min-height: 2.75rem; display: flex; align-items: center; text-decoration: underline; text-underline-offset: .25em; }

/* ---- Account: split-screen sign in; signed-in area ---- */
.authpage { display: grid; min-height: calc(100svh - var(--header-h) - var(--announce-h, 0px)); }
@media (min-width: 64em) { .authpage { grid-template-columns: 1fr 1fr; } }
.authpage__media { position: relative; overflow: hidden; background: var(--mat); }
.authpage__media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 64em) { .authpage__media { position: sticky; top: var(--header-h); height: calc(100svh - var(--header-h)); } }
@media (max-width: 63.99em) { .authpage__media { aspect-ratio: 5 / 2; } }
.authpage__main { display: grid; align-items: center; padding: var(--s7) var(--gutter) var(--s8); }
.authpage__inner { width: min(100%, 26rem); margin-inline: auto; display: grid; gap: var(--s4); }
.authpage__title { font-size: clamp(1.875rem, 1.5rem + 1.4vw, 2.5rem); line-height: 1.1; }
.auth { display: grid; gap: var(--s5); margin-top: var(--s2); }
.auth__tabs { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }
.auth__tabs [role="tab"] { min-height: 3rem; font-size: var(--fs-ui); color: var(--ink-2); border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out); }
.auth__tabs [role="tab"][aria-selected="true"] { color: var(--ink); border-color: var(--ink); }
.auth:not(.is-tabbed) .auth__tabs { display: none; }
.auth.is-tabbed .auth__h { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.auth__panel[hidden] { display: none; }
.auth__form { display: grid; gap: var(--s4); }
.field-row { display: grid; gap: .4rem; }
.field-row label { font-size: var(--fs-small); }
.field-row__top { display: flex; justify-content: space-between; align-items: baseline; }
.pw { position: relative; display: block; }
.pw .field { width: 100%; padding-right: 4.5rem; }
.pw__toggle { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); min-height: 2.5rem; padding: 0 .75rem; font-size: var(--fs-small); color: var(--ink-2); text-decoration: underline; text-underline-offset: .2em; }
.check { display: inline-flex; align-items: center; gap: .5rem; font-size: var(--fs-small); min-height: 2.75rem; }
.check input { width: 1.1rem; height: 1.1rem; accent-color: var(--oud); }
.auth__perks { display: grid; gap: .4rem; font-size: var(--fs-small); color: var(--ink-2); }
.auth__perks li { display: flex; gap: .5rem; align-items: start; }
.auth__perks .icon { width: 1rem; height: 1rem; flex: none; color: var(--moss); margin-top: .2rem; }
.auth__legal p { margin: 0; }
.auth__guest { text-align: center; padding-top: var(--s4); border-top: 1px solid var(--line); }
.authpage .woocommerce-error, .authpage .woocommerce-message, .authpage .woocommerce-info { margin: 0; }
.account { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s6); padding-top: var(--s5); }
/* One column (minmax(0, 1fr), not auto) so the nowrap tab row scrolls inside the page instead of widening it. */
.account .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s6); }
@media (min-width: 64em) { .account .woocommerce { grid-template-columns: 14rem minmax(0, 1fr); gap: var(--s8); align-items: start; } }
.woocommerce-MyAccount-navigation { min-width: 0; }
.woocommerce-MyAccount-navigation ul { position: relative; list-style: none; padding: 0; display: flex; gap: var(--s5); overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: none; overscroll-behavior-x: contain; }
.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
/* Phones/tablets: the row runs edge to edge and fades at the edges, so a cut-off tab reads as "scroll for more";
   navigation.php scrolls the current tab into view. */
@media (max-width: 63.99em) {
	.woocommerce-MyAccount-navigation ul { margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent); mask-image: linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent); }
	.woocommerce-MyAccount-navigation li { flex: none; }
}
@media (min-width: 64em) { .woocommerce-MyAccount-navigation ul { display: grid; gap: 0; border: 0; border-top: 1px solid var(--line); overflow: visible; } .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--line); } }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 2.75rem; text-decoration: none; color: var(--ink-2); white-space: nowrap; }
.woocommerce-MyAccount-navigation a:hover { color: var(--ink); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--ink); font-weight: 500; }
@media (max-width: 63.99em) { .woocommerce-MyAccount-navigation .is-active a { box-shadow: inset 0 -2px 0 var(--ink); } }
.acct-dash { display: grid; gap: var(--s6); }
.acct-card { display: grid; gap: var(--s3); padding: var(--s6); background: var(--limestone); }
.acct-card__row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s2) var(--s5); align-items: baseline; }
.acct-card__title { font: 500 1.375rem/1.2 var(--display); }
.badge { display: inline-block; margin-left: .5rem; padding: .2rem .6rem; border-radius: var(--radius-pill); font: 500 .75rem/1.2 var(--sans); background: var(--paper); vertical-align: middle; }
.acct-links { display: grid; gap: var(--s3); list-style: none; padding: 0; }
@media (min-width: 48em) { .acct-links { grid-template-columns: repeat(2, 1fr); } }
.acct-links a { display: grid; gap: .2rem; padding: var(--s5); border: 1px solid var(--line); text-decoration: none; transition: border-color var(--dur-quick) var(--ease-out); }
.acct-links a:hover { border-color: var(--oud); }
.acct-links strong { font: 500 1.125rem/1.2 var(--display); }
.acct-links span { font-size: var(--fs-small); color: var(--ink-2); }

/* Checkout details: delivery estimate, pay note. */
.ship-eta { display: block; font-size: .8125rem; color: var(--ink-2); font-weight: 400; margin-top: .15rem; }
.pay-note { flex: 1 0 100%; width: 100%; display: flex; gap: .5rem; align-items: flex-start; margin-top: var(--s3) !important; font-size: .8125rem !important; color: var(--ink-2) !important; line-height: 1.45; }
.pay-note .icon { width: 1rem; height: 1rem; flex: none; margin-top: .1rem; }
.ppacct { display: grid; gap: var(--s2); margin-block: var(--s6); padding: var(--s5); border: 1px solid var(--line); background: var(--limestone); }
.ppacct__row { display: grid; gap: var(--s3); margin-top: var(--s2); }
@media (min-width: 40em) { .ppacct__row { grid-template-columns: 1fr auto; align-items: center; } }

/* ---- Set builder, simplified: one clear instruction, one tool row, whole-card tap to add ---- */
.set__intro2 { display: grid; gap: var(--s2); margin-bottom: var(--s5); }
.set__h2 { margin-bottom: 0; }
.set__how { color: var(--ink-2); }
.set__i, .opt__info { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 1px solid var(--sand); font: 400 .875rem/1 var(--accent); color: var(--ink); background: var(--paper); vertical-align: middle; }
.set__tools { display: grid; gap: var(--s3); grid-template-columns: 1fr; align-items: center; }
@media (min-width: 48em) { .set__tools { grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--s4); } }
.set__fam { min-height: 2.75rem; padding: 0 2rem 0 .75rem; border: 1px solid var(--sand); border-radius: var(--radius-pill); background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232A1C14' stroke-width='1.5'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") right .6rem center / 1rem no-repeat; -webkit-appearance: none; appearance: none; font: inherit; font-size: var(--fs-small); color: var(--ink); }
.set__mixbtn { min-height: 2.75rem; gap: .45rem; }
.set__mixbtn .icon { width: 1rem; height: 1rem; color: var(--amber); }
.opt { position: relative; }
.opt__toggle { display: grid; grid-template-rows: auto 1fr; gap: var(--s3); width: 100%; height: 100%; text-align: left; cursor: pointer; padding: 0; border: 0; background: none; color: inherit; }
.opt__media { position: relative; display: block; }
.opt__img { width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--mat); display: block; transition: opacity var(--dur-quick) var(--ease-out); }
.opt__toggle:hover .opt__img { opacity: .9; }
.opt__check { position: absolute; right: .6rem; bottom: .6rem; width: 2.25rem; height: 2.25rem; border-radius: 50%; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--sand); color: var(--ink); transition: background-color var(--dur-tap) var(--ease-out), color var(--dur-tap) var(--ease-out), transform var(--dur-tap) var(--ease-out); }
.opt__check .icon--plus { width: 1.25rem; height: 1.25rem; }
.opt__check .icon { grid-area: 1 / 1; }
.opt__check .icon--check { display: none; width: 1.1rem; height: 1.1rem; }
.opt.is-on .opt__check { background: var(--oud); border-color: var(--oud); color: var(--paper); }
.opt.is-on .opt__check .icon--plus { display: none; }
.opt.is-on .opt__check .icon--check { display: block; }
.opt.is-on .opt__img { outline: 2px solid var(--oud); outline-offset: -2px; }
.opt__toggle:active .opt__check { transform: scale(.92); }
.opt__toggle[data-full] .opt__check { opacity: .35; }
.opt__body { display: grid; gap: .2rem; align-content: start; }
.opt__name { font: 500 1.25rem/1.15 var(--display); }
.opt__info { position: absolute; top: .6rem; right: .6rem; z-index: 2; width: 2rem; height: 2rem; font-size: 1rem; cursor: pointer; }
.opt__info:hover { border-color: var(--oud); }
/* Sheets: centred panel on desktop, bottom sheet on phones */
dialog.sheet { width: min(100% - 2rem, 34rem); max-height: min(88dvh, 52rem); margin: auto; padding: var(--s5); border: 0; border-radius: 14px; background: var(--canvas); color: var(--ink); box-shadow: var(--shadow-float); overflow: auto; }
dialog.sheet:not([open]) { display: none; }
dialog.sheet::backdrop { background: var(--backdrop); }
dialog.sheet[open] { opacity: 1; transform: none; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), display var(--dur-base) allow-discrete, overlay var(--dur-base) allow-discrete; }
@starting-style { dialog.sheet[open] { opacity: 0; transform: translateY(12px); } }
dialog.sheet[data-closing] { opacity: 0; transform: translateY(8px); }
@media (max-width: 47.99em) { dialog.sheet { width: 100%; max-width: 100%; margin: auto 0 0; border-radius: 16px 16px 0 0; max-height: 90dvh; padding-bottom: calc(var(--s5) + env(safe-area-inset-bottom)); } }
.sheet__head { display: flex; justify-content: space-between; align-items: center; gap: var(--s4); margin-bottom: var(--s3); }
.sheet__title { font: 500 1.5rem/1.2 var(--display); }
.sheet__x { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; }
.sheet__x:hover { background: var(--limestone); }
.sheet__x .icon { width: 1.2rem; height: 1.2rem; }
dialog.sheet .mixes { display: grid; grid-template-columns: 1fr; gap: var(--s3); margin-top: var(--s4); overflow: visible; margin-inline: 0; padding: 0; grid-auto-flow: row; }
@media (min-width: 48em) { dialog.sheet .mixes { grid-template-columns: 1fr 1fr; } }
.sheet--info { display: grid; }
.info { display: grid; gap: var(--s3); }
.info__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--mat); border-radius: 8px; }
.info__name { font: 500 1.75rem/1.1 var(--display); }
.info__line { font: 400 1.1925rem/1.4 var(--accent); color: var(--ink-2); }
.info__notes { display: grid; border-top: 1px solid var(--line); }
.info__notes > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: var(--s3); padding: .5rem 0; border-bottom: 1px solid var(--line); font-size: var(--fs-small); }
.info__notes dt { font-size: var(--fs-eyebrow); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); padding-top: .15rem; }
.info__about { font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.info__about > * + * { margin-top: .7em; }
.sheet__foot { position: sticky; bottom: calc(-1 * var(--s5)); margin: var(--s4) calc(-1 * var(--s5)) calc(-1 * var(--s5)); padding: var(--s4) var(--s5); background: var(--canvas); border-top: 1px solid var(--line); }
.opt--white .opt__img { mix-blend-mode: multiply; object-fit: cover; }

/* Checkout, Stripe-style: wallets first (left column), country hidden (UK only), flat line on demand */
#wc-stripe-express-checkout-button-separator { font-size: 0 !important; display: flex; align-items: center; gap: .75rem; margin: 1.25rem 0 .5rem !important; }
#wc-stripe-express-checkout-button-separator::before, #wc-stripe-express-checkout-button-separator::after { content: ""; flex: 1; height: 1px; background: var(--line); }
#wc-stripe-express-checkout-button-separator > * { display: none; }
#wc-stripe-express-checkout-button-separator::before { order: 0; }
#wc-stripe-express-checkout-button-separator { --t: "Or pay by card"; }
#wc-stripe-express-checkout-button-separator::after { order: 2; }
.hoa-sep-label { order: 1; font-size: .8125rem; color: var(--ink-2); white-space: nowrap; }
.co #billing_country_field, .co #shipping_country_field { display: none !important; } /* checkout only: set from the postcode (site.js); account address forms keep it */
.addr2-add { display: inline-flex; align-items: center; gap: .35rem; margin: -.25rem 0 .75rem; font-size: .875rem; color: var(--ink) !important; text-decoration: underline; text-underline-offset: .2em; }
.email-hint { margin: .35rem 0 0; font-size: .8125rem; color: var(--ink-2); }
.email-hint button { text-decoration: underline; text-underline-offset: .2em; color: var(--ink); font: inherit; }
@media (max-width: 47.99em) { .page-head h1 { font-size: 2rem; } }
.basketpage__express:empty { display: none; }
.basketpage__express { margin-bottom: var(--s5); }
.addr2-add { display: inline-flex; margin: .6rem 0 0 !important; }

.woocommerce-order.thanks .woocommerce-order-overview { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s4) var(--s6); font-size: var(--fs-small); }
#wc-stripe-hidden-style-input { width: 1px !important; max-width: 1px !important; }
/* Order received: WooCommerce's order + address details as a calm card in the reading column */
.thanks__body { width: min(100% - 2 * var(--gutter), 40rem); margin: var(--s7) auto 0; display: grid; gap: var(--s6); }
/* "What happens next" shares the details' column and sits clear of the address cards. */
.thanks__next { width: min(100% - 2 * var(--gutter), 40rem); margin: var(--s8) auto 0; }
.thanks__next h2 { font: 500 1.375rem/1.2 var(--display); }
.thanks__steps li { align-items: start; }
.thanks__steps .data { padding-top: .2rem; }
.thanks__ways { justify-content: center; margin-top: var(--s3); }
/* page-checkout.php adds an empty spacer section after order received; .thanks already has section padding. */
.checkout-page:has(.thanks) + .section--tight { display: none; }
.thanks__body h2 { font: 500 1.375rem/1.2 var(--display); margin-bottom: var(--s3); }

/* ==== Theme checkout (rebuilt 15 Oct 2026 against Shopify's one-page checkout) ====
   Desktop: a split page. The form sits in the left half, aligned to the middle; the summary fills the right
   half on stone, out to the window edge and down to the footer, its contents sticky. Phones: one column under
   a folded summary bar. One rhythm throughout: 48px fields, 12px between fields, 16px under headings, 36px
   between sections. */
.co-page { --co-field: 3rem; --co-gap: .75rem; --co-sec: 2.25rem; --co-border: #d9cfbf; --co-pad: clamp(2rem, 1rem + 3vw, 3.5rem); }
.co { display: grid; align-items: start; }
.co__main { display: grid; gap: var(--co-sec); min-width: 0; align-content: start; }
#customer_details { display: grid; gap: var(--co-sec); }
.co__sec { display: grid; gap: 1rem; }
.co__sec h2 { font: 500 1.25rem/1.2 var(--display); letter-spacing: -.005em; }
.co__sec-head { display: flex; justify-content: space-between; align-items: baseline; }
.co__sec-head .link { font-size: .875rem; }
.co__summary h2 { font: 500 1.25rem/1.2 var(--display); }
@media (min-width: 64em) {
	.co { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); grid-template-rows: auto 1fr; min-height: calc(100svh - 4.5rem); }
	.co__summary-toggle { display: none; }
	/* WooCommerce puts error notices at the top of the form: they take the empty first row of the left column. */
	.co > .woocommerce-NoticeGroup { grid-column: 1; grid-row: 1; justify-self: end; width: min(100%, 36rem + var(--co-pad) + var(--gutter)); padding: var(--co-pad) var(--co-pad) 0 var(--gutter); }
	.co:has(> .woocommerce-NoticeGroup) .co__main { padding-top: 1.5rem; }
	.co__main { grid-column: 1; grid-row: 2; justify-self: end; width: min(100%, 36rem + var(--co-pad) + var(--gutter)); padding: var(--co-pad) var(--co-pad) 4rem var(--gutter); }
	.co__side { grid-column: 2; grid-row: 1 / span 2; align-self: stretch; background: var(--limestone); border-left: 1px solid var(--line); padding: var(--co-pad) var(--gutter) 4rem var(--co-pad); }
	.co__summary { position: sticky; top: var(--co-pad); width: min(100%, 26rem); display: grid; gap: 1.25rem; }
	.co__summary h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
@media (max-width: 63.99em) {
	.co { display: flex; flex-direction: column; }
	.co__summary-toggle { order: 0; }
	.co__side { order: 1; display: none; background: var(--limestone); border-bottom: 1px solid var(--line); padding: 1.25rem var(--gutter) 1.5rem; }
	.co:has(.co__summary-toggle[open]) .co__side { display: block; }
	.co__summary { display: grid; gap: 1.25rem; }
	.co__summary h2 { display: none; }
	.co > .woocommerce-NoticeGroup { order: 2; padding: 1.25rem var(--gutter) 0; }
	.co__main { order: 3; padding: 1.75rem var(--gutter) 3rem; }
}

/* Folded summary bar (phones): full width, like Shopify's */
.co__summary-toggle { width: 100%; background: var(--limestone); border-bottom: 1px solid var(--line); }
.co__summary-toggle > summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 3.5rem; padding: 0 var(--gutter); cursor: pointer; list-style: none; font-size: .9375rem; color: var(--ink); }
.co__summary-toggle > summary::-webkit-details-marker { display: none; }
.co__summary-toggle > summary .co__summary-label { display: inline-flex; align-items: center; gap: .5rem; }
.co__summary-toggle > summary .co__summary-label::after { content: ""; width: .45rem; height: .45rem; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: translateY(-2px) rotate(45deg); transition: transform var(--dur-quick) var(--ease-out); }
.co__summary-toggle[open] > summary .co__summary-label::after { transform: translateY(1px) rotate(-135deg); }
.co__summary-total { font: 500 1.125rem/1 var(--sans); }

/* Fields */
:is(.co__fields, .acct-fields) { display: flex; flex-wrap: wrap; gap: var(--co-gap); }
:is(.co, .acct-form) .form-row { flex: 1 0 100%; display: grid; gap: .375rem; margin: 0; padding: 0; min-width: 0; }
:is(.co, .acct-form) :is(.form-row-first, .form-row-last, .form-row-half) { flex: 1 0 calc(50% - var(--co-gap) / 2); }
:is(.co, .acct-form) .form-row .woocommerce-input-wrapper { display: block; min-width: 0; }
:is(.co, .acct-form) .form-row > label { font: 400 .875rem/1.3 var(--sans); color: var(--ink); }
:is(.co, .acct-form) .form-row .required { display: none; }
:is(.co, .acct-form) .form-row .optional { color: var(--ink-2); }
:is(.co, .acct-form) :is(input.input-text, select), .co .idpc_lookup .idpc-input { width: 100%; height: var(--co-field); min-height: var(--co-field); padding: 0 .875rem; border: 1px solid var(--co-border); border-radius: var(--radius); background: #fff; font: 400 1rem/1 var(--sans); color: var(--ink); box-shadow: none; transition: border-color var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out); }
:is(.co, .acct-form) input.input-text::placeholder, .co .idpc_lookup .idpc-input::placeholder { color: #9b8f80; opacity: 1; }
:is(.co, .acct-form) :is(input.input-text, select):focus, .co .idpc_lookup .idpc-input:focus { outline: none; border-color: var(--oud); box-shadow: 0 0 0 1px var(--oud); }
:is(.co, .acct-form) .woocommerce-invalid :is(input.input-text, select) { border-color: var(--rose, #9b3b3b); box-shadow: 0 0 0 1px var(--rose, #9b3b3b); }
.co .addr2-add { margin: .125rem 0 0 !important; font-size: .875rem; }
.co .email-hint { margin: .125rem 0 0; }
.email-hint:empty, .co .email-hint:empty { margin: 0; }

/* Tick boxes (newsletter, deliver elsewhere) */
.co .form-row.omnisend_newsletter_checkbox_field, .co .form-row.omnisend_sms_checkbox_field { margin-top: .125rem; }
.co .form-row .woocommerce-form__label-for-checkbox, .co .form-row.omnisend_newsletter_checkbox_field label, .co .form-row.omnisend_sms_checkbox_field label, .co__shipping #ship-to-different-address label { display: inline-flex; align-items: center; gap: .625rem; font: 400 .9375rem/1.35 var(--sans); color: var(--ink); cursor: pointer; }
:is(.co, .acct-form) input[type=checkbox] { width: 1.125rem; height: 1.125rem; margin: 0; flex: none; accent-color: var(--oud); }
.co__shipping .woocommerce-shipping-fields h3 { margin: 0; font: inherit; }
.co__shipping .shipping_address { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: var(--co-gap); }
.co__shipping { margin-top: .125rem; }

/* Postcode finder: an ordinary field row (no tinted panel): postcode, then a quiet button */
.co .idpc_lookup { flex: 1 0 100%; display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: .375rem .5rem; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.co .idpc_lookup > label { grid-column: 1 / -1; font: 400 .875rem/1.3 var(--sans); color: var(--ink); }
.co .idpc_lookup > .woocommerce-input-wrapper { display: block; min-width: 0; }
.co .idpc_lookup .idpc-input { margin: 0 !important; text-transform: uppercase; }
.co .idpc_lookup .idpc-input::placeholder { text-transform: none; }
.co .idpc_lookup .idpc-button { height: var(--co-field) !important; min-height: var(--co-field); margin: 0 !important; width: auto !important; padding: 0 1.125rem; border: 1px solid var(--oud) !important; border-radius: var(--radius); background: transparent !important; color: var(--oud) !important; font: 500 .9375rem/1 var(--sans); white-space: nowrap; cursor: pointer; transition: background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out); }
.co .idpc_lookup .idpc-button:hover { background: var(--oud) !important; color: var(--paper) !important; }
.co .idpc_lookup select, .co .idpc_lookup .idpc-select { grid-column: 1 / -1; width: 100%; height: var(--co-field); border: 1px solid var(--co-border); border-radius: var(--radius); background: #fff; padding: 0 .75rem; font: inherit; }
.co .idpc_lookup .idpc-error { grid-column: 1 / -1; margin: 0; font-size: .8125rem; color: var(--rose, #9b3b3b); }
.co .idpc_lookup .idpc-error:empty, .co .idpc_lookup .selection:empty { display: none; }
.co .idpc_lookup > .woocommerce-input-wrapper:nth-of-type(3), .co .idpc_lookup > div { grid-column: 1 / -1; }
.co .idpc_lookup > .woocommerce-input-wrapper:nth-of-type(3):has(.selection:empty), .co .idpc_lookup > div:empty { display: none; }

/* Express wallets: label, buttons, then an "or" rule (the column gap is taken back so it sits close) */
.co #wc-stripe-express-checkout-element { margin: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem; }
.co #wc-stripe-express-checkout-element::before { content: "Express checkout"; flex: 1 0 100%; margin-bottom: .25rem; text-align: center; font-size: .875rem; color: var(--ink-2); }
/* Stripe removes unavailable wallets. Keep mounted frames visible during refresh so
   its viewport-based renderer can draw them again; never infer availability from height. */
.co #wc-stripe-express-checkout-element > .StripeElement { flex: 1 1 0; width: auto !important; min-width: 0; min-height: 3rem; }
@media (max-width: 29.99em) { .co #wc-stripe-express-checkout-element > .StripeElement { flex: 1 1 9rem; } }
.co #wc-stripe-express-checkout-element { position: relative; }
/* No wallet to offer: no label, no divider, and no empty row (the element stays in place so Stripe can still measure). */
.co #wc-stripe-express-checkout-element[data-count="0"]::before, .co #wc-stripe-express-checkout-element[data-count="0"] ~ #wc-stripe-express-checkout-button-separator { display: none !important; }
.co #wc-stripe-express-checkout-element[data-count="0"] { margin-bottom: calc(-1 * var(--co-sec)) !important; }
.co__main > wc-order-attribution-inputs { display: none; }
.co #wc-stripe-express-checkout-button-separator { margin: calc(1.25rem - var(--co-sec)) 0 calc(1.25rem - var(--co-sec)) !important; font-size: 0 !important; }
#wc-stripe-express-checkout-button-separator > .hoa-sep-label { display: inline; font-size: .875rem; }

/* Payment: one bordered list; the chosen option is tinted and its fields sit in a panel below it */
:is(.co, .paypage, .acct-addpm) #payment { background: none; border-radius: 0; }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; display: grid; border: 1px solid var(--co-border); border-radius: var(--radius); overflow: visible; background: #fff; }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: .75rem; padding: 0; margin: 0; border-bottom: 1px solid var(--co-border); }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li:last-child { border-bottom: 0; }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li > input[type=radio] { grid-column: 1; grid-row: 1; margin: 0 0 0 1rem; width: 1.125rem; height: 1.125rem; accent-color: var(--oud); }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li > label { grid-column: 2; grid-row: 1; display: flex; align-items: center; gap: .75rem; min-height: 3.5rem; padding: 0 1rem 0 0; margin: 0; font: 500 .9375rem/1.2 var(--sans); color: var(--ink); cursor: pointer; width: auto; }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li:has(> input:checked) { background: #fbf8f2; }
:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li:has(> input:checked) > label { font-weight: 500; }
:is(.co, .paypage, .acct-addpm) #payment .payment_box { grid-column: 1 / -1; margin: 0 !important; padding: 1rem !important; border-top: 1px solid var(--co-border); background: #f6f1e8 !important; font-size: .875rem; color: var(--ink-2); }
:is(.co, .paypage, .acct-addpm) #payment .payment_box::before { display: none !important; }
:is(.co, .paypage, .acct-addpm) #payment .payment_box p:first-child { margin-top: 0; }
:is(.co, .paypage, .acct-addpm) #payment .payment_box p:last-child { margin-bottom: 0; }
:is(.co, .paypage, .acct-addpm) #payment .payment_box > *:not(:last-child) { margin-bottom: .75rem; }
:is(.co, .paypage, .acct-addpm) #payment .place-order { display: grid; gap: .75rem; margin: 1.25rem 0 0; padding: 0; }
:is(.co, .paypage, .acct-addpm) #place_order { width: 100%; height: 3.25rem; border: 0; border-radius: var(--radius); background: var(--oud); color: var(--paper); font: 500 1rem/1 var(--sans); letter-spacing: .01em; cursor: pointer; transition: background-color var(--dur-quick) var(--ease-out); }
:is(.co, .paypage, .acct-addpm) #place_order:hover { background: #000; }
:is(.co, .paypage, .acct-addpm) .woocommerce-privacy-policy-text p, :is(.co, .paypage, .acct-addpm) .woocommerce-terms-and-conditions-wrapper p { margin: 0; font-size: .8125rem; line-height: 1.5; color: var(--ink-2); }
.co .pay-note { margin: 0 !important; justify-content: center; text-align: left; }

/* Card brands: three marks, then "+4" with the rest on hover/focus */
.co__cards { display: inline-flex; align-items: center; gap: .25rem; margin-left: auto; }
.co__cards img { display: block; width: 2.375rem; height: 1.5rem; }
.co__more { position: relative; display: inline-grid; place-items: center; min-width: 1.75rem; height: 1.5rem; padding: 0 .25rem; font: 500 .75rem/1 var(--sans); color: var(--ink-2); cursor: default; outline-offset: 2px; }
.co__more-pop { position: absolute; right: 0; bottom: calc(100% + .5rem); z-index: 5; display: flex; gap: .25rem; padding: .5rem; background: #fff; border: 1px solid var(--co-border); border-radius: 6px; box-shadow: 0 10px 24px -12px rgb(42 28 20 / .35); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out), visibility var(--dur-quick); }
.co__more:hover .co__more-pop, .co__more:focus .co__more-pop { opacity: 1; visibility: visible; transform: none; }

/* Summary (".co" prefix: the shop-wide ".woo-page table.shop_table td" rule would otherwise win) */
.co table.co__table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.co table.co__table td, .co table.co__table th { padding: .5rem 0; vertical-align: middle; text-align: left; font-weight: 400; }
.co table.co__table td:last-child, .co table.co__table th + td { text-align: right; white-space: nowrap; padding-left: 1rem; }
.co table.co__table tbody td { padding: 0 0 1rem; }
.co table.co__table tbody tr:last-child td { padding-bottom: 1.25rem; }
.co table.co__table tfoot tr:first-child th, .co table.co__table tfoot tr:first-child td { border-top: 1px solid var(--co-border); padding-top: 1.25rem; }
.co table.co__table tfoot th { color: var(--ink); }
.co table.co__table .order-total th, .co table.co__table .order-total td { padding-top: 1rem; font: 500 1.25rem/1.2 var(--sans); vertical-align: baseline; }
.co table.co__table .order-total td .woocommerce-Price-amount { font-size: 1.375rem; }
.co__item-in { display: flex; gap: .875rem; align-items: center; }
.co table.co__table td.co__item { width: 100%; }
.co__thumb { position: relative; flex: none; width: 4rem; height: 4rem; border-radius: 8px; background: #fff; border: 1px solid var(--co-border); }
.co__thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; }
.co__qty { position: absolute; top: -.5rem; right: -.5rem; min-width: 1.375rem; height: 1.375rem; padding: 0 .35rem; border-radius: 1rem; background: rgb(42 28 20 / .72); color: #fff; font: 500 .75rem/1.375rem var(--sans); text-align: center; }
.co__name { display: grid; gap: .15rem; min-width: 0; }
.co__name strong { font-weight: 500; }
.co__name .small { font-size: .8125rem; }
.co__inner { line-height: 1.4; }
.co__ship .ship-eta { display: block; margin-top: .2rem; font-size: .8125rem; color: var(--ink-2); }
.co table.co__table .woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; }
.co table.co__table .woocommerce-shipping-totals td { white-space: normal; min-width: 9.75rem; }
.co__coupon { border-top: 1px solid var(--co-border); padding-top: 1rem; }
.co__coupon-row { display: grid; grid-template-columns: 1fr auto; gap: .5rem; margin-top: .75rem; }
.co__coupon-row .field { height: var(--co-field); padding: 0 .875rem; border: 1px solid var(--co-border); border-radius: var(--radius); background: #fff; font: inherit; text-transform: uppercase; }
.co__coupon-row .btn { min-height: var(--co-field); }
.co__coupon-msg:empty { display: none; }
/* Not .is-error: WooCommerce's coupon scripts delete every .is-error/.is-success element on the page. */
.co__coupon-msg.co__coupon-msg--err { color: var(--rose, #9b3b3b); }
.co .idpc_lookup > span { margin-bottom: 0 !important; }
.co .form-row.omnisend_newsletter_checkbox_field .optional, .co .form-row.omnisend_sms_checkbox_field .optional { display: none; }
/* Messages (WooCommerce and Stripe) are moved into the form column by site.js */
.co__notices:empty { display: none; }
.co__notices { display: grid; gap: .5rem; }
.co__notices .woocommerce-NoticeGroup, .co__notices .woocommerce-notices-wrapper { display: grid; gap: .5rem; }
.co__notices .woocommerce-error, .co__notices .woocommerce-message, .co__notices .woocommerce-info { list-style: none; margin: 0; padding: .875rem 1rem; border: 1px solid rgb(155 59 59 / .35); border-radius: var(--radius); background: #fbf0ee; font-size: .875rem; line-height: 1.45; color: var(--ink); }
.co__notices .woocommerce-message, .co__notices .woocommerce-info { border-color: var(--co-border); background: #fff; }
.co__notices .woocommerce-error li { margin: 0; }
.co__notices .woocommerce-error li + li { margin-top: .25rem; }
@media (max-width: 29.99em) {
	:is(.co, .paypage, .acct-addpm) #payment ul.payment_methods > li > label { font-size: .875rem; gap: .5rem; }
	.co__cards img { width: 2rem; height: auto; }
	.co__more { min-width: 1.5rem; }
}
/* Summary rows: no rules between subtotal and delivery; one above the totals and one above the total */
.co table.co__table th, .co table.co__table td { border: 0; }
.co table.co__table tfoot th, .co table.co__table tfoot td { padding-top: .3rem; padding-bottom: .3rem; }
.co table.co__table tfoot tr:first-child th, .co table.co__table tfoot tr:first-child td { border-top: 1px solid var(--co-border); padding-top: 1.25rem; }
.co table.co__table tfoot .order-total th, .co table.co__table tfoot .order-total td { border-top: 1px solid var(--co-border); padding-top: 1rem; padding-bottom: 0; }
.co table.co__table tfoot tr.order-total + tr th, .co table.co__table tfoot tr:has(+ .order-total) th, .co table.co__table tfoot tr:has(+ .order-total) td { padding-bottom: 1rem; }
.co__coupon { margin-top: .25rem; }
/* The stone panel runs down to the footer */
.co-page, .co-page .woo-page, .co-page .woocommerce { margin: 0; padding: 0; }
/* "Send it to a different address": the recipient's fields follow the same rhythm as the main address */
.co__shipping .shipping_address { display: block; margin-top: 1.25rem; }
.co__shipping .woocommerce-shipping-fields__field-wrapper { display: flex; flex-wrap: wrap; gap: var(--co-gap); }
.co__more-pop { width: max-content; }
.co__more-pop img { flex: none; width: 2.375rem; height: 1.5rem; }

/* ==== Account area, order details and order-pay (redesigned 15 Oct 2026) ====
   Same materials as the checkout: 48px white fields with a #d9cfbf hairline, labels above, stone panels,
   1.25rem display headings. Selectors start at .account / .authpage / .odr so they outrank the shop-wide
   ".woo-page …" rules without !important. */
.account, .authpage, .co--pay { --co-field: 3rem; --co-gap: .75rem; --co-sec: 2.25rem; --co-border: #d9cfbf; --co-pad: clamp(2rem, 1rem + 3vw, 3.5rem); }
.woocommerce-MyAccount-content { min-width: 0; max-width: 50rem; }
.woocommerce-MyAccount-content > * + * { margin-top: var(--s6); }
.woocommerce-MyAccount-content > .woocommerce-notices-wrapper:empty + * { margin-top: 0; }
.acct-h { font: 500 1.25rem/1.2 var(--display); letter-spacing: -.005em; }
.acct-lede { color: var(--ink-2); font-size: .9375rem; }
.woocommerce-MyAccount-content > .acct-h + * { margin-top: var(--s4); }
.woocommerce-MyAccount-content > .acct-h + .acct-lede { margin-top: .5rem; }
.acct-empty { justify-items: start; }
.acct-empty .cluster { margin-top: var(--s2); --cluster: var(--s3) var(--s5); }

/* Notices: the checkout's message box (white, hairline; errors tinted) */
:is(.account, .authpage) .woocommerce-notices-wrapper:empty { display: none; }
:is(.account, .authpage) .woocommerce-notices-wrapper { display: grid; gap: .5rem; }
:is(.account, .authpage) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; list-style: none; margin: 0; padding: .875rem 1rem; border: 1px solid var(--co-border); border-radius: var(--radius); background: #fff; font-size: .875rem; line-height: 1.5; color: var(--ink); }
:is(.account, .authpage) .woocommerce-error { display: block; border-color: rgb(155 59 59 / .35); background: #fbf0ee; }
:is(.account, .authpage) .woocommerce-error li { margin: 0; }
:is(.account, .authpage) .woocommerce-error li + li { margin-top: .25rem; }
:is(.account, .authpage) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) { color: var(--ink); font-weight: 500; text-decoration: underline; text-decoration-color: var(--sand); text-underline-offset: .2em; }
:is(.account, .authpage) :is(.woocommerce-message, .woocommerce-info) .button { order: 2; margin-left: auto; min-height: 2.5rem; padding: .5rem 1rem; font-size: .875rem; }

/* WooCommerce buttons the theme's templates don't reach (plugins, notices): the theme's ghost button */
:is(.account, .authpage) :is(a.button, button.button, .woocommerce-Button):not(.btn, .link, #place_order) { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 2.75rem; padding: .6rem 1.25rem; border: 1px solid var(--ink); border-radius: var(--radius); background: transparent; color: var(--ink); font: 500 var(--fs-ui)/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: background-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out); }
:is(.account, .authpage) :is(a.button, button.button, .woocommerce-Button):not(.btn, .link, #place_order):hover { background: var(--ink); color: var(--canvas); }
.account .link.button { background: none; border: 0; padding: 0; min-height: 2.75rem; display: inline-flex; align-items: center; font-size: .875rem; color: var(--ink-2); }
.account .link.button:hover { color: var(--ink); }

/* Status badges: a coloured dot says how the order stands (green done, amber in progress, red needs you) */
.badge { display: inline-flex; align-items: center; gap: .4rem; }
.badge[class*="badge--"]::before { content: ""; width: .4375rem; height: .4375rem; border-radius: 50%; background: var(--amber); flex: none; }
.badge--completed::before { background: var(--moss); }
.badge:is(.badge--pending, .badge--failed)::before { background: var(--rose); }
.badge:is(.badge--cancelled, .badge--refunded, .badge--checkout-draft)::before { background: var(--clay); }
:is(.olist, .odr-head, .pmlist) .badge { margin-left: 0; background: var(--limestone); }

/* Orders: hairline rows; actions as buttons (pay first), cancel a quiet link */
.olist { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.olist__item { display: grid; gap: .875rem 1.5rem; padding-block: 1.25rem; border-bottom: 1px solid var(--line); }
@media (min-width: 48em) { .olist__item { grid-template-columns: minmax(0, 1fr) auto; align-items: center; } }
.olist__main { display: grid; gap: .3rem; min-width: 0; }
.olist__title { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; font: 500 1.125rem/1.25 var(--display); }
.olist__title a { text-decoration: none; }
.olist__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.olist__meta { display: flex; flex-wrap: wrap; gap: .1rem .45rem; font-size: .875rem; color: var(--ink-2); }
.olist__items { font-size: .875rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.olist__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; }
.olist__actions .btn { min-height: 2.75rem; padding: .5rem 1.25rem; }
.olist__actions .link { order: 3; }
@media (max-width: 47.99em) { .olist__actions .btn { flex: 1 1 0; } }
.olist__extra { font-size: .875rem; color: var(--ink-2); }
.acct-pager { display: flex; justify-content: space-between; gap: var(--s3); }

/* One order: back link, number + status, then the details */
.odr-head { display: grid; gap: .5rem; justify-items: start; }
.odr-head__back { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; margin-block: -.5rem -.25rem; color: var(--ink-2); text-decoration: none; font-weight: 400; }
.odr-head__back:hover { color: var(--ink); text-decoration: underline; }
.odr-head__back .icon { width: 1rem; height: 1rem; }
.odr-head__title { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; font: 500 clamp(1.5rem, 1.3rem + .8vw, 1.875rem)/1.15 var(--display); }
.odr-head__title .badge { font-size: .75rem; }
.odr-head__meta { color: var(--ink-2); font-size: .9375rem; }
.odr-head__meta strong, .odr-head__meta time { color: var(--ink); font-weight: 500; }
mark { background: none; color: inherit; font-weight: 500; }
.onotes { display: grid; gap: var(--s4); }
.onotes__list { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.onotes__list li { display: grid; gap: .2rem; padding-block: .875rem; border-bottom: 1px solid var(--line); font-size: .9375rem; }
.onotes__list .description > * + * { margin-top: .5em; }

/* Order details (order received + account): the checkout summary on a stone panel */
.odr { display: grid; gap: var(--s4); }
.odr__title, .thanks__body .odr__title { font: 500 1.25rem/1.2 var(--display); margin: 0; }
.odr__panel { padding: 1.5rem; background: var(--limestone); }
@media (max-width: 29.99em) { .odr__panel { padding: 1.25rem 1rem; margin-inline: calc(-1 * var(--gutter) + .25rem); } }
.odr table.odr__table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.odr table.odr__table :is(th, td) { padding: .3rem 0; border: 0; text-align: left; font-weight: 400; vertical-align: middle; color: var(--ink); }
.odr table.odr__table td:last-child { text-align: right; white-space: nowrap; padding-left: 1rem; }
.odr table.odr__table tbody td { padding: 0 0 1rem; }
.odr table.odr__table tbody tr:last-child td { padding-bottom: 1.25rem; }
.odr table.odr__table tbody td.product-name { width: 100%; }
.odr table.odr__table tfoot tr:first-child :is(th, td) { border-top: 1px solid var(--co-border, #d9cfbf); padding-top: 1.25rem; }
.odr table.odr__table tfoot tr:has(+ .odr__row--order_total) :is(th, td) { padding-bottom: 1rem; }
.odr table.odr__table tfoot .odr__row--order_total :is(th, td) { border-top: 1px solid var(--co-border, #d9cfbf); padding-top: 1rem; font: 500 1.25rem/1.2 var(--sans); vertical-align: baseline; }
.odr table.odr__table tfoot :is(.odr__row--payment_method, .odr__row--note) :is(th, td) { padding-top: .75rem; font-size: .8125rem; color: var(--ink-2); }
.odr table.odr__table tfoot td:last-child { white-space: normal; } /* long payment / delivery names wrap on small phones */
@media (min-width: 22.5em) { .odr table.odr__table tfoot td:last-child { min-width: 9rem; } } /* …but never word by word beside a long set line */
.odr .shipped_via { display: block; font-size: .8125rem; color: var(--ink-2); }
.odr .co__name { line-height: 1.4; }
.odr .co__name a { text-decoration: none; }
.odr .co__name a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.odr .wc-item-meta { list-style: none; margin: 0; padding: 0; font-size: .8125rem; color: var(--ink-2); }
.odr .wc-item-meta p { display: inline; }
.odr .product-purchase-note td { font-size: .875rem; color: var(--ink-2); }
.odr__actions, .odr .order-again { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: 0; }
.odr__actions .link { font-size: .875rem; color: var(--ink-2); }
/* Addresses on an order: two quiet cards, upright text */
.odr-addr__grid { display: grid; gap: var(--s4); }
@media (min-width: 40em) { .odr-addr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } /* a lone billing card keeps half */
.odr-addr__card { display: grid; gap: .5rem; align-content: start; padding: 1.25rem 1.5rem; border: 1px solid var(--line); }
.odr-addr__card h2, .thanks__body .odr-addr__card h2 { font: 500 var(--fs-eyebrow)/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); margin: 0; }
.odr-addr address { font-style: normal; font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.odr-addr address p { margin: 0; }
.woocommerce-MyAccount-content > .odr-addr, .woocommerce-MyAccount-content > .odr + * { margin-top: var(--s5); }

/* Saved addresses */
.acct-addrs { display: grid; gap: var(--s4); }
@media (min-width: 48em) { .acct-addrs { grid-template-columns: 1fr 1fr; } }
.acct-addr { display: grid; gap: .75rem; align-content: start; padding: 1.5rem; background: var(--limestone); }
.acct-addr__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s4); }
.acct-addr__head h3 { font: 500 1.125rem/1.2 var(--display); }
.acct-addr__head .link { display: inline-flex; align-items: center; min-height: 2.75rem; margin-block: -.75rem; }
.acct-addr address { font-style: normal; font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }

/* Account forms: the checkout's fields */
.acct-form { display: grid; gap: var(--s6); max-width: 36rem; }
.acct-form .woocommerce-address-fields { display: grid; gap: var(--s5); }
.acct-sec { display: grid; gap: 1rem; min-width: 0; margin: 0; padding: 0; border: 0; }
fieldset.acct-sec { display: block; }
fieldset.acct-sec > legend { float: left; width: 100%; padding: 0; margin: 0 0 .5rem; }
fieldset.acct-sec > legend + * { clear: both; }
fieldset.acct-sec > .acct-lede { margin-bottom: 1rem; }
.acct-pw { padding-top: var(--s6); border-top: 1px solid var(--line); }
.acct-form .field-hint { font-size: .8125rem; color: var(--ink-2); }
.acct-form .form-row select { -webkit-appearance: none; appearance: none; padding-right: 2.5rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232A1C14' stroke-width='1.5'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") right .75rem center / 1.1rem no-repeat; cursor: pointer; }
.acct-form .pw input.input-text { padding-right: 4.5rem; }
.acct-form__actions { display: flex; flex-wrap: wrap; gap: var(--s3); margin: 0; }
.acct-form__actions .btn { min-width: 12rem; }
@media (max-width: 29.99em) { .acct-form__actions .btn { width: 100%; } }
/* Postcode lookup (if the plugin adds it here): the checkout's quiet row */
.acct-form .idpc_lookup { flex: 1 0 100%; display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: .375rem .5rem; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }

/* Saved cards */
.pmlist { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.pmlist__item { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding-block: 1rem; border-bottom: 1px solid var(--line); font-size: .9375rem; }
.pmlist__cell--method { flex: 1 1 14rem; display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; }
.pmlist__cell--method strong { font-weight: 500; }
.pmlist__cell--actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.pmlist__cell--actions .btn { min-height: 2.5rem; padding: .4rem 1rem; font-size: .875rem; }
.acct-addpm { max-width: 32rem; }
.acct-addpm #payment .payment_box .form-row { display: grid; gap: .375rem; }

/* Signed out: forgotten / new password, in the sign-in panel's style */
.authpage .auth__form > p.muted { margin: 0; }
.auth__sent { display: grid; gap: var(--s3); }
.auth__sent .lead { font-size: 1.125rem; }
.authpage .woocommerce { display: grid; gap: var(--s4); }
.authpage .woocommerce > .auth__guest { margin-top: var(--s2); }

/* Paying for an existing order: the checkout's split page. page-checkout.php wraps order-pay in a reading
   column with its own heading; once the theme form is there, the column opens out and that heading goes
   (the form has its own h1 in the payment column). */
.paypage:has(.co--pay) > .page-head { display: none; }
.paypage:has(.co--pay) > .woo-page, .paypage:has(.co--pay) .woocommerce { width: auto; max-width: none; margin: 0; padding: 0; }
.paypage:has(.co--pay) + .section--tight { display: none; }
.co__head { display: grid; gap: .5rem; }
.co__title { font-size: clamp(1.875rem, 1.5rem + 1.4vw, 2.5rem); line-height: 1.1; }
.co--pay .co__head .small { max-width: 30rem; }
.co--pay table.co__table tfoot td { white-space: normal; }
.co--pay .shipped_via { display: block; font-size: .8125rem; color: var(--ink-2); }
.co--pay .wc-item-meta { list-style: none; margin: 0; padding: 0; font-size: .8125rem; color: var(--ink-2); }
.co--pay .wc-item-meta p { display: inline; }
@media (max-width: 63.99em) { .co--pay { align-items: stretch; } }
/* WooCommerce moves focus to a new notice (so it is announced); no focus ring on a box that can't be used. */
:is(.account, .authpage, .co) :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-NoticeGroup)[tabindex="-1"]:focus { outline: none; }
.acct-card__title { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; }
.acct-card__title .badge { margin-left: 0; }

/* Stripe derives its iframe inputs from these fields, copying padding and line-height
   but not the fixed height. Explicit vertical padding keeps both at 48px. */
.co input.input-text, .acct-addpm #wc-stripe-hidden-style-input {
  padding-top: .8125rem;
  padding-bottom: .8125rem;
  line-height: 1.25;
}
:is(.co, .paypage, .acct-addpm) #wc-stripe-upe-form {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
