@charset "UTF-8";
/* ==========================================================================
   LÉYA — WooCommerce surfaces
   Catalogue bar · filters · product page · gallery · buy box · cart ·
   checkout · account · reviews
   Loaded on shop pages only.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Catalogue bar
   -------------------------------------------------------------------------- */

.shop-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	padding-block: var(--s-5);
	margin-block-end: var(--s-6);
	border-block-end: var(--hair-soft);
}
.shop-bar__count { font-size: var(--t-sm); color: var(--ink-3); }
.shop-bar__tools { display: flex; align-items: center; gap: var(--s-3); }

.shop-bar__filter { position: relative; }
.shop-bar__filter-count {
	display: inline-grid;
	place-items: center;
	min-width: 18px;
	height: 18px;
	padding-inline: 4px;
	background: var(--wine);
	color: var(--paper);
	border-radius: var(--r-pill);
	font-family: var(--font-num);
	font-size: 10px;
	line-height: 1;
}
.shop-bar__filter-count[hidden] { display: none; }

.shop-bar__sort select {
	min-height: 42px;
	border-color: var(--line);
	font-size: var(--t-sm);
	background-color: transparent;
}

@media (max-width: 560px) {
	.shop-bar { flex-direction: column; align-items: stretch; }
	.shop-bar__tools { justify-content: space-between; }
	.shop-bar__sort { flex: 1; }
	.shop-bar__sort select { width: 100%; }
}

/* --------------------------------------------------------------------------
   2. Filter drawer
   -------------------------------------------------------------------------- */

.filters__group { border: 0; padding: 0; margin: 0; }
.filters__group + .filters__group {
	margin-block-start: var(--s-6);
	padding-block-start: var(--s-6);
	border-block-start: var(--hair-soft);
}
.filters__legend {
	font-size: var(--t-xs);
	font-weight: 500;
	letter-spacing: var(--track-label);
	color: var(--ink-3);
	margin-block-end: var(--s-4);
	padding: 0;
}
[dir="rtl"] .filters__legend { letter-spacing: 0; font-size: var(--t-sm); }

.filters__opts { display: grid; gap: var(--s-3); }
.filters__count { margin-inline-start: var(--s-2); color: var(--ink-3); font-size: var(--t-xs); }

.filters__price { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); }
.filters__price .field + .field { margin-block-start: 0; }

/* --------------------------------------------------------------------------
   3. Product page layout
   -------------------------------------------------------------------------- */

.pdp__top {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(var(--s-6), 4vw, var(--s-8));
	align-items: start;
	padding-block-end: var(--s-8);
}

/* Grid items default to `min-width: auto`, so the gallery's scroller could
   otherwise set the column's minimum width and blow the page out sideways. */
.pdp__gallery,
.pdp__summary { min-width: 0; }

.pdp__summary-inner {
	position: sticky;
	inset-block-start: calc(var(--header-h) + var(--s-5));
	display: grid;
	gap: var(--s-4);
}

.pdp__title { font-size: var(--t-xl); line-height: 1.2; }
.pdp__fabric { font-size: var(--t-sm); color: var(--ink-3); margin-block-start: calc(var(--s-3) * -1); }

.pdp__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--s-3);
	font-size: var(--t-lg);
	font-family: var(--font-display);
}
.pdp__vat { font-family: var(--font-body); font-size: var(--t-xs); color: var(--ink-3); }

.pdp__rating {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	font-size: var(--t-xs);
	color: var(--ink-3);
}
.pdp__rating:hover { color: var(--wine); }

.pdp__short { font-size: var(--t-base); line-height: 1.75; color: var(--ink-2); }
.pdp__short p + p { margin-block-start: var(--s-3); }

.pdp__model-note {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	font-size: var(--t-xs);
	color: var(--ink-3);
}

.pdp__story-text {
	font-family: var(--font-display);
	font-size: var(--t-md);
	line-height: 1.7;
	color: var(--ink-2);
	text-wrap: balance;
}

@media (max-width: 900px) {
	.pdp__top { grid-template-columns: minmax(0, 1fr); gap: var(--s-6); }
	.pdp__summary-inner { position: static; }
}

/* --------------------------------------------------------------------------
   4. Gallery
   -------------------------------------------------------------------------- */

.gallery { position: relative; }
.gallery__stack { display: grid; gap: var(--s-2); }

.gallery__figure { margin: 0; }
.gallery__zoom-btn {
	display: block;
	width: 100%;
	position: relative;
	cursor: zoom-in;
	background: var(--sand-deep);
}
.gallery__zoom-btn .media { --ratio: var(--ratio-product); }

.gallery__zoom-hint {
	position: absolute;
	inset-block-end: var(--s-3);
	inset-inline-end: var(--s-3);
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	background: rgba(251, 248, 244, .88);
	color: var(--ink);
	opacity: 0;
	transition: opacity var(--d-2) var(--ease);
}
.gallery__zoom-btn:hover .gallery__zoom-hint,
.gallery__zoom-btn:focus-visible .gallery__zoom-hint { opacity: 1; }

.gallery__counter {
	position: absolute;
	inset-block-end: var(--s-3);
	inset-inline-start: var(--s-3);
	display: none;
	align-items: center;
	gap: 3px;
	padding: 5px var(--s-3);
	background: rgba(25, 18, 16, .62);
	color: var(--paper);
	font-size: var(--t-xs);
}

/* Below 900px the stack becomes a snapping strip. */
@media (max-width: 900px) {
	.gallery {
		margin-inline: calc(var(--gutter) * -1);
	}
	.gallery__stack {
		display: flex;
		gap: 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.gallery__stack::-webkit-scrollbar { display: none; }
	.gallery__figure { flex: none; width: 100vw; scroll-snap-align: center; }
	.gallery__counter { display: flex; }
	.gallery__zoom-hint { display: none; }
}

/* --- Lightbox ------------------------------------------------------------- */

.lightbox {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	display: grid;
	place-items: center;
	background: rgba(14, 10, 9, .96);
	opacity: 0;
	transition: opacity var(--d-2) var(--ease);
}
.lightbox.is-open { opacity: 1; }
.lightbox[hidden] { display: none; }

.lightbox__stage {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	padding: clamp(var(--s-4), 4vw, var(--s-8));
	overflow: auto;
}
.lightbox__stage img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	cursor: zoom-out;
}

.lightbox__close,
.lightbox__nav {
	position: absolute;
	z-index: 2;
	width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	color: var(--paper);
	background: rgba(251, 248, 244, .1);
	transition: background-color var(--d-1) var(--ease);
}
.lightbox__close:hover, .lightbox__nav:hover { background: rgba(251, 248, 244, .22); }
.lightbox__close { inset-block-start: var(--s-4); inset-inline-end: var(--s-4); }
.lightbox__nav { inset-block-start: 50%; transform: translateY(-50%); }
.lightbox__nav--prev { inset-inline-start: var(--s-4); }
.lightbox__nav--next { inset-inline-end: var(--s-4); }

@media (max-width: 640px) {
	.lightbox__nav { display: none; }
}

/* --------------------------------------------------------------------------
   5. Buy box
   -------------------------------------------------------------------------- */

.buybox { display: grid; gap: var(--s-5); }
.buybox__variations { display: grid; gap: var(--s-5); }

.buybox__row-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-3);
	margin-block-end: var(--s-3);
}
.buybox__guide { font-size: var(--t-xs); }
.buybox__guide .icon { opacity: .6; }

.buybox__chips { display: flex; flex-wrap: wrap; gap: var(--s-2); }

.chip {
	min-width: 56px;
	min-height: 48px;
	padding-inline: var(--s-3);
	display: grid;
	place-items: center;
	border: 1px solid var(--line);
	background: var(--white);
	font-size: var(--t-sm);
	transition:
		border-color var(--d-1) var(--ease),
		background-color var(--d-1) var(--ease),
		color var(--d-1) var(--ease);
}
.chip:hover { border-color: var(--ink-3); }
.chip.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }

/* WooCommerce marks unbuyable combinations; the chip stays visible, struck
   through, so she can see the length exists and ask us to cut it. */
.chip.is-out {
	color: var(--ink-3);
	background: var(--paper-sunk);
	border-style: dashed;
	text-decoration: line-through;
	text-decoration-thickness: 1px;
	cursor: not-allowed;
}

.buybox__reset { font-size: var(--t-xs); color: var(--ink-3); text-decoration: underline; }

.buybox__variation:empty { display: none; }
.buybox__variation .price { font-size: var(--t-md); }
.buybox__variation .stock { font-size: var(--t-xs); color: var(--ink-3); margin-block-start: var(--s-2); }
.buybox__variation .stock.out-of-stock { color: var(--err); }

.buybox__actions {
	display: flex;
	align-items: stretch;
	gap: var(--s-2);
	flex-wrap: wrap;
}
.buybox__submit { flex: 1; min-width: 180px; }
.buybox__save {
	width: 60px;
	height: auto;
	min-height: 60px;
	border: 1px solid var(--line);
	border-radius: var(--r-0);
	flex: none;
}
.buybox__save:hover { border-color: var(--wine); }
.buybox__save[aria-pressed="true"] { color: var(--wine); border-color: var(--wine); }
.buybox__save[aria-pressed="true"] .icon { fill: currentColor; }

.buybox .qty { height: 60px; }

/* --------------------------------------------------------------------------
   6. Promise block
   -------------------------------------------------------------------------- */

.promise {
	display: grid;
	gap: var(--s-4);
	padding: var(--s-5);
	background: var(--paper-sunk);
}
.promise__row { display: grid; grid-template-columns: auto 1fr; gap: var(--s-3); align-items: start; }
.promise__row > .icon { color: var(--gold); margin-block-start: 2px; }
.promise__row strong { display: block; font-size: var(--t-sm); font-weight: 500; }
.promise__row span { display: block; font-size: var(--t-xs); color: var(--ink-3); line-height: 1.6; margin-block-start: 2px; }

/* --------------------------------------------------------------------------
   7. WhatsApp advisor card
   -------------------------------------------------------------------------- */

.pdp__advisor {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4);
	border: 1px solid var(--line);
	transition: border-color var(--d-2) var(--ease), background-color var(--d-2) var(--ease);
}
.pdp__advisor:hover { border-color: var(--wine); background: var(--wine-wash); }
.pdp__advisor > .icon:first-child { color: var(--wine); flex: none; }
.pdp__advisor > span { flex: 1; display: grid; }
.pdp__advisor strong { font-size: var(--t-sm); font-weight: 500; }
.pdp__advisor span span { font-size: var(--t-xs); color: var(--ink-3); }
.pdp__advisor > .icon:last-child { color: var(--ink-3); flex: none; }

/* --------------------------------------------------------------------------
   8. Fabric specification
   -------------------------------------------------------------------------- */

.spec { display: grid; gap: var(--s-6); }

.spec__list { display: grid; }
.spec__row {
	display: grid;
	grid-template-columns: minmax(90px, 30%) 1fr;
	gap: var(--s-4);
	padding-block: var(--s-3);
	border-block-end: var(--hair-soft);
	font-size: var(--t-sm);
}
.spec__row dt { color: var(--ink-3); }
.spec__row dd { margin: 0; }

.spec__care-title {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	font-family: var(--font-body);
	font-size: var(--t-xs);
	font-weight: 500;
	letter-spacing: var(--track-label);
	color: var(--ink-3);
	margin-block-end: var(--s-3);
}
[dir="rtl"] .spec__care-title { letter-spacing: 0; font-size: var(--t-sm); }
.spec__care-title .icon { color: var(--gold); }
.spec__care ul { display: grid; gap: var(--s-2); font-size: var(--t-sm); color: var(--ink-2); }
.spec__care li { position: relative; padding-inline-start: var(--s-4); line-height: 1.6; }
.spec__care li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: .72em;
	width: 5px;
	height: 1px;
	background: var(--gold);
}

/* --------------------------------------------------------------------------
   9. Fit advisor
   -------------------------------------------------------------------------- */

.advisor {
	display: grid;
	gap: var(--s-6);
	padding: clamp(var(--s-5), 3vw, var(--s-7));
	border: 1px solid var(--line);
	background: var(--white);
}

.advisor__head { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); align-items: start; }
.advisor__head > .icon { color: var(--gold); margin-block-start: 3px; }
.advisor__title { font-size: var(--t-md); }
.advisor__sub { font-size: var(--t-sm); color: var(--ink-3); margin-block-start: 2px; }

.advisor__step { display: grid; gap: var(--s-3); }
.advisor__step .field__label { display: flex; align-items: baseline; gap: 5px; margin: 0; }
.advisor__step .field__label .num { color: var(--wine); font-weight: 600; font-size: var(--t-base); }

/* The visible rule is 2px, but the input itself is 30px tall so there is
   something to actually drag. Styling the runnable track rather than the
   element is what lets the two differ. */
.advisor__range {
	width: 100%;
	min-height: 0;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	appearance: none;
	cursor: pointer;
}
.advisor__range:focus { box-shadow: none; }
.advisor__range::-webkit-slider-runnable-track {
	height: 2px;
	background: var(--line);
}
.advisor__range::-moz-range-track {
	height: 2px;
	background: var(--line);
}
.advisor__range::-webkit-slider-thumb {
	appearance: none;
	width: 22px;
	height: 22px;
	margin-block-start: -10px;   /* centre the 22px thumb on the 2px track */
	border-radius: var(--r-pill);
	background: var(--wine);
	border: 3px solid var(--white);
	box-shadow: 0 1px 6px rgba(25, 18, 16, .2);
	cursor: grab;
}
.advisor__range::-moz-range-thumb {
	width: 22px;
	height: 22px;
	border-radius: var(--r-pill);
	background: var(--wine);
	border: 3px solid var(--white);
	cursor: grab;
}
.advisor__range:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--wine); outline-offset: 2px; }

.advisor__scale {
	display: flex;
	justify-content: space-between;
	font-size: var(--t-2xs);
	color: var(--ink-3);
}

.advisor__opts { display: flex; flex-wrap: wrap; gap: var(--s-2); }

.advisor__out:empty { display: none; }
.advisor__out {
	display: grid;
	gap: var(--s-2);
	padding: var(--s-5);
	background: var(--wine-wash);
	border-inline-start: 2px solid var(--wine);
}
.advisor__out-size {
	font-family: var(--font-display);
	font-size: var(--t-lg);
	color: var(--wine);
}
.advisor__out-text { font-size: var(--t-sm); color: var(--ink-2); line-height: 1.6; }
.advisor__out-warn { font-size: var(--t-sm); color: var(--warn); display: flex; align-items: start; gap: var(--s-2); }

.advisor__chart-link { justify-self: start; }

/* --------------------------------------------------------------------------
   10. Notify me
   -------------------------------------------------------------------------- */

.notify { display: grid; gap: var(--s-3); }
.notify__row { display: flex; gap: 0; }
.notify__row input { flex: 1; border-inline-end: 0; }
.notify__row .btn { flex: none; }
.notify__msg:empty { display: none; }
.notify__msg { font-size: var(--t-xs); color: var(--ok); }
.notify__msg.is-err { color: var(--err); }

@media (max-width: 480px) {
	.notify__row { flex-direction: column; }
	.notify__row input { border-inline-end: 1px solid var(--line); }
}

/* --------------------------------------------------------------------------
   11. Sticky buy bar
   -------------------------------------------------------------------------- */

.sticky-buy {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: var(--z-sticky);
	display: flex;
	align-items: center;
	gap: var(--s-4);
	padding: var(--s-3) var(--gutter);
	padding-block-end: max(var(--s-3), env(safe-area-inset-bottom));
	background: var(--paper);
	border-block-start: var(--hair);
	transform: translateY(101%);
	transition: transform var(--d-2) var(--ease);
}
.sticky-buy.is-shown { transform: none; }
.sticky-buy[hidden] { display: none; }
.sticky-buy__info { flex: 1; display: grid; min-width: 0; }
.sticky-buy__name {
	font-size: var(--t-sm);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.sticky-buy__price { font-size: var(--t-xs); color: var(--ink-3); }
.sticky-buy__btn { flex: none; min-height: 46px; }

@media (min-width: 901px) { .sticky-buy { display: none; } }

/* --------------------------------------------------------------------------
   12. Mini cart
   -------------------------------------------------------------------------- */

.ship-bar { margin-block-end: var(--s-5); }
.ship-bar__text { font-size: var(--t-xs); color: var(--ink-2); margin-block-end: var(--s-2); }
.ship-bar__track { height: 2px; background: var(--line); overflow: hidden; }
.ship-bar__fill {
	display: block;
	height: 100%;
	background: var(--wine);
	transition: width var(--d-3) var(--ease);
}

.minicart { display: grid; }
.minicart__item {
	position: relative;
	display: grid;
	grid-template-columns: 74px 1fr auto;
	gap: var(--s-4);
	padding-block: var(--s-4);
	border-block-end: var(--hair-soft);
}
.minicart__item.is-busy { opacity: .5; pointer-events: none; }
.minicart__media .media { --ratio: var(--ratio-product); }
.minicart__title { font-size: var(--t-sm); font-weight: 400; line-height: 1.4; font-family: var(--font-display); }
.minicart__meta { font-size: var(--t-xs); color: var(--ink-3); margin-block-start: 2px; }
.minicart__meta p { margin: 0; }
.minicart__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
	margin-block-start: var(--s-3);
}
.minicart__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line);
}
.minicart__qty button {
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	color: var(--ink-2);
}
.minicart__qty button:hover { color: var(--wine); background: var(--wine-wash); }
.minicart__qty span {
	min-width: 30px;
	text-align: center;
	font-size: var(--t-xs);
	font-family: var(--font-num);
}
.minicart__price { font-size: var(--t-sm); }
.minicart__remove {
	align-self: start;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	color: var(--ink-3);
	transition: color var(--d-1) var(--ease);
}
.minicart__remove:hover { color: var(--err); }

.minicart__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-3);
	margin-block-end: var(--s-2);
	font-size: var(--t-md);
	font-family: var(--font-display);
}
.minicart__note { font-size: var(--t-xs); color: var(--ink-3); margin-block-end: var(--s-4); }

/* --------------------------------------------------------------------------
   13. Cart page
   -------------------------------------------------------------------------- */

.woocommerce-cart-form { margin-block-end: var(--s-7); }

.shop_table {
	width: 100%;
	font-size: var(--t-sm);
}
.shop_table th, .shop_table td {
	padding: var(--s-4) var(--s-3);
	text-align: start;
	border-block-end: var(--hair-soft);
	vertical-align: middle;
}
.shop_table thead th {
	font-size: var(--t-xs);
	font-weight: 500;
	color: var(--ink-3);
	letter-spacing: var(--track-label);
	border-block-end-color: var(--line);
}
[dir="rtl"] .shop_table thead th { letter-spacing: 0; }
.shop_table .product-thumbnail { width: 92px; }
.shop_table .product-thumbnail img { width: 92px; height: auto; }
.shop_table .product-remove { width: 44px; }
.shop_table .product-remove a {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	color: var(--ink-3);
	font-size: 0;
}
.shop_table .product-remove a::before {
	content: "×";
	font-size: 22px;
	line-height: 1;
}
.shop_table .product-remove a:hover { color: var(--err); }
.shop_table .product-name a { font-family: var(--font-display); }
.shop_table .product-name a:hover { color: var(--wine); }

.cart_totals {
	background: var(--paper-sunk);
	padding: clamp(var(--s-5), 3vw, var(--s-6));
}
.cart_totals h2 { font-size: var(--t-md); margin-block-end: var(--s-4); }
.cart_totals table th { color: var(--ink-3); font-weight: 400; }
.cart_totals .order-total { font-size: var(--t-md); }
.cart_totals .order-total th, .cart_totals .order-total td { border-block-end: 0; padding-block-start: var(--s-4); }

.coupon { display: flex; gap: 0; margin-block-end: var(--s-5); }
.coupon input { flex: 1; border-inline-end: 0; }

@media (max-width: 720px) {
	.shop_table thead { display: none; }
	.shop_table tr {
		display: grid;
		grid-template-columns: 92px 1fr auto;
		gap: var(--s-2) var(--s-4);
		padding-block: var(--s-4);
		border-block-end: var(--hair-soft);
	}
	.shop_table td { border: 0; padding: 0; }
	.shop_table .product-thumbnail { grid-row: span 3; }
	.shop_table .product-remove { grid-column: 3; grid-row: 1; }
	.shop_table td::before {
		content: attr(data-title) ": ";
		color: var(--ink-3);
		font-size: var(--t-xs);
	}
	.shop_table .product-thumbnail::before,
	.shop_table .product-remove::before,
	.shop_table .product-name::before { content: none; }
}

/* --------------------------------------------------------------------------
   14. Checkout
   -------------------------------------------------------------------------- */

/* A focused checkout: the header loses its navigation so there is nothing to
   click except finishing the order. */
.is-checkout-focus .nav-primary,
.is-checkout-focus .header__burger,
.is-checkout-focus .icon-wishlist,
.is-checkout-focus .announce,
.is-checkout-focus .fab { display: none; }

.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: clamp(var(--s-6), 4vw, var(--s-8));
	align-items: start;
}

.checkout h3 {
	font-size: var(--t-md);
	margin-block-end: var(--s-4);
	padding-block-end: var(--s-3);
	border-block-end: var(--hair-soft);
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	gap: var(--s-4);
}

.form-row { display: grid; margin: 0; }
.form-row label { font-size: var(--t-xs); color: var(--ink-2); margin-block-end: var(--s-2); }
.form-row .required { color: var(--err); text-decoration: none; }
.form-row-first, .form-row-last { }

@media (min-width: 560px) {
	.woocommerce-billing-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.form-row-wide, .form-row.notes { grid-column: 1 / -1; }
}

#order_review {
	position: sticky;
	inset-block-start: calc(var(--header-h) + var(--s-4));
	background: var(--paper-sunk);
	padding: clamp(var(--s-5), 3vw, var(--s-6));
}
#order_review_heading { font-size: var(--t-md); margin-block-end: var(--s-4); }

.woocommerce-checkout-review-order-table { font-size: var(--t-sm); }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding-block: var(--s-3);
	border-block-end: var(--hair-soft);
	text-align: start;
}
.woocommerce-checkout-review-order-table .order-total { font-size: var(--t-md); }

.wc_payment_methods { display: grid; gap: var(--s-3); margin-block: var(--s-5); }
.wc_payment_method > label {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4);
	border: 1px solid var(--line);
	cursor: pointer;
	font-size: var(--t-sm);
	transition: border-color var(--d-1) var(--ease), background-color var(--d-1) var(--ease);
}
.wc_payment_method input:checked + label { border-color: var(--wine); background: var(--wine-wash); }
.wc_payment_method .payment_box {
	padding: var(--s-4);
	background: var(--paper);
	font-size: var(--t-xs);
	color: var(--ink-2);
	border: 1px solid var(--line);
	border-block-start: 0;
}
.wc_payment_method .payment_box p:last-child { margin: 0; }

#place_order { width: 100%; min-height: 60px; }

.woocommerce-terms-and-conditions-wrapper { margin-block: var(--s-4); font-size: var(--t-xs); }

.gift-note { margin-block-start: var(--s-4); }

@media (max-width: 900px) {
	.checkout { grid-template-columns: minmax(0, 1fr); }
	#order_review { position: static; }
}

/* --------------------------------------------------------------------------
   15. Order received
   -------------------------------------------------------------------------- */

.woocommerce-order { display: grid; gap: var(--s-6); }
.woocommerce-thankyou-order-received {
	font-family: var(--font-display);
	font-size: var(--t-lg);
	color: var(--wine);
}
.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--s-4);
	padding: var(--s-5);
	background: var(--paper-sunk);
}
.woocommerce-order-overview li { font-size: var(--t-xs); color: var(--ink-3); }
.woocommerce-order-overview strong { display: block; font-size: var(--t-sm); color: var(--ink); margin-block-start: 4px; }

/* --------------------------------------------------------------------------
   16. Account
   -------------------------------------------------------------------------- */

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: var(--s-7);
	align-items: start;
}
.woocommerce-MyAccount-navigation ul { display: grid; gap: var(--s-1); }
.woocommerce-MyAccount-navigation a {
	display: block;
	padding: var(--s-3) var(--s-4);
	font-size: var(--t-sm);
	color: var(--ink-2);
	border-inline-start: 2px solid transparent;
	transition: color var(--d-1) var(--ease), border-color var(--d-1) var(--ease), background-color var(--d-1) var(--ease);
}
.woocommerce-MyAccount-navigation a:hover { color: var(--wine); background: var(--wine-wash); }
.woocommerce-MyAccount-navigation .is-active a {
	color: var(--wine);
	border-inline-start-color: var(--wine);
	background: var(--wine-wash);
}

@media (max-width: 760px) {
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: var(--s-2); }
	.woocommerce-MyAccount-navigation a { border: 1px solid var(--line); border-inline-start-width: 1px; }
}

/* --------------------------------------------------------------------------
   17. Reviews
   -------------------------------------------------------------------------- */

#reviews { scroll-margin-block-start: calc(var(--header-h) + var(--s-5)); }

.woocommerce-Reviews-title { font-size: var(--t-lg); margin-block-end: var(--s-6); }
.commentlist { display: grid; gap: var(--s-6); }
.commentlist .comment_container { display: grid; gap: var(--s-3); }
.commentlist .avatar { display: none; }
.comment-text .meta { font-size: var(--t-xs); color: var(--ink-3); }
.comment-text .meta strong { color: var(--ink); font-size: var(--t-sm); }
.comment-text .description { font-size: var(--t-sm); line-height: 1.7; color: var(--ink-2); }

.star-rating {
	display: inline-flex;
	gap: 2px;
	color: var(--gold);
	font-size: var(--t-sm);
}

#review_form_wrapper {
	margin-block-start: var(--s-7);
	padding-block-start: var(--s-6);
	border-block-start: var(--hair-soft);
}
.comment-form { display: grid; gap: var(--s-4); }
.comment-form-rating { display: grid; gap: var(--s-2); }
.comment-form .stars { display: flex; gap: var(--s-1); }
.comment-form .stars a {
	font-size: var(--t-md);
	color: var(--line);
	transition: color var(--d-1) var(--ease);
}
.comment-form .stars a:hover, .comment-form .stars.selected a.active { color: var(--gold); }

/* --------------------------------------------------------------------------
   18. WooCommerce notices
   -------------------------------------------------------------------------- */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5);
	margin-block-end: var(--s-5);
	background: var(--paper-sunk);
	border-inline-start: 2px solid var(--ink-3);
	font-size: var(--t-sm);
	list-style: none;
}
.woocommerce-message { border-inline-start-color: var(--ok); background: rgba(74, 107, 79, .07); }
.woocommerce-error { border-inline-start-color: var(--err); background: var(--err-wash); }
.woocommerce-message .button,
.woocommerce-info .button {
	margin-inline-start: auto;
	font-size: var(--t-xs);
	text-decoration: underline;
	text-underline-offset: .2em;
}

/* --------------------------------------------------------------------------
   19. Wishlist page
   -------------------------------------------------------------------------- */

.wishlist { display: grid; gap: var(--s-6); }
.wishlist__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-2);
	font-size: var(--t-xs);
	color: var(--ink-3);
}
.wishlist__note .icon { opacity: .6; }
