/* ==========================================================================
   The Wine Shoppe on Park - main stylesheet
   Full-width layout: every band's background runs edge to edge; its content
   sits in a centred column no wider than --ws-max.
   Colours: burgundy #690D2A, cream #FEEDCB, black.
   ========================================================================== */

:root {
	--ws-burgundy: #690D2A;
	--ws-burgundy-dark: #4A0A1E;
	--ws-burgundy-2: #8E1238;
	--ws-wine: #9B1540;
	--ws-rose: #E2163F;
	--ws-rose-2: #F25A72;
	--ws-gold: #B9A632;
	--ws-gold-2: #D9CB66;
	--ws-cream: #FEEDCB;
	--ws-blush: #F6ECEF;
	--ws-blush-2: #EFE0E5;
	--ws-ink: #222;
	--ws-muted: #6F6F6F;
	--ws-line: #E2D6DA;
	--ws-max: 1320px;
	--ws-narrow: 820px;
	--ws-pad: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2.5rem));
	--ws-header-h: 92px;
	--ws-band-y: clamp(2.5rem, 6vw, 4.5rem);
	--ws-red-grad: linear-gradient(90deg, #5E0B26 0%, #9B1540 100%);
	--ws-rose-grad: linear-gradient(90deg, #D9123A 0%, #F2536E 100%);
	--ws-white-grad: linear-gradient(90deg, #A8962A 0%, #D4C55E 100%);
	--ws-shadow: 0 10px 30px rgba(40, 6, 18, .12);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--ws-header-h) + 1rem); }
body { margin: 0; background: #fff; color: var(--ws-ink); overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--ws-burgundy); }
a:hover { color: var(--ws-wine); }
:focus-visible { outline: 3px solid var(--ws-rose); outline-offset: 2px; }
h1, h2, h3, h4 { color: var(--ws-burgundy); line-height: 1.2; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed !important; top: .5rem; left: .5rem; width: auto; height: auto; clip: auto; z-index: 1000; background: #fff; padding: .6rem 1rem; }

/* The centred column every band uses. */
.ws-container {
	width: 100%;
	max-width: calc(var(--ws-max) + 2 * var(--ws-pad));
	margin-inline: auto;
	padding-inline: var(--ws-pad);
}
.ws-narrow { max-width: calc(var(--ws-narrow) + 2 * var(--ws-pad)); margin-inline: auto; padding-inline: var(--ws-pad); }

/* ---------- Buttons ---------------------------------------------------- */

.ws-button,
.wp-element-button,
.button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-block;
	background: var(--ws-burgundy);
	color: #fff;
	border: 2px solid transparent;
	border-radius: 3px;
	padding: .75em 1.6em;
	font: 700 .9rem/1.2 Montserrat, sans-serif;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
}
.ws-button:hover, .wp-element-button:hover, .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--ws-wine); color: #fff; }
.woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--ws-burgundy); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--ws-wine); }
.ws-button--ghost { background: transparent; color: inherit; border-color: currentColor; }
.ws-button--ghost:hover { background: #fff; color: var(--ws-burgundy); border-color: #fff; }
/* Ghost buttons set their own text colour on dark bands (hero, About Us); keep the hover readable there too. */
.ws-button.ws-button--ghost:hover, .ws-button.ws-button--ghost:focus-visible,
.site-hero__actions .ws-button--ghost:hover, .site-hero__actions .ws-button--ghost:focus-visible,
.ws-about-band__actions .ws-button--ghost:hover, .ws-about-band__actions .ws-button--ghost:focus-visible { background: var(--ws-cream); color: var(--ws-burgundy-dark); border-color: var(--ws-cream); }
.is-style-outline .wp-element-button { background: transparent; color: var(--ws-burgundy); border-color: currentColor; }

/* ---------- Contact bar ------------------------------------------------ */

.site-topbar { background: var(--ws-burgundy-dark); color: #f3dfe5; font-size: .8rem; }
.site-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 36px; }
.site-topbar p { margin: 0; display: flex; align-items: center; }
.site-topbar a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; }
.site-topbar a:hover { color: #fff; text-decoration: underline; }
.site-topbar svg { width: 15px; height: 15px; margin-right: .4rem; color: var(--ws-rose-2); flex: none; }
.site-topbar__phone { font-weight: 700; }

/* ---------- Header ----------------------------------------------------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff var(--ws-vines) center top / auto 100% repeat-x;
	box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { display: flex; align-items: center; gap: 1.5rem; height: var(--ws-header-h); }

.site-logo, .custom-logo-link {
	position: relative;
	z-index: 3;
	flex: 0 0 auto;
	align-self: flex-start;
	margin-top: 10px;
	width: 160px;
	filter: drop-shadow(0 3px 6px rgba(0,0,0,.3));
}
.site-logo img, .custom-logo { display: block; width: 100%; height: auto; }

.site-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.site-nav__menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: .25rem; }
.site-nav__menu > li { position: relative; }
.site-nav__menu > li > a {
	display: flex;
	align-items: center;
	gap: .35rem;
	padding: .65rem .9rem;
	color: #1a1a1a;
	text-decoration: none;
	font-weight: 600;
	font-size: .92rem;
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: 3px;
	text-shadow: 0 0 4px #fff, 0 0 10px #fff, 0 0 16px #fff;
}
.site-nav__menu > .menu-item-has-children > a::after {
	content: "";
	width: .45em; height: .45em;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	opacity: .6;
}
.site-nav__menu > li > a:hover,
.site-nav__menu > .current-menu-item > a,
.site-nav__menu > .current-menu-ancestor > a { color: var(--ws-burgundy); background: var(--ws-blush); }
.site-nav__menu > .menu-cta > a { background: var(--ws-burgundy); color: #fff; margin-right: .4rem; text-shadow: none; }
.site-nav__menu > .menu-cta > a:hover, .site-nav__menu > .menu-cta.current-menu-item > a { background: var(--ws-wine); color: #fff; }

.site-nav .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 250px;
	list-style: none;
	margin: 0;
	padding: .5rem 0;
	background: #fff;
	border-top: 3px solid var(--ws-burgundy);
	border-radius: 0 0 4px 4px;
	box-shadow: var(--ws-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .15s, transform .15s, visibility .15s;
}
.site-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.site-nav .sub-menu a { display: block; padding: .55rem 1.2rem; color: #222; text-decoration: none; font-size: .92rem; }
.site-nav .sub-menu a:hover, .site-nav .sub-menu .current-menu-item > a { background: var(--ws-blush); color: var(--ws-burgundy); }

.site-tools { flex: 0 0 auto; display: flex; align-items: center; gap: .6rem; }
.site-tools__account, .site-tools__cart {
	position: relative;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	min-width: 58px; height: 58px; padding: 0 .4rem;
	border-radius: 4px;
	text-decoration: none; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
}
.site-tools__account { color: #1a1a1a; text-shadow: 0 0 6px #fff, 0 0 12px #fff; }
.site-tools__account:hover { color: var(--ws-burgundy); background: var(--ws-blush); }
.site-tools__cart { color: #fff; background: radial-gradient(circle at 50% 35%, #8E1238 0%, #690D2A 75%); }
.site-tools__cart:hover { color: #fff; background: var(--ws-wine); }
.site-tools svg { width: 26px; height: 26px; margin-bottom: 2px; }
.cart-count {
	position: absolute; right: -6px; top: -6px;
	min-width: 1.4rem; height: 1.4rem; padding: 0 .3rem;
	border-radius: 999px; background: var(--ws-cream); color: var(--ws-burgundy);
	font: 700 .75rem/1.4rem Montserrat, sans-serif; text-align: center;
	box-shadow: 0 1px 3px rgba(0,0,0,.3);
}
.cart-count[data-count="0"] { display: none; }

.nav-toggle { display: none; }

/* ---------- Hero (home) and banner (other pages) ------------------------ */

.site-hero {
	background: #0a0809 var(--ws-hero) 70% center / cover no-repeat;
	color: var(--ws-cream);
}
.site-hero__inner {
	min-height: clamp(340px, 30vw, 480px);
	padding-block: 3rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.site-hero p, .site-hero h1 { margin: 0; }
.site-hero h1.site-hero__line1 { color: inherit; font-family: inherit; letter-spacing: normal; text-transform: none; }
.site-hero__line1 { font-weight: 300; font-size: clamp(1.9rem, 3.3vw, 3.2rem); line-height: 1.12; max-width: 10em; }
.site-hero__line2 { font-weight: 300; font-size: clamp(1.15rem, 1.8vw, 1.6rem); margin-top: 1rem !important; color: #fff; opacity: .9; }
.site-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem !important; }
.site-hero__actions .ws-button--ghost { color: var(--ws-cream); }

/* Home hero video: plays behind the text, poster shows until it starts */
.site-hero--video { position: relative; overflow: hidden; isolation: isolate; background-position: center; }
.site-hero__video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.site-hero--video::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(20,4,10,.86) 0%, rgba(40,8,20,.62) 42%, rgba(0,0,0,.12) 78%, rgba(0,0,0,0) 100%); }
.site-hero--video .site-hero__inner { min-height: clamp(380px, 38vw, 560px); background: none !important; text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.site-hero--video .ws-button { text-shadow: none; }
.site-hero__pause { position: absolute; right: clamp(.8rem, 2vw, 1.5rem); bottom: clamp(.8rem, 2vw, 1.5rem); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.6); background: rgba(0,0,0,.35); cursor: pointer; display: grid; place-items: center; }
.site-hero__pause:hover, .site-hero__pause:focus-visible { background: rgba(0,0,0,.6); }
.site-hero__pause span { width: 12px; height: 14px; border-left: 4px solid #fff; border-right: 4px solid #fff; }
.site-hero__pause[aria-pressed="true"] span { width: 0; height: 0; border: 0; border-left: 12px solid #fff; border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 3px; }
@media (prefers-reduced-motion: reduce) {
	.site-hero__video { display: none; }
	.site-hero__pause { display: none; }
}
@media (max-width: 860px) {
	.site-hero--video::before { background: linear-gradient(180deg, rgba(20,4,10,.55) 0%, rgba(20,4,10,.82) 100%); }
	.site-hero--video .site-hero__inner { min-height: 420px; }
}

.site-banner {
	background:
		linear-gradient(90deg, rgba(18,4,9,.94) 0%, rgba(74,10,30,.86) 55%, rgba(105,13,42,.55) 100%),
		#2a0a14 var(--ws-hero) center 38% / cover no-repeat;
	color: #fff;
}
.site-banner__inner { padding-block: clamp(1.8rem, 4vw, 3rem); }
.site-banner__title { margin: 0; color: #fff; font-size: clamp(1.7rem, 3.4vw, 2.6rem); font-weight: 700; line-height: 1.15; }
.site-banner__crumb { margin: 0 0 .35rem; font-size: .82rem; color: #e9c7d1; }
.site-banner__crumb a { color: inherit; text-decoration: none; }
.site-banner__crumb a:hover { color: #fff; text-decoration: underline; }

/* ---------- Main & content --------------------------------------------- */

.site-main { display: block; min-height: 40vh; }
.widget-area--before-content-block { padding-block: 1rem; background: var(--ws-cream); }
/* Widget areas and Common Blocks. Common Blocks run full width (their sections set
   their own width); anything else dropped into a full-width area is centred. */
.widget-area--after-content-block > .widget:not(:has(> .ws-common-block)),
.site-prefooter > .widget:not(:has(> .ws-common-block)) { max-width: var(--ws-max); margin-inline: auto; padding: 2rem var(--ws-pad); }
.ws-common-block > :where(:not(section):not(.alignfull):not(.wp-block-group):not(.wp-block-ws-about-band):not(.wp-block-ws-testimonial)) { max-width: var(--ws-max); margin-inline: auto; }
.widget-area--after-content-block .ws-common-block > :where(p, h2, h3, ul, ol, .wp-block-buttons, .wp-block-columns) { padding-inline: var(--ws-pad); }
.ws-common-block .is-layout-flow > *, .ws-common-block .site-footer__cols > *, .ws-common-block .site-newsletter__inner > * { margin-block-start: 0; }
.ws-common-block .site-footer__cols > * > * + * { margin-top: 0; }
.ws-common-block .site-footer__cols > * > .site-footer__label + * { margin-top: 0; }
.site-footer .widget + .widget { margin-top: 2rem; }
.site-footer .widget-area--footer-content-block .widget:not(:has(> .ws-common-block)) { color: #e8dde0; }
.ws-shop__aside .widget-area { margin-top: 1.5rem; }
.ws-shop__aside .widget + .widget { margin-top: 1.2rem; }

.page-header { padding-top: 2.5rem; }
.page-title { margin: 0; color: var(--ws-burgundy); font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
.page-header__meta { margin: 0 0 .4rem; color: var(--ws-muted); font-size: .9rem; }

.entry-content { padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.entry-content.has-global-padding { padding-left: var(--ws-pad); padding-right: var(--ws-pad); }
.entry-content > * + * { margin-top: 1.1rem; }
.entry-content > h2, .entry-content > h3 { margin-top: 2.2rem; }
.entry-content img { height: auto; }
.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content td, .entry-content th { padding: .5rem .6rem; border-bottom: 1px solid var(--ws-line); vertical-align: top; }
.entry-content p, .entry-content li { line-height: 1.7; }

/* Widths: text column, wide, and full-bleed bands. */
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--ws-narrow); margin-left: auto !important; margin-right: auto !important; }
.is-layout-constrained > .alignwide { max-width: var(--ws-max); }
.entry-content > .alignfull { margin-left: calc(-1 * var(--ws-pad)) !important; margin-right: calc(-1 * var(--ws-pad)) !important; max-width: none; width: auto; }
.alignfull.wp-block-group,
.alignfull.wp-block-cover,
.alignfull.wp-block-media-text { padding-left: max(var(--ws-pad), calc((100% - var(--ws-max)) / 2)); padding-right: max(var(--ws-pad), calc((100% - var(--ws-max)) / 2)); }
.alignfull.wp-block-group > * { max-width: none; }
.alignfull.wp-block-group > .alignwide, .alignfull.wp-block-group > .wp-block-columns { max-width: var(--ws-max); }
.entry-content > :first-child.alignfull { margin-top: calc(-1 * clamp(2rem, 5vw, 3.5rem)) !important; }
.entry-content > :last-child.alignfull { margin-bottom: calc(-1 * clamp(2.5rem, 6vw, 4.5rem)) !important; }
.is-home-panel .entry-content > .alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Wide module blocks inside ordinary pages. */
.entry-content > .wp-block-ws-wine-list { max-width: var(--ws-max) !important; }
.entry-content > .wp-block-ws-booking-wizard,
.entry-content > .wp-block-ws-next-available { max-width: 1000px !important; }

.ws-article-aside { margin-top: 2rem; padding: 1rem 1.25rem; background: var(--ws-blush); }

/* ---------- Home ------------------------------------------------------- */

.is-home-panel .entry-content { padding-top: 0; padding-bottom: 0; }
.is-home-panel .entry-content > * + * { margin-top: 0; }
.wp-block-spacer { margin: 0 !important; }

.is-style-panel-black { background: #000; color: #f1f1f1; }
.is-style-panel-black :where(h1,h2,h3,h4) { color: #fff; }
.is-style-panel-black a:where(:not(.wp-element-button)) { color: var(--ws-cream); }
.is-style-panel-white { background: #fff; color: var(--ws-ink); }

.ws-welcome { padding-top: var(--ws-band-y); padding-bottom: var(--ws-band-y); }
.ws-welcome > .wp-block-columns { gap: clamp(2rem, 5vw, 4rem); align-items: center; margin: 0 auto; }
.ws-welcome h2 { font-weight: 600; font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin: 0 0 1rem; }
.ws-welcome p { font-size: 1rem; line-height: 1.7; color: #ddd; }
.ws-welcome .wp-block-buttons { margin: 1.4rem 0; }

.ws-section-title { text-align: center; margin: 0 0 2rem !important; font-size: clamp(1.5rem, 2.6vw, 2.1rem); }

/* Chalkboard price list (ws/range-prices) */
.ws-prices--chalkboard {
	position: relative;
	padding: 1.6rem 1.8rem 1.4rem;
	background:
		radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.07), transparent 60%),
		radial-gradient(ellipse at 70% 80%, rgba(255,255,255,.05), transparent 55%),
		#1d2421;
	color: #f3f1ea;
	font-family: Caveat, cursive;
	border: 18px solid #8c7a63;
	border-image: repeating-linear-gradient(45deg, #9b886f 0 6px, #7e6c56 6px 11px, #a39077 11px 16px) 18;
	box-shadow: 0 12px 28px rgba(0,0,0,.6), inset 0 0 40px rgba(0,0,0,.6);
	transform: rotate(-1.2deg);
	max-width: 520px;
	margin-inline: auto;
}
.ws-prices--chalkboard .ws-prices__title { margin: 0; font-family: Caveat, cursive; font-size: 2.6rem; color: #fff; text-transform: uppercase; letter-spacing: .06em; line-height: 1; }
.ws-prices--chalkboard .ws-prices__subtitle { margin: .2rem 0 .8rem; font-size: 1.15rem; opacity: .85; color: #f3f1ea; }
.ws-prices__table { width: 100%; border-collapse: collapse; line-height: 1.15; }
.ws-prices__table th, .ws-prices__table td { padding: .1rem .3rem; border: 0; font-weight: 400; text-align: right; white-space: nowrap; font-size: 1.4rem; }
.ws-prices__table thead th { font-size: 1.05rem; opacity: .8; border-bottom: 1px dashed rgba(255,255,255,.35); }
.ws-prices__table tbody th { text-align: left; }
.ws-prices__table tbody th a { color: inherit !important; text-decoration: none; }
.ws-prices__table tbody th a:hover { text-decoration: underline; }
.ws-prices--plain { font-family: inherit; }
.ws-prices--plain .ws-prices__table th, .ws-prices--plain .ws-prices__table td { font-size: 1rem; border-bottom: 1px solid var(--ws-line); padding: .45rem .4rem; }

/* Category tiles */
.ws-tiles-band { background: var(--ws-blush); padding-top: var(--ws-band-y); padding-bottom: var(--ws-band-y); }
.is-style-tiles {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 2.5vw, 2rem);
	max-width: 1200px !important;
	margin: 0 auto !important;
}
.is-style-tiles > * { margin: 0 !important; }
.is-style-tiles .wp-block-image { margin: 0; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 2px 10px rgba(60,10,25,.08); transition: transform .2s, box-shadow .2s; }
.is-style-tiles .wp-block-image:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(105,13,42,.22); }
.is-style-tiles .wp-block-image a { display: block; }
.is-style-tiles .wp-block-image img { width: 100%; aspect-ratio: 275 / 170; object-fit: cover; display: block; }
.is-style-tiles .wp-element-caption, .is-style-tiles figcaption { margin: 0; padding: .85rem .8rem; color: var(--ws-burgundy); font-weight: 700; font-size: 1rem; line-height: 1.25; text-align: center; }
.is-style-tiles figcaption a { color: inherit; text-decoration: none; }
.is-style-tiles figcaption a::after { content: " →"; opacity: 0; transition: opacity .15s; }
.is-style-tiles .wp-block-image:hover figcaption a::after { opacity: 1; }

/* Featured special (ws/featured-product) */
.ws-featured-band { padding-top: var(--ws-band-y); padding-bottom: var(--ws-band-y); }
.ws-featured-band:not(:has(.ws-featured)) { display: none; }
.ws-featured {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 2rem;
	max-width: var(--ws-max);
	margin: 0 auto;
	min-height: 320px;
	padding: 2rem clamp(1.5rem, 4vw, 3rem);
	background: #fff url(../img/featured-bg.jpg) left center / cover no-repeat;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: var(--ws-shadow);
}
.ws-featured::before {
	content: "Featured Special";
	position: absolute; top: 0; left: clamp(1.5rem, 4vw, 3rem); z-index: 2;
	padding: .4rem .95rem;
	border-radius: 0 0 6px 6px;
	background: var(--ws-burgundy); color: #fff;
	font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap;
	box-shadow: 0 3px 8px rgba(0,0,0,.15);
}
.ws-featured__media { order: 2; text-align: center; }
.ws-featured__media img { max-height: 300px; width: auto; }
.ws-featured__body { order: 1; margin-left: 8%; margin-top: 1rem; padding: 1.5rem 1.6rem; background: rgba(255,255,255,.9); border-radius: 6px; }
.ws-featured__eyebrow { display: none; }
.ws-featured__title { margin: 0 0 .4rem; font-size: 1.6rem; color: var(--ws-burgundy); }
.ws-featured__title a { color: inherit; text-decoration: none; }
.ws-featured__text { font-size: .95rem; line-height: 1.55; color: #333; }
.ws-featured__price { font-size: 1rem; color: var(--ws-burgundy); font-weight: 700; }
.ws-featured__label { font-weight: 600; }

/* Banner group (Wedding packages, seasonal promos): blush text panel + photo */
.ws-banner { background: #F3E7EA; color: #333; padding-top: 0 !important; padding-bottom: 0 !important; }
.ws-banner > .wp-block-columns { gap: 0; margin: 0 auto; align-items: stretch; }
.ws-banner .wp-block-column:first-child { padding: clamp(2rem, 5vw, 3.5rem) clamp(1rem, 4vw, 3rem) clamp(2rem, 5vw, 3.5rem) 0; align-self: center; }
.ws-banner h2 { color: var(--ws-burgundy); font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin: 0 0 1rem; }
.ws-banner p { margin: .35rem 0 .9rem; font-size: 1.05rem; }
.ws-banner .wp-block-image { margin: 0; height: 100%; }
.ws-banner .wp-block-image img { width: 100%; height: 100%; min-height: 300px; object-fit: cover; display: block; }
.wp-block-media-text.is-style-banner { background: #F3E7EA; color: #333; }
.wp-block-media-text.is-style-banner .wp-block-media-text__content { padding: 2rem 2.5rem; }
.wp-block-media-text.is-style-banner h2 { color: var(--ws-burgundy); font-size: 1.6rem; margin: 0 0 1rem; }
.wp-block-media-text.is-style-banner .wp-block-media-text__media img { height: 100%; object-fit: cover; }

.ws-gap { height: clamp(3rem, 12vw, 9rem); }

/* ---------- Wine list ----------------------------------------------- */

.ws-wine-list { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 2rem; align-items: start; }
.ws-wine-list:not(:has(.ws-wine-search)) { display: block; }
.ws-wine-list__results { min-width: 0; }
.ws-wine-search {
	position: sticky; top: var(--ws-filter-top, calc(var(--ws-header-h) + .75rem));
	padding: 1.2rem 1.2rem 1.4rem;
	background: var(--ws-blush);
	border-radius: 6px;
	font-size: .88rem; color: #333;
}
.ws-wine-search__head { margin-bottom: 1rem; }
.ws-wine-search__title { margin: 0 0 .6rem; font-size: 1.15rem; color: var(--ws-burgundy); }
.ws-wine-search__keyword { position: relative; }
.ws-wine-search__keyword input {
	width: 100%; padding: .6rem 2.8rem .6rem 1rem;
	border: 2px solid var(--ws-burgundy); border-radius: 999px; font: inherit; font-size: .95rem; background: #fff;
}
.ws-wine-search__go { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--ws-burgundy); cursor: pointer; padding: .2rem; }
.ws-wine-search__go svg { width: 24px; height: 24px; display: block; }
.ws-wine-search__more > summary { display: none; }
.ws-wine-search fieldset { border: 0; margin: 0 0 1rem; padding: 1rem 0 0; border-top: 1px solid var(--ws-blush-2); display: grid; grid-template-columns: 1fr 1fr; gap: .45rem .8rem; }
.ws-wine-search legend { float: left; width: 100%; margin-bottom: .5rem; padding: 0; color: var(--ws-burgundy); font-weight: 700; font-size: .85rem; line-height: 1.35; grid-column: 1 / -1; }
.ws-wine-search legend.screen-reader-text { float: none; width: 1px; }
.ws-wine-search label { display: flex; align-items: center; gap: .4rem; cursor: pointer; }
.ws-wine-search fieldset label { flex-direction: row-reverse; justify-content: flex-end; }
.ws-wine-search input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: var(--ws-burgundy); flex: none; }
.ws-wine-search__flags svg { width: 20px; height: 20px; color: var(--ws-burgundy); }
.ws-wine-search__hint { grid-column: 1 / -1; font-size: .72rem; color: #777; }
.ws-wine-search__chars { display: grid; gap: .6rem; padding-top: 1rem; border-top: 1px solid var(--ws-blush-2); }
.ws-wine-search__chars-title { color: var(--ws-burgundy); font-weight: 700; font-size: .85rem; }
.ws-wine-search__chars label { display: grid; grid-template-columns: 1fr; gap: .2rem; font-weight: 600; font-size: .8rem; }
.ws-wine-search select { width: 100%; border: 1px solid #cbb7bd; border-radius: 3px; padding: .45rem .5rem; font: inherit; font-weight: 400; background: #fff; }
.ws-wine-search__actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.2rem; }
.ws-wine-search__clear { color: #777; font-size: .82rem; }
.ws-wine-search__submit { font-size: .85rem; padding: .6em 1.4em; }

.ws-wine-list__count { margin: 0 0 .5rem; font-size: .9rem; font-weight: 600; color: var(--ws-muted); }
.ws-wine-table-wrap { overflow: visible; }
.ws-wine-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.ws-wine-table thead th {
	position: sticky; top: var(--ws-header-h); z-index: 2;
	padding: .75rem .55rem; background: var(--ws-burgundy); color: #fff;
	font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-align: left; vertical-align: bottom;
}
.ws-wine-table td { padding: .7rem .55rem; vertical-align: middle; border-bottom: 1px solid var(--ws-line); }
.ws-wine-table tbody tr:hover { background: #fbf5f7; }
.ws-wine-table tbody tr:nth-child(even of :not([hidden], .is-beyond)) { background: var(--ws-blush); }
.ws-wine-table tbody tr.is-beyond { display: none; }
.ws-wine-table .ws-col-marks { white-space: nowrap; width: 70px; }
.ws-wine-table .ws-col-marks svg { width: 20px; height: 20px; color: var(--ws-burgundy); }
.ws-col-name { font-weight: 600; }
.ws-col-name a { color: var(--ws-ink); text-decoration: none; }
.ws-col-name a:hover { color: var(--ws-burgundy); text-decoration: underline; }
.ws-col-price { font-weight: 700; color: var(--ws-burgundy); white-space: nowrap; }
.ws-col-price del { color: var(--ws-muted); font-weight: 400; }
.ws-buy {
	display: inline-block; padding: .45rem .8rem; border-radius: 3px;
	background: var(--ws-burgundy); color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em;
}
.ws-buy:hover { color: #fff; background: var(--ws-wine); }
.ws-soldout { color: var(--ws-muted); font-style: italic; white-space: nowrap; }
.ws-wine-list__empty { text-align: center; padding: 2rem; }
.ws-wine-list__more { text-align: center; margin: 1.5rem 0 0; }
.ws-wine-list__note { font-size: .78rem; color: var(--ws-muted); margin-top: 1rem; }

.ws-badges { display: inline-flex; gap: .2rem; align-items: center; }
.ws-badges svg, .ws-badge svg { width: 22px; height: 22px; color: var(--ws-burgundy); }

/* ---------- Single wine ---------------------------------------------- */

.ws-wine { padding-block: 0; }
.ws-wine__banner {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .7rem 1.2rem; margin: 0 0 2rem; border-radius: 4px;
	background: var(--ws-red-grad); color: #fff;
}
.ws-wine--rose .ws-wine__banner { background: var(--ws-rose-grad); }
.ws-wine--white .ws-wine__banner { background: var(--ws-white-grad); color: #111; }
.ws-wine__title { margin: 0; color: inherit; font-size: clamp(1.3rem, 2.4vw, 1.8rem); }
.ws-wine__rating { display: flex; align-items: center; gap: .6rem; color: inherit; text-decoration: none; font-size: .75rem; white-space: nowrap; }
.ws-wine__rating .star-rating { color: #fff; }
.ws-wine--white .ws-wine__rating .star-rating { color: #111; }
.ws-wine__grid { display: grid; grid-template-columns: 300px 1fr; gap: 2rem 3rem; }
.ws-wine__media { text-align: center; }
.ws-wine__type { margin: 0 0 .5rem; text-align: left; color: #bbb; font-weight: 700; font-size: 2.3rem; line-height: 1; }
.ws-wine__image { max-height: 440px; width: auto; }
.ws-wine__media .ws-badges { display: flex; justify-content: center; margin: .8rem 0; }
.ws-order-button {
	display: inline-block; padding: .65rem 1.8rem; border-radius: 3px; color: #fff; font-weight: 700; text-transform: uppercase; text-decoration: none; letter-spacing: .04em;
	background: var(--ws-red-grad);
}
.ws-order-button--rose { background: var(--ws-rose-grad); }
.ws-order-button--white { background: var(--ws-white-grad); color: #111; }
.ws-order-button:hover { color: #fff; filter: brightness(1.1); }
.ws-wine__details { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1.4rem; margin: 0 0 1.4rem; font-size: .95rem; }
.ws-wine__detail { display: contents; }
.ws-wine__detail dt { font-weight: 700; }
.ws-wine__detail dd { margin: 0; }
.ws-wine__description { font-size: .98rem; line-height: 1.7; }
.ws-wine__staff { font-style: italic; color: var(--ws-burgundy); }
.ws-wine__order { margin-top: 2rem; padding: 1.5rem; background: var(--ws-blush); border-left: 4px solid var(--ws-burgundy); border-radius: 0 6px 6px 0; }
.ws-wine--rose .ws-wine__order { border-color: var(--ws-rose); }
.ws-wine--white .ws-wine__order { border-color: var(--ws-gold); }
.ws-wine__price { margin: 0; font-size: 1.7rem; font-weight: 700; color: var(--ws-burgundy); }
.ws-wine__yield { margin: .2rem 0 1rem; font-size: .88rem; color: #555; }
.ws-batch-options { display: grid; gap: .9rem; margin-bottom: 1rem; }
.ws-batch-option { border: 0; margin: 0; padding: 0; }
.ws-batch-option legend { font-weight: 700; margin-bottom: .3rem; padding: 0; }
.ws-batch-option label { display: flex; gap: .5rem; align-items: flex-start; margin: .2rem 0; font-size: .95rem; }
.ws-batch-option input[type=radio] { accent-color: var(--ws-burgundy); margin-top: .25rem; }
.ws-batch-option--notes textarea { width: 100%; font: inherit; padding: .5rem; border: 1px solid var(--ws-line); }
.ws-batch-quantity-label { margin: .2rem 0 0; font-weight: 700; }
.ws-wine form.cart { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem; }
.ws-wine form.cart .ws-batch-options { flex-basis: 100%; }
.ws-wine form.cart .quantity input { width: 4.5rem; padding: .6rem; font: inherit; border: 1px solid var(--ws-line); }
.ws-wine__reviews { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ws-line); }
.ws-wine__reviews #reply-title { color: var(--ws-burgundy); font-size: 1.3rem; }
.ws-wine .related > h2 { color: var(--ws-burgundy); }
.ws-gc-fields { display: grid; gap: .6rem; flex-basis: 100%; }
.ws-gc-fields label { display: block; font-weight: 600; font-size: .9rem; }
.ws-gc-fields input, .ws-gc-fields textarea { width: 100%; padding: .5rem; font: inherit; border: 1px solid var(--ws-line); }

/* ---------- Shop (WooCommerce) ---------------------------------------- */

.ws-shop { padding-top: clamp(1.8rem, 4vw, 3rem); padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.ws-shop--listing { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.ws-shop__aside { min-width: 0; position: sticky; top: calc(var(--ws-header-h) + 1rem); display: grid; gap: 1.2rem; font-size: .92rem; }
.ws-shop__aside .woocommerce-product-search { display: flex; min-width: 0; }
.ws-shop__aside .woocommerce-product-search input[type=search] { flex: 1; min-width: 0; width: auto; padding: .6rem .8rem; border: 1px solid #cbb7bd; border-right: 0; border-radius: 3px 0 0 3px; font: inherit; }
.ws-shop__aside .woocommerce-product-search button { padding: .6rem .9rem; border: 0; border-radius: 0 3px 3px 0; background: var(--ws-burgundy); color: #fff; font: 700 .8rem Montserrat, sans-serif; text-transform: uppercase; cursor: pointer; }
.ws-shop__cats { background: var(--ws-blush); border-radius: 6px; padding: .4rem 0 .8rem; }
.ws-shop__cats summary { padding: .6rem 1rem; font-weight: 700; color: var(--ws-burgundy); cursor: pointer; list-style: none; }
.ws-shop__cats summary::-webkit-details-marker { display: none; }
.ws-shop__cats ul { list-style: none; margin: 0; padding: 0; }
.ws-shop__cats li a { display: block; padding: .38rem 1rem; color: #333; text-decoration: none; border-left: 3px solid transparent; }
.ws-shop__cats li a:hover { color: var(--ws-burgundy); background: var(--ws-blush-2); }
.ws-shop__cats .current-cat > a { color: var(--ws-burgundy); font-weight: 700; border-left-color: var(--ws-burgundy); background: #fff; }
.ws-shop__cats .children { display: none; }
.ws-shop__cats .current-cat > .children, .ws-shop__cats .current-cat-parent > .children, .ws-shop__cats .current-cat-ancestor > .children { display: block; }
.ws-shop__cats .children a { padding-left: 1.9rem; font-size: .86rem; }
.ws-shop__cats .children .children a { padding-left: 2.8rem; }
.ws-shop__wines { margin: 0; font-size: .86rem; font-weight: 600; }

.woocommerce .woocommerce-breadcrumb { display: none; }
.woocommerce .woocommerce-result-count { margin: .5rem 0 1rem; font-size: .85rem; color: var(--ws-muted); }
.woocommerce .woocommerce-ordering select { padding: .45rem .6rem; border: 1px solid #cbb7bd; border-radius: 3px; font: inherit; font-size: .85rem; }
.term-description { margin-bottom: 1.5rem; color: #444; }

.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1.6rem; margin: 0 0 2rem !important; clear: both; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	float: none !important; width: auto !important; margin: 0 !important;
	display: flex; flex-direction: column;
	padding: 0 0 1rem; background: #fff; border: 1px solid var(--ws-line); border-radius: 6px; overflow: hidden;
	transition: box-shadow .2s, transform .2s;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--ws-shadow); transform: translateY(-2px); }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1; object-fit: contain; background: #fff; padding: .8rem; margin: 0 0 .6rem; border-bottom: 1px solid var(--ws-line); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title { padding: 0 1rem !important; font-size: .95rem !important; font-weight: 600; color: var(--ws-ink); line-height: 1.35; }
.woocommerce ul.products li.product .price { padding: 0 1rem; color: var(--ws-burgundy) !important; font-weight: 700; font-size: 1rem !important; }
.woocommerce ul.products li.product .button { margin: auto 1rem 0 !important; text-align: center; font-size: .78rem; }
.woocommerce ul.products li.product .added_to_cart { margin: .4rem 1rem 0; font-size: .8rem; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { flex: 1; display: flex; flex-direction: column; text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 0 1rem .4rem; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: .3rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 2.4rem; padding: .55rem; border-radius: 3px; background: var(--ws-blush); color: var(--ws-burgundy); }
.woocommerce nav.woocommerce-pagination ul li span.current, .woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--ws-burgundy); color: #fff; }

.woocommerce div.product .product_title { color: var(--ws-burgundy); }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ws-burgundy); font-weight: 700; }
.woocommerce div.product div.images img { border: 1px solid var(--ws-line); border-radius: 6px; background: #fff; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom-color: #fff; }
.woocommerce span.onsale { background: var(--ws-rose); border-radius: 3px; min-height: 0; min-width: 0; padding: .25em .7em; line-height: 1.4; top: .6rem !important; left: .6rem !important; margin: 0 !important; }
.ws-member-price { display: block; font-size: .85em; color: var(--ws-wine); }
.woocommerce-message, .woocommerce-info { border-top-color: var(--ws-burgundy); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--ws-burgundy); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { border: 1px solid #c9c0c3; padding: .6rem .7rem; border-radius: 3px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; background: var(--ws-blush); border-radius: 6px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: .65rem 1rem; text-decoration: none; border-left: 3px solid transparent; color: #333; }
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a { border-color: var(--ws-burgundy); background: #fff; color: var(--ws-burgundy); font-weight: 700; }
.ws-account-membership { padding: 1rem 1.2rem; background: var(--ws-blush); margin-bottom: 1.2rem; border-radius: 6px; }

/* ---------- About band + testimonial ---------------------------------- */

.ws-about-band { background: #0d0a0b; color: #eee; }
.ws-about-band__pano { position: relative; height: clamp(180px, 22vw, 340px); background: #000 var(--ws-pano) center 45% / cover no-repeat; }
.ws-about-band__badge { position: absolute; right: max(var(--ws-pad), calc((100% - var(--ws-max)) / 2)); bottom: -50px; width: clamp(100px, 10vw, 150px); filter: drop-shadow(0 3px 8px rgba(0,0,0,.6)); z-index: 2; }
.ws-about-band__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-block: var(--ws-band-y); }
.ws-about-band__text h2 { margin: 0 0 .4rem; color: #fff; font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.ws-about-band__lead { margin: 0 0 1rem; color: var(--ws-cream); font-size: 1.15rem; }
.ws-about-band__text p { line-height: 1.7; }
.ws-about-band__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.ws-about-band__actions .ws-button--ghost { color: #fff; }
.ws-about-band__iguide { position: relative; display: grid; grid-template-columns: 24% 1fr; background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.5); }
.ws-about-band__iguide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ws-about-band__iguide .ws-about-band__360 { position: absolute; left: 62%; top: 50%; transform: translate(-50%, -50%); width: 130px !important; height: auto !important; transition: transform .2s; }
.ws-about-band__iguide:hover .ws-about-band__360 { transform: translate(-50%, -50%) scale(1.08); }
.ws-about-band__iguide .ws-about-band__iglogo { position: absolute; right: 12px; bottom: 10px; width: 110px !important; height: auto !important; background: rgba(0,0,0,.55); padding: 4px 6px; border-radius: 3px; }

.ws-testimonial { background: #fff center / cover no-repeat; }
.ws-testimonial__inner { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin: 0 auto; min-height: 240px; padding-block: 3rem; }
.ws-testimonial__photo { width: 80px; height: 80px; border-radius: 50%; }
.ws-testimonial blockquote { margin: 0; }
.ws-testimonial blockquote p { margin: 0; color: var(--ws-burgundy); font-weight: 700; font-size: clamp(1.15rem, 2.2vw, 1.6rem); line-height: 1.25; max-width: 22em; }
.ws-testimonial figcaption { margin-top: .6rem; color: #a5707b; font-size: .95rem; }

/* ---------- Footer ----------------------------------------------------- */

.site-footer {
	background: linear-gradient(rgba(24, 8, 12, .93), rgba(24, 8, 12, .93)), #2a0e15 var(--ws-corks) center / cover no-repeat;
	color: #e7dfe1;
	font-size: .9rem;
	padding-top: clamp(2.5rem, 6vw, 4rem);
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--ws-cream); text-decoration: underline; }
.site-footer__cols { display: grid; grid-template-columns: 1.2fr .9fr 1fr 1.2fr; gap: 2.5rem; }
.site-footer__logo { width: 170px; height: auto; display: block; }
.site-footer__tag { margin: .8rem 0 1.2rem; color: #cfc2c6; }
.site-footer__badges { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin: 0; padding: 0; }
.site-footer__badges img { height: 32px; width: auto; display: block; }
.site-footer__social svg { width: 28px; height: 28px; display: block; }
.site-footer__label { margin: 0 0 1rem; color: #fff; font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; }
.footer-menu { list-style: none; margin: 0; padding: 0; line-height: 2.1; }
.site-footer__hours { border-collapse: collapse; margin-bottom: 1rem; }
.site-footer__hours th { text-align: left; font-weight: 600; padding: .15rem 1.2rem .15rem 0; }
.site-footer__hours td { padding: .15rem 0; }
.site-footer__contact p { margin: 0 0 .6rem; }
.site-footer__contact svg { width: 16px; height: 16px; vertical-align: -3px; color: var(--ws-rose-2); }
.site-footer__corner { font-size: .8rem; color: #cfc2c6; }
.site-footer__map { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: 1rem 0 .6rem; max-width: 420px; }
.site-footer__map img { display: block; width: 100%; height: 100%; object-fit: cover; background: #fff; border-radius: 4px; }
.site-footer__directions { font-weight: 700; }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2.5rem; padding-block: 1.2rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; color: #bfb2b6; }
.site-footer__bottom p { margin: 0; }
.site-footer__credit img { height: 18px; width: auto; vertical-align: middle; margin-left: .3rem; }

/* ---------- Cards (news) ----------------------------------------------- */

.ws-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.6rem; padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: 2rem; }
.ws-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; background: #fff; border: 1px solid var(--ws-line); border-radius: 6px; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.ws-card__link:hover { box-shadow: var(--ws-shadow); transform: translateY(-2px); }
.ws-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ws-card__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .3rem; }
.ws-card__meta { font-size: .75rem; color: var(--ws-muted); }
.ws-card__title { color: var(--ws-burgundy); font-weight: 700; font-size: 1.05rem; line-height: 1.25; }
.ws-card__excerpt { font-size: .88rem; color: #444; }
.ws-pagination { padding-bottom: 3rem; }
.post-nav { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 3rem; font-size: .9rem; max-width: calc(var(--ws-narrow) + 2 * var(--ws-pad)); margin-inline: auto; }

/* ---------- Module blocks in this design ------------------------------ */

.ws-contact__form .ws-field label { display: block; font-weight: 600; margin-bottom: .2rem; }
.ws-contact__form input, .ws-contact__form textarea { width: 100%; max-width: 620px; padding: .65rem; font: inherit; border: 1px solid #c9c0c3; border-radius: 3px; }
.ws-field.has-error input, .ws-field.has-error textarea { border-color: var(--ws-rose); }
.ws-field__error { color: var(--ws-rose); font-size: .85rem; }
.ws-hp { position: absolute !important; left: -9999px; }
.ws-notice { padding: .8rem 1rem; background: var(--ws-blush); border-left: 4px solid var(--ws-burgundy); }
.ws-notice--error { border-color: var(--ws-rose); }

/* ---------- Smaller screens -------------------------------------------- */

@media (max-width: 1240px) {
	.site-nav__menu > li > a { padding: .6rem .6rem; font-size: .84rem; }
	.site-tools__account span { display: none; }
	.site-tools__account, .site-tools__cart { min-width: 48px; height: 48px; }
	.site-tools__label { display: none; }
	.site-logo, .custom-logo-link { width: 140px; }
	.ws-wine-table th:nth-child(11), .ws-wine-table td:nth-child(11) { display: none; }
}

@media (max-width: 1100px) {
	:root { --ws-header-h: 72px; }
	.site-logo, .custom-logo-link { width: 112px; margin-top: 6px; }
	.site-tools { margin-left: auto; }
	.nav-toggle {
		display: inline-flex; align-items: center; gap: .5rem; height: 48px; padding: 0 1rem;
		border: 0; border-radius: 4px; background: var(--ws-burgundy); color: #fff; cursor: pointer;
		font: 700 .8rem Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .05em;
	}
	.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; content: ""; transition: transform .2s, background .2s; }
	.nav-toggle__bars::before { position: absolute; top: -6px; }
	.nav-toggle__bars::after { position: absolute; top: 6px; }
	.nav-open .nav-toggle__bars { background: transparent; }
	.nav-open .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
	.nav-open .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }
	.site-nav {
		position: absolute; top: 100%; left: 0; right: 0;
		display: none; max-height: calc(100vh - var(--ws-header-h)); overflow-y: auto;
		background: #fff; box-shadow: 0 14px 24px rgba(0,0,0,.2); border-top: 1px solid var(--ws-line);
	}
	.nav-open .site-nav { display: block; }
	.site-nav__menu { flex-direction: column; align-items: stretch; gap: 0; padding: .5rem var(--ws-pad) 1rem; }
	.site-nav__menu > li > a { padding: .9rem .4rem; font-size: .95rem; border-radius: 0; border-bottom: 1px solid var(--ws-blush); background: none; }
	.site-nav__menu > .menu-item-has-children > a::after { display: none; }
	.site-nav__menu > .menu-cta > a { margin: .4rem 0 .6rem; justify-content: center; border-radius: 4px; }
	.site-nav .sub-menu { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: 0; padding: .2rem 0 .6rem .8rem; min-width: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
	.site-nav .sub-menu a { padding: .45rem .4rem; }
	.ws-wine-list { grid-template-columns: minmax(0, 1fr); }
	.site-hero__inner { background: linear-gradient(90deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.55) 65%, rgba(0,0,0,0) 100%); }
	.ws-welcome .wp-block-columns { flex-wrap: wrap !important; }
	.ws-welcome .wp-block-column { flex-basis: 100% !important; }
	.ws-wine-search { position: static; max-height: none; }
	.ws-wine-search__more > summary { display: block; cursor: pointer; padding: .6rem 0 .2rem; font-weight: 700; color: var(--ws-burgundy); }
	.ws-wine-search__more[open] > summary { margin-bottom: .8rem; }
	.ws-wine-search fieldset { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
	.ws-wine-search__chars { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
	.ws-wine-search__chars-title { grid-column: 1 / -1; }
	.site-footer__cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
	.site-topbar .site-topbar__addr { display: none; }
	.site-hero { background-position: 72% center; }
	.site-hero__inner { min-height: 300px; }
	.ws-prices--chalkboard { transform: none; border-width: 12px; padding: 1.1rem 1rem; }
	.ws-prices__table th, .ws-prices__table td { font-size: 1.15rem; }
	.ws-prices--chalkboard .ws-prices__title { font-size: 1.9rem; }
	.is-style-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ws-featured { grid-template-columns: 1fr; padding: 2rem 1.2rem; background-position: right center; }
	.ws-featured__body { padding: 1rem; background: rgba(255,255,255,.9); }
	.ws-banner .wp-block-column:first-child { padding: 2rem 0; }
	.ws-banner .wp-block-image { margin-left: calc(-1 * var(--ws-pad)); margin-right: calc(-1 * var(--ws-pad)); }
	.ws-wine__grid { grid-template-columns: 1fr; }
	.ws-wine__type { text-align: center; }
	.ws-wine-search__chars { grid-template-columns: 1fr; }
	.ws-wine-table thead { display: none; }
	.ws-wine-table, .ws-wine-table tbody, .ws-wine-table tr, .ws-wine-table td { display: block; }
	.ws-wine-table tr { padding: .9rem .8rem; border-bottom: 1px solid var(--ws-line); }
	.ws-wine-table tr[hidden], .ws-wine-table tbody tr.is-beyond { display: none; }
	.ws-wine-table td { padding: .1rem 0; border: 0; }
	.ws-wine-table td[data-label] { display: inline-block; width: 49%; font-size: .82rem; }
	.ws-wine-table td[data-label]::before { content: attr(data-label) ": "; font-weight: 700; }
	.ws-wine-table .ws-col-marks:empty { display: none; }
	.ws-wine-table td:nth-child(6), .ws-wine-table td:nth-child(11) { display: none; }
	.ws-wine-table .ws-col-marks { float: right; width: auto; }
	.ws-wine-table td.ws-col-fav { float: left; width: auto; margin: 0 .55rem 0 0; padding: 0; }
	.ws-wine-table td.ws-col-fav .ws-fav--inline { margin: 0; }
	.ws-col-name { font-size: 1.02rem; }
	.ws-col-buy { margin-top: .5rem; }
	.ws-shop--listing { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
	.ws-shop__aside { position: static; }
	.ws-shop__cats:not([open]) { padding-bottom: .4rem; }
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.ws-about-band__grid { grid-template-columns: 1fr; }
	.ws-about-band__badge { bottom: -36px; }
	.ws-testimonial__inner { flex-direction: column; text-align: center; padding-block: 2.5rem; }
	.site-footer__bottom { flex-direction: column; align-items: flex-start; }
	.wp-block-media-text.is-style-banner .wp-block-media-text__content { padding: 1.5rem 1.2rem; }
}

@media (max-width: 560px) {
	.site-topbar .site-topbar__hours { display: none; }
	.site-topbar__inner { justify-content: center; }
	.nav-toggle__text { display: none; }
	.nav-toggle { padding: 0 .9rem; }
	.site-footer__cols { grid-template-columns: 1fr; }
	.is-style-tiles figcaption { font-size: .85rem; padding: .6rem .4rem; }
	.woocommerce ul.products li.product .button { font-size: .7rem; padding: .7em .6em; }
}


/* ==========================================================================
   Additions: promo bar, two paths, open times, wine cards, my wine,
   shop categories, newsletter band, phone action bar, accessibility.
   ========================================================================== */

/* Promo bar */
.site-promo { background: var(--ws-cream); color: var(--ws-burgundy-dark); font-size: .9rem; font-weight: 600; }
.site-promo[hidden] { display: none; }
.site-promo__inner { display: flex; align-items: center; justify-content: center; gap: 1rem; min-height: 40px; position: relative; padding-right: calc(var(--ws-pad) + 2rem); }
.site-promo__text { margin: 0; text-align: center; padding-block: .45rem; }
.site-promo__text a { color: var(--ws-burgundy); margin-left: .5rem; white-space: nowrap; }
.site-promo__close { position: absolute; right: var(--ws-pad); top: 50%; transform: translateY(-50%); background: none; border: 0; padding: .3rem; color: inherit; cursor: pointer; }
.site-promo__close svg { width: 18px; height: 18px; display: block; }

/* Outline buttons from the block editor */
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--ws-burgundy); border: 2px solid currentColor; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--ws-burgundy); color: #fff; border-color: var(--ws-burgundy); }
.is-style-panel-black .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.is-style-panel-black .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--ws-burgundy); border-color: #fff; }
.ws-button--outline { background: transparent; color: var(--ws-burgundy); border-color: currentColor; }
.ws-button--outline:hover { background: var(--ws-burgundy); color: #fff; border-color: var(--ws-burgundy); }

/* Two paths (home) */
.ws-paths { padding-top: var(--ws-band-y); padding-bottom: var(--ws-band-y); background: #fff; }
.ws-paths__cols { gap: clamp(1.2rem, 3vw, 2.5rem) !important; margin: 0 auto !important; }
.ws-path { height: 100%; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ws-line); border-radius: 8px; overflow: hidden; box-shadow: 0 2px 14px rgba(60,10,25,.07); }
.ws-path > * { margin: 0 !important; }
.ws-path .wp-block-image img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; display: block; }
.ws-path h3 { padding: 1.5rem 1.6rem .4rem; font-size: clamp(1.3rem, 2vw, 1.6rem); }
.ws-path p { padding: 0 1.6rem; color: #444; line-height: 1.7; flex: 1; }
.ws-path .wp-block-buttons { padding: 1.2rem 1.6rem 1.6rem; gap: .6rem; }
.ws-path--here { border-top: 5px solid var(--ws-burgundy); }
.ws-path--home { border-top: 5px solid var(--ws-gold); }

/* Next open times */
.ws-openings-band { padding-top: 0; padding-bottom: var(--ws-band-y); background: #fff; }
.ws-openings { background: var(--ws-blush); border-radius: 8px; padding: clamp(1.2rem, 3vw, 2rem); }
.ws-openings__heading { margin: 0 0 1rem; font-size: 1.25rem; text-align: center; }
.ws-openings__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.ws-openings__type { display: flex; flex-direction: column; gap: .8rem; background: #fff; border-radius: 6px; padding: 1.1rem 1.3rem 1.3rem; }
.ws-openings__label { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: 1.05rem; }
.ws-openings__label svg { width: 22px; height: 22px; }
.ws-openings__times { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; flex: 1; }
.ws-openings__times li { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px dashed var(--ws-line); font-size: .95rem; }
.ws-openings__day { font-weight: 700; }
.ws-openings__time { color: #555; }
.ws-openings__none { margin: 0; color: #555; flex: 1; }
.ws-openings__type .ws-button { align-self: flex-start; }
.entry-content > .wp-block-ws-next-openings, .entry-content > .ws-openings { max-width: 1000px !important; }

/* Wine cards (staff picks, customers also made) */
.ws-picks-band { padding-top: var(--ws-band-y); padding-bottom: calc(var(--ws-band-y) - 1rem); background: #fff; }
.ws-picks-band:not(:has(.ws-wine-card)) { display: none; }
.ws-wine-cards { margin: 0 auto; }
.ws-wine-cards__heading { margin: 0 0 1.2rem; font-size: clamp(1.35rem, 2.2vw, 1.8rem); }
.ws-picks-band .ws-wine-cards__heading { text-align: center; }
.ws-wine-cards__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 300px)); justify-content: center; gap: 1.2rem; }
.ws-wine-card { position: relative; background: #fff; border: 1px solid var(--ws-line); border-radius: 8px; overflow: hidden; transition: box-shadow .2s, transform .2s; }
.ws-wine-card:hover { box-shadow: var(--ws-shadow); transform: translateY(-3px); }
.ws-wine-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.ws-wine-card__media { display: block; background: linear-gradient(180deg, #faf6f7, #f1e6ea); padding: 1rem; border-top: 5px solid var(--ws-burgundy); }
.ws-wine-card--white .ws-wine-card__media { border-top-color: var(--ws-gold); }
.ws-wine-card--rose .ws-wine-card__media { border-top-color: var(--ws-rose); }
.ws-wine-card__img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.ws-wine-card__body { display: flex; flex-direction: column; gap: .2rem; padding: .9rem 1rem 1.1rem; }
.ws-wine-card__type { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ws-muted); }
.ws-wine-card__name { font-weight: 700; line-height: 1.3; color: var(--ws-ink); }
.ws-wine-card__price { font-weight: 700; color: var(--ws-burgundy); }
.ws-wine-card .ws-badges { position: absolute; top: .9rem; right: .8rem; }
.ws-wine__also { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ws-line); }
.entry-content > .wp-block-ws-wine-picks { max-width: var(--ws-max) !important; margin-bottom: 2.5rem; }
.ws-wine__next { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; margin: 1.2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--ws-blush-2); font-size: .92rem; }
.ws-wine__next svg { width: 20px; height: 20px; color: var(--ws-burgundy); }
.ws-wine__next span { font-weight: 600; }
.ws-wine__next small { flex-basis: 100%; color: var(--ws-muted); padding-left: 1.6rem; }
.ws-wine__image { width: 100%; max-width: 320px; height: auto; max-height: none; }

/* My Wine (account) */
.ws-my-wine { display: grid; gap: 1.6rem; }
.ws-my-wine__section { border: 1px solid var(--ws-line); border-radius: 8px; padding: 1.2rem 1.4rem; }
.ws-my-wine__section--ready { border-color: var(--ws-burgundy); box-shadow: inset 4px 0 0 var(--ws-burgundy); }
.ws-my-wine__section--needs_making { box-shadow: inset 4px 0 0 var(--ws-gold); }
.ws-my-wine__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .8rem; }
.ws-my-wine__head h2, .ws-my-wine__section > h2 { margin: 0; font-size: 1.2rem; }
.ws-my-wine__count { display: inline-block; min-width: 1.6em; padding: 0 .4em; margin-left: .3rem; border-radius: 999px; background: var(--ws-blush); color: var(--ws-burgundy); font-size: .85rem; text-align: center; vertical-align: 2px; }
.ws-my-wine__intro { margin: .5rem 0 0; color: #555; }
.ws-my-wine__list { list-style: none; margin: .8rem 0 0; padding: 0; }
.ws-my-wine__item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1.5fr); gap: .3rem 1rem; padding: .65rem 0; border-top: 1px solid var(--ws-blush-2); font-size: .93rem; }
.ws-my-wine__name { font-weight: 700; }
.ws-my-wine__meta { color: var(--ws-muted); }
.ws-my-wine__empty { padding: 1.5rem; background: var(--ws-blush); border-radius: 8px; }
.ws-my-wine__empty .ws-button { margin: 0 .5rem .5rem 0; }
.ws-my-wine__hint { font-size: .88rem; color: #555; }
.ws-account-wine { margin-bottom: 1.4rem; }
.woocommerce-account .entry-content > .woocommerce, .woocommerce-cart .entry-content > .woocommerce, .woocommerce-checkout .entry-content > .woocommerce { max-width: 1100px; }

/* Pickup note */
.ws-pickup-note { display: flex; align-items: center; gap: .5rem; margin: 0 0 1.2rem; padding: .6rem .9rem; background: #f4f1e3; border-radius: 6px; color: #4d4517; font-size: .9rem; font-weight: 600; }
.ws-pickup-note svg { width: 18px; height: 18px; flex: none; color: var(--ws-gold); }
.woocommerce div.product .ws-pickup-note { margin-top: 1rem; }

/* Shop categories */
.ws-cat-grid { margin-bottom: 2.5rem; }
.ws-cat-grid__title { margin: 0 0 1rem; font-size: 1.4rem; }
.ws-cat-grid__title--all { margin-top: .5rem; }
.ws-cat-grid__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.ws-cat-grid__item a { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--ws-line); border-radius: 8px; overflow: hidden; text-decoration: none; color: inherit; background: #fff; transition: box-shadow .2s, transform .2s; }
.ws-cat-grid__item a:hover { box-shadow: var(--ws-shadow); transform: translateY(-2px); }
.ws-cat-grid__media { display: block; background: #fff; border-bottom: 1px solid var(--ws-line); }
.ws-cat-grid__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; padding: .6rem; }
.ws-cat-grid__item--wines .ws-cat-grid__media img { object-fit: cover; padding: 0; }
.ws-cat-grid__item--wines a { border-color: var(--ws-burgundy); }
.ws-cat-grid__name { padding: .7rem .9rem .1rem; font-weight: 700; color: var(--ws-burgundy); line-height: 1.3; }
.ws-cat-grid__count { padding: 0 .9rem .8rem; font-size: .8rem; color: var(--ws-muted); }

/* Newsletter band */
/* Subscribe bar: a band of its own (Above Footer), or a Common Block anywhere else. */
.site-newsletter { background: var(--ws-burgundy); color: #fff; container-type: inline-size; }
.site-prefooter { position: relative; z-index: 1; box-shadow: 0 -1px 0 rgba(0,0,0,.06); }
.site-prefooter .widget + .widget { margin-top: 0; }
.entry-content .ws-common-block--subscribe:not(.alignfull) .site-newsletter,
.ws-shop__aside .site-newsletter { border-radius: 10px; overflow: hidden; }
.entry-content > .ws-common-block--subscribe:not(.alignfull) { max-width: var(--ws-max) !important; }
@container (max-width: 720px) {
	.site-newsletter__inner { grid-template-columns: 1fr !important; padding-block: 1.5rem; }
}
.site-newsletter__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem 3rem; align-items: center; padding-block: 2rem; }
.site-newsletter h2 { margin: 0 0 .3rem; color: #fff; font-size: 1.35rem; }
.site-newsletter p { margin: 0; color: #f3dfe5; }
.site-newsletter .ws-signup__heading, .site-newsletter .ws-signup__intro { display: none; }
.site-newsletter .ws-signup__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; }
.site-newsletter .ws-field { margin: 0; flex: 1 1 220px; }
.site-newsletter .ws-field label { display: block; font-size: .8rem; margin-bottom: .25rem; color: #f3dfe5; }
.site-newsletter input[type=email], .site-newsletter input[type=text] { width: 100%; padding: .7rem .8rem; border: 0; border-radius: 3px; font: inherit; }
.site-newsletter button, .site-newsletter input[type=submit] { background: var(--ws-cream); color: var(--ws-burgundy-dark); border: 0; border-radius: 3px; padding: .75rem 1.3rem; font: 700 .85rem Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .05em; cursor: pointer; }
.site-newsletter__admin { padding: .8rem 1rem; border: 1px dashed rgba(255,255,255,.5); border-radius: 4px; font-size: .88rem; }

/* Favourites (hearts) */
.ws-fav { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--ws-line); border-radius: 50%; background: #fff; color: #b9a7ad; cursor: pointer; transition: color .15s, transform .15s, border-color .15s; }
.ws-fav:hover { color: var(--ws-rose); border-color: var(--ws-rose-2); }
.ws-fav.is-on { color: var(--ws-rose); border-color: var(--ws-rose-2); }
.ws-fav.is-on svg { animation: ws-pop .25s ease-out; }
@keyframes ws-pop { 50% { transform: scale(1.3); } }
.ws-wine-card .ws-fav { position: absolute; left: .7rem; top: .7rem; z-index: 2; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.ws-fav--inline { width: 28px; height: 28px; margin-right: .45rem; vertical-align: middle; }
.ws-fav--inline svg { width: 16px; height: 16px; }
.ws-fav--banner { margin-left: auto; background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.5); color: #fff; }
.ws-fav--banner.is-on { background: #fff; color: var(--ws-rose); }
.ws-wine__banner .ws-wine__rating { margin-left: 1rem; }
.ws-wine-search__favs { grid-column: 1 / -1; font-weight: 700; color: var(--ws-rose); }

/* Lead paragraph */
.ws-lead { font-size: 1.05rem; padding: .8rem 1rem; background: var(--ws-blush); border-radius: 6px; }

/* Back-in-stock form */
.ws-stock-alert { margin-top: 1rem; padding: 1rem 1.1rem; border: 1px dashed var(--ws-burgundy); border-radius: 6px; background: #fff; }
.ws-stock-alert__lead { margin: 0 0 .6rem; }
.ws-stock-alert__row { display: flex; flex-wrap: wrap; gap: .5rem; }
.ws-stock-alert input[type=email] { flex: 1 1 220px; padding: .6rem .7rem; border: 1px solid #cbb7bd; border-radius: 3px; font: inherit; }

/* My Wine: make it again; savings */
.ws-my-wine__again { display: inline-block; margin-bottom: .2rem; font-weight: 700; font-size: .85rem; }
.ws-account-savings strong { color: var(--ws-burgundy); }

/* Wine finder */
.ws-finder { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem; align-items: start; }
.ws-finder__heading { grid-column: 1 / -1; margin: 0; }
.ws-finder__form { display: grid; gap: 1.1rem; padding: 1.3rem; background: var(--ws-blush); border-radius: 8px; }
.ws-finder__q { border: 0; margin: 0; padding: 0; }
.ws-finder__q legend { font-weight: 700; color: var(--ws-burgundy); margin-bottom: .5rem; padding: 0; }
.ws-finder__opts { display: flex; flex-wrap: wrap; gap: .45rem; }
.ws-finder__opt { position: relative; }
.ws-finder__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ws-finder__opt span { display: inline-block; padding: .5rem .9rem; border: 2px solid #d9c3ca; border-radius: 999px; background: #fff; font-size: .92rem; font-weight: 600; cursor: pointer; }
.ws-finder__opt input:checked + span { background: var(--ws-burgundy); border-color: var(--ws-burgundy); color: #fff; }
.ws-finder__opt input:focus-visible + span { outline: 3px solid var(--ws-rose); outline-offset: 2px; }
.ws-finder__results-title { margin: 0 0 1rem; }
.ws-finder__list { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important; justify-content: stretch !important; }
.ws-finder__none { list-style: none; color: #555; }
.ws-finder__more { margin-top: 1.2rem; }
.entry-content > .wp-block-ws-wine-finder { max-width: var(--ws-max) !important; }
@media (max-width: 860px) {
	.ws-finder { grid-template-columns: 1fr; }
}

/* Header search */
.site-tools__search { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 58px; height: 58px; padding: 0 .4rem; border: 0; border-radius: 4px; background: none; color: #1a1a1a; font: 700 .68rem Montserrat, sans-serif; text-transform: uppercase; letter-spacing: .05em; cursor: pointer; text-shadow: 0 0 6px #fff, 0 0 12px #fff; }
.site-tools__search:hover, .site-tools__search[aria-expanded="true"] { color: var(--ws-burgundy); background: var(--ws-blush); }
.site-search { position: sticky; top: var(--ws-header-h); z-index: 49; background: #fff; border-top: 1px solid var(--ws-line); box-shadow: 0 14px 28px rgba(0,0,0,.15); }
.admin-bar .site-search { top: calc(var(--ws-header-h) + 32px); }
.site-search[hidden] { display: none; }
.site-search__inner { padding-block: 1rem 1.2rem; }
.site-search__form { display: flex; align-items: center; gap: .6rem; border-bottom: 2px solid var(--ws-burgundy); }
.site-search__form > svg { width: 24px; height: 24px; color: var(--ws-burgundy); flex: none; }
.site-search__form input { flex: 1; min-width: 0; border: 0; padding: .8rem 0; font: 500 1.2rem Montserrat, sans-serif; background: none; outline: none; }
.site-search__close { border: 0; background: none; padding: .4rem; cursor: pointer; color: #555; }
.site-search__close svg { width: 22px; height: 22px; display: block; }
.site-search__results { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .3rem 1.2rem; max-height: 60vh; overflow-y: auto; }
.site-search__results a { display: grid; grid-template-columns: auto 1fr; gap: 0 .6rem; padding: .55rem .6rem; border-radius: 4px; text-decoration: none; color: var(--ws-ink); }
.site-search__results a:hover, .site-search__results a:focus { background: var(--ws-blush); }
.site-search__kind { grid-row: span 2; align-self: start; margin-top: .15rem; padding: .1rem .45rem; border-radius: 3px; background: var(--ws-blush-2); color: var(--ws-burgundy); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.site-search__title { font-weight: 600; }
.site-search__meta { font-size: .8rem; color: var(--ws-muted); }
.site-search__none { color: var(--ws-muted); padding: .5rem 0; }

/* Batch progress (My Wine) */
.ws-my-wine__progress { grid-column: 1 / -1; }
.ws-progress { margin: .2rem 0 .1rem; }
.ws-progress__bar { height: 6px; background: var(--ws-blush-2); border-radius: 999px; overflow: hidden; }
.ws-progress__bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--ws-burgundy), var(--ws-wine)); border-radius: inherit; }
.ws-progress__steps { list-style: none; margin: .3rem 0 0; padding: 0; display: flex; justify-content: space-between; font-size: .72rem; color: #9a8a90; }
.ws-progress__steps .is-done { color: var(--ws-burgundy); }
.ws-progress__steps .is-now { font-weight: 700; }
.ws-progress__left { margin: .2rem 0 0; font-size: .8rem; color: #555; }
.ws-my-wine__checklist { margin: .7rem 0 0; padding: .6rem .9rem; background: #f4f1e3; border-radius: 6px; }
.ws-my-wine__checklist summary { cursor: pointer; font-weight: 700; color: #4d4517; }
.ws-my-wine__checklist p { margin: .5rem 0 0; }

/* Label upload on the wine order form */
.ws-batch-option--label input[type=file] { display: block; margin: .3rem 0; max-width: 100%; }
.ws-batch-option--label small { color: var(--ws-muted); }

/* Refer a friend */
.ws-refer { margin: 1.6rem 0; padding: 1.2rem 1.4rem; border: 2px dashed var(--ws-burgundy); border-radius: 8px; background: #fff; }
.ws-refer h2 { margin: 0 0 .4rem; font-size: 1.25rem; }
.ws-refer__code { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.ws-refer__code strong { padding: .45rem .8rem; background: var(--ws-blush); border-radius: 4px; letter-spacing: .06em; font-size: 1.05rem; }

@media (max-width: 1240px) { .site-tools__search span { display: none; } .site-tools__search { min-width: 48px; height: 48px; } }
@media (max-width: 560px) {
	.site-header__inner { gap: .5rem; }
	.site-logo, .custom-logo-link { width: 92px; }
	.site-tools { gap: .25rem; }
	.site-tools__search, .site-tools__account, .site-tools__cart { min-width: 40px; height: 44px; padding: 0 .15rem; }
	.site-tools svg { width: 22px; height: 22px; }
	.nav-toggle { height: 44px; padding: 0 .7rem; }
}

/* Wine filters on desktop: compact so the whole panel is always on screen - no scrolling inside it. */
@media (min-width: 1101px) {
	.ws-wine-list { grid-template-columns: 270px minmax(0, 1fr); gap: 1.6rem; }
	.ws-wine-search { padding: .85rem .95rem .95rem; font-size: .8rem; line-height: 1.3; }
	.ws-wine-search__head { margin-bottom: .55rem; }
	.ws-wine-search__title { margin: 0 0 .4rem; font-size: 1rem; }
	.ws-wine-search__keyword input { padding: .42rem 2.4rem .42rem .8rem; font-size: .85rem; }
	.ws-wine-search__go svg { width: 20px; height: 20px; }
	.ws-wine-search fieldset { margin: 0 0 .55rem; padding-top: .55rem; gap: .28rem .5rem; }
	.ws-wine-search__types { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.ws-wine-search legend { margin-bottom: .3rem; font-size: .76rem; }
	.ws-wine-search__hint { display: none; }
	.ws-wine-search input[type=checkbox] { width: 15px; height: 15px; }
	.ws-wine-search__flags svg { width: 16px; height: 16px; }
	.ws-wine-search__chars { grid-template-columns: 1fr 1fr; gap: .35rem .55rem; padding-top: .55rem; }
	.ws-wine-search__chars-title { grid-column: 1 / -1; font-size: .76rem; }
	.ws-wine-search__chars label { font-size: .72rem; gap: .1rem; }
	.ws-wine-search select { padding: .28rem .3rem; font-size: .78rem; }
	.ws-wine-search__actions { margin-top: .65rem; }
	.ws-wine-search__submit { padding: .5em 1.1em; font-size: .78rem; }
}

/* ==========================================================================
   Booking form (ws/booking-wizard)
   ========================================================================== */
.wp-block-ws-booking-wizard .ws-wizard { position: relative; padding: 0; border: 0; border-radius: 10px; background: #fff; box-shadow: 0 12px 40px rgba(60, 10, 25, .12), 0 0 0 1px var(--ws-line); overflow: hidden; }
.wp-block-ws-booking-wizard .ws-wizard__mount { padding: 0 clamp(1.1rem, 3vw, 2.2rem) clamp(1.4rem, 3vw, 2.2rem); }
.wp-block-ws-booking-wizard .ws-wizard__loading { padding: 2.5rem 0; text-align: center; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-wizard__loading::before { content: ""; display: block; width: 34px; height: 34px; margin: 0 auto .8rem; border: 3px solid var(--ws-blush-2); border-top-color: var(--ws-burgundy); border-radius: 50%; animation: ws-spin .8s linear infinite; }
@keyframes ws-spin { to { transform: rotate(360deg); } }

/* Progress steps: a burgundy band across the top */
.wp-block-ws-booking-wizard .ws-wizard__steps {
	display: flex; flex-wrap: nowrap; gap: 0; margin: 0 calc(-1 * clamp(1.1rem, 3vw, 2.2rem)) 1.8rem; padding: 1.1rem clamp(1.1rem, 3vw, 2.2rem) 1rem;
	border: 0; background: linear-gradient(90deg, var(--ws-burgundy-dark), var(--ws-burgundy)); counter-reset: ws-step; overflow-x: auto;
}
.wp-block-ws-booking-wizard .ws-wizard__step { position: relative; flex: 1 1 0; min-width: 72px; display: flex; flex-direction: column; align-items: center; gap: .35rem; font-size: .74rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: rgba(255,255,255,.6); text-align: center; }
.wp-block-ws-booking-wizard .ws-wizard__step::before { content: counter(ws-step); position: relative; z-index: 1; width: 2rem; height: 2rem; margin: 0; border-radius: 50%; background: rgba(255,255,255,.14); border: 2px solid rgba(255,255,255,.35); color: #fff; font-size: .85rem; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-ws-booking-wizard .ws-wizard__step + .ws-wizard__step::after { content: ""; position: absolute; top: 1rem; right: calc(50% + 1.1rem); left: calc(-50% + 1.1rem); height: 2px; background: rgba(255,255,255,.25); }
.wp-block-ws-booking-wizard .ws-wizard__step.is-done { color: rgba(255,255,255,.85); }
.wp-block-ws-booking-wizard .ws-wizard__step.is-done::before { content: "✓"; background: var(--ws-cream); border-color: var(--ws-cream); color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-wizard__step.is-done + .ws-wizard__step::after { background: var(--ws-cream); }
.wp-block-ws-booking-wizard .ws-wizard__step.is-current { color: #fff; }
.wp-block-ws-booking-wizard .ws-wizard__step.is-current::before { background: #fff; border-color: #fff; color: var(--ws-burgundy); box-shadow: 0 0 0 5px rgba(255,255,255,.18); }

/* Panels and type */
.wp-block-ws-booking-wizard .ws-wizard__title { margin: 0 0 1rem; font-size: clamp(1.25rem, 2.2vw, 1.55rem); color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-wizard__note { font-size: .95rem; color: #555; }
.wp-block-ws-booking-wizard .ws-wizard__hint { padding: .6rem .8rem; border-radius: 6px; background: #fff6e6; color: #7a4a00; font-size: .9rem; }
.wp-block-ws-booking-wizard .ws-wizard__nav { justify-content: space-between; margin-top: 1.8rem; padding-top: 1.2rem; border-top: 1px solid var(--ws-line); }
.wp-block-ws-booking-wizard .ws-wizard__nav .ws-button:not(.ws-button--ghost):not(.ws-button--link) { margin-left: auto; padding: .85em 2em; }
.wp-block-ws-booking-wizard .ws-button--ghost { color: var(--ws-burgundy); border-color: var(--ws-line); background: #fff; }
.wp-block-ws-booking-wizard .ws-button--ghost:hover { border-color: var(--ws-burgundy); background: var(--ws-blush); color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-button--link { background: none; border: 0; color: var(--ws-burgundy); text-decoration: underline; text-transform: none; letter-spacing: 0; padding: .3em 0; font-weight: 600; }
.wp-block-ws-booking-wizard .ws-button--link:hover { background: none; color: var(--ws-wine); }
.wp-block-ws-booking-wizard .ws-notice--error { margin: 0 0 1rem; border-radius: 6px; }

/* Step 1: big appointment cards */
.wp-block-ws-booking-wizard .ws-wizard__type-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.wp-block-ws-booking-wizard .ws-wizard__type-card {
	position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .45rem;
	padding: 1.4rem 1.4rem 1.2rem; border: 2px solid var(--ws-line); border-radius: 10px; background: #fff;
	transition: border-color .15s, box-shadow .15s, transform .15s;
}
.wp-block-ws-booking-wizard .ws-wizard__type-card:hover, .wp-block-ws-booking-wizard .ws-wizard__type-card:focus-visible { border-color: var(--ws-burgundy); box-shadow: 0 10px 26px rgba(105,13,42,.16); transform: translateY(-2px); }
.wp-block-ws-booking-wizard .ws-wizard__type-icon { width: 56px; height: 56px; margin-bottom: .3rem; border-radius: 50%; background: var(--ws-blush) center / 30px no-repeat; }
.wp-block-ws-booking-wizard .ws-wizard__type-card--bottling .ws-wizard__type-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23690D2A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 2h4v4l1.5 3v12a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V9L10 6z'/%3E%3Cpath d='M8.5 13h7'/%3E%3C/svg%3E"); }
.wp-block-ws-booking-wizard .ws-wizard__type-card--batch .ws-wizard__type-icon, .wp-block-ws-booking-wizard .ws-wizard__type-card:not(.ws-wizard__type-card--bottling) .ws-wizard__type-icon { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23690D2A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6M10 3v5.5L5.5 18A2 2 0 0 0 7.3 21h9.4a2 2 0 0 0 1.8-3L14 8.5V3'/%3E%3Cpath d='M7.5 14h9'/%3E%3C/svg%3E"); }
.wp-block-ws-booking-wizard .ws-wizard__type-card--bottling .ws-wizard__type-icon { background-color: #f4f1e3; }
.wp-block-ws-booking-wizard .ws-wizard__type-name { font-size: 1.15rem; font-weight: 700; color: var(--ws-ink); }
.wp-block-ws-booking-wizard .ws-wizard__type-desc { font-size: .92rem; line-height: 1.5; color: #555; }
.wp-block-ws-booking-wizard .ws-wizard__type-go { margin-top: auto; padding-top: .6rem; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ws-burgundy); }

/* Fields */
.wp-block-ws-booking-wizard .ws-field { margin: 0 0 1.1rem; }
.wp-block-ws-booking-wizard .ws-field label, .wp-block-ws-booking-wizard .ws-field legend { display: block; margin-bottom: .35rem; font-weight: 700; font-size: .92rem; color: var(--ws-ink); }
.wp-block-ws-booking-wizard .ws-input { width: 100%; max-width: 520px; padding: .75rem .9rem; border: 1px solid #cdbfc4; border-radius: 6px; background: #fff; font: inherit; transition: border-color .15s, box-shadow .15s; }
.wp-block-ws-booking-wizard .ws-input:focus { outline: none; border-color: var(--ws-burgundy); box-shadow: 0 0 0 3px rgba(105,13,42,.15); }
.wp-block-ws-booking-wizard .ws-field__help { margin-top: .3rem; font-size: .84rem; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-field--check label { display: flex; align-items: center; gap: .55rem; font-weight: 600; }
.wp-block-ws-booking-wizard input[type=checkbox], .wp-block-ws-booking-wizard input[type=radio] { width: 20px; height: 20px; accent-color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-sizes { gap: 1rem; }
.wp-block-ws-booking-wizard .ws-size { padding: .8rem .9rem; border: 1px solid var(--ws-line); border-radius: 8px; background: var(--ws-blush); font-weight: 600; }
.wp-block-ws-booking-wizard .ws-size .ws-input { max-width: none; text-align: center; font-size: 1.1rem; font-weight: 700; }

/* Step 2: your wine */
.wp-block-ws-booking-wizard .ws-batch-option { gap: .8rem; padding: .95rem 1rem; margin-bottom: .6rem; border: 2px solid var(--ws-line); border-radius: 8px; background: #fff; transition: border-color .15s, background .15s; }
.wp-block-ws-booking-wizard .ws-batch-option:hover { border-color: #cfaab6; }
.wp-block-ws-booking-wizard .ws-batch-option.is-selected { border-color: var(--ws-burgundy); background: var(--ws-blush); }
.wp-block-ws-booking-wizard .ws-batch-option__name { font-size: 1.02rem; }
.wp-block-ws-booking-wizard .ws-batch-option__date { color: var(--ws-burgundy); }

/* Step 4: calendar */
.wp-block-ws-booking-wizard .ws-cal__header { margin-bottom: 1rem; }
.wp-block-ws-booking-wizard .ws-cal__month { font-size: 1.2rem; font-weight: 700; color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-cal__header .ws-button { min-width: 44px; padding: .5em .9em; }
.wp-block-ws-booking-wizard .ws-cal th { padding: .5rem 0; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-cal, .wp-block-ws-booking-wizard .ws-cal tr, .wp-block-ws-booking-wizard .ws-cal td, .wp-block-ws-booking-wizard .ws-cal th { border: 0; background: none; }
.wp-block-ws-booking-wizard .ws-cal thead th { border-bottom: 1px solid var(--ws-line); }
.wp-block-ws-booking-wizard .ws-cal__cell { padding: 3px; }
.wp-block-ws-booking-wizard .ws-cal__day { min-height: 3.4rem; border-radius: 8px; border: 2px solid transparent; background: #f6f3f4; color: #b3a8ac; justify-content: center; transition: border-color .12s, transform .12s; }
.wp-block-ws-booking-wizard .ws-cal__cell.is-available .ws-cal__day { background: #fff; border-color: #d9c3ca; color: var(--ws-ink); }
.wp-block-ws-booking-wizard .ws-cal__cell.is-available .ws-cal__day:hover { border-color: var(--ws-burgundy); transform: translateY(-1px); }
.wp-block-ws-booking-wizard .ws-cal__cell.is-unavailable .ws-cal__day { background: transparent; color: #cfc6c9; }
.wp-block-ws-booking-wizard .ws-cal__cell.is-selected .ws-cal__day { background: var(--ws-burgundy); border-color: var(--ws-burgundy); color: #fff; }
.wp-block-ws-booking-wizard .ws-cal__num { font-size: 1.02rem; }
.wp-block-ws-booking-wizard .ws-cal__count { margin-top: 2px; padding: 0 .4em; border-radius: 999px; background: #eaf3de; color: #2f6b1f; font-size: .62rem; font-weight: 700; }
.wp-block-ws-booking-wizard .ws-cal__cell.is-selected .ws-cal__count { background: rgba(255,255,255,.2); color: #fff; }

/* Step 5: times */
.wp-block-ws-booking-wizard .ws-slot-groups { display: grid; gap: 1.2rem; }
.wp-block-ws-booking-wizard .ws-slot-group__title { margin: 0 0 .5rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-slots { grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: .5rem; }
.wp-block-ws-booking-wizard .ws-slot { padding: .7rem .4rem; border: 2px solid #d9c3ca; border-radius: 999px; background: #fff; font-weight: 700; color: var(--ws-burgundy); transition: background .12s, color .12s, border-color .12s; }
.wp-block-ws-booking-wizard .ws-slot:hover, .wp-block-ws-booking-wizard .ws-slot:focus-visible { background: var(--ws-burgundy); border-color: var(--ws-burgundy); color: #fff; }

/* Step 6: details, hold, summary */
.wp-block-ws-booking-wizard .ws-wizard__hold { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem; padding: .7rem 1rem; border: 0; border-radius: 8px; background: #fff6e6; color: #7a4a00; font-weight: 600; }
.wp-block-ws-booking-wizard .ws-wizard__hold::before { content: "⏱"; }
.wp-block-ws-booking-wizard .ws-wizard__hold strong { font-variant-numeric: tabular-nums; }
.wp-block-ws-booking-wizard .ws-summary { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.4rem; margin: 0 0 1.4rem; padding: 1rem 1.2rem; border-radius: 8px; background: var(--ws-blush); }
.wp-block-ws-booking-wizard .ws-summary dt { font-weight: 700; color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-summary dd { margin: 0; }

/* Done */
.wp-block-ws-booking-wizard .ws-wizard__panel--done { padding: 1.5rem 0 .5rem; }
.wp-block-ws-booking-wizard .ws-wizard__done-icon { display: block; width: 72px; height: 72px; margin: 0 auto 1rem; border-radius: 50%; background: #eaf3de url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f7d32' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 38px no-repeat; }
.wp-block-ws-booking-wizard .ws-wizard__panel--done .ws-wizard__title { font-size: 1.8rem; }
.wp-block-ws-booking-wizard .ws-wizard__ref code { padding: .2rem .55rem; border-radius: 4px; background: var(--ws-blush); color: var(--ws-burgundy); font-weight: 700; letter-spacing: .06em; }

@media (max-width: 560px) {
	.wp-block-ws-booking-wizard .ws-wizard__step { min-width: 52px; font-size: 0; }
	.wp-block-ws-booking-wizard .ws-wizard__step.is-current { font-size: .7rem; }
	.wp-block-ws-booking-wizard .ws-cal__day { min-height: 2.8rem; }
	.wp-block-ws-booking-wizard .ws-cal__count { display: none; }
	.wp-block-ws-booking-wizard .ws-summary { grid-template-columns: 1fr; gap: 0; }
	.wp-block-ws-booking-wizard .ws-summary dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; }
	.wp-block-ws-booking-wizard .ws-summary dd { margin-bottom: .6rem; }
	.wp-block-ws-booking-wizard .ws-wizard__nav { flex-direction: column-reverse; align-items: stretch; }
	.wp-block-ws-booking-wizard .ws-wizard__nav .ws-button { margin-left: 0 !important; text-align: center; }
}

/* ==========================================================================
   Sign in / create an account (ws_auth_panel)
   ========================================================================== */
.ws-auth { max-width: 470px; margin: 0 auto; padding: clamp(1.4rem, 4vw, 2.2rem); background: #fff; border-radius: 12px; box-shadow: 0 14px 44px rgba(60, 10, 25, .13), 0 0 0 1px var(--ws-line); }
.ws-auth__head { text-align: center; margin-bottom: 1.2rem; }
.ws-auth__icon { display: block; width: 58px; height: 58px; margin: 0 auto .8rem; border-radius: 50%; background: var(--ws-blush) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23690D2A' fill-rule='evenodd' d='M5.2 1h9.6l.45 4.3c.4 3.8-1.9 6.9-4.25 7.35V17.2h3.4V19H5.6v-1.8H9v-4.55C6.65 12.2 4.35 9.1 4.75 5.3L5.2 1zm1.45 1.6l-.25 2.6h7.2l-.25-2.6h-6.7z'/%3E%3C/svg%3E") center / 28px no-repeat; }
.ws-auth__title { margin: 0; font-size: clamp(1.35rem, 2.6vw, 1.7rem); color: var(--ws-burgundy); }
.ws-auth__intro { margin: .5rem 0 0; color: #555; font-size: .95rem; line-height: 1.5; }
.ws-auth__notices .woocommerce-error, .ws-auth__notices .woocommerce-message, .ws-auth__notices .woocommerce-info { margin: 0 0 1rem; border-radius: 6px; font-size: .92rem; }
.ws-auth__tabs { display: none; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin-bottom: 1.3rem; background: #f3eef0; border-radius: 999px; }
.ws-auth.is-js .ws-auth__tabs { display: grid; }
.ws-auth__tabs button { padding: .6rem .5rem; border: 0; border-radius: 999px; background: none; font-family: inherit; font-size: .86rem; font-weight: 700; line-height: 1.2; color: #6b5a60; cursor: pointer; transition: background .15s, color .15s, box-shadow .15s; }
.ws-auth__tabs button[aria-selected="true"] { background: #fff; color: var(--ws-burgundy); box-shadow: 0 2px 8px rgba(60, 10, 25, .14); }
.ws-auth:not(.is-js) .ws-auth__form + .ws-auth__form { margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid var(--ws-line); }
.ws-auth__form[hidden] { display: none; }
.ws-auth__field { margin: 0 0 1rem; }
.ws-auth__field label { display: block; margin-bottom: .35rem; font-weight: 700; font-size: .88rem; color: var(--ws-ink); }
.ws-auth__label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ws-auth__forgot { font-size: .82rem; color: var(--ws-burgundy); }
.ws-auth__opt { font-weight: 400; color: var(--ws-muted); font-size: .8rem; }
.ws-auth__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .8rem; }
.ws-auth__input { width: 100%; padding: .8rem .9rem; border: 1px solid #cdbfc4; border-radius: 8px; background: #fff; font: inherit; font-size: 1rem; transition: border-color .15s, box-shadow .15s; }
.ws-auth__input:focus { outline: none; border-color: var(--ws-burgundy); box-shadow: 0 0 0 3px rgba(105, 13, 42, .15); }
.ws-auth__pass { position: relative; display: block; }
.ws-auth__pass .ws-auth__input { padding-right: 3rem; }
.ws-auth__show { position: absolute; top: 50%; right: .4rem; width: 2.3rem; height: 2.3rem; transform: translateY(-50%); border: 0; border-radius: 6px; background: transparent center / 20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b5a60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); cursor: pointer; }
.ws-auth__show[aria-pressed="true"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23690D2A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); }
.ws-auth__show:hover, .ws-auth__show:focus-visible { background-color: #f3eef0; }
.ws-auth .show-password-input { display: none !important; }
.ws-auth__help { display: block; margin-top: .3rem; font-size: .8rem; color: var(--ws-muted); }
.ws-auth__check { margin: 0 0 1.1rem; font-size: .9rem; }
.ws-auth__check label { display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; }
.ws-auth__check input { width: 18px; height: 18px; accent-color: var(--ws-burgundy); }
.ws-auth__submit { width: 100%; padding: .95rem 1rem; border: 0; border-radius: 8px; background: var(--ws-burgundy); color: #fff; font-family: inherit; font-size: .95rem; font-weight: 700; line-height: 1; text-transform: uppercase; letter-spacing: .06em; cursor: pointer; transition: background .15s, transform .15s; }
.ws-auth__submit:hover, .ws-auth__submit:focus-visible { background: var(--ws-burgundy-dark); }
.ws-auth__submit:active { transform: translateY(1px); }
.ws-auth .woocommerce-privacy-policy-text p { margin: 0 0 1rem; font-size: .78rem; line-height: 1.45; color: var(--ws-muted); }
.ws-auth__note { margin: 1rem 0 0; font-size: .82rem; color: var(--ws-muted); text-align: center; line-height: 1.45; }
.ws-auth__perks { list-style: none; margin: 1.1rem 0 0; padding: .9rem 1rem; border-radius: 8px; background: var(--ws-blush); font-size: .86rem; }
.ws-auth__perks li { position: relative; padding-left: 1.4rem; margin: .2rem 0; }
.ws-auth__perks li::before { content: "✓"; position: absolute; left: 0; color: var(--ws-burgundy); font-weight: 700; }
.ws-auth__call { margin: 1.3rem 0 0; padding-top: 1rem; border-top: 1px solid var(--ws-line); text-align: center; font-size: .86rem; color: var(--ws-muted); }
.ws-auth__call a { color: var(--ws-burgundy); font-weight: 700; }
.woocommerce-account:not(.logged-in) .entry-content > .woocommerce { max-width: 560px; }
.wp-block-ws-booking-wizard .ws-wizard--signin { background: none; box-shadow: none; overflow: visible; }
@media (max-width: 420px) { .ws-auth__row { grid-template-columns: 1fr; } }

/* Booking: no wine waiting to be started yet */
.wp-block-ws-booking-wizard .ws-wizard__panel--empty { text-align: center; padding-block: .5rem 0; }
.wp-block-ws-booking-wizard .ws-wizard__panel--empty .ws-wizard__note { max-width: 34em; margin-inline: auto; }
.wp-block-ws-booking-wizard .ws-wizard__empty-icon { display: block; width: 64px; height: 64px; margin: 0 auto .8rem; border-radius: 50%; background: var(--ws-blush) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23690D2A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 2h4v4l1.5 3v12a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V9L10 6z'/%3E%3Cpath d='M8.5 13h7'/%3E%3C/svg%3E") center / 32px no-repeat; }
.wp-block-ws-booking-wizard .ws-wizard__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; margin: 1.3rem 0; }
.wp-block-ws-booking-wizard .ws-wizard__panel--empty .ws-wizard__hint { display: inline-block; text-align: left; }
.wp-block-ws-booking-wizard .ws-wizard__panel--empty .ws-wizard__nav { justify-content: center; }

/* Booking: choose a new wine, options, price, review & pay */
.wp-block-ws-booking-wizard .ws-wine-pick__search { max-width: none; font-size: 1.05rem; padding: .9rem 1rem .9rem 2.6rem; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b5a60' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") .85rem center / 18px no-repeat; }
.wp-block-ws-booking-wizard .ws-wine-pick__count { margin: .8rem 0 .4rem; font-size: .8rem; color: var(--ws-muted); text-transform: uppercase; letter-spacing: .05em; }
.wp-block-ws-booking-wizard .ws-wine-pick__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.wp-block-ws-booking-wizard .ws-wine-pick__item { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "name price" "meta price"; gap: .1rem 1rem; width: 100%; padding: .75rem 1rem; border: 1px solid var(--ws-line); border-radius: 8px; background: #fff; text-align: left; font: inherit; cursor: pointer; transition: border-color .15s, background .15s; }
.wp-block-ws-booking-wizard .ws-wine-pick__item:hover, .wp-block-ws-booking-wizard .ws-wine-pick__item:focus-visible { border-color: var(--ws-burgundy); background: var(--ws-blush); }
.wp-block-ws-booking-wizard .ws-wine-pick__item-name { grid-area: name; font-weight: 700; color: var(--ws-ink); }
.wp-block-ws-booking-wizard .ws-wine-pick__item-meta { grid-area: meta; font-size: .84rem; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-wine-pick__item-price { grid-area: price; align-self: center; font-weight: 700; color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-wine-pick__more { margin: .8rem 0 0; font-size: .9rem; }
.wp-block-ws-booking-wizard .ws-wine-pick__chosen { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.1rem; margin-bottom: 1.2rem; border: 2px solid var(--ws-burgundy); border-radius: 10px; background: var(--ws-blush); }
.wp-block-ws-booking-wizard .ws-wine-pick__name { display: block; font-size: 1.1rem; }
.wp-block-ws-booking-wizard .ws-wine-pick__meta { display: block; margin-top: .2rem; font-size: .86rem; color: #5a4a50; }
.wp-block-ws-booking-wizard .ws-field--inline { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.wp-block-ws-booking-wizard .ws-field--inline label { margin: 0; }
.wp-block-ws-booking-wizard .ws-field--inline .ws-input { width: auto; min-width: 5rem; }
.wp-block-ws-booking-wizard .ws-choice { border: 0; padding: 0; margin: 0 0 1rem; }
.wp-block-ws-booking-wizard .ws-choice legend { margin-bottom: .4rem; font-weight: 700; font-size: .92rem; }
.wp-block-ws-booking-wizard .ws-choice__row { display: flex; flex-wrap: wrap; gap: .5rem; }
.wp-block-ws-booking-wizard .ws-choice__opt { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .9rem; border: 2px solid var(--ws-line); border-radius: 999px; font-weight: 600; font-size: .9rem; cursor: pointer; }
.wp-block-ws-booking-wizard .ws-choice__opt.is-selected { border-color: var(--ws-burgundy); background: var(--ws-blush); color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-choice__opt input { accent-color: var(--ws-burgundy); }
.wp-block-ws-booking-wizard .ws-price-box { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .1rem 1rem; margin-top: .5rem; padding: 1rem 1.2rem; border-radius: 10px; background: #2d0a15; color: #fff; }
.wp-block-ws-booking-wizard .ws-price-box strong { font-size: 1.6rem; }
.wp-block-ws-booking-wizard .ws-price-box small { grid-column: 1 / -1; color: #e6cdd5; }
.wp-block-ws-booking-wizard .ws-cost { width: 100%; max-width: 520px; margin: 0 0 .4rem; border-collapse: collapse; font-size: .95rem; }
.wp-block-ws-booking-wizard .ws-cost td, .wp-block-ws-booking-wizard .ws-cost th { padding: .4rem 0; border-bottom: 1px solid var(--ws-line); text-align: left; }
.wp-block-ws-booking-wizard .ws-cost td:last-child, .wp-block-ws-booking-wizard .ws-cost th:last-child { text-align: right; white-space: nowrap; }
.wp-block-ws-booking-wizard .ws-cost tfoot th { font-size: 1.15rem; color: var(--ws-burgundy); border-bottom: 0; }
.wp-block-ws-booking-wizard .ws-cost__tax { margin: 0 0 1rem; font-size: .84rem; color: var(--ws-muted); }
.wp-block-ws-booking-wizard .ws-pay__note { margin-top: .8rem; text-align: right; font-size: .85rem; }
.wp-block-ws-booking-wizard .ws-wizard__signin-back { text-align: center; margin: 1rem 0 0; }
.ws-thankyou-booking--booked { border-left: 4px solid #2f7d32; padding-left: 1rem; }
.ws-thankyou-booking--failed { border-left: 4px solid #a00; padding-left: 1rem; }
@media (max-width: 560px) { .wp-block-ws-booking-wizard .ws-pay__note { text-align: center; } }

/* ==========================================================================
   Buttons that wrap onto separate lines on phones: same width, stacked
   ========================================================================== */
@media (max-width: 600px) {
	.site-hero__actions, .ws-about-band__actions, .wp-block-ws-booking-wizard .ws-wizard__actions, .ws-featured__actions, .ws-thankyou-booking p:has(> .ws-button + .ws-button) { flex-direction: column; align-items: stretch; }
	.site-hero__actions > .ws-button, .ws-about-band__actions > .ws-button, .wp-block-ws-booking-wizard .ws-wizard__actions > .ws-button { width: 100%; text-align: center; justify-content: center; }
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) { flex-direction: column; align-items: stretch; }
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button { width: 100%; }
	.wp-block-buttons:has(> .wp-block-button + .wp-block-button) > .wp-block-button > .wp-block-button__link { display: block; width: 100%; text-align: center; box-sizing: border-box; }
}

/* ==========================================================================
   Product page: quantity box the same height as Add to Cart; tabs; related
   ========================================================================== */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .6rem; }
.woocommerce div.product form.cart > :not(.quantity):not(.single_add_to_cart_button):not(button) { flex-basis: 100%; }
.woocommerce div.product form.cart .quantity { display: flex; margin: 0 !important; float: none !important; }
.woocommerce div.product form.cart .quantity input.qty { width: 4.6rem; height: auto; min-height: 100%; padding: 0 .5rem; border: 2px solid var(--ws-line); border-radius: 4px; font: inherit; font-size: 1.05rem; font-weight: 700; text-align: center; color: var(--ws-ink); background: #fff; }
.woocommerce div.product form.cart .quantity input.qty:focus { outline: none; border-color: var(--ws-burgundy); box-shadow: 0 0 0 3px rgba(105,13,42,.15); }
.woocommerce div.product form.cart .single_add_to_cart_button { float: none !important; margin: 0 !important; min-height: 3rem; display: inline-flex; align-items: center; }
.ws-wine form.cart { align-items: stretch; }
.ws-wine form.cart .quantity input { height: 100%; min-height: 3rem; text-align: center; font-weight: 700; border-width: 2px; border-radius: 4px; }

.woocommerce div.product .woocommerce-tabs { margin-top: 2.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 0 !important; border-bottom: 2px solid var(--ws-burgundy); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 6px 6px 0 0 !important; background: var(--ws-blush) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: .7rem 1.2rem !important; color: var(--ws-burgundy) !important; font-weight: 700; font-size: .92rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--ws-burgundy) !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff !important; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0 0 1rem !important; padding: 1.6rem clamp(1rem, 3vw, 2rem); background: #fff; border: 1px solid var(--ws-line); border-top: 0; border-radius: 0 0 8px 8px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* Related products / upsells / "customers who made this also made": their own tinted band. */
.woocommerce div.product .related.products, .woocommerce div.product .upsells.products, .ws-wine__also {
	position: relative; clear: both; margin-top: clamp(2.5rem, 6vw, 4rem); padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1rem, 3vw, 2rem);
	background: var(--ws-blush); border-radius: 10px; border-top: 4px solid var(--ws-burgundy);
}
.woocommerce div.product .related.products > h2, .woocommerce div.product .upsells.products > h2, .ws-wine__also > h2, .ws-wine__also .ws-cards__title {
	margin-top: 0; font-size: clamp(1.3rem, 2.4vw, 1.6rem); color: var(--ws-burgundy);
}
.woocommerce div.product .related.products ul.products, .woocommerce div.product .upsells.products ul.products { margin-bottom: 0; }

/* Wine list: symbol key and sortable headings */
.ws-wine-list__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem 1.5rem; margin-bottom: .5rem; }
.ws-wine-list__top .ws-wine-list__count { margin: 0; }
.ws-wine-sort { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 600; color: var(--ws-muted); }
.ws-wine-sort select { padding: .35rem .5rem; border: 1px solid var(--ws-line); border-radius: 4px; font: inherit; font-weight: 400; color: var(--ws-ink); background: #fff; }
.ws-wine-legend { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: 0; padding: 0; list-style: none; font-size: .8rem; color: #555; }
.ws-wine-legend li { display: inline-flex; align-items: center; gap: .3rem; }
.ws-wine-legend .ws-badge { margin: 0; }
.ws-wine-table th[data-ws-sort] { padding: 0 !important; }
.ws-sort { display: flex; align-items: center; gap: .3rem; width: 100%; padding: .6rem .5rem; border: 0; background: none; color: inherit; font: inherit; font-weight: inherit; text-align: left; cursor: pointer; white-space: nowrap; }
.ws-sort:hover, .ws-sort:focus-visible { text-decoration: underline; }
.ws-sort__icon { display: inline-block; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; opacity: .35; }
th[aria-sort="ascending"] .ws-sort__icon { border-top: 0; border-bottom: 5px solid currentColor; opacity: 1; }
th[aria-sort="descending"] .ws-sort__icon { opacity: 1; }

/* Testimonial stars */
.ws-testimonial__stars { color: var(--ws-gold); font-size: 1.6rem; letter-spacing: .1em; }
.ws-testimonial figcaption a { color: inherit; }
.site-footer__review { margin: 1rem 0 0; font-weight: 600; }

/* Phone action bar */
.ws-mobile-actions { display: none; }
@media (max-width: 860px) {
	.ws-mobile-actions {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
		display: grid; grid-template-columns: 2fr 1fr 1fr;
		background: #fff; border-top: 1px solid var(--ws-line); box-shadow: 0 -4px 16px rgba(0,0,0,.12);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.ws-mobile-actions a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; min-height: 58px; color: var(--ws-burgundy); text-decoration: none; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
	.ws-mobile-actions a + a { border-left: 1px solid var(--ws-line); }
	.ws-mobile-actions svg { width: 22px; height: 22px; }
	.ws-mobile-actions__book { background: var(--ws-burgundy); color: #fff !important; flex-direction: row !important; gap: .5rem !important; font-size: .85rem !important; }
	body:has(.ws-mobile-actions) .site-footer { padding-bottom: 70px; }
	.site-newsletter__inner { grid-template-columns: 1fr; }
	.ws-my-wine__item { grid-template-columns: 1fr; gap: .1rem; }
	.ws-path h3 { padding: 1.2rem 1.2rem .3rem; }
	.ws-path p { padding: 0 1.2rem; }
	.ws-path .wp-block-buttons { padding: 1rem 1.2rem 1.3rem; }
	.ws-wine-cards__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
	.ws-cat-grid__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Accessibility: clearer focus, readable small text, less motion when asked. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--ws-rose); outline-offset: 2px; border-radius: 2px; }
.ws-wine-search__hint, .ws-wine-search__clear { color: #595959; }
.site-banner__crumb { color: #f3dbe2; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
	.is-style-tiles .wp-block-image:hover, .ws-wine-card:hover, .ws-cat-grid__item a:hover, .woocommerce ul.products li.product:hover, .ws-card__link:hover { transform: none; }
}

@media print {
	.site-topbar, .site-header, .site-hero, .site-banner, .site-footer, .ws-about-band, .ws-testimonial { display: none; }
}

/* Wine list: favourite heart in its own first column */
.ws-wine-table .ws-col-fav { width: 40px; padding-left: .7rem; padding-right: 0; text-align: center; }
.ws-wine-table .ws-col-fav .ws-fav--inline { margin: 0; }

/* Product "Additional information" table: values line up with their labels */
.woocommerce table.shop_attributes { border: 1px solid var(--ws-line); border-collapse: collapse; margin: 0; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td { padding: .75rem 1rem; vertical-align: middle; line-height: 1.5; border-top: 1px solid var(--ws-line); border-bottom: 0; }
.woocommerce table.shop_attributes th { width: 160px; text-align: left; color: var(--ws-burgundy); font-weight: 700; background: var(--ws-blush); }
.woocommerce table.shop_attributes td { font-style: normal; }
.woocommerce table.shop_attributes td p { margin: 0; padding: 0; }
.woocommerce table.shop_attributes tr:nth-child(even) th,
.woocommerce table.shop_attributes tr:nth-child(even) td { background: transparent; }
.woocommerce table.shop_attributes tr:nth-child(even) th { background: var(--ws-blush); }
