/*
Theme Name: WPGens
Theme URI: https://wpgens.com
Author: wpgens
Author URI: https://wpgens.com
Description: A custom WordPress theme by WPGens.
Version: 1.2.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wpgens
*/

:root {
	--font-heading: 'baskerville-urw', serif;
	--font-body: 'acumin-pro', sans-serif;
	/* Clearance to push page content below the fixed floating header
	   (36px top gap + 100px bar). `--header-clearance` adds extra breathing
	   room for content-heavy pages; `--header-clearance-mobile` is the
	   tighter value used on small viewports and on dense archive/detail
	   layouts. Update these two if the header height ever changes. */
	--header-clearance: 200px;
	--header-clearance-mobile: 150px;
}

body {
	font-family: var(--font-body);
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Body copy defaults to the light weight site-wide so block-editor paragraphs
   and lists don't need inline font-weight overrides. Authors can still bump
   individual paragraphs to a heavier weight from the editor when desired. */
p,
ul,
ol,
li {
	font-weight: 300;
}

/* Belt-and-braces: stop stray full-bleed sections (negative margin tricks,
   100vw children, etc.) from triggering horizontal page scroll on mobile. */
@media (max-width: 768px) {
	html,
	body {
		overflow-x: hidden;
	}
	/* Constrained full-bleed groups (e.g. "Explore the Côte d'Or") sit
	   edge-to-edge on mobile because the inner content-size (770px / 1180px)
	   exceeds the viewport, so the auto-margins collapse to 0. Give every
	   alignfull group consistent horizontal breathing room so headings and
	   copy match the rest of the page. */
	.wp-block-group.alignfull {
		padding-left: 20px;
		padding-right: 20px;
		box-sizing: border-box;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-heading);
	font-weight: 400;
}

/* Subheading h4 inside block-editor groups (e.g. "Our second catalogue…"
   under "Explore the Côte d'Or" on /our-wines/). */
.wp-block-group > h4.wp-block-heading {
	font-size: 30px;
	line-height: 1.25;
	margin-top: 0.5rem;
}

/* Default WP paragraph spacing: when two block-editor paragraphs are direct
   siblings, separate them so prose reads as discrete paragraphs rather than a
   single wall of text. Scoped to common block wrappers (group, media-text,
   columns, entry-content) to avoid touching form/footer paragraphs. Only
   consecutive pairs trigger this — solo paragraphs keep their natural zero
   margin. Block-specific rules with higher specificity still win where
   stricter spacing is required (e.g. product-composed rows). */
.entry-content p + p,
.wp-block-group p + p,
.wp-block-media-text__content p + p,
.wp-block-column p + p,
.wp-block-columns p + p {
	margin-top: 15px;
}

.wpgens-booking-form {
	font-family: var(--font-body);
}

.wpgens-booking-form h3 {
	font-family: var(--font-heading);
}

.wpgens-booking-form input,
.wpgens-booking-form select {
	font-family: var(--font-body);
	font-weight: 300;
}

.show-on-mobile {
	display: none;
}

/********** Top announcement bar **********/
/* Optional promotional bar above the header (configured in Customizer → Top Bar).
   Sits in normal flow so it scrolls away with the page; the floating header is
   pushed down by its measured height via the --wpgens-topbar-h variable. */
.wpgens-topbar {
	position: relative;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	padding: 12px 64px;
	box-sizing: border-box;
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
}

.wpgens-topbar__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding-right: 40px;
	box-sizing: border-box;
	text-align: center;
}

.wpgens-topbar__message {
	flex: 1 1 auto;
	font-size: 18px;
	line-height: 1.4;
}

.wpgens-topbar__message a {
	color: inherit;
	text-decoration: underline;
}

.wpgens-topbar__message strong {
	font-weight: 600;
}

.wpgens-topbar__button {
	display: inline-block;
	flex-shrink: 0;
	padding: 12px 22px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.3s ease;
}

.wpgens-topbar__button:hover {
	opacity: 0.85;
}

.wpgens-topbar__close {
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	opacity: 0.75;
	transition: opacity 0.3s ease;
}

.wpgens-topbar__close:hover {
	opacity: 1;
}

@media (max-width: 781px) {
	.wpgens-topbar {
		padding: 12px 48px;
	}
	.wpgens-topbar__inner {
		flex-direction: column;
		padding-right: 0;
	}
	.wpgens-topbar__message {
		flex: 0 0 auto;
		font-size: 16px;
	}
	.wpgens-topbar__close {
		right: 14px;
	}
}

/********** Header **********/
/* Fixed, floating dark header — recreated from chateaudepommard.com */
#header-outer {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 998;
	padding-top: calc(36px + var(--wpgens-topbar-h, 0px));
	transition: padding-top 0.3s ease, transform 0.3s ease;
}

.main-header {
	margin: 0 42px;
	height: 100px;
	padding: 0 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: rgba(20, 20, 20, 0.9);
	transition: margin 0.4s ease, height 0.4s ease, background-color 0.4s ease;
}

/* Stuck state: full-width compact bar pinned to the top when scrolling down */
#header-outer.is-stuck {
	padding-top: 0;
}
#header-outer.is-stuck .main-header {
	margin: 0;
	height: 72px;
	background-color: rgba(20, 20, 20, 0.9);
}

/* Logo (white wordmark) */
.main-header__logo {
	display: inline-flex;
	align-items: center;
}
.main-header__logo img {
	height: 24px;
	width: auto;
	display: block;
	/* PNG has ~6px transparent space at the bottom (none at top); nudge down to optically center */
	transform: translateY(1.8px);
}

/* Desktop navigation */
.main-header__nav {
	display: flex;
	align-items: center;
}
.main-header__list {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}
.main-header__list li {
	margin: 0;
}
.main-header__list a,
.main-header__link {
	display: block;
	padding: 0 15px;
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.3s ease;
}
.main-header__list a:hover,
.main-header__link:hover {
	opacity: 0.6;
}

/* Right-side actions */
.main-header__actions {
	display: flex;
	align-items: center;
}
.main-header__icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 17px;
	background: none;
	border: 0;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.main-header__icon-button:hover {
	opacity: 0.6;
}
.main-header__icon-button img {
	width: 25px;
	height: 25px;
	display: block;
}

/* Language switcher */
.language-switcher {
	position: relative;
	display: flex;
	align-items: center;
}
.language-switcher__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0 10px;
	background: none;
	border: 0;
	cursor: pointer;
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #fff;
	white-space: nowrap;
}
.language-switcher__chevron {
	width: 12px;
	height: 12px;
	filter: brightness(0) invert(1);
}
.language-switcher__dropdown {
	position: absolute;
	top: 100%;
	right: 0;
	margin: 8px 0 0;
	padding: 8px 0;
	list-style: none;
	background: rgba(20, 20, 20, 0.95);
	min-width: 120px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.language-switcher:hover .language-switcher__dropdown,
.language-switcher.is-open .language-switcher__dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.language-switcher__dropdown a {
	display: block;
	padding: 6px 16px;
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
	font-size: 12px;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.language-switcher__dropdown a:hover {
	opacity: 0.6;
}

/* Search panel */
.main-header__search-panel {
	margin: 0 42px;
	padding: 24px 36px;
	background-color: rgba(20, 20, 20, 0.95);
}
.main-header__search-inner input[type="search"],
.main-header__search-inner input[type="text"] {
	width: 100%;
	padding: 12px 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
	color: #fff;
	font-size: 16px;
	outline: none;
}
.main-header__search-inner input::placeholder {
	color: rgba(255, 255, 255, 0.6);
}
.main-header__search-inner button {
	display: none;
}

/* Hamburger toggle (mobile only) */
.main-header__toggle-container {
	display: none;
	align-items: center;
	gap: 14px;
}
/* Search icon next to hamburger (mobile only) */
.main-header__search-toggle {
	padding: 0;
}
.main-header__nav-toggle {
	position: relative;
	width: 28px;
	height: 22px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.main-header__nav-toggle span,
.main-header__nav-toggle::before,
.main-header__nav-toggle::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: #fff;
	transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}
.main-header__nav-toggle::before {
	top: 0;
}
.main-header__nav-toggle span {
	top: 10px;
}
.main-header__nav-toggle::after {
	top: 20px;
}
.main-header__nav-toggle.is-active::before {
	top: 10px;
	transform: rotate(45deg);
}
.main-header__nav-toggle.is-active span {
	opacity: 0;
}
.main-header__nav-toggle.is-active::after {
	top: 10px;
	transform: rotate(-45deg);
}

/* Mobile drawer */
.mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 997;
	padding: 140px 36px 40px;
	background-color: rgba(20, 20, 20, 0.98);
	overflow-y: auto;
}
.mobile-menu[hidden] {
	display: none;
}
.mobile-menu__list,
.mobile-menu__lang {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mobile-menu__list a,
.mobile-menu__link {
	display: block;
	padding: 16px 0;
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
	font-size: 18px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.mobile-menu__lang {
	display: flex;
	gap: 24px;
	margin-top: 28px;
}
.mobile-menu__lang a {
	font-family: acumin-pro, Helvetica, Arial, sans-serif;
	font-size: 13px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
}

/* Smaller menu font on screens below 1500px */
@media (max-width: 1499px) {
	.main-header__list a,
	.main-header__link {
		font-size: 12px;
	}
}

/* Responsive: switch to hamburger below 1024px */
@media (max-width: 1024px) {
	.main-header__toggle-container {
		display: flex;
		align-items: center;
	}
	.main-header__nav,
	.main-header__actions .main-header__icon-button,
	.main-header__actions .language-switcher {
		display: none;
	}
	.main-header {
		justify-content: space-between;
	}
	.main-header__logo {
		margin: 0 auto;
	}
}

@media (max-width: 600px) {
	#header-outer {
		padding-top: 0;
	}
	.main-header,
	.main-header__search-panel {
		margin: 0;
	}
}

/****Content****/
.content-section {
	max-width: 1000px;
	margin: 80px auto;
}
.content-section p {
	font-size: 16px;
	margin-bottom: 30px;
}

/****Error 404****/
/* Offset for fixed header (36px outer padding + 100px header bar) */
.error-404 {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--header-clearance) 24px 80px;
	text-align: center;
}
.error-404__inner {
	max-width: 720px;
	margin: 0 auto;
}
.error-404 p {
	font-size: 16px;
}
@media (max-width: 900px) {
	.error-404 {
		padding: 160px 16px 60px;
		min-height: 50vh;
	}
}
@media (max-width: 600px) {
	.error-404 {
		padding: 130px 16px 60px;
	}
}

/********** Footer **********/
.footer {
	background-color: #fff;
	padding: 70px 0 60px 0;
	font-family: 'Helvetica Neue', sans-serif;
	color: #333;
	font-weight: 400;
}

/* Force all footer descendants to weight 400, overriding the global 300 baseline */
.footer,
.footer p,
.footer a,
.footer ul,
.footer ol,
.footer li,
.footer span,
.footer h1,
.footer h2,
.footer h3,
.footer h4,
.footer h5,
.footer h6 {
	font-weight: 400;
}

.footer-container {
	max-width: 1260px;
	margin: 0 auto;
	padding: 0 20px;
}
.footer-container hr {
	background-color: #d4d4d4;
	height: 1px;
	border: 0;
	max-width: 75%;
	margin: 0 auto 100px auto;
}

.footer-columns {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-bottom: 40px;
}

.footer-col h4 {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
	font-weight: 500;
	font-size: 14px;
	margin-bottom: 20px;
	color: #55595f;
	text-transform: uppercase;
}
.footer-col h4 a {
	color: #55595f;
	text-decoration: none;
}

.footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-col ul li {
	margin-bottom: 0;
	font-size: 14px;
	line-height: 1.6;
}

.footer-col ul li a {
	text-decoration: none;
	color: #665d61;
	font-size: 14px;
	line-height: 1.6;
}

.footer-col ul li a:hover {
	color: #000;
}

.footer-bottom {
	text-align: left;
	font-size: 14px;
	color: #6a6a6a;
	display: flex;
	justify-content: space-between;
	border-top: solid 1px #d4d4d4;
	padding-top: 40px;
	line-height: 1.6;
	gap: 40px;
	align-items: flex-end;
}

.footer-bottom p {
	margin: 5px 0;
}

.footer-bottom a {
	color: #666;
	text-decoration: none;
}

.footer-text ul {
	display: flex;
	gap: 8px;
}
.footer-text li {
	display: inline-block;
	font-size: 15px;
}
.footer-text li:after {
	content: '•';
	color: #b3aeb0;
	line-height: 1;
	margin-left: 8px;
}
.footer-text li:last-child:after {
	display: none;
}
.footer-text li a {
	color: #b3aeb0;
}

.footer-logos,
.footer-social {
	display: flex;
	gap: 10px;
	align-items: center;
}
.footer-social a {
	display: inline-block;
	width: 50px;
	height: 50px;
	background-color: #c4c4c4;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}
.footer-social a i {
	font-size: 26px;
	color: #fff;
}
.footer-social a:hover {
	background-color: #67555d;
}
.footer-logos img {
	height: 67px;
}

.footer-logo-center {
	text-align: center;
	margin-top: 20px;
}

.footer-logo-center img {
	display: inline;
	max-width: 150px;
}

/**************************************
******* Responsive
**************************************/
@media screen and (min-width: 1200px) {
	.dark-header.sticky {
		position: fixed;
		top: 0;
		width: 100%;
		margin: 0;
		height: 66px;
	}
	.nav-toggle {
		display: none;
	}
}

@media screen and (max-width: 1200px) {
	.main-nav {
		position: fixed;
		width: 100%;
		height: 100%;
		top: 0;
		left: 100%;
		background-color: #fff;
		transition: all 0.3s ease;
		padding: 90px 20px 20px 44px;
	}
	.main-nav a {
		color: #000;
	}
	.main-nav ul {
		display: block;
	}
	.main-nav ul li {
		display: block;
		padding: 16px 0;
	}
	.main-nav ul li a {
		font-size: 30px;
		text-transform: none;
	}
	.dark-header {
		margin: 0;
	}
	.header-container {
		height: 70px;
		padding: 0 12px;
	}
	.logo {
		max-width: 189px;
		position: absolute;
		left: calc(50% - 95px);
	}
	.language-select {
		display: none;
	}
	.header-icons {
		display: flex;
		width: 100%;
		justify-content: space-between;
		padding-left: 24px;
	}
	.header-icons a {
		display: flex;
		align-items: center;
	}
	.header-icons img {
		max-width: 20px;
	}

	/*** Hamburger Menu ***/
	.nav-toggle {
		display: block;
		width: 32px;
		height: 18px;
		position: relative;
	}
	.nav-toggle:before,
	.nav-toggle:after,
	.nav-toggle span {
		content: '';
		position: absolute;
		background-color: #fff;
		width: 100%;
		height: 2px;
		left: 0;
		transition: all 0.3s ease;
	}
	.nav-toggle:before {
		top: 0;
	}
	.nav-toggle:after {
		bottom: 0;
	}
	.nav-toggle span {
		top: calc(50% - 1px);
	}
	.nav-toggle.nav-toggle-open span {
		display: none;
	}
	.nav-toggle.nav-toggle-open:before {
		transform: rotate(45deg);
		top: calc(50% - 1px);
		background-color: #000;
	}
	.nav-toggle.nav-toggle-open:after {
		transform: rotate(-45deg);
		bottom: calc(50% - 1px);
		background-color: #000;
	}
}

@media screen and (max-width: 768px) {
	.show-on-desktop {
		display: none;
	}
	.show-on-mobile {
		display: block;
	}
	.footer-col ul {
		display: none;
		margin-bottom: 24px;
	}
	.footer-columns {
		display: grid;
		justify-content: center;
		text-align: center;
	}
	.footer-container hr {
		display: none;
	}
	.footer-bottom {
		display: grid;
		text-align: center;
	}
	.footer-text ul {
		display: grid;
		margin: 20px 0 40px 0;
	}
	.footer-text ul li:after {
		display: none;
	}
	.footer-logos,
	.footer-social {
		justify-content: center;
	}
	.footer-logo-center img {
		margin-top: 20px;
	}
}

/**
 * Booking Form Styles
 */

/* Keep the WooCommerce button styles */
.single-product div.product .single_add_to_cart_button {
	width: 100%;
	margin-top: 2rem;
	padding: 1rem 2rem;
	font-size: 1.2rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	background: #000;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
.woocommerce div.product form.cart {
	margin-bottom: 0;
}
.single-product .price,
.single-product .quantity {
	display: none;
}

.single-product div.product .single_add_to_cart_button:hover {
	background: #333;
}

/* Remove default WooCommerce elements we don't need */
.woocommerce-product-gallery,
.product_meta,
.woocommerce-tabs,
.related.products {
	display: none !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.product-hero-content h1 {
		font-size: 2.5rem;
	}

	.product-hero-content .product-subtitle {
		font-size: 20px;
	}

	.product-hero-content .product-hero-logo {
		max-width: 90px;
		margin-bottom: 1rem;
	}

	.product-hero-content .product-hero-price {
		font-size: 32px;
		margin-top: 1.5rem;
	}

	.product-content-container {
		padding: 2rem 0;
	}
}

/* Single Product Hero Layout */
.product-hero {
	position: relative;
	height: 40vh;
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Full-height variant used by experience / WSET single pages */
.product-hero--tall {
	height: 100vh;
	min-height: 600px;
}

.product-hero-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.product-hero-image:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(20, 20, 20, 0.3);
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3));
}

.product-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-hero-content {
	position: relative;
	z-index: 2;
	text-align: center;
	color: #fff;
	padding: 2rem;
	max-width: 800px;
	margin-bottom: 48px;
}

.product-hero-content h1 {
	font-size: 72px;
	font-weight: 400;
	margin-bottom: 1rem;
	line-height: 1.1;
}

.product-hero-content .product-subtitle {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 23px;
	font-weight: 400;
	line-height: 1.34;
	margin-top: 0;
}

/* Small centered logo / crest above the product title. Mirrors the original
   École V hero's "course logo" mark sitting above the h1. */
.product-hero-content .product-hero-logo {
	display: block;
	width: auto;
	max-width: 110px;
	height: auto;
	margin: 0 auto 1.5rem;
}

/* Price under the subtitle — large serif, matches the production hero. */
.product-hero-content .product-hero-price {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: clamp(32px, 3.6vw, 48px);
	font-weight: 400;
	line-height: 1.1;
	margin-top: 2rem;
}

/* Remove the old container styles */
.product-content-container {
	position: relative;
}

/* Keep the WooCommerce button styles */
.single-product div.product .single_add_to_cart_button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	margin-top: 2rem;
	padding: 1rem 2rem;
	font-size: 1.2rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	background: #000;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
.wc-block-components-checkout-place-order-button {
	margin-top: 0;
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: none !important;
}

.single-product div.product .single_add_to_cart_button:hover {
	background: #333;
}

/* Style for error fields */
.wpgens-booking-form input.error,
.wpgens-booking-form select.error {
	border-color: #c62828;
}

/* Datepicker loading indicator */
.datepicker-loading {
	margin-top: 5px;
	font-size: 14px;
	color: #666;
	font-style: italic;
}

/* Datepicker customization */
.ui-datepicker {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 10px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.ui-datepicker-header {
	background: #f5f5f5;
	border-bottom: 1px solid #ddd;
	padding: 5px;
	margin-bottom: 10px;
}

.ui-datepicker-title {
	text-align: center;
	font-weight: 600;
}

.ui-datepicker-prev,
.ui-datepicker-next {
	cursor: pointer;
	position: absolute;
	top: 5px;
	width: 30px;
	height: 30px;
	text-align: center;
	line-height: 30px;
}

.ui-datepicker-prev {
	left: 5px;
}

.ui-datepicker-next {
	right: 5px;
}

.ui-datepicker-calendar {
	width: 100%;
	border-collapse: collapse;
}

.ui-datepicker-calendar th {
	padding: 5px;
	text-align: center;
	font-weight: 600;
}

.ui-datepicker-calendar td {
	padding: 2px;
}

.ui-datepicker-calendar a {
	display: block;
	text-align: center;
	padding: 5px;
	text-decoration: none;
	color: #333;
}

.ui-datepicker-calendar a:hover {
	background: #f0f0f0;
}

.ui-datepicker-calendar .ui-state-active {
	background: #4a90e2;
	color: #fff;
}

.ui-datepicker-calendar .ui-state-disabled {
	color: #ccc;
	cursor: not-allowed;
}

/* Date of birth selects: keep Day / Month / Year in one row, 33% each */
.dob-group {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem;
}

.dob-group .dob-part {
	width: 100%;
	min-width: 0;
}

/* Hide product short description in cart/checkout line items */
.wc-block-components-product-metadata__description {
	display: none;
}

/* Hide dark header on checkout and thank you pages */
body.woocommerce-checkout .dark-header,
body.woocommerce-order-received .dark-header,
.dark-header {
	display: none;
}

/* Thank You Page Changes */

.woocommerce-order-received h1 {
	text-align: center;
}
.woocommerce-order-received .woocommerce-order {
	max-width: 768px;
	margin: 0 auto;
}
.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-size: 21px;
	text-align: center;
}
.woocommerce-order-received .woocommerce-thankyou-order-details {
	margin-top: 48px !important;
}
.woocommerce-order-received .woocommerce-info {
	display: none;
}
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
	padding-bottom: 16px;
	font-size: 18px;
	text-transform: uppercase;
	font-weight: bold;
	font-family: var(--font-body);
}
/* CTA buttons -- match the home hero CTA (.wpgens-hero__cta): Acumin sans,
   solid #141414 block, uppercase tracked, square corners, warm-brown hover. */
.button,
.wp-element-button {
	color: #fff !important;
	/* Hover fill wipes left-to-right: a 200%-wide gradient (brown left half,
	   dark right half) parked on its right half, slid left on hover. */
	background-color: #141414 !important;
	background-image: linear-gradient(to right, #2b2b2b 0 50%, #141414 50% 100%) !important;
	background-size: 200% 100% !important;
	background-position: 100% 0 !important;
	transition: background-position 0.4s ease;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: 17px 30px !important;
}
.button:hover,
.wp-element-button:hover {
	background-position: 0 0 !important;
	text-decoration: none !important;
}

/* Low capacity styling */
.low-capacity {
	color: #e53e3e;
	font-weight: bold;
}


.product-content-container p {
	margin-bottom: 20px;
}

/**
 * My Account Page Styles
 */

/* My Account Page Container */
.cdp-myaccount-page {
	max-width: 1000px;
	margin: 0 auto;
	padding: 120px 20px 60px;
}

/* Hide default WooCommerce my-account navigation */
.woocommerce-account .woocommerce-MyAccount-navigation {
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-content {
	width: 100%;
}

/* Account Wrapper */
.cdp-myaccount-wrapper {
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Account Header with background */
.cdp-account-header {
	text-align: center;
	padding: 60px 20px 40px;
	background: linear-gradient(to bottom, rgba(200, 195, 190, 0.15) 0%, rgba(255, 255, 255, 0) 100%);
	margin: 0 -9999px;
	padding-left: 9999px;
	padding-right: 9999px;
}

.cdp-account-greeting {
	font-family: var(--font-heading);
	font-size: 38px;
	font-weight: 400;
	font-style: italic;
	margin: 0 0 8px;
	color: #1a1a1a;
}

.cdp-account-welcome {
	font-size: 13px;
	color: #666;
	margin: 0;
}

.cdp-logout-button {
	display: inline-block;
	margin-top: 16px;
	padding: 8px 28px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #1a1a1a;
	background: transparent;
	border: 1px solid #1a1a1a;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.cdp-logout-button:hover {
	background: #1a1a1a;
	color: #fff;
}

/* Tab Navigation */
.cdp-account-nav {
	display: flex;
	justify-content: center;
	gap: 5px;
	border-bottom: 1px solid #e0e0e0;
	padding-bottom: 0;
	margin-bottom: 40px;
	flex-wrap: wrap;
	background: transparent;
}

.cdp-nav-item {
	padding: 12px 20px;
	font-size: 13px;
	color: #666;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.cdp-nav-item:hover {
	color: #1a1a1a;
}

.cdp-nav-item-active {
	color: #1a1a1a;
	border-bottom-color: #1a1a1a;
}

/* Dashboard Layout */
.cdp-account-dashboard {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
}

/* Left Column - Action Sections */
.cdp-account-section {
	display: grid;
	grid-template-columns: 30px 1fr auto;
	gap: 15px;
	align-items: start;
	padding: 25px 0;
	border-bottom: 1px solid #e5e5e5;
}

.cdp-account-section:first-child {
	padding-top: 0;
}

.cdp-section-icon {
	color: #1a1a1a;
	padding-top: 2px;
}

.cdp-section-icon svg {
	width: 22px;
	height: 22px;
}

.cdp-section-content h3 {
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 8px;
	color: #1a1a1a;
}

.cdp-section-content p {
	font-size: 13px;
	color: #666;
	margin: 0;
	line-height: 1.5;
}

.cdp-section-action {
	padding-top: 2px;
}

/* Buttons */
.cdp-button {
	display: inline-block;
	padding: 10px 20px;
	font-size: 12px;
	font-weight: 500;
	text-decoration: none;
	border: 1px solid #1a1a1a;
	background: #1a1a1a;
	color: #fff;
	border-radius: 0;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.cdp-button:hover {
	background: #333;
	border-color: #333;
	color: #fff;
}

.cdp-button-disabled {
	background: #e5e5e5;
	border-color: #e5e5e5;
	color: #999;
	cursor: not-allowed;
}

.cdp-button-disabled:hover {
	background: #e5e5e5;
	border-color: #e5e5e5;
	color: #999;
}

/* Right Column - Info Sections */
.cdp-account-info-section {
	padding: 20px 0;
	border-bottom: 1px solid #e5e5e5;
}

.cdp-account-info-section:first-child {
	padding-top: 0;
}

.cdp-info-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}

.cdp-info-header h4 {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	margin: 0;
	color: #1a1a1a;
}

.cdp-info-header a {
	font-size: 13px;
	color: #666;
	text-decoration: none;
}

.cdp-info-header a:hover {
	color: #1a1a1a;
	text-decoration: underline;
}

.cdp-info-text {
	font-size: 13px;
	color: #666;
	margin: 0;
	line-height: 1.5;
}

/* Account Details */
.cdp-account-detail {
	padding: 12px 0;
	border-bottom: 1px solid #f0f0f0;
}

.cdp-account-detail:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.cdp-detail-row {
	display: flex;
	align-items: center;
	gap: 10px;
}

.cdp-detail-label {
	font-size: 13px;
	color: #1a1a1a;
	font-weight: 500;
	min-width: 120px;
}

.cdp-detail-value {
	font-size: 13px;
	color: #666;
	flex: 1;
}

.cdp-detail-edit {
	font-size: 13px;
	color: #666;
	text-decoration: none;
}

.cdp-detail-edit:hover {
	color: #1a1a1a;
	text-decoration: underline;
}

/* Responsive */
@media screen and (max-width: 768px) {
	.cdp-account-dashboard {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.cdp-account-section {
		grid-template-columns: 30px 1fr;
	}

	.cdp-section-action {
		grid-column: 2;
		padding-top: 10px;
	}

	.cdp-account-nav {
		gap: 5px;
	}

	.cdp-nav-item {
		padding: 10px 12px;
		font-size: 12px;
	}

	.cdp-account-greeting {
		font-size: 32px;
	}
}

/* ============================================================
   Help Center (FAQ): landing, category archive, single article
   ============================================================ */

/* Hero banner (category + single) ---------------------------- */
.help-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: max(50vh, 480px);
	overflow: hidden;
	color: #fff;
	text-align: center;
}
.help-hero__media {
	position: absolute;
	inset: 0;
	margin: 0;
}
.help-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.help-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.35);
}
.help-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 770px;
	padding: 120px 24px;
}
.help-hero__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.1;
	font-size: clamp(40px, 5vw, 72px);
}
.help-hero__subtitle {
	margin: 10px 0 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(18px, 2vw, 24px);
}
.help-search {
	max-width: 520px;
	margin: 28px auto 0;
}
.help-search input {
	width: 100%;
	padding: 14px 18px;
	border: none;
	background: #fff;
	color: #141414;
	font-family: var(--font-body);
	font-size: 15px;
}

/* Two-column layout (category + single) ---------------------- */
.help-main {
	background: #f5f6f6;
}
.help-layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 64px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 42px 96px;
}

/* Sidebar */
.help-sidebar__title {
	margin: 0 0 20px;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
}
.help-nav {
	margin: 0;
	padding: 0;
	list-style: none;
}
.help-nav li {
	margin: 0 0 14px;
}
.help-nav a {
	font-family: var(--font-body);
	font-size: 15px;
	color: #8a8a8a;
	text-decoration: none;
	transition: color 0.2s ease;
}
.help-nav a:hover,
.help-nav a.is-active {
	color: #141414;
}

/* Content column */
.help-content__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
}
.help-cat-title,
.help-article__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(28px, 3vw, 40px);
}
.help-article__title {
	margin: 16px 0 20px;
}
.help-back {
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #141414;
	text-decoration: none;
	white-space: nowrap;
}
.help-back:hover {
	opacity: 0.6;
}

/* Question list (category archive) */
.help-qlist {
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}
.help-qlist li {
	border-bottom: 1px solid #ddd;
}
.help-qlist a {
	display: block;
	padding: 28px 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(20px, 2vw, 26px);
	color: #141414;
	text-decoration: none;
}
.help-qlist a:hover {
	opacity: 0.6;
}
.help-empty {
	margin: 32px 0 0;
	font-family: var(--font-body);
	color: #777;
}

/* Single article body + related */
.help-article__body {
	font-family: var(--font-body);
	font-size: 17px;
	line-height: 1.7;
	color: #333;
}
.help-article__body p {
	margin: 0 0 1em;
}
.help-article__body a {
	color: #141414;
	text-decoration: underline;
}
.help-divider {
	margin: 48px 0;
	border: 0;
	border-top: 1px solid #ddd;
}
.help-related__title {
	margin: 0 0 24px;
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #141414;
}
.help-related {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}
.help-related__q {
	margin: 0 0 10px;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
	line-height: 1.2;
}
.help-related__q a {
	color: #141414;
	text-decoration: none;
}
.help-related__q a:hover {
	opacity: 0.6;
}
.help-related__excerpt {
	margin: 0;
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.6;
	color: #777;
}

/* Landing (/help) -------------------------------------------- */
.help-landing {
	max-width: 1130px;
	margin: 0 auto;
	/* No hero — use the standard header clearance. */
	padding: var(--header-clearance) 42px 120px;
}
.help-landing__title {
	margin: 0 0 48px;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(40px, 5vw, 64px);
}
.help-landing__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.help-landing__list li {
	border-bottom: 1px solid #ddd;
}
.help-landing__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 32px 0;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(24px, 3vw, 34px);
	color: #141414;
	text-decoration: none;
}
.help-landing__list a:hover {
	opacity: 0.6;
}
.help-landing__list .arrow {
	font-size: 22px;
}

/* Responsive */
@media (max-width: 900px) {
	.help-layout {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 40px 24px 64px;
	}
	.help-related {
		grid-template-columns: 1fr;
	}
	.help-landing {
		padding: 140px 24px 80px;
	}
}

/* ============================================================
   Blog: "Latest News" listing, category archive, single story
   ============================================================ */

/* Listing + category archive -------------------------------- */
.blog-listing {
	max-width: 1264px;
	margin: 0 auto;
	/* No hero — use the standard header clearance. */
	padding: var(--header-clearance) 42px 120px;
}
.blog-listing__header {
	text-align: center;
	margin-bottom: 56px;
}
.blog-listing__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.05;
	font-size: clamp(40px, 5vw, 64px);
}
.blog-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 40px;
	margin-top: 28px;
}
.blog-filter__link {
	position: relative;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #141414;
	text-decoration: none;
	opacity: 0.55;
	transition: opacity 0.2s ease;
}
.blog-filter__link:hover {
	opacity: 1;
}
.blog-filter__link.is-active {
	opacity: 1;
	font-weight: 700;
}
/* Dot separators between chips. */
.blog-filter__link:not(:last-child)::after {
	content: "";
	position: absolute;
	right: -22px;
	top: 50%;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.4;
}
.blog-listing__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 48px 24px;
}
/* Blog cards: white text box on the gray section. */
.blog-listing__grid .wpgens-post-card__figure {
	margin: 0; /* beat WP core's unlayered :where(figure){margin:0 0 1em} so the image sits flush on the white box */
}
.blog-listing__grid .wpgens-post-card__body {
	background: #fff;
	padding: 18px 24px 24px;
}
.blog-listing__empty {
	text-align: center;
	font-family: var(--font-body);
	opacity: 0.7;
}

/* Pagination ------------------------------------------------- */
.blog-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0;
	margin-top: 72px;
}
.blog-pagination .page-numbers {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	padding: 0 10px;
	font-family: var(--font-heading);
	font-size: 30px;
	font-weight: 400;
	line-height: 1;
	color: #7d7d7d;
	text-decoration: none;
	border: 0;
	background: transparent;
	transition: color 0.2s ease;
}
.blog-pagination .page-numbers:hover {
	color: #141414;
}
.blog-pagination .page-numbers.current {
	color: #141414;
	background: transparent;
}
.blog-pagination .page-numbers.dots {
	font-size: 16px;
	color: #141414;
}

/* Single story ---------------------------------------------- */
.story {
	max-width: 1364px;
	margin: 0 auto;
	padding: var(--header-clearance) 42px 0;
}
.story__header {
	text-align: center;
	max-width: 820px;
	margin: 0 auto 48px;
}
.story__eyebrow {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #8a7d6a;
	margin-bottom: 22px;
}
.story__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.08;
	font-size: clamp(34px, 4.4vw, 60px);
}
.story__date {
	display: block;
	margin-top: 22px;
	font-family: var(--font-body);
	font-size: 15px;
	letter-spacing: 1px;
	color: #8a7d6a;
}
.story__media {
	margin: 0 0 64px;
}
.story__img {
	display: block;
	width: 100%;
	height: auto;
}
.story__content {
	max-width: 810px;
	margin: 0 auto;
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.75;
	color: #2a2a2a;
}
.story__content h2,
.story__content h3 {
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.15;
	margin: 2em 0 0.75em;
}
.story__content h3 {
	font-size: clamp(26px, 3vw, 38px);
}
.story__content p {
	margin: 0 0 1.4em;
}
.story__content img {
	max-width: 100%;
	height: auto;
}

/* Share rail (below content, above related) ------------------ */
.story-share {
	max-width: 810px;
	margin: 64px auto 0;
	padding: 24px 0;
	border-top: 1px solid #d9d6cf;
	border-bottom: 1px solid #d9d6cf;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	font-family: var(--font-body);
	font-size: 14px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #1a1a1a;
}
.story-share__posted {
	display: flex;
	align-items: center;
	gap: 8px;
}
.story-share__posted-label {
	font-weight: 700;
}
.story-share__posted-cat {
	color: #8a7d6a;
	text-decoration: none;
}
.story-share__posted-cat:hover {
	color: #1a1a1a;
}
.story-share__actions {
	display: flex;
	align-items: center;
	gap: 18px;
}
.story-share__label {
	font-weight: 400;
	letter-spacing: 1.5px;
	margin-right: 4px;
}
.story-share__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1a1a1a;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.story-share__icon:hover {
	opacity: 0.6;
}

/* Related articles ------------------------------------------ */
.story-related {
	margin: 80px auto 0;
	padding: 0 0 120px;
}
.story-related__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(28px, 3vw, 40px);
	margin: 0 0 40px;
}
.story-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}
.story-related__card {
	display: flex;
	flex-direction: column;
}
.story-related__media {
	display: block;
	text-decoration: none;
}
.story-related__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	background-color: #f0eee9;
}
.story-related__media--empty {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 1;
	background-color: #f0eee9;
}
.story-related__card-title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 24px;
	line-height: 1.2;
	margin: 18px 0 0;
}
.story-related__card-title a {
	color: inherit;
	text-decoration: none;
}
.story-related__card-title a:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.blog-listing,
	.story {
		padding: var(--header-clearance-mobile) 24px 80px;
	}
	.story {
		padding-bottom: 0;
	}
	.blog-listing__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.story-related {
		padding-bottom: 80px;
	}
	.story-related__grid {
		grid-template-columns: 1fr;
	}
	.story-share {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
	.blog-filter {
		gap: 20px;
	}
	/* Mobile: gap is 20px, so the dot must sit in the middle of that gap
	   (~10px from each chip) instead of the desktop -22px which would overlap
	   the next chip. */
	.blog-filter__link:not(:last-child)::after {
		right: -11px;
	}
}

/* ==========================================================================
   Wine catalogue — archive (/our-wines) + collection archives + cards
   ========================================================================== */

.wine-archive {
	max-width: 1280px;
	margin: 0 auto;
	/* Embedded usage (e.g. /our-wines/, after editable hero + intro section).
	   The section above already supplies its own bottom padding, so we just need
	   a small breathing gap before the filter sidebar / grid. */
	padding: 40px 24px 96px;
}
/* Standalone collection / category archives render their own header at the top
   of the page (no editable section above), so they need the full top padding
   to clear the fixed site header. */
.wine-archive:has(.wine-archive__header) {
	padding-top: var(--header-clearance-mobile);
}

.wine-archive__header {
	text-align: center;
	margin-bottom: 48px;
}

.wine-archive__eyebrow {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #79ad36;
	margin-bottom: 14px;
}

.wine-archive__title {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-weight: 400;
	font-size: clamp(34px, 4.5vw, 56px);
	color: #171f28;
	margin: 0 0 18px;
}

.wine-archive__intro {
	max-width: 720px;
	margin: 0 auto;
	color: #59595b;
	line-height: 1.7;
}

/* Two-column body: filter sidebar (left) + product grid (right) */
.wine-archive__body {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 56px;
	align-items: start;
}

/* Filter sidebar */
.wine-filters {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 150px;
	background: #ffffff;
	padding: 32px 28px;
}

/* Mobile-only collapsed filter header (FILTER label + icon). Hidden on
   desktop; on mobile the entire filter form collapses to this single bar
   and the body expands inline when the user taps it. */
.wine-filters__toggle {
	display: none;
}
.wine-filters__body {
	display: contents;
}

/* Body paragraphs run at font-weight 300, which makes a nested <strong>
   compute to only 400 (browser "bolder" relative step). Re-assert a visibly
   bold weight for inline emphasis inside large-font paragraphs. */
.has-large-font-size strong {
	font-weight: 600;
}

.wine-filters__group {
	border: 0;
	margin: 0;
	padding: 0 0 22px;
}

/* Separate groups via margin (not padding) so the legend-to-options gap stays
   identical across all groups; padding-top in a fieldset is rendered between
   the legend and the content area, which inflates the visual gap. */
.wine-filters__group + .wine-filters__group {
	margin-top: 22px;
}

.wine-filters__legend {
	display: block;
	width: 100%;
	padding: 0;
	margin-bottom: 16px;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #7d7d7d;
	font-weight: 700;
}

.wine-filters__options {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.wine-filters__option {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	color: #000000;
	cursor: pointer;
}

.wine-filters__option:hover {
	color: #171f28;
}

/* Visually hide the native checkbox (still keyboard-focusable). */
.wine-filters__input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

/* Custom 22px check, matching production. */
.wine-filters__check {
	width: 22px;
	height: 22px;
	border: 2px solid #ddd;
	background: #fff;
	flex-shrink: 0;
	position: relative;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.wine-filters__check::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 1px;
	width: 6px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.wine-filters__input:checked + .wine-filters__check {
	background: #141414;
	border-color: #141414;
}

.wine-filters__input:checked + .wine-filters__check::after {
	opacity: 1;
}

.wine-filters__input:focus-visible + .wine-filters__check {
	outline: 2px solid #79ad36;
	outline-offset: 2px;
}

/* Filter actions: FILTER button + CLEAR link.
   Without JS they are always visible (graceful fallback). With JS they appear
   only after at least one checkbox is checked -- toggled via data-has-selection
   in the markup and updated by custom.js on change. */
.wine-filters__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	padding-top: 32px;
}

html.js .wine-filters__actions[data-has-selection="false"] {
	display: none;
}

.wine-filters__submit {
	display: block;
	width: 100%;
	padding: 22px 24px;
	background: #141414;
	color: #ffffff;
	border: 0;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
}

.wine-filters__clear {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 14px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #6a6a6c;
	text-decoration: none;
}

.wine-filters__clear:hover {
	color: #141414;
}

.wine-filters__clear-icon {
	display: block;
	flex-shrink: 0;
}

.wine-archive__count {
	display: none;
}

/* Grid */
.wine-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px 24px;
}

.wine-archive__empty {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 38px;
	font-weight: 400;
	line-height: 1.2;
	text-align: center;
	color: #141414;
	margin: 0;
	padding: 0;
}

/* Wine card */
.wpgens-wine-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	text-align: left;
	padding: 32px 24px 32px;
	background: #ffffff;
}

.wpgens-wine-card__figure {
	height: 400px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	flex-shrink: 0;
}

.wpgens-wine-card__img {
	max-height: 400px;
	max-width: 100%;
	width: auto;
	object-fit: contain;
}

.wpgens-wine-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.wpgens-wine-card__title {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-weight: 400;
	font-size: 18px;
	color: #171f28;
	margin: 0 0 40px;
}

.wpgens-wine-card__meta {
	display: none;
}

.wpgens-wine-card__cta {
	display: inline-block;
	margin-top: auto;
	width: 100%;
	padding: 17px 12px;
	color: #fff;
	background-color: #141414;
	background-image: linear-gradient(to right, #2b2b2b 0 50%, #141414 50% 100%);
	background-size: 200% 100%;
	background-position: 100% 0;
	transition: background-position 0.4s ease;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-align: center;
	box-sizing: border-box;
}

.wpgens-wine-card:hover .wpgens-wine-card__cta {
	background-position: 0 0;
}

/* View More button (replaces classic pagination) */
.wine-archive__view-more {
	display: flex;
	justify-content: center;
	margin-top: 56px;
}

.wine-archive__view-more-btn {
	display: inline-block;
	padding: 17px 48px;
	color: #fff;
	background-color: #141414;
	background-image: linear-gradient(to right, #2b2b2b 0 50%, #141414 50% 100%);
	background-size: 200% 100%;
	background-position: 100% 0;
	transition: background-position 0.4s ease;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
}

.wine-archive__view-more-btn:hover {
	background-position: 0 0;
	color: #fff;
}

@media (max-width: 1024px) {
	.wine-archive__body {
		grid-template-columns: 210px 1fr;
		gap: 36px;
	}
	.wine-archive__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.wine-archive {
		padding-top: 110px;
		overflow-x: hidden;
	}
	.wine-archive__body {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.wine-filters {
		position: static;
		top: auto;
		padding: 0;
		background: transparent;
	}
	/* Collapsed-by-default filter bar on mobile: FILTER label + icon. */
	.wine-filters__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		padding: 18px 20px;
		background: #ffffff;
		border: 0;
		border-bottom: 1px solid #e5e5e5;
		font-family: "acumin-pro", Helvetica, Arial, sans-serif;
		font-size: 18px;
		font-weight: 400;
		letter-spacing: 1.5px;
		text-transform: uppercase;
		color: #141414;
		cursor: pointer;
	}
	.wine-filters__toggle-icon {
		color: #141414;
		flex-shrink: 0;
	}
	.wine-filters__body {
		display: none;
		background: #ffffff;
		padding: 24px 20px;
	}
	.wine-filters__toggle[aria-expanded="true"] + .wine-filters__body {
		display: block;
	}
	.wine-archive__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
	.wpgens-wine-card__figure {
		height: 280px;
	}
	.wpgens-wine-card__img {
		max-height: 280px;
	}
	.wpgens-wine-card__title {
		font-size: 16px;
	}
	.wpgens-wine-card__cta {
		font-size: 12px;
		letter-spacing: 1.5px;
		padding: 14px 10px;
	}
}

/* Embedded variant: archive sits mid-page (e.g. /our-wines/clos-marey-monge/)
   between editorial sections, so it owns its own full-bleed white background
   and its own vertical rhythm rather than the page-top 150px header clearance. */
.wine-archive--embedded {
	max-width: none;
	background: #ffffff;
	padding: 64px 24px 96px;
}
.wine-archive--embedded.wine-archive--bg-gray {
	background: #f5f6f6;
}
.wine-archive--embedded .wine-archive__body {
	max-width: 1280px;
	margin: 0 auto;
}
.wine-archive--embedded .wine-filters {
	top: 110px;
}

/* Flagship Blend section -- matches production "Our Flagship Blend":
   image on the LEFT (boxed, ~480px wide), text column on the RIGHT
   vertically centred with centre-aligned title, copy and CTA on white. */
/* Centred editorial section on the Clos Marey-Monge collection page:
   title (h2), subtitle (large baskerville p) and body all constrained to
   a 770px measure so they sit centred on the full-bleed background. */
.wpgens-centered__inner {
	max-width: 770px;
	margin: 0 auto;
}
.wpgens-section-subtitle {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 23px;
	font-weight: 400;
	line-height: 1.4;
	color: #141414;
	margin: 0 0 24px;
}

.wpgens-flagship {
	background-color: #ffffff;
	padding: 48px 24px;
}
.wpgens-flagship__inner {
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 72px;
	align-items: center;
}
.wpgens-flagship__media {
	margin: 0;
}
.wpgens-flagship__media img {
	width: 100%;
	max-width: 480px;
	height: auto;
	display: block;
	margin: 0 auto;
}
.wpgens-flagship__content {
	text-align: center;
	max-width: 540px;
	margin: 0 auto;
}
.wpgens-flagship__title {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-weight: 400;
	font-size: clamp(36px, 4.4vw, 60px);
	line-height: 1.07;
	margin: 0 0 24px;
	color: #141414;
}
.wpgens-flagship__text {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.7;
	color: #141414;
	margin: 0 0 32px;
}
.wpgens-flagship__cta {
	display: inline-block;
}
@media (max-width: 768px) {
	.wpgens-flagship__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.wpgens-flagship__content {
		max-width: 100%;
	}
}

/* Award Winning section -- two-column grid of press review cards
   styled to match the blog post-card pattern (image 2:1, title under,
   Read More CTA). The shared .wpgens-post-card styles already provide
   the card chrome; this only owns the section header and grid. */
.wpgens-awards {
	background-color: #ffffff;
	padding: 80px 24px;
}
.wpgens-awards__inner {
	max-width: 1280px;
	margin: 0 auto;
}
.wpgens-awards__header {
	text-align: center;
	margin-bottom: 60px;
}
.wpgens-awards__title {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-weight: 400;
	line-height: 1.07;
	font-size: clamp(34px, 4.4vw, 60px);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin: 0 0 16px;
	color: #141414;
}
.wpgens-awards__subtitle {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 23px;
	font-weight: 400;
	line-height: 1.4;
	color: #141414;
	max-width: 720px;
	margin: 0 auto;
}
.wpgens-awards__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px 32px;
}
@media (max-width: 768px) {
	.wpgens-awards {
		padding: 48px 24px;
	}
	.wpgens-awards__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

/* ==========================================================================
   Single wine
   ========================================================================== */

.wine-detail {
	background: #ffffff;
	padding: var(--header-clearance-mobile) 24px 80px;
}

.wine-detail__inner {
	max-width: 1180px;
	margin: 0 auto;
}

.wine-detail__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(38px, 6vw, 64px);
	line-height: 1.05;
	color: #171f28;
	text-align: center;
	margin: 0 0 64px;
	padding: 40px 0;
}

.wine-detail__layout {
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	gap: 72px;
	align-items: flex-start;
}

.wine-detail__media {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	min-height: 480px;
}

.wine-detail__packshot {
	max-height: 560px;
	width: auto;
	object-fit: contain;
}

.wine-detail__badge {
	display: none;
}

/* Tabs --------------------------------------------------------------------- */

.wine-tabs__headers {
	display: flex;
	gap: 0;
	border-bottom: 2px solid #171f28;
}

.wine-tabs__header {
	appearance: none;
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 14px 28px;
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 7px;
	text-transform: uppercase;
	color: #9b9b9b;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.wine-tabs__header.is-active {
	background: #141414;
	color: #ffffff;
	font-weight: 700;
}

.wine-tabs__panels {
	padding-top: 40px;
	display: grid;
	grid-template-areas: "stack";
}

.wine-tabs__panel {
	grid-area: stack;
	display: block;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.wine-tabs__panel.is-active {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.wine-tabs__text {
	color: #141414;
	line-height: 1.85;
	font-size: 18px;
	font-weight: 300;
}

.wine-tabs__text p {
	margin: 0 0 1em;
}

.wine-tabs__items {
	display: flex;
	flex-wrap: nowrap;
	gap: 40px;
	margin-top: 36px;
	padding-top: 32px;
	border-top: 1px solid #171f28;
}

.wine-tabs__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 0 0 calc((100% - 80px) / 3);
	min-width: 0;
}

.wine-tabs__item-label {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	color: #171f28;
}

.wine-tabs__item-value {
	color: #8c8c8e;
	font-size: 18px;
}

/* Purchase bar ------------------------------------------------------------- */

.wine-purchase {
	background: #ffffff;
	padding: 0 24px 80px;
}

.wine-purchase__inner {
	max-width: 1180px;
	margin: 0 auto;
	display: flex;
	align-items: stretch;
	gap: 0;
	background: #f5f6f6;
}

.wine-purchase__text {
	flex: 1;
	margin: 0;
	padding: 20px 36px;
	color: #171f28;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.6;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}

.wine-purchase__cta {
	flex: 0 0 auto;
	padding: 20px 60px;
	background-color: #141414;
	background-image: linear-gradient(to right, #2b2b2b 0 50%, #141414 50% 100%);
	background-size: 200% 100%;
	background-position: 100% 0;
	transition: background-position 0.4s ease;
	color: #fff;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}

.wine-purchase__cta:hover {
	background-position: 0 0;
	color: #fff;
}

.wine-purchase__inner--soldout {
	justify-content: center;
	background: none;
}

.wine-purchase__cta--disabled {
	background-color: #8a8f94;
	background-image: none;
	letter-spacing: 2px;
	cursor: not-allowed;
	border: none;
}

.wine-purchase__cta--disabled:hover {
	background-position: 100% 0;
}

/* Terroir grey block ------------------------------------------------------- */

/* Critic awards / scores ---------------------------------------------------- */

.wine-awards {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 36px;
}

.wine-awards__item {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 100px;
	height: 100px;
	padding: 12px;
	border: 1px solid #e2e2e2;
	background: #ffffff;
	box-sizing: border-box;
}

.wine-awards .wine-awards__img {
	display: block;
	height: auto;
	width: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.wine-awards__score {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
	color: #1d2327;
}

.wine-awards__item--scored .wine-awards__img {
	max-height: 60px;
}

/* More wines carousel ------------------------------------------------------ */

.wine-more {
	background: #f5f6f6;
	padding: 96px 24px;
}

.wine-more__inner {
	max-width: 1280px;
	margin: 0 auto;
	text-align: center;
}

.wine-more__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(30px, 4vw, 44px);
	color: #171f28;
	margin: 0 0 56px;
}

.wine-more__viewport {
	position: relative;
	display: flex;
	align-items: stretch;
	gap: 16px;
}

.wine-more__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 3 * 24px) / 4);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	flex: 1;
}

.wine-more__track::-webkit-scrollbar {
	display: none;
}

.wine-more__card {
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	text-align: left;
	padding: 32px 24px 32px;
	background: #ffffff;
}

.wine-more__figure {
	height: 320px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	flex-shrink: 0;
}

.wine-more__packshot {
	max-height: 320px;
	max-width: 100%;
	width: auto;
	object-fit: contain;
}

.wine-more__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.wine-more__name {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-weight: 400;
	font-size: 18px;
	color: #171f28;
	margin: 0 0 40px;
}

.wine-more__discover {
	display: inline-block;
	margin-top: auto;
	width: 100%;
	padding: 17px 12px;
	color: #fff;
	background-color: #141414;
	background-image: linear-gradient(to right, #2b2b2b 0 50%, #141414 50% 100%);
	background-size: 200% 100%;
	background-position: 100% 0;
	transition: background-position 0.4s ease;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-align: center;
	box-sizing: border-box;
}

.wine-more__card:hover .wine-more__discover {
	background-position: 0 0;
}

.wine-more__arrow {
	appearance: none;
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 26px;
	line-height: 1;
	color: #171f28;
	padding: 12px;
	transition: opacity 0.2s ease;
}

.wine-more__arrow:disabled {
	opacity: 0.25;
	cursor: default;
}

@media (max-width: 980px) {
	.wine-detail__layout {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.wine-detail__media {
		min-height: 0;
	}

	.wine-awards {
		justify-content: center;
	}

	.wine-more__track {
		grid-auto-columns: calc((100% - 32px) / 2);
	}
}

@media (max-width: 640px) {
	.wine-purchase__inner {
		flex-direction: column;
	}

	.wine-purchase__cta {
		justify-content: center;
		padding: 20px;
	}

	/* Stack the tabs vertically so long labels (e.g. "Winemaking") no longer
	   run off the right edge on narrow screens. */
	.wine-tabs__headers {
		flex-direction: column;
		border-bottom: 0;
		border-left: 2px solid #171f28;
	}

	.wine-tabs__header {
		text-align: left;
		padding: 12px 18px;
		font-size: 14px;
		letter-spacing: 4px;
	}

	.wine-tabs__items {
		flex-direction: column;
		gap: 20px;
	}

	/* Overlay the carousel arrows on the track edges so each card gets the full
	   row width instead of sharing it with the arrows (~1.6x wider cards). */
	.wine-more__viewport {
		gap: 0;
	}

	.wine-more__arrow {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: 2;
		width: 40px;
		height: 40px;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		background: rgba(255, 255, 255, 0.9);
		border-radius: 50%;
		box-shadow: 0 1px 6px rgba(0, 0, 0, 0.15);
	}

	.wine-more__arrow--prev {
		left: 6px;
	}

	.wine-more__arrow--next {
		right: 6px;
	}

	.wine-more__track {
		grid-auto-columns: 85%;
	}
}

/* ==========================================================================
   Age gate
   ========================================================================== */

.age-gate {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	overflow: hidden;
}

/* Hidden once the visitor has confirmed (class set pre-paint in <head>). */
.age-verified .age-gate {
	display: none;
}

.age-gate__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center top;
}

.age-gate__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

.age-gate__panel {
	position: relative;
	z-index: 1;
	max-width: 520px;
	width: 100%;
	text-align: center;
	color: #fff;
	padding: 24px;
}

.age-gate__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 8px;
}

.age-gate__logo img {
	display: block;
	width: 300px;
	max-width: 90%;
	height: auto;
	margin: 0 auto;
}

.age-gate__wrap {
	width: 300px;
	max-width: 90%;
	margin: 0 auto;
}

.age-gate__label {
	display: block;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.6;
	color: #fff;
	margin: 2.5rem auto 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.age-gate__enter {
	display: inline-block;
	width: 200px;
	margin: 2.5rem auto;
	padding: 16px 40px;
	background: #fff;
	color: #1a1a1a;
	border: 0;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.age-gate__enter:hover {
	background: transparent;
	color: #fff;
	box-shadow: inset 0 0 0 1px #fff;
}

.age-gate__text {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	line-height: 1.3;
	color: #fff;
	margin: 0;
}

.age-gate__text a {
	color: #fff;
	text-decoration: underline;
}

.age-gate__text a:hover {
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.age-gate__logo img {
		width: 200px;
	}
}

/* ==========================================================================
   Contact / concierge
   ========================================================================== */

.contact-page {
	max-width: 1180px;
	margin: 0 auto;
	padding: 140px 24px 96px;
}

.contact-page__header {
	text-align: center;
	margin-bottom: 56px;
}

.contact-page__eyebrow {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #79ad36;
	margin-bottom: 14px;
}

.contact-page__title {
	font-family: "baskerville-urw", Georgia, serif;
	font-weight: 400;
	font-size: clamp(34px, 4.5vw, 56px);
	color: #171f28;
	margin: 0;
}

.contact-page__grid {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 64px;
	align-items: start;
}

.contact-info__group {
	margin-bottom: 32px;
}

.contact-info__label {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #8c8c8e;
	margin: 0 0 8px;
}

.contact-info__value {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	color: #171f28;
	line-height: 1.7;
	margin: 0;
}

.contact-info__value a {
	color: #171f28;
	text-decoration: none;
	border-bottom: 1px solid #79ad36;
}

@media (max-width: 860px) {
	.contact-page__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* ==========================================================================
   Legal / prose pages
   ========================================================================== */

.legal-page {
	max-width: 820px;
	margin: 0 auto;
	padding: var(--header-clearance) 24px 96px;
}

/* When a hero block opens the page, the hero already provides the top spacing
   off the fixed header, so the prose column collapses its own top padding. */
.legal-page--has-hero {
	padding-top: 56px;
}

@media (max-width: 900px) {
	.legal-page {
		padding: 160px 24px 80px;
	}
	.legal-page--has-hero {
		padding-top: 56px;
	}
}

@media (max-width: 600px) {
	.legal-page {
		padding: 130px 16px 64px;
	}
	.legal-page--has-hero {
		padding-top: 40px;
	}
}

.legal-page__title {
	font-family: "baskerville-urw", Georgia, serif;
	font-weight: 400;
	font-size: clamp(32px, 4vw, 48px);
	color: #171f28;
	margin: 0 0 40px;
	text-align: center;
}

.legal-page__body {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	color: #59595b;
	line-height: 1.8;
}

.legal-page__body h2,
.legal-page__body h3 {
	font-family: "baskerville-urw", Georgia, serif;
	font-weight: 400;
	color: #171f28;
	margin: 56px 0 24px;
	text-align: center;
}

.legal-page__body h2 {
	font-size: clamp(26px, 3vw, 34px);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.legal-page__body h2:first-child {
	margin-top: 0;
}

.legal-page__body h4 {
	font-family: "baskerville-urw", Georgia, serif;
	font-weight: 400;
	color: #171f28;
	font-size: 30px;
	margin: 40px 0 16px;
}

/* Section dividers between the three top-level legal sections (TASTING
   EXPERIENCES / WINES / ÉCOLE V): a hairline above each H2 (except the first). */
.legal-page__body h2 + * {
	margin-top: 16px;
}

.legal-page__body p {
	font-size: 18px;
	margin: 0 0 15px;
}

.legal-page__body p:last-child {
	margin-bottom: 0;
}

.legal-page__body a {
	color: #5e862a;
}

.legal-page__body ul,
.legal-page__body ol {
	padding-left: 1.4em;
	margin: 0 0 15px;
}

.legal-page__body li + li {
	margin-top: 6px;
}

/********** Section dividers & media+text content panels **********/
/* Centered section-title headings sit in full-width constrained groups
   (e.g. "Who We Are", "A Collaboration With Nature", "What We Do"). The
   original renders these noticeably larger than a normal h2 — a flat 60px
   on desktop. Kept responsive on the way down. */
.wp-block-group h2.wp-block-heading.has-text-align-center {
	font-size: clamp(40px, 6vw, 60px);
	font-weight: 400;
}
/* The Experiences page uses the smaller 38px section-title scale throughout
   (matching its slider headings), so its centered section titles — Schedules
   and Reservations included — stay at 38px rather than the estate-intro 60px. */
.page-experiences .wp-block-group h2.wp-block-heading.has-text-align-center {
	font-size: 38px;
}

/* Allow small / portrait images inside a media-text figure to display at their
   natural size, centered in the column, instead of being stretched to fill the
   full column width (which is core's default). Large images still cap at the
   column width via max-width:100%, so existing pages don't change. Per-page
   overrides (.wpgens-scholarship-row, .wpgens-educator, body.page-made-by-nature
   etc.) carry higher specificity and continue to win where they need to. */
.wp-block-media-text__media {
	text-align: center;
}
.wp-block-media-text__media img {
	width: auto;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
}

/* Media + Text panels (Our Château, Our Vineyard, Organic and Biodynamic
   Certified, Staying True to the Terroir, Our Wines, Our Tasting Experiences…).
   These all share one visual treatment, applied globally to every instance of
   the block: centered content, a 30px heading, and a centered CTA below. */
.wp-block-media-text__content {
	text-align: center;
}
.wp-block-media-text__content > .wp-block-heading {
	font-size: 30px;
	font-weight: 400;
	margin-bottom: 15px;
}
/* When a media-text row carries an h2 it is a full section title (e.g. Our Wine
   Advisors), so it takes the larger 38px section-title size rather than the
   30px card-heading size used by h3/h4 rows. */
.wp-block-media-text__content > h2.wp-block-heading {
	font-size: 38px;
}
.wp-block-media-text__content .wp-block-buttons {
	justify-content: center;
	margin-top: 50px;
}

/* Inline body-copy links inside Media + Text paragraphs (e.g. the AB Organic /
   Demeter links in /our-estate's "Organic and Biodynamic Certified" panel)
   underline so they read as links — CTAs in these blocks are styled buttons. */
.wp-block-media-text__content p a {
	text-decoration: underline;
}

/* Grape varietal sections (/our-wines: "Pinot Noir" and "Chardonnay") on mobile:
   left-align body copy and heading, and constrain the image so it isn't
   edge-to-edge on small screens. Desktop keeps the default media-text behavior. */
@media (max-width: 768px) {
	.wp-block-media-text.wpgens-grape-section .wp-block-media-text__content {
		text-align: left;
		/* WP core sets ~8% (~27px @ 375px) horizontal padding on
		   media-text content. With the alignfull parent already supplying
		   20px on mobile, that doubles up. Zero it out so the only
		   horizontal padding comes from the section wrapper. */
		padding-left: 0;
		padding-right: 0;
	}
	.wp-block-media-text.wpgens-grape-section .wp-block-media-text__content > h2.wp-block-heading {
		text-align: left;
		margin-bottom: 24px;
	}
	.wp-block-media-text.wpgens-grape-section .wp-block-media-text__media {
		text-align: center;
	}
	.wp-block-media-text.wpgens-grape-section .wp-block-media-text__media img {
		max-width: 84%;
		height: auto;
		margin: 0 auto;
	}
}

/* Vintage story media-text rows (e.g. /the-story-of-our-clos-marey-monge-2022-vintage
   "Grape Growing", "Wine Making"): the original left-aligns body copy and uses a
   large serif heading and a slightly larger body size. */
.wp-block-media-text.wpgens-vintage-section .wp-block-media-text__content {
	text-align: left;
}
.wp-block-media-text.wpgens-vintage-section .wp-block-media-text__content > h2.wp-block-heading {
	font-size: clamp(38px, 5vw, 54px);
	margin-bottom: 24px;
}
.wp-block-media-text.wpgens-vintage-section .wp-block-media-text__content p {
	font-size: 20px;
	line-height: 1.65;
}

/* Vintage story 2023 media-text rows: image is constrained to 84% of its column
   (centered), and body copy is left-aligned. Used on
   /the-story-of-our-clos-marey-monge-2023-vintage where the original layout
   keeps images narrower than the column and left-aligns paragraphs. */
.wp-block-media-text.wpgens-vintage-2023-row .wp-block-media-text__content {
	text-align: left;
}
.wp-block-media-text.wpgens-vintage-2023-row .wp-block-media-text__media {
	text-align: center;
}
.wp-block-media-text.wpgens-vintage-2023-row .wp-block-media-text__media img {
	max-width: 84%;
	height: auto;
	margin: 0 auto;
}

/* About page media-text rows (Our Wines, Cote de Beaune / Cote de Nuits, Our
   Tastings): the original left-aligns body copy and constrains the image to 84%
   of its column, centered. Same treatment as `wpgens-vintage-2023-row` but kept
   as its own class so the About page can evolve independently. */
.wp-block-media-text.wpgens-about-row .wp-block-media-text__content {
	text-align: left;
}
.wp-block-media-text.wpgens-about-row .wp-block-media-text__media {
	text-align: center;
}
.wp-block-media-text.wpgens-about-row .wp-block-media-text__media img {
	max-width: 84%;
	height: auto;
	margin: 0 auto;
}

/* About page "Our Story" two-column row: 33%/66% split with the H2 in the left
   column (top-aligned) and the body copy in the right column. Matches the
   `layout-3366` treatment on the original /about-chateau-de-pommard page. */
.wp-block-columns.wpgens-our-story {
	align-items: flex-start;
}
.wp-block-columns.wpgens-our-story .wp-block-column {
	text-align: left;
}
.wp-block-columns.wpgens-our-story h2.wp-block-heading {
	margin-top: 0;
	font-size: 38px;
	font-weight: 400;
}

/* Vintage story 2023 intro paragraph (kind "heading" with body only, under the
   page hero): the original renders this as a large 30px Baskerville statement
   on the gray band. The default `.has-large-font-size` rule uses !important so
   we have to match it to win. */
.wpgens-vintage-intro p {
	font-size: 30px !important;
	line-height: 1.4;
	font-family: "baskerville-urw", "Baskerville", "Times New Roman", serif;
	font-weight: 400;
}

/* "A Vintage to Celebrate" heading sits directly above the testimonials slider
   on the 2023 vintage page. The default `medium` bottom padding leaves too much
   space between the H2 and the quotes; tighten it to bring them closer. */
.wpgens-vintage-celebrate {
	padding-bottom: 24px !important;
}

/* "Clos Marey-Monge 2023 Collection" heading: the H5 subtitle ("The Art of
   Terroir, Redefined") should read in italic, at 30px, in the same dark colour
   as the H2 title — matching production. */
.wpgens-vintage-2023-collection h5.wp-block-heading {
	font-style: italic;
	font-size: 30px;
	line-height: 1.3;
	color: rgb(20, 20, 20);
	font-family: "baskerville-urw", "Baskerville", "Times New Roman", serif;
	font-weight: 400;
	margin-top: 12px;
}

/* "Clos Marey-Monge 2023 Collection" body copy: inline links should read with
   a clear underline, and the bold callouts ("wooden case", "172 x 6-bottle
   cases", etc.) sit at a 600 weight rather than the browser default 700, so
   they emphasise without shouting against the 300-weight body. */
.wpgens-vintage-2023-collection-text a {
	text-decoration: underline;
}

.wpgens-vintage-2023-collection-text strong {
	font-weight: 600;
}

/* CMM_2023_Cuvees image that follows the "Clos Marey-Monge 2023 Collection"
   heading: on production the image is centered at ~960px inside the gray
   section, not stretched to the 1280px contained width. Cap the figure itself
   at 960px and center it -- so margin auto has leftover space at every viewport
   above 960px (not just above 1280px). Scoped to the 2023 vintage page so other
   contained images keep their default behaviour. */
body.page-the-story-of-our-clos-marey-monge-2023-vintage
	.wpgens-image .wpgens-image__figure--contained {
	max-width: 960px;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Educator bios (École V "Meet Our Passionate Team of Educators"): unlike the
   centered estate panels, the original left-aligns the name and bio and uses a
   large 60px serif name. Scoped to the educator rows so estate stays centered. */
.wp-block-media-text.wpgens-educator .wp-block-media-text__content {
	text-align: left;
}
.wp-block-media-text.wpgens-educator .wp-block-media-text__content > h2.wp-block-heading {
	font-size: clamp(40px, 6vw, 60px);
	margin-bottom: 15px;
}
/* The portrait sits at 84% of its column, centered, matching production (the
   image does not fill the full media column). */
.wp-block-media-text.wpgens-educator .wp-block-media-text__media {
	text-align: center;
}
.wp-block-media-text.wpgens-educator .wp-block-media-text__media img {
	width: 84%;
	margin-inline: auto;
}
/* Tighter content gutter than the core 8% default so the bio sits closer to the
   column edge, as on the original. */
.wp-block-media-text.wpgens-educator .wp-block-media-text__content {
	padding-left: 16px;
	padding-right: 16px;
}

/* Scholarship-page rows (How do I apply WSET 1/2 + WSET 3, and Past Winners
   Alice + Mathis): the natural-aspect images leave whitespace above and below
   in their half-column, making the section read as "not full width". Stretch
   the image to fill the column edge-to-edge (cover) so both halves match
   height and the row feels truly full-bleed. */
.wp-block-media-text.wpgens-scholarship-row .wp-block-media-text__content {
	text-align: left;
}
.wp-block-media-text.wpgens-scholarship-row .wp-block-media-text__media {
	align-self: stretch;
	height: 100%;
	min-height: 420px;
}
.wp-block-media-text.wpgens-scholarship-row .wp-block-media-text__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
@media (max-width: 768px) {
	.wp-block-media-text.wpgens-scholarship-row .wp-block-media-text__media {
		min-height: 280px;
	}
}

/* Experience / WSET single-product (block-composed) pages: media-text rows are
   left-aligned and vertically centered (matching the original "iltr/tlir
   tva-center tha-left" layouts). White wp-block-group wraps on these pages are
   flattened to transparent so they inherit the white body bg rather than
   stacking a redundant white-on-white box style. Gray wraps keep their gray. */
.wpgens-product-composed .wp-block-group.alignfull.has-white-background-color {
	background-color: transparent !important;
}
.wpgens-product-composed .wp-block-media-text {
	align-items: center;
}
.wpgens-product-composed .wp-block-media-text .wp-block-media-text__content {
	text-align: left;
}
.wpgens-product-composed .wp-block-media-text .wp-block-media-text__content > .wp-block-heading {
	text-align: left;
}
/* Discover-style bullet rows (Your wine profile / Biodynamic / etc.) — give each
   stand-alone paragraph breathing room so the list reads as discrete items rather
   than a wall of text. */
.wpgens-product-composed .wp-block-media-text .wp-block-media-text__content > p.has-large-font-size {
	margin-top: 0;
	margin-bottom: 24px;
}
.wpgens-product-composed .wp-block-media-text .wp-block-media-text__content > p.has-large-font-size:last-child {
	margin-bottom: 0;
}
/* Media-text bullet lists sit next to a "large" lead paragraph (e.g. WSET
   "What will I learn?"); match the paragraph's 18px size so the section reads
   as one consistent body, not a smaller secondary list. */
.wpgens-product-composed .wp-block-media-text .wp-block-media-text__content > .wp-block-list {
	font-size: 18px;
}
/* Underline every inline body-copy link in composed product pages — paragraphs
   inside groups/columns/media-text, and links within lists. Buttons and other
   styled CTAs aren't affected because they don't render as raw <a> in copy. */
.wpgens-product-composed p a,
.wpgens-product-composed .wp-block-list a {
	text-decoration: underline;
}
/* Fix the "image-fill" treatment used on these blocks: by default the figure
   becomes a fixed-height background-image with cover, which crops 3:2 photos
   awkwardly into ~2.4:1. Drop the background-image fill and show the natural
   <img> at its own aspect ratio instead, matching the original "image-size-boxed"
   look. */
.wpgens-product-composed .wp-block-media-text.is-image-fill .wp-block-media-text__media {
	background-image: none !important;
	height: auto;
	min-height: 0;
}
.wpgens-product-composed .wp-block-media-text.is-image-fill .wp-block-media-text__media img {
	/* Core WP hides the <img> via clip/position/overflow when is-image-fill is
	   active and the figure carries a background-image. Resetting all of those
	   surfaces the real <img> at its natural aspect ratio. */
	position: static;
	clip: auto;
	clip-path: none;
	overflow: visible;
	margin: 0;
	padding: 0;
	width: 100%;
	height: auto;
	display: block;
}

/* École V two-column heading sections ("Enter the world of the WSET", "Start a
   Career in the Wine Industry"): heading in the left column, body copy in the
   right, both left-aligned and equal width — matching production. */
.wpgens-heading-split .wp-block-columns {
	gap: 24px;
	align-items: flex-start;
}
.wpgens-heading-split .wp-block-column {
	flex: 1 1 0;
}
.wpgens-heading-split .wp-block-heading {
	font-size: 38px;
	font-weight: 400;
	text-align: left;
	margin: 0;
}
.wpgens-heading-split .wp-block-column p {
	text-align: left;
}

/* Media-text variant: the image takes ~48% of the full row width and is
   centered within its column, instead of filling the column edge-to-edge.
   Used on the WSET Level 1 "What will I learn? / Course Organisation /
   Teaching Resources" sections so the photo reads as a contained element
   with whitespace around it, matching the original layout. */
.wp-block-media-text.wpgens-mt-narrow-img .wp-block-media-text__media {
	background-image: none !important;
	height: auto;
	min-height: 0;
	text-align: center;
}
.wp-block-media-text.wpgens-mt-narrow-img .wp-block-media-text__media img {
	position: static;
	clip: auto;
	clip-path: none;
	overflow: visible;
	margin: 0 auto;
	padding: 0;
	display: block;
	width: auto;
	max-width: 84%;
	height: auto;
}
@media (max-width: 781px) {
	.wp-block-media-text.wpgens-mt-narrow-img .wp-block-media-text__media img {
		max-width: 100%;
	}
}

/* Taller hero variant — for inner-page banners that need extra vertical
   breathing room (e.g. WSET Level 1 "Evaluation And Certification"). The
   text remains vertically centered via the section's flex setup. */
.wp-block-wpgens-hero.wpgens-hero--tall {
	min-height: 640px;
}
@media (max-width: 781px) {
	.wp-block-wpgens-hero.wpgens-hero--tall {
		min-height: 520px;
	}
}

/* Centred-statement CTAs (e.g. École V "Download the Calendar") get 50px of
   breathing room above and below, separating the button from the body copy and
   any logo/image that follows. */
.wp-block-group.is-layout-constrained > .wp-block-buttons {
	margin-top: 50px;
	margin-bottom: 50px;
}

/* =========================================================================
   Contact template (page-templates/template-contact.php)
   Two-column body: ACF contact info on the left, the Contact Form 7 form
   (page content) on the right. Replaces the former wpgens/contact-form block.
   ========================================================================= */
.contact-template {
	background-color: #f5f6f6;
}
.contact-template__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 96px 24px;
	display: flex;
	flex-direction: column;
	gap: 64px;
}
@media (min-width: 768px) {
	.contact-template__inner {
		flex-direction: row;
		align-items: flex-start;
	}
	.contact-template__info {
		width: 40%;
		flex: 0 0 40%;
	}
	.contact-template__body {
		width: 60%;
		flex: 1 1 auto;
	}
}

/* Left info column (ADDRESS / PHONE / EMAIL / HOURS). */
.contact-info__block + .contact-info__block {
	margin-top: 2.5rem;
}
.contact-info__label {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: normal;
	text-transform: none;
	line-height: 1.2;
	margin: 0 0 0.85rem;
	color: #141414;
}
.contact-info__value p {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.7;
	margin: 0 0 0.45rem;
	color: #141414;
}
/* Inline <strong> inside the HOURS / etc. body intentionally matches the
   surrounding body weight -- season labels (WINTER / SUMMER) read as a
   regular subhead, not as a heavier accent. */
.contact-info__value p strong {
	font-weight: inherit;
}
.contact-info__value a {
	color: inherit;
	text-decoration: none;
}
.contact-info__value a:hover {
	text-decoration: underline;
}

/* Right column: the form sits flush with the surrounding grey section. The
   top padding is dropped so the "Send a Message" heading aligns vertically
   with the "ADDRESS" label on the left column. */
.contact-template__body {
	background: #f5f6f6;
	padding: 0 40px 40px;
}
@media (max-width: 600px) {
	.contact-template__body {
		padding: 0 22px 28px;
	}
}
/* "Send a Message" heading + intro paragraph that sit above the form. The
   heading uses the same Baskerville hierarchy as the rest of the page. */
.contact-template__body > h2:first-child,
.contact-template__body > .wp-block-heading:first-child {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-size: 38px;
	font-weight: 400;
	line-height: 1.2;
	color: #141414;
	margin: 0 0 1rem;
}
.contact-template__body > h2:first-child + p,
.contact-template__body > .wp-block-heading:first-child + p {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 300;
	line-height: 1.6;
	color: #141414;
	margin: 0 0 2rem;
}

/* Contact Form 7 fields. */
.contact-template .wpcf7-form p {
	margin: 0 0 1.25rem;
}
/* Two-column rows. CF7's autop wraps the row's labels in a <p> with a <br>
   between them, so target both the autop'd (> p > label) and raw (> label)
   shapes, and hide the stray <br> that sits directly between the two labels. */
.contact-template .wpcf7-form .wpgens-cf7-row,
.contact-template .wpcf7-form .wpgens-cf7-row > p {
	display: flex;
	gap: 1.25rem;
	margin: 0 0 1.25rem;
}
.contact-template .wpcf7-form .wpgens-cf7-row > label,
.contact-template .wpcf7-form .wpgens-cf7-row > p > label {
	flex: 1 1 0;
	min-width: 0;
}
.contact-template .wpcf7-form .wpgens-cf7-row > br,
.contact-template .wpcf7-form .wpgens-cf7-row > p > br {
	display: none;
}
@media (max-width: 600px) {
	.contact-template .wpcf7-form .wpgens-cf7-row,
	.contact-template .wpcf7-form .wpgens-cf7-row > p {
		flex-direction: column;
		gap: 0;
	}
}
.contact-template .wpcf7-form label {
	display: block;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #141414;
}
.contact-template .wpcf7-form input:not([type="submit"]),
.contact-template .wpcf7-form textarea,
.contact-template .wpcf7-form select {
	width: 100%;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	padding: 13px 15px;
	border: 2px solid #ddd;
	background: #ffffff;
	margin-top: 6px;
	box-sizing: border-box;
}
/* Custom select arrow -- larger black chevron, inset 15px from the right edge.
   Hide the browser default and draw the caret via background-image. Extra
   right padding keeps the option text clear of the caret. */
.contact-template .wpcf7-form select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 44px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10' fill='none'><path d='M1 1.5L8 8.5L15 1.5' stroke='%23141414' stroke-width='2' stroke-linecap='square'/></svg>");
	background-repeat: no-repeat;
	background-position: right 15px center;
	background-size: 16px 10px;
}
.contact-template .wpcf7-form input[type="submit"] {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 16px 36px;
	border: 0;
	background: #141414;
	color: #ffffff;
	cursor: pointer;
	width: auto;
	transition: opacity 0.2s ease;
}
.contact-template .wpcf7-form input[type="submit"]:hover {
	opacity: 0.85;
}

/* =========================================================================
   Cover form (request-access / express-interest pages)
   The form-only layout that sits inside a core/cover over dark imagery, so
   fields are white-outlined with white labels. Replaces the former
   wpgens/contact-form "form" layout.
   ========================================================================= */
.wpgens-cover-form {
	width: 100%;
	max-width: 566px;
	margin: 0 auto;
}
/* Hide the crest image rendered above the heading on cover-form pages.
   The logo is the first .wp-block-image in the group that wraps the form. */
.wp-block-cover__inner-container .wp-block-group:has(.wpgens-cover-form) > .wp-block-image {
	display: none;
}
.wpgens-cover-form .wpcf7-form {
	text-align: left;
	/* Reorder so the consent paragraph sits ABOVE the submit button.
	   Source order is fields → submit → consent; flex order puts consent
	   between the fields (order 0, default) and the submit (order 2). */
	display: flex;
	flex-direction: column;
}
.wpgens-cover-form .wpcf7-form > p.wpgens-cf7-consent {
	order: 1;
}
.wpgens-cover-form .wpcf7-form > p:has(input[type="submit"]) {
	order: 2;
	text-align: center;
	padding-bottom: 3rem;
}
.wpgens-cover-form .wpcf7-form p {
	margin: 0 auto 1.25rem;
	max-width: 560px;
	width: 100%;
}
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row,
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > p {
	display: flex;
	gap: 1.25rem;
	margin: 0 auto 1.25rem;
	max-width: 560px;
	width: 100%;
}
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > label,
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > p > label {
	flex: 1 1 0;
	min-width: 0;
}
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > br,
.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > p > br {
	display: none;
}
@media (max-width: 600px) {
	.wpgens-cover-form .wpcf7-form .wpgens-cf7-row,
	.wpgens-cover-form .wpcf7-form .wpgens-cf7-row > p {
		flex-direction: column;
		gap: 0;
	}
}
.wpgens-cover-form .wpcf7-form label {
	display: block;
	color: #ffffff;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 1.5px;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
}
.wpgens-cover-form .wpcf7-form input:not([type="submit"]),
.wpgens-cover-form .wpcf7-form textarea,
.wpgens-cover-form .wpcf7-form select {
	width: 100%;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 16px;
	padding: 13px 15px;
	margin-top: 6px;
	box-sizing: border-box;
	background: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: #141414;
}
.wpgens-cover-form .wpcf7-form select option {
	color: #141414;
}
.wpgens-cover-form .wpcf7-form input::placeholder,
.wpgens-cover-form .wpcf7-form textarea::placeholder {
	color: rgba(0, 0, 0, 0.5);
}
.wpgens-cover-form .wpcf7-form input[type="submit"] {
	width: auto;
	margin-top: 0.5rem;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 16px 36px;
	background: #141414;
	color: #ffffff;
	border: 0;
	cursor: pointer;
}
.wpgens-cover-form .wpgens-cf7-consent {
	margin-top: 1.5rem;
	margin-bottom: 1.5rem;
	color: rgba(255, 255, 255, 0.85);
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
}

/* ============================================================
   Search results page
   ============================================================ */
.cdp-search {
	max-width: 1024px;
	margin: 0 auto;
	/* No hero image — use the standard header clearance. */
	padding: var(--header-clearance) 42px 120px;
}
.cdp-search__hero {
	text-align: center;
	max-width: 760px;
	margin: 0 auto 56px;
}
.cdp-search__eyebrow {
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #8a7d6a;
	margin: 0 0 22px;
}
.cdp-search__title {
	margin: 0;
	font-family: var(--font-heading);
	font-weight: 400;
	line-height: 1.05;
	font-size: clamp(36px, 4.4vw, 56px);
}
.cdp-search__subtitle {
	margin: 18px 0 0;
	font-family: var(--font-body);
	font-size: 16px;
	color: #6b6b6b;
}
.cdp-search__form {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 520px;
	margin: 32px auto 0;
}
.cdp-search__form-icon {
	position: absolute;
	left: 18px;
	color: #8a7d6a;
}
.cdp-search__form-label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.cdp-search__form-input {
	width: 100%;
	background: #fff;
	border: 1px solid #d8d3c8;
	border-radius: 999px;
	padding: 14px 110px 14px 46px;
	font-family: var(--font-body);
	font-size: 15px;
	color: #141414;
	outline: none;
	transition: border-color 0.2s ease;
	box-sizing: border-box;
}
.cdp-search__form-input:focus {
	border-color: #141414;
}
.cdp-search__form-input::placeholder {
	color: #a09887;
}
.cdp-search__form-submit {
	position: absolute;
	right: 6px;
	display: inline-flex;
	align-items: center;
	padding: 9px 22px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #fff;
	background: #141414;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.cdp-search__form-submit:hover {
	background: #2a2a2a;
}

/* Chip rail */
.cdp-search__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0 auto 56px;
	padding-bottom: 40px;
	border-bottom: 1px solid #e4e2dc;
}
.cdp-search-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 18px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #141414;
	text-decoration: none;
	background: #fff;
	border: 1px solid #d8d3c8;
	border-radius: 999px;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.cdp-search-chip:hover {
	border-color: #141414;
}
.cdp-search-chip.is-active {
	background: #141414;
	border-color: #141414;
	color: #fff;
}
.cdp-search-chip__count {
	font-weight: 400;
	opacity: 0.65;
}

/* Result rows */
.cdp-search__results {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cdp-search-result {
	border-bottom: 1px solid #e4e2dc;
}
.cdp-search-result:first-child {
	border-top: 1px solid #e4e2dc;
}
.cdp-search-result__link {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 28px;
	align-items: center;
	padding: 24px 8px;
	text-decoration: none;
	color: inherit;
	transition: background-color 0.2s ease;
}
.cdp-search-result__link:hover {
	background: #fafaf6;
}
.cdp-search-result__thumb {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 4px;
	background: #ede9df;
}
.cdp-search-result__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cdp-search-result__thumb--empty {
	background: #ede9df;
}
.cdp-search-result__body {
	display: block;
}
.cdp-search-result__eyebrow {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #8a7d6a;
	margin-bottom: 8px;
}
.cdp-search-result__title {
	margin: 0 0 8px;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(22px, 2vw, 28px);
	line-height: 1.2;
	color: #141414;
}
.cdp-search-result__excerpt {
	margin: 0;
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.6;
	color: #5c5c5c;
}

/* Empty state */
.cdp-search__empty {
	text-align: center;
	padding: 40px 0 0;
}
.cdp-search__empty-title {
	margin: 0 0 16px;
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(28px, 3vw, 40px);
	color: #141414;
}
.cdp-search__empty-text {
	margin: 0 auto;
	max-width: 520px;
	font-family: var(--font-body);
	font-size: 16px;
	color: #6b6b6b;
}

@media (max-width: 760px) {
	.cdp-search {
		padding: var(--header-clearance-mobile) 24px 80px;
	}
	.cdp-search-result__link {
		grid-template-columns: 96px 1fr;
		gap: 18px;
	}
}
@media (max-width: 480px) {
	.cdp-search__form-input {
		padding-right: 14px;
	}
	.cdp-search__form-submit {
		position: static;
		margin-left: 8px;
	}
	.cdp-search__form {
		flex-wrap: wrap;
	}
}

/* "Made by Nature in Burgundy" newsletter CTA (template-parts/newsletter-cta.php).
   Appears at the bottom of the blog index, category archives and single posts. */
.cdp-newsletter {
	position: relative;
	overflow: hidden;
	background: #2c3618;
	color: #ffffff;
	padding: 96px 24px;
}
.cdp-newsletter__media {
	position: absolute;
	inset: 0;
	margin: 0;
	pointer-events: none;
}
.cdp-newsletter__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.cdp-newsletter__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.18) 45%, rgba(0, 0, 0, 0.18) 55%, rgba(0, 0, 0, 0.35) 100%);
	pointer-events: none;
}
.cdp-newsletter__inner {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
}
.cdp-newsletter__content {
	max-width: 460px;
}
.cdp-newsletter__title {
	font-family: "baskerville-urw", Georgia, "Times New Roman", serif;
	font-weight: 400;
	line-height: 1.05;
	margin: 0;
	color: #ffffff;
	font-size: clamp(36px, 4vw, 56px);
}
.cdp-newsletter__subtitle {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.5;
	margin: 16px 0 0;
	color: #ffffff;
	opacity: 0.95;
}
.cdp-newsletter__column {
	width: 100%;
}
.cdp-newsletter__form {
	margin: 0;
}
.cdp-newsletter__signup {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
	align-items: stretch;
	width: 100%;
	background: #ffffff;
	padding: 0;
	margin: 0;
}
.cdp-newsletter__signup input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.2;
	padding: 20px 22px;
	margin: 0;
	border: 0;
	background: transparent;
	color: #141414;
	outline: none;
	box-sizing: border-box;
}
.cdp-newsletter__signup input[type="email"]::placeholder {
	color: #6b6b6b;
}
.cdp-newsletter__signup button[type="submit"] {
	flex: 0 0 auto;
	display: block;
	-webkit-appearance: none;
	appearance: none;
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 18px;
	font-weight: 400;
	letter-spacing: 2px;
	line-height: 1.2;
	text-transform: uppercase;
	padding: 14px 28px;
	margin: 6px 6px 6px 0;
	border: 0;
	border-radius: 0;
	background: #141414;
	color: #ffffff;
	cursor: pointer;
	transition: opacity 0.2s ease;
	box-sizing: border-box;
	align-self: center;
}
.cdp-newsletter__signup button[type="submit"]:hover {
	opacity: 0.85;
}
.cdp-newsletter__disclaimer {
	font-family: "acumin-pro", Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.6;
	margin: 22px 0 0;
	color: rgba(255, 255, 255, 0.85);
}
.cdp-newsletter__disclaimer a {
	color: inherit;
	text-decoration: underline;
}
.cdp-newsletter__disclaimer a:hover {
	opacity: 0.8;
}

@media (max-width: 900px) {
	.cdp-newsletter {
		padding: 80px 24px;
	}
	.cdp-newsletter__inner {
		grid-template-columns: 1fr;
		gap: 36px;
	}
	.cdp-newsletter__content {
		max-width: none;
	}
}
@media (max-width: 600px) {
	.cdp-newsletter {
		padding: 64px 20px;
	}
	.cdp-newsletter__signup {
		flex-direction: column;
		background: transparent;
		gap: 12px;
	}
	.cdp-newsletter__signup input[type="email"] {
		flex: 0 0 auto;
		background: #ffffff;
		padding: 14px 16px;
	}
	.cdp-newsletter__signup button[type="submit"] {
		padding: 14px 24px;
	}
}

/* Made by Nature: Clos Marey-Monge half-hero subtitle uses acumin-pro at 18px/light,
   capped at 770px so the prose stays readable, instead of baskerville at oversized 23px. */
body.page-made-by-nature .wp-block-wpgens-hero.wpgens-hero--half .wpgens-hero__subtitle {
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 300;
	line-height: 1.6;
	max-width: 770px;
}

/* Made by Nature: media-text images sit at 84% of the column, centered, giving the
   text column more breathing room (matches the original .imgs-wrap → .img-wrap ratio). */
body.page-made-by-nature .wp-block-media-text__media img {
	display: block;
	max-width: 84%;
	margin-inline: auto;
	height: auto;
}

/* Made by Nature: parcel map sits at the original 960px max-width, centered. */
body.page-made-by-nature .wp-block-wpgens-parcel-map .wpgens-parcel-map__inner {
	max-width: 960px;
}

/* Clos Marey-Monge 2022 Vintage story: the "Praise for the Vintage" subtitle
   reads as supporting body copy, not metadata, so it matches the title colour,
   sits at 30px serif and uses a tighter line-height than the default h5 epithet. */
body.page-the-story-of-our-clos-marey-monge-2022-vintage .wp-block-group :where(h5.wp-block-heading) {
	color: #141414;
	font-family: var(--font-heading, "baskerville-urw", Georgia, serif);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.3;
	max-width: 770px;
	margin-inline: auto;
}

/* Ensure Gutenberg's "Align center" on images centers the figure in any
   wrapper. Core only centers .aligncenter when the parent has
   .is-layout-flow / .is-layout-constrained, which our PHP templates that
   wrap the_content() in custom divs don't always provide. */
.wp-block-image.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

