/*
 * Santé theme styles.
 *
 * Values follow the design handoff (design_handoff_sante_eshop/README.md): 2px corners,
 * 48px page gutter (20px under 760px), Newsreader for headings and names, Hanken Grotesk for UI.
 *
 *  1. Tokens          8. Dialogs: drawer, menu    15. Checkout
 *  2. Base            9. Shared blocks            16. Selection helper
 *  3. Typography     10. Product card & grid      17. Wine room & inquiry
 *  4. Layout         11. Front page               18. About
 *  5. Buttons        12. Shop                     19. Content, account, notices
 *  6. Forms          13. Product page             20. Mobile (< 760px)
 *  7. Header/footer  14. Cart & summary
 */

/* 1. Tokens ------------------------------------------------------------- */

:root {
	--bg: #F7F3EC;
	--surface: #FBF8F3;
	--sand: #EFE8DC;
	--sand-2: #F2ECE2;
	--line: #E3DBCF;
	--line-2: #DCD3C5;
	--input: #CFC5B6;
	--ink: #252423;
	--ink-2: #3A3633;
	--muted: #4A4642;
	--muted-2: #5F5953;
	--burgundy: #5A2331;
	--burgundy-hover: #471B27;
	--burgundy-tint: #F3E6E3;
	--burgundy-tint-border: #D9BCB6;
	--olive: #4F5A3B;
	--olive-tint: #E3E6D6;
	--on-burgundy: #F4E9E6;
	--error: #9B2C2C;

	--tint-sparkling: #EFE7CF;
	--tint-sparkling-hover: #E8DEC0;
	--tint-white: #E3E6D6;
	--tint-white-hover: #D9DDCA;
	--tint-rose: #F2E0DB;
	--tint-rose-hover: #ECD4CE;
	--tint-red: #E8D5D8;
	--tint-red-hover: #E0C8CC;
	--tint-boxes: #E6DDCD;
	--tint-boxes-hover: #DDD2BF;

	--serif: Newsreader, Georgia, serif;
	--sans: "Hanken Grotesk", system-ui, sans-serif;

	--frame: 1440px;
	--px: 48px;
	--h1: 64px;
	--h2: 42px;
	--band-pad: 48px;
	--card-min: 240px;
	--tile-min: 200px;
	--radius: 2px;
	--header-offset: 96px;
}

/* 2. Base --------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: var(--header-offset);
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.is-locked {
	overflow: hidden;
}

img,
svg {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: var(--burgundy);
	text-decoration: underline;
	text-underline-offset: 3px;
}

a:hover {
	color: var(--ink);
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

button {
	cursor: pointer;
}

:focus-visible {
	outline: 2px solid var(--burgundy);
	outline-offset: 2px;
}

[hidden] {
	display: none !important;
}

.icon {
	fill: currentColor;
	flex: none;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: 8px;
	top: -60px;
	z-index: 100;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--bg);
	font-weight: 600;
}

.skip-link:focus {
	top: 8px;
	color: var(--bg);
}

.hp-field {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sante-hidden {
	display: none !important;
}

/* 3. Typography -------------------------------------------------------- */

.h1,
.h2,
.h3 {
	margin: 0;
	font-family: var(--serif);
	font-weight: 400;
	color: var(--ink);
}

.h1 {
	font-size: var(--h1);
	line-height: 1.02;
	letter-spacing: -0.01em;
	text-wrap: balance;
}

.h2 {
	font-size: var(--h2);
	line-height: 1.1;
	text-wrap: balance;
}

.h2--sm {
	font-size: 28px;
}

.h3 {
	font-size: 26px;
	line-height: 1.15;
}

.eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olive);
}

.eyebrow--rose {
	color: #6B3A44;
}

.lead {
	margin: 0;
	max-width: 540px;
	font-size: 19px;
	line-height: 1.55;
	color: var(--ink-2);
	text-wrap: pretty;
}

.lead-sm {
	margin: 0;
	font-size: 17px;
	line-height: 1.6;
}

.muted {
	color: var(--muted);
}

p.muted {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
}

.prose,
.product__desc-text {
	overflow-wrap: anywhere;
}

.prose {
	max-width: 720px;
	font-size: 17px;
	line-height: 1.65;
	color: var(--ink-2);
}

.prose > :first-child {
	margin-top: 0;
}

.prose p,
.prose ul,
.prose ol {
	margin: 0 0 1em;
}

.prose h2,
.prose h3,
.prose h4 {
	margin: 1.6em 0 0.5em;
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.15;
	color: var(--ink);
}

.prose h2 {
	font-size: 28px;
}

.prose h3 {
	font-size: 22px;
}

.prose--large {
	font-size: 18px;
}

.prose--section {
	margin-top: 32px;
}

/* 4. Layout ------------------------------------------------------------- */

.site-main {
	max-width: var(--frame);
	margin: 0 auto;
	overflow-x: clip;
}

.page-pad {
	padding: 28px var(--px) 72px;
}

.section {
	padding: 64px var(--px) 0;
}

.section--lg {
	padding-top: 72px;
}

.section--tight {
	padding-top: 24px;
}

.section--flush {
	padding-top: 0;
}

.section__title {
	margin-bottom: 24px;
}

h2.h3.section__title {
	margin-bottom: 20px;
	font-size: 28px;
}

.section__head {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 24px;
}

.section__head .h2 {
	margin-bottom: 6px;
}

.section__intro {
	max-width: 620px;
}

.band {
	margin: 72px var(--px) 0;
	padding: var(--band-pad);
}

.band--olive {
	background: var(--olive-tint);
	color: #33382B;
}

.band--rose {
	background: var(--tint-rose);
	color: #3A2E2B;
}

.band--sand {
	background: var(--sand);
}

.band--split {
	display: flex;
	flex-wrap: wrap;
	padding: 0;
}

.band__media {
	flex: 1 1 420px;
	min-height: 440px;
	position: relative;
}

.band__media .photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.band__body {
	flex: 1 1 420px;
	min-width: 0;
	padding: var(--band-pad);
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.band__body p {
	margin: 0;
	max-width: 500px;
	font-size: 17px;
	line-height: 1.6;
}

.split {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: center;
}

.split__text {
	flex: 1 1 420px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.split__text p {
	margin: 0;
	max-width: 540px;
	font-size: 17px;
	line-height: 1.6;
	color: var(--ink-2);
}

.btn-row,
.link-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.link-row {
	gap: 20px;
}

.btn-row--center {
	justify-content: center;
}

/* 5. Buttons & links ----------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 50px;
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: var(--radius);
	background: none;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}

.btn--primary {
	background: var(--burgundy);
	border-color: var(--burgundy);
	color: var(--bg);
}

.btn--primary:hover {
	background: var(--burgundy-hover);
	border-color: var(--burgundy-hover);
	color: var(--bg);
}

.btn--secondary {
	border-color: var(--ink);
	color: var(--ink);
}

.btn--secondary:hover {
	background: var(--sand);
	color: var(--ink);
}

.btn--on-rose:hover {
	background: var(--tint-rose-hover);
}

.btn--on-olive:hover {
	background: var(--tint-white-hover);
}

.btn--dark {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--bg);
}

.btn--dark:hover {
	background: #000;
	color: var(--bg);
}

.btn--outline {
	height: 40px;
	padding: 0 14px;
	border-color: var(--burgundy);
	color: var(--burgundy);
	font-size: 14px;
}

.btn--outline:hover {
	background: var(--burgundy);
	color: var(--bg);
}

.btn--ghost {
	height: 44px;
	padding: 0 14px;
	border-color: var(--input);
	color: var(--ink);
	font-weight: 500;
}

.btn--ghost:hover {
	background: var(--sand);
	color: var(--ink);
}

.btn--sm {
	height: 40px;
	padding: 0 12px;
}

.btn--md {
	height: 46px;
	padding: 0 18px;
}

.btn--lg {
	height: 52px;
	padding: 0 28px;
}

.btn--xl {
	height: 54px;
}

.btn--block {
	width: 100%;
}

.btn--disabled,
.btn:disabled {
	background: var(--line);
	border-color: var(--line);
	color: var(--muted-2);
	cursor: not-allowed;
}

.btn.loading {
	opacity: 0.6;
	pointer-events: none;
}

.btn.added::after {
	content: " ✓";
}

/* WooCommerce adds a "view cart" link next to AJAX buttons; the drawer replaces it. */
a.added_to_cart {
	display: none !important;
}

.text-link {
	align-self: flex-start;
	color: var(--burgundy);
	font-size: 16px;
	font-weight: 600;
	text-underline-offset: 4px;
}

.text-link--sm {
	font-size: 15px;
}

.link-button {
	display: inline;
	padding: 0;
	border: 0;
	background: none;
	color: var(--burgundy);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.link-button--muted {
	color: #6B3A44;
	font-weight: 400;
}

.link-button:hover {
	color: var(--ink);
}

/* 6. Forms -------------------------------------------------------------- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="date"],
input[type="password"],
input[type="url"],
select,
textarea {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--ink);
	font-size: 16px;
	font-weight: 400;
	appearance: none;
}

select {
	padding: 0 36px 0 12px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23252423' stroke-width='1.5' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

textarea {
	height: auto;
	min-height: 120px;
	padding: 12px 14px;
	resize: vertical;
	line-height: 1.5;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
	appearance: none;
}

.field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	font-weight: 500;
}

.field abbr,
.form-row abbr.required {
	color: var(--burgundy);
	text-decoration: none;
	border: 0;
}

.check {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.45;
	color: var(--ink-2);
	cursor: pointer;
}

.check input {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	accent-color: var(--burgundy);
}

.inline-field {
	display: flex;
}

.inline-field input {
	flex: 1;
	min-width: 0;
	border-right: 0;
	border-radius: var(--radius) 0 0 var(--radius);
}

.inline-field .btn {
	height: 48px;
	padding: 0 20px;
	border-radius: 0 var(--radius) var(--radius) 0;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 14px;
}

.form-grid__full {
	grid-column: 1 / -1;
}

.form-note {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
}

.form-error {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--error);
}

/* Quantity stepper. */
.stepper {
	display: inline-flex;
	align-items: stretch;
	height: 40px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: transparent;
}

.stepper__btn {
	width: 40px;
	padding: 0;
	border: 0;
	background: none;
	font-size: 18px;
	line-height: 1;
}

.stepper__btn:hover {
	background: var(--sand);
}

.stepper .stepper__input,
.stepper__value {
	width: 36px;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	text-align: center;
	font-weight: 600;
	font-size: 16px;
	display: grid;
	place-items: center;
	-moz-appearance: textfield;
}

.stepper__input::-webkit-outer-spin-button,
.stepper__input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.stepper--sm {
	height: 36px;
}

.stepper--sm .stepper__btn {
	width: 36px;
}

.stepper--sm .stepper__value {
	width: 32px;
}

/* Selectable card (delivery and payment options). */
.option-card {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-start;
	padding: 14px 16px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: var(--surface);
}

.option-card:has(input[type="radio"]:checked) {
	border-color: var(--burgundy);
	background: var(--burgundy-tint);
}

.option-card > input[type="radio"] {
	flex: none;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--burgundy);
}

.option-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 2px;
	cursor: pointer;
}

.option-card__title {
	font-weight: 600;
}

.option-card__desc {
	font-size: 14px;
	color: var(--muted);
}

.option-card__extra {
	display: none;
	flex-basis: 100%;
	margin: 0 0 0 30px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ink-2);
}

.option-card:has(input:checked) .option-card__extra {
	display: block;
}

/* 7. Header & footer ----------------------------------------------------- */

.topbar {
	background: var(--burgundy);
	color: var(--on-burgundy);
	font-size: 13px;
}

.topbar__inner {
	max-width: var(--frame);
	margin: 0 auto;
	padding: 8px var(--px);
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	justify-content: space-between;
}

.topbar__links {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
}

.topbar a {
	color: var(--on-burgundy);
}

.topbar a:hover {
	color: #fff;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: var(--bg);
	border-bottom: 1px solid var(--line);
}

.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

/* Below 600px the WordPress toolbar scrolls away with the page. */
@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	max-width: var(--frame);
	margin: 0 auto;
	padding: 14px var(--px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 28px;
}

.site-header__logo {
	flex: none;
	margin-right: auto;
}

.site-logo,
.site-header__logo img {
	width: auto;
	height: 36px;
}

.site-nav {
	display: flex;
	gap: 26px;
	font-size: 15px;
	font-weight: 500;
}

.site-nav__link {
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	color: var(--ink);
	text-decoration: none;
}

.site-nav__link:hover {
	color: var(--burgundy);
}

.site-nav__link.is-active {
	border-bottom-color: var(--burgundy);
}

.site-search {
	display: flex;
	flex: 0 1 340px;
	min-width: 0;
}

.site-search__input {
	flex: 1;
	min-width: 0;
	height: 44px;
	border-right: 0;
	border-radius: var(--radius) 0 0 var(--radius);
	font-size: 15px;
}

.site-search__button {
	height: 44px;
	padding: 0 16px;
	border: 1px solid var(--ink);
	border-radius: 0 var(--radius) var(--radius) 0;
	background: var(--ink);
	color: var(--bg);
	font-weight: 500;
}

.cart-button,
.menu-button {
	height: 44px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: none;
	color: var(--ink);
	font-weight: 500;
	text-decoration: none;
}

.cart-button:hover,
.menu-button:hover {
	background: var(--sand);
	color: var(--ink);
}

.cart-button__count {
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: var(--burgundy);
	color: var(--bg);
	font-size: 12px;
	display: grid;
	place-items: center;
}

.cart-button__subtotal {
	color: #6B6560;
	font-weight: 400;
}

.menu-button {
	display: none;
}

.site-footer {
	background: var(--sand);
	border-top: 1px solid var(--line);
}

.site-footer__grid {
	max-width: var(--frame);
	margin: 0 auto;
	padding: 56px var(--px) 32px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 36px;
	font-size: 15px;
	line-height: 1.6;
}

.site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: flex-start;
}

.site-footer__about {
	gap: 14px;
}

.site-footer__about p {
	margin: 0;
	max-width: 260px;
	color: var(--muted);
}

.site-footer__logo {
	width: auto;
	height: 34px;
}

.site-footer__social {
	display: flex;
	gap: 16px;
}

.site-footer__title {
	margin: 0 0 6px;
	font-family: var(--sans);
	font-size: 15px;
	font-weight: 600;
}

.site-footer__hours-title {
	margin-top: 8px;
	font-weight: 500;
}

.site-footer__bottom {
	max-width: var(--frame);
	margin: 0 auto;
	padding: 18px var(--px) 32px;
	border-top: 1px solid var(--line-2);
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
	font-size: 14px;
	color: var(--muted);
}

/* 8. Dialogs: cart drawer, mobile menu, mobile filters ------------------- */

.dialog {
	position: fixed;
	inset: 0;
	z-index: 60;
}

/* Logged-in editors: keep dialogs below the WordPress toolbar. */
.admin-bar .dialog,
.admin-bar .filters.is-open {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.dialog--drawer {
	display: flex;
	justify-content: flex-end;
}

.dialog__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(37, 36, 35, 0.38);
}

.drawer {
	position: relative;
	width: 100%;
	max-width: 420px;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--bg);
	box-shadow: -12px 0 40px rgba(37, 36, 35, 0.18);
}

.drawer__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid var(--line);
}

.drawer__title {
	margin: 0;
	font-family: var(--serif);
	font-size: 26px;
	font-weight: 400;
}

.drawer__notice {
	margin: 16px 24px 0;
}

.drawer__content {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.drawer__body {
	flex: 1;
	overflow: auto;
	padding: 8px 24px;
}

.drawer__foot {
	padding: 20px 24px;
	border-top: 1px solid var(--line);
	background: var(--sand-2);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.drawer__note {
	font-size: 13px;
	color: var(--muted);
}

.drawer-lines {
	margin: 0;
	padding: 0;
	list-style: none;
}

.drawer-line {
	display: flex;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
}

.drawer-line__media {
	flex: none;
	width: 64px;
	height: 80px;
	background: var(--sand);
}

.drawer-line__media img,
.cart-line__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.drawer-line__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.drawer-line__name {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.35;
	color: var(--ink);
	text-decoration: none;
}

.drawer-line__name:hover {
	color: var(--burgundy);
}

.drawer-line__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.drawer-line__total {
	font-weight: 600;
}

.drawer-line__remove {
	align-self: flex-start;
	font-size: 13px;
}

.drawer.is-busy .drawer__content {
	opacity: 0.55;
	pointer-events: none;
}

.mobile-menu {
	position: absolute;
	inset: 0;
	padding: 20px;
	display: flex;
	flex-direction: column;
	background: var(--bg);
	overflow: auto;
}

.mobile-menu__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 24px;
}

.mobile-menu__logo {
	width: auto;
	height: 32px;
}

.mobile-menu__nav {
	display: flex;
	flex-direction: column;
}

.mobile-menu__link {
	padding: 16px 0;
	border-bottom: 1px solid var(--line);
	font-family: var(--serif);
	font-size: 28px;
	color: var(--ink);
	text-decoration: none;
}

.mobile-menu__link.is-active {
	color: var(--burgundy);
}

.mobile-menu__helper {
	padding: 16px 0;
	font-size: 17px;
	font-weight: 500;
	text-decoration: none;
}

.mobile-menu__foot {
	margin: auto 0 0;
	padding-top: 24px;
	font-size: 15px;
	line-height: 1.6;
	color: var(--muted);
}

/* 9. Shared blocks ------------------------------------------------------ */

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	color: var(--muted-2);
}

.breadcrumbs li + li::before {
	content: "/";
	margin-right: 8px;
}

.breadcrumbs a {
	color: var(--muted-2);
}

.breadcrumbs [aria-current] {
	color: var(--ink);
}

.tagline {
	margin: 0;
	font-family: var(--serif);
	font-style: italic;
	color: var(--burgundy);
}

.tagline--band {
	margin: 0 var(--px);
	padding: 18px 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	font-size: 22px;
	text-align: center;
}

.tagline--inset {
	margin: 40px 0 0;
	padding: 16px 0;
	font-size: 20px;
}

.tagline--plain {
	font-size: 18px;
}

.health-warning {
	margin: 14px 0 0;
	padding: 10px 14px;
	border: 1px solid var(--line-2);
	background: var(--surface);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ink-2);
}

.product__info .health-warning {
	margin: 0;
}

.notice {
	margin: 0;
	padding: 12px 14px;
	border-radius: var(--radius);
	font-size: 14px;
	line-height: 1.5;
}

.notice--success {
	background: var(--olive-tint);
	color: #2F3A22;
}

.empty-state {
	padding: 48px 24px;
	background: var(--sand);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.empty-state p {
	margin: 0;
	max-width: 440px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--ink-2);
}

.empty-state .empty-state__title {
	font-family: var(--serif);
	font-size: 28px;
	color: var(--ink);
}

.empty-state--plain {
	padding: 40px 0;
	background: none;
}

.empty-state--plain .empty-state__title {
	font-size: 22px;
}

.photo--placeholder {
	display: grid;
	place-items: center;
	background: #E4DACA;
	color: rgba(90, 35, 49, 0.35);
	font-family: var(--serif);
	font-size: 64px;
}

.facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 8px 20px;
	margin: 0;
	font-size: 16px;
}

.facts dt {
	color: #5C4A45;
}

.facts dd {
	margin: 0;
}

.option-chip {
	display: inline-flex;
	align-items: center;
	height: 44px;
	padding: 0 16px;
	border: 1px solid #B9C0A6;
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--ink);
	font-weight: 500;
	text-decoration: none;
}

.option-chip:hover {
	border-color: var(--olive);
	color: var(--ink);
}

.chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 36px;
	padding: 0 10px 0 12px;
	border: 1px solid var(--burgundy-tint-border);
	border-radius: var(--radius);
	background: var(--burgundy-tint);
	color: var(--ink);
	font-size: 14px;
	text-decoration: none;
}

.chip span {
	font-size: 16px;
}

.chip:hover {
	border-color: var(--burgundy);
	color: var(--ink);
}

.summary-row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 16px;
}

.summary-row > :last-child {
	text-align: right;
}

.summary-row--top {
	padding-top: 12px;
	border-top: 1px solid var(--line-2);
}

.summary-row--total {
	padding-top: 14px;
	border-top: 1px solid var(--line-2);
	font-size: 18px;
	font-weight: 600;
}

.summary-row--total small {
	display: block;
	font-size: 12px;
	font-weight: 400;
	color: var(--muted);
}

/* Pastel type tints. */
.tint--sparkling { background: var(--tint-sparkling); }
.tint--white { background: var(--tint-white); }
.tint--rose { background: var(--tint-rose); }
.tint--red { background: var(--tint-red); }
.tint--boxes { background: var(--tint-boxes); }

/* 10. Product card & grid ------------------------------------------------ */

.product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(var(--card-min), 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--surface);
	border: 1px solid var(--line);
}

.card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--sand);
	overflow: hidden;
}

.card__img,
.card__media img {
	width: 100%;
	height: 100%;
	padding: 14px;
	object-fit: contain;
	mix-blend-mode: multiply;
	transform: scale(var(--img-scale, 1));
}

.card__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 4px 8px;
	background: var(--ink);
	color: var(--bg);
	font-size: 12px;
	font-weight: 600;
}

.card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px 16px 16px;
}

.card__meta {
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
}

.card__title {
	margin: 0;
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 400;
	line-height: 1.2;
	text-wrap: pretty;
}

.card__title a {
	color: var(--ink);
	text-decoration: none;
}

.card__title a:hover {
	color: var(--burgundy);
}

.card__sub {
	font-size: 14px;
	color: var(--muted);
}

.card__foot {
	margin-top: auto;
	padding-top: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
}

.card__price {
	font-size: 17px;
	font-weight: 600;
}

.card__na {
	font-size: 13px;
	color: var(--muted-2);
}

/* 11. Front page ------------------------------------------------------- */

.hero {
	padding: 56px var(--px) 48px;
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: stretch;
}

.hero__text {
	flex: 1 1 440px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 22px;
}

.hero__images {
	flex: 1 1 440px;
	min-width: 0;
	height: 520px;
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
	gap: 12px;
}

.hero__photo {
	grid-row: span 2;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
	background: #E4DACA;
}

.hero__images > .hero__photo:only-child {
	grid-column: span 2;
}

.hero__bottle {
	display: block;
	min-height: 0;
	padding: 12px;
	overflow: hidden;
}

.hero__bottle img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.type-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(var(--tile-min), 1fr));
	gap: 12px;
}

.type-tile {
	min-height: 128px;
	padding: 22px 20px;
	border-radius: var(--radius);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	color: var(--ink);
	text-decoration: none;
}

.type-tile:hover { color: var(--ink); }
.type-tile.tint--sparkling:hover { background: var(--tint-sparkling-hover); }
.type-tile.tint--white:hover { background: var(--tint-white-hover); }
.type-tile.tint--rose:hover { background: var(--tint-rose-hover); }
.type-tile.tint--red:hover { background: var(--tint-red-hover); }
.type-tile.tint--boxes:hover { background: var(--tint-boxes-hover); }

.type-tile__name {
	font-family: var(--serif);
	font-size: 25px;
}

.type-tile__cta {
	font-size: 14px;
	font-weight: 500;
}

.helper-teaser {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: center;
}

.helper-teaser__text {
	flex: 1 1 380px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.helper-teaser__text p {
	margin: 0;
	max-width: 480px;
	font-size: 17px;
	line-height: 1.55;
}

.helper-teaser__card {
	flex: 1 1 380px;
	min-width: 0;
	padding: 24px;
	border: 1px solid #C9CFB9;
	background: #F4F5EE;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.helper-teaser__step {
	font-size: 13px;
	font-weight: 600;
	color: var(--olive);
}

.helper-teaser__q {
	font-family: var(--serif);
	font-size: 24px;
}

.helper-teaser__opts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.team-strip {
	flex: 1 1 420px;
	min-width: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.team-strip__item {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-weight: 600;
}

.team-strip__photo {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
}

.room-teaser .band__body .h2 {
	line-height: 1.1;
}

.newsletter {
	padding: 72px var(--px);
}

.newsletter__inner {
	padding-top: 40px;
	border-top: 1px solid var(--line);
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	justify-content: space-between;
	align-items: flex-start;
}

.newsletter__intro {
	flex: 1 1 320px;
}

.newsletter__intro .h3 {
	margin-bottom: 8px;
}

.newsletter__intro p {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--muted);
}

.newsletter__form,
.newsletter__done {
	flex: 1 1 420px;
	min-width: 0;
}

.newsletter__form {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.newsletter__form .check {
	font-size: 14px;
}

.newsletter__done {
	padding: 14px 16px;
	font-size: 15px;
}

/* 12. Shop ------------------------------------------------------------- */

.shop__head {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: flex-end;
	margin: 14px 0 20px;
}

.shop__heading {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.shop__query {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	font-size: 16px;
}

.shop__count {
	font-size: 15px;
	color: var(--muted);
}

.tabs {
	display: flex;
	gap: 24px;
	margin-bottom: 24px;
	box-shadow: inset 0 -1px 0 var(--line);
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
}

.tabs::-webkit-scrollbar {
	display: none;
}

.tabs__tab {
	flex: none;
	padding: 10px 0;
	border-bottom: 2px solid transparent;
	color: var(--ink);
	font-size: 15px;
	white-space: nowrap;
	text-decoration: none;
}

.tabs__tab:hover {
	color: var(--burgundy);
}

.tabs__tab.is-active {
	border-bottom-color: var(--ink);
	font-weight: 600;
}

.notice-band {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 24px;
	padding: 18px 20px;
	font-size: 16px;
	line-height: 1.5;
}

.shop__layout {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.filters {
	position: sticky;
	top: var(--header-offset);
	flex: none;
	width: 232px;
	max-height: calc(100vh - var(--header-offset) - 16px);
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
}

.filters__mobile-head,
.filters__mobile-foot {
	display: none;
}

.filters__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 6px;
}

.filters__title {
	font-size: 16px;
	font-weight: 600;
}

.filters__clear {
	font-size: 14px;
}

.facet {
	margin: 0;
	padding: 14px 0;
	border: 0;
	border-top: 1px solid var(--line);
	min-width: 0;
}

.facet__title {
	float: left;
	width: 100%;
	margin-bottom: 6px;
	padding: 0;
	font-size: 15px;
	font-weight: 600;
}

.facet__opt {
	position: relative;
	clear: both;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 36px;
	padding: 4px 0;
	font-size: 15px;
	cursor: pointer;
}

.facet__opt input {
	position: absolute;
	opacity: 0;
	width: 18px;
	height: 18px;
	margin: 0;
}

.facet__box {
	flex: none;
	width: 18px;
	height: 18px;
	border: 1.5px solid var(--burgundy);
	border-radius: var(--radius);
	display: grid;
	place-items: center;
	color: var(--bg);
	font-size: 12px;
	line-height: 1;
}

.facet__opt input:checked + .facet__box {
	background: var(--burgundy);
}

.facet__opt input:checked + .facet__box::after {
	content: "✓";
}

.facet__opt input:focus-visible + .facet__box {
	outline: 2px solid var(--burgundy);
	outline-offset: 2px;
}

.facet__label {
	flex: 1;
}

.facet__count {
	font-size: 13px;
	color: var(--muted-2);
}

.shop__results {
	flex: 1;
	min-width: 0;
}

.shop.is-loading .shop__results {
	opacity: 0.55;
	transition: opacity 0.15s;
}

.shop__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-bottom: 18px;
}

.shop__filters-button {
	display: none;
}

.sort {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--muted);
}

.sort select {
	width: auto;
	height: 40px;
	font-size: 14px;
}

/* 13. Product page ----------------------------------------------------- */

.product-page {
	padding-top: 24px;
}

.product {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	margin-top: 20px;
	align-items: flex-start;
}

.product__media {
	position: relative;
	flex: 1 1 420px;
	min-width: 0;
	aspect-ratio: 4 / 5;
	max-height: 700px;
	padding: 32px;
	background: var(--sand);
	overflow: hidden;
}

.product__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
	transform: scale(var(--img-scale, 1));
}

.product__info {
	flex: 1 1 400px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.product__byline {
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
}

.product__lead {
	margin: 0;
	font-size: 17px;
	color: var(--ink-2);
}

.fact-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fact-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px 7px 9px;
	border-radius: var(--radius);
	background: var(--burgundy-tint);
	font-size: 14px;
	font-weight: 500;
}

.fact-chip .icon {
	color: var(--burgundy);
}

.product__price {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: baseline;
}

.product__price-main {
	font-size: 30px;
	font-weight: 600;
}

.product__unit {
	font-size: 14px;
	color: var(--muted-2);
}

.availability {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
}

.availability--out {
	font-weight: 600;
}

.dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--olive);
}

.product__buy {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.product__buy .stepper {
	height: 52px;
}

.product__buy .stepper__btn {
	width: 46px;
	font-size: 20px;
}

.product__buy .stepper .stepper__input {
	width: 40px;
	font-size: 17px;
}

.product__buy .btn {
	flex: 1;
	min-width: 180px;
}

.product__desc {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}

.product__desc-label {
	font-size: 15px;
	font-weight: 600;
}

.product__desc-text {
	max-width: 560px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--ink-2);
}

.product__desc-text p {
	margin: 0 0 0.6em;
}

.product__desc-text > :last-child {
	margin-bottom: 0;
}

.product__box ul {
	margin: 6px 0 0;
	padding-left: 18px;
	font-size: 16px;
	line-height: 1.6;
}

.taste {
	margin: 56px 0 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 36px;
}

.taste__col {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.scales {
	display: grid;
	grid-template-columns: auto minmax(80px, 1fr) auto;
	gap: 14px 12px;
	align-items: center;
	font-size: 14px;
	color: var(--muted);
}

.scales__track {
	position: relative;
	height: 6px;
	border-radius: 3px;
	background: var(--line-2);
}

.scales__dot {
	position: absolute;
	top: -4px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--burgundy);
	transform: translateX(-50%);
}

.foods {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.foods__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 14px 8px;
	border: 1px solid var(--line-2);
	background: var(--surface);
	text-align: center;
}

.foods__icon {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--tint-rose);
	color: var(--burgundy);
	display: grid;
	place-items: center;
}

.foods__label {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
}

.tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tag {
	padding: 8px 12px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius);
	background: var(--surface);
	font-size: 14px;
}

.product__details {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--line);
}

.product__long {
	flex: 1 1 420px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.product__long .prose {
	max-width: 600px;
}

.product__specs {
	flex: 1 1 380px;
	min-width: 0;
}

.product__specs .h2 {
	margin-bottom: 14px;
}

.specs {
	display: grid;
	grid-template-columns: minmax(110px, auto) 1fr;
	margin: 0;
	font-size: 16px;
}

.specs dt {
	padding: 10px 16px 10px 0;
	border-top: 1px solid var(--line);
	color: var(--muted-2);
}

.specs dd {
	margin: 0;
	padding: 10px 0;
	border-top: 1px solid var(--line);
}

.related {
	margin-top: 56px;
}

.related .h2 {
	margin-bottom: 20px;
}

/* 14. Cart & summary ---------------------------------------------------- */

.page-title {
	margin: 0 0 24px;
}

.page-title--tight {
	margin-bottom: 6px;
}

.cart-layout,
.checkout-layout {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
}

.cart-lines {
	flex: 1 1 560px;
	min-width: 0;
	border-top: 1px solid var(--line);
}

.cart-line {
	display: flex;
	gap: 18px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
}

.cart-line__media {
	flex: none;
	width: 88px;
	height: 110px;
	padding: 6px;
	background: var(--sand);
}

.cart-line__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cart-line__name {
	font-family: var(--serif);
	font-size: 20px;
	line-height: 1.2;
	color: var(--ink);
	text-decoration: none;
}

.cart-line__name:hover {
	color: var(--burgundy);
}

.cart-line__sub {
	font-size: 14px;
	color: var(--muted);
}

.cart-line__row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	align-items: center;
	margin-top: 6px;
}

.cart-line__qty {
	display: flex;
	align-items: center;
	gap: 16px;
}

.cart-line__total {
	font-size: 17px;
	font-weight: 600;
}

.cart-lines__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: space-between;
	align-items: center;
	margin-top: 20px;
}

.js .cart-lines__update {
	display: none;
}

.summary {
	position: sticky;
	top: var(--header-offset);
	flex: 0 1 380px;
	min-width: 280px;
	padding: 24px;
	border: 1px solid var(--line);
	background: var(--sand-2);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.summary__title {
	margin: 0;
	font-family: var(--serif);
	font-size: 24px;
	font-weight: 400;
}

.summary__note {
	font-size: 14px;
	line-height: 1.5;
	color: var(--muted);
}

.coupon summary {
	cursor: pointer;
	font-size: 14px;
	color: var(--burgundy);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.coupon__form {
	margin-top: 10px;
}

.coupon__form input {
	height: 44px;
}

.coupon__form .btn {
	height: 44px;
	padding: 0 14px;
}

/* 15. Checkout ---------------------------------------------------------- */

.checkout-intro {
	margin-bottom: 28px !important;
}

.checkout-main {
	flex: 1 1 560px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.checkout-step {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.checkout-step__title {
	margin: 0;
	font-family: var(--sans);
	font-size: 18px;
	font-weight: 600;
}

.checkout-fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}

.checkout-fields--address.is-hidden {
	display: none;
}

.form-row {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.form-row > label:not(.check) {
	font-size: 14px;
	font-weight: 500;
}

.form-row .woocommerce-input-wrapper {
	display: block;
}

.form-row .optional {
	font-weight: 400;
	color: var(--muted-2);
}

.form-row.woocommerce-invalid input.input-text,
.form-row.woocommerce-invalid select {
	border-color: var(--error);
}

.checkout-note {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--muted);
}

.delivery__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.delivery__option select,
.pickup-point-table select,
.pickup-point-table input[type="text"] {
	margin-top: 4px;
}

.pickup-point-table {
	width: 100%;
	border-collapse: collapse;
}

.pickup-point-table td {
	padding: 0;
}

.pickup-point-table label {
	display: block;
	margin: 6px 0 6px;
	font-size: 14px;
	font-weight: 500;
}

.age-box {
	padding: 18px;
	border: 1px solid var(--input);
	background: var(--surface);
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.age-box p {
	margin: 0;
	font-size: 15px;
	line-height: 1.55;
}

.age-box.is-error {
	border-color: var(--error);
}

.wc_payment_methods {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

.wc_payment_method {
	padding: 14px 16px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: var(--surface);
}

.wc_payment_method:has(> input:checked) {
	border-color: var(--burgundy);
	background: var(--burgundy-tint);
}

.wc_payment_method > input {
	width: 18px;
	height: 18px;
	margin: 0 10px 0 0;
	vertical-align: -3px;
	accent-color: var(--burgundy);
}

.wc_payment_method > label {
	font-weight: 600;
	cursor: pointer;
}

.wc_payment_method > label img {
	display: inline-block;
	max-height: 24px;
	margin-left: 8px;
	vertical-align: middle;
}

.payment_box {
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.5;
}

.payment_box p {
	margin: 0 0 0.6em;
}

.terms {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.woocommerce-privacy-policy-text p {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted);
}

.review {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.review__line {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 15px;
}

.review__amount {
	flex: none;
}

.summary--checkout {
	gap: 12px;
}

.summary--checkout .summary-row--total {
	font-size: 19px;
}

.blockUI.blockOverlay {
	background: rgba(247, 243, 236, 0.6) !important;
}

/* 16. Selection helper ------------------------------------------------- */

.helper {
	padding-top: 32px;
	padding-bottom: 80px;
}

.helper__ask {
	max-width: 760px;
	margin: 20px auto 0;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.helper__progress {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
}

.helper__progress span {
	height: 4px;
	background: #D9CFC0;
}

.helper__progress span.is-done {
	background: var(--burgundy);
}

.helper__count {
	font-size: 14px;
	color: var(--muted);
}

.helper__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px;
}

.helper-option {
	min-height: 64px;
	padding: 12px 18px;
	border: 1px solid var(--input);
	border-radius: var(--radius);
	background: var(--surface);
	text-align: left;
	font-size: 17px;
	font-weight: 500;
}

.helper-option:hover {
	border-color: var(--burgundy);
}

.helper-option.is-on,
.helper-option--sm.is-on {
	background: var(--burgundy);
	border-color: var(--burgundy);
	color: var(--bg);
}

.helper-option--sm {
	min-height: 36px;
	padding: 0 12px;
	font-size: 14px;
	font-weight: 400;
}

.helper__hint {
	margin: 0;
	padding: 12px 14px;
	background: #F0E3C8;
	font-size: 14px;
	line-height: 1.5;
}

.helper__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

.helper__nav .link-button {
	font-size: 15px;
}

.helper__foot {
	margin: 12px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--line);
	font-size: 14px;
	line-height: 1.55;
	color: var(--muted);
}

.helper__title {
	margin: 14px 0 28px;
}

.helper__results {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
}

.helper__answers {
	flex: 0 1 340px;
	min-width: 260px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.helper__answers-title {
	font-size: 15px;
	font-weight: 600;
}

.helper__answer {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}

.helper__answer-q {
	font-size: 14px;
	color: var(--muted);
}

.helper__answer-opts {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.helper__list {
	flex: 1 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.match {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	padding: 16px;
	border: 1px solid var(--line);
	background: var(--surface);
}

.match__media {
	flex: none;
	width: 120px;
	aspect-ratio: 4 / 5;
	padding: 8px;
	background: var(--sand);
}

.match__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.match__body {
	flex: 1 1 240px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.match__tag {
	align-self: flex-start;
	padding: 3px 8px;
	background: var(--olive-tint);
	font-size: 12px;
	font-weight: 600;
}

.match__tag--partial {
	background: #F0E3C8;
}

.match__name {
	font-family: var(--serif);
	font-size: 22px;
	line-height: 1.2;
	color: var(--ink);
	text-decoration: none;
}

.match__name:hover {
	color: var(--burgundy);
}

.match__meta {
	font-size: 14px;
	color: var(--muted);
}

.match__ok,
.match__miss {
	margin: 4px 0 0;
	padding-left: 18px;
	font-size: 15px;
	line-height: 1.5;
	color: #33382B;
}

.match__miss {
	margin-top: 0;
	color: #7A3B1F;
}

.match__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	margin-top: 6px;
}

.match__price {
	font-size: 18px;
	font-weight: 600;
}

.match__actions .btn {
	height: 42px;
	padding: 0 16px;
}

/* 17. Wine room & inquiry ---------------------------------------------- */

.hero__media {
	flex: 1 1 440px;
	min-width: 0;
	min-height: 440px;
	position: relative;
}

.hero__media .photo {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero--room .hero__text {
	gap: 20px;
}

.hero--room .lead {
	font-size: 18px;
	line-height: 1.6;
}

.info-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	border-top: 1px solid var(--line-2);
	border-bottom: 1px solid var(--line-2);
}

.info-row__item {
	padding: 22px 20px 22px 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.info-row__label {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-2);
}

.info-row__value {
	font-size: 17px;
}

.info-row__value--hours {
	font-size: 16px;
	line-height: 1.6;
}

.services {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 0 40px;
}

.services__item {
	padding: 20px 0 28px;
	border-top: 1px solid var(--line-2);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.services__title {
	margin: 0;
	font-family: var(--serif);
	font-size: 24px;
	font-weight: 400;
}

.services__item p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--ink-2);
}

.inquiry {
	margin: 64px var(--px) 72px;
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
}

.inquiry__intro {
	flex: 1 1 320px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.inquiry__intro p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
}

.inquiry__intro .lead-sm {
	font-size: 17px;
}

.inquiry__form {
	flex: 1 1 480px;
	min-width: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.inquiry__form input,
.inquiry__form select,
.inquiry__form textarea {
	border-color: #CFB5AE;
}

.inquiry__form .form-note {
	color: #4A3C38;
}

.inquiry__done {
	flex: 1 1 480px;
	min-width: 0;
	padding: 28px;
	background: var(--surface);
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: flex-start;
}

.inquiry__done p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
}

.inquiry__done .inquiry__done-title {
	font-family: var(--serif);
	font-size: 26px;
}

/* 18. About ------------------------------------------------------------ */

.hero--stacked {
	flex-direction: column;
	gap: 20px;
}

.hero__title-wide {
	max-width: 900px;
}

.hero__wide-photo {
	width: 100%;
	height: 440px;
	object-fit: cover;
}

.split--story {
	align-items: flex-start;
}

.split__aside {
	flex: 1 1 280px;
}

.split__main {
	flex: 2 1 520px;
	min-width: 0;
}

.team {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 32px;
}

.team__member {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.team__photo {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.team__name {
	margin: 0;
	font-family: var(--serif);
	font-size: 26px;
	font-weight: 400;
}

.team__member p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ink-2);
}

.cta-band {
	margin-top: 64px;
	margin-bottom: 72px;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	justify-content: space-between;
	align-items: center;
}

.cta-band .h2 {
	margin-bottom: 8px;
	font-size: 30px;
}

.cta-band p {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
}

/* 19. Content pages, account, WooCommerce notices ------------------------- */

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	margin: 0 0 20px;
	padding: 12px 16px;
	border-left: 3px solid var(--olive);
	background: var(--olive-tint);
	list-style: none;
	font-size: 15px;
	line-height: 1.5;
}

.woocommerce-error {
	border-left-color: var(--error);
	background: #F6E3E1;
}

.woocommerce-info {
	border-left-color: var(--input);
	background: var(--sand);
}

.woocommerce-error li + li {
	margin-top: 4px;
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	margin-left: 12px;
	font-weight: 600;
}

.woocommerce-NoticeGroup-checkout {
	flex-basis: 100%;
}

.wc-page .woocommerce:not(:has(.cart-layout, .checkout-layout, .empty-state)) {
	max-width: 960px;
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin: 0 0 28px;
	padding: 0 0 12px;
	border-bottom: 1px solid var(--line);
	list-style: none;
}

.woocommerce-MyAccount-navigation .is-active a {
	color: var(--ink);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce table.shop_table,
.woocommerce-orders-table,
.woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 10px 12px 10px 0;
	border-top: 1px solid var(--line);
	text-align: left;
	vertical-align: top;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce-ResetPassword,
.woocommerce-EditAccountForm {
	max-width: 480px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.woocommerce .button,
.woocommerce button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	padding: 0 18px;
	border: 1px solid var(--burgundy);
	border-radius: var(--radius);
	background: var(--burgundy);
	color: var(--bg);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce .button:hover {
	background: var(--burgundy-hover);
	color: var(--bg);
}

.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 32px;
	margin: 0 0 32px;
	padding: 20px;
	background: var(--olive-tint);
	list-style: none;
}

.woocommerce-order-overview strong {
	display: block;
}

.woocommerce-thankyou-order-received {
	font-family: var(--serif);
	font-size: 28px;
	line-height: 1.2;
}

.woocommerce-order h2,
.woocommerce-customer-details h2 {
	margin: 32px 0 12px;
	font-family: var(--serif);
	font-size: 26px;
	font-weight: 400;
}

.post-list {
	padding-left: 18px;
	line-height: 1.8;
}

/* 20. Mobile (< 760px) -------------------------------------------------- */

@media (max-width: 759.98px) {
	:root {
		--px: 20px;
		--h1: 40px;
		--h2: 30px;
		--band-pad: 28px 20px;
		--card-min: 150px;
		--tile-min: 150px;
		--header-offset: 140px;
	}

	.topbar {
		display: none;
	}

	.site-header__inner {
		gap: 10px;
	}

	.site-nav {
		display: none;
	}

	.site-search {
		flex: 1 1 100%;
		order: 3;
	}

	.cart-button__subtotal {
		display: none;
	}

	.menu-button {
		display: inline-flex;
	}

	.hero {
		padding: 28px var(--px) 32px;
	}

	.hero__images {
		height: 280px;
	}

	.band__media,
	.hero__media {
		min-height: 240px;
	}

	.hero__wide-photo {
		height: 240px;
	}

	.tagline--band {
		font-size: 19px;
	}

	.card__body {
		padding: 12px;
	}

	.card__title {
		font-size: 18px;
	}

	.btn--outline {
		width: 100%;
	}

	.shop__filters-button {
		display: inline-flex;
	}

	.filters {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 60;
		width: auto;
		max-height: none;
		overflow: hidden;
		background: var(--bg);
		flex-direction: column;
	}

	.filters.is-open {
		display: flex;
	}

	.filters__mobile-head {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 16px 20px;
		border-bottom: 1px solid var(--line);
	}

	.filters__dialog-title {
		font-family: var(--serif);
		font-size: 26px;
	}

	.filters__body {
		flex: 1;
		overflow: auto;
		padding: 0 20px;
	}

	.filters__head {
		display: none;
	}

	.facet {
		border-top: 0;
		border-bottom: 1px solid var(--line);
	}

	.facet__opt {
		min-height: 44px;
		font-size: 16px;
	}

	.filters__mobile-foot {
		display: flex;
		gap: 10px;
		padding: 14px 20px;
		border-top: 1px solid var(--line);
		background: var(--sand-2);
	}

	.filters__mobile-foot .btn--primary {
		flex: 1;
	}

	.sort {
		margin-left: 0;
		flex-basis: 100%;
	}

	.sort select {
		flex: 1;
	}

	.product {
		gap: 28px;
	}

	.product__media {
		padding: 20px;
	}

	.taste {
		margin-top: 40px;
	}

	.summary {
		position: static;
		flex-basis: 100%;
	}

	.drawer {
		max-width: none;
	}

	.match__media {
		width: 96px;
	}

	.info-row__item {
		padding-right: 0;
	}

	.inquiry__form {
		grid-template-columns: minmax(0, 1fr);
	}

	.cta-band .h2 {
		font-size: 26px;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
