/* -----------------------------------------------------------------------------
   Dankcave theme — main stylesheet
   Tokens mirror the values extracted from design/*.dc.html mockups.
   See CLAUDE.md § Design tokens for the source of truth.
   -------------------------------------------------------------------------- */

/* ---------- Tokens ---------- */

:root {
	/* Dark neutrals */
	--ink:            #171310;
	--ink-2:          #1c1714;
	--ink-3:          #1a1c21;
	--ink-4:          #22242a;
	--ink-5:          #33373d;
	--ink-6:          #3f434a;
	--ink-7:          #4a4d54;

	/* Warm cream neutrals */
	--cream-100:      #f2f0ee;
	--cream-200:      #f2ede8;
	--cream-300:      #efe7dd;
	--cream-400:      #eee9e0;
	--cream-500:      #e7ddd0;
	--cream-600:      #e2ded9;
	--cream-700:      #dcd7cd;
	--cream-800:      #d8d2c8;
	--cream-900:      #c8c3ba;

	/* Muted grays (secondary text, borders) */
	--muted-1:        #b7ada3;
	--muted-2:        #a7a29a;
	--muted-3:        #8a8e96;
	--muted-4:        #5c616a;

	/* Accents */
	--accent-wine:      #993331;
	--accent-wine-dark: #362e28;
	--gold:             #c9a227;
	--gold-dark:        #b08a3c;
	--gold-bright:      #f8c913;
	--warm-highlight:   #f3e3d0;
	--pink-soft:        #f7e0ea;
	--green:            #2e6b3e;
	--orange:           #e8871e;

	/* Base */
	--white:          #fff;

	/* Semantic aliases (use these in component CSS, not raw colors) */
	--bg-surface:     var(--cream-100);
	--bg-dark:        var(--ink);
	--bg-cream:       var(--cream-100);
	--text-primary:   var(--ink-4);
	--text-secondary: var(--muted-3);
	--text-inverse:   var(--white);
	--border-subtle:  var(--cream-600);
	--accent:         var(--accent-wine);
	--accent-hover:   var(--accent-wine-dark);

	/* Type */
	--font-body:      Gabarito, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-serif:     "Instrument Serif", Georgia, serif;
	--font-display:   "Bricolage Grotesque", var(--font-body);
	--font-mono:      "Space Grotesk", ui-monospace, SFMono-Regular, Menlo, monospace;

	--fs-11:  11px;
	--fs-12:  12px;
	--fs-14:  14px;
	--fs-16:  16px;
	--fs-18:  18px;
	--fs-22:  22px;
	--fs-28:  28px;
	--fs-40:  40px;
	--fs-60:  60px;
	--fs-150: 150px;

	/* Radii */
	--r-sm:   12px;
	--r-md:   16px;
	--r-lg:   18px;
	--r-xl:   22px;
	--r-2xl:  28px;
	--r-pill: 99px;

	/* Spacing (4px scale) */
	--sp-1: 4px;
	--sp-2: 8px;
	--sp-3: 12px;
	--sp-4: 16px;
	--sp-5: 20px;
	--sp-6: 24px;
	--sp-8: 32px;
	--sp-10: 40px;
	--sp-12: 48px;
	--sp-16: 64px;
	--sp-20: 80px;
	--sp-24: 96px;

	/* Layout — single source of truth for horizontal gutters.
	   All templates should use var(--gutter-x) for their side padding so
	   every section, header, footer, and content wrapper lines up. */
	--wrap-max: 1280px;
	--gutter-x: 48px;
	--wrap-pad: var(--gutter-x);

	/* Shadows */
	--shadow-sm: 0 1px 2px rgba(23,19,16,.06), 0 1px 3px rgba(23,19,16,.04);
	--shadow-md: 0 8px 24px -8px rgba(23,19,16,.10), 0 4px 8px -4px rgba(23,19,16,.06);
	--shadow-lg: 0 24px 48px -12px rgba(23,19,16,.18);
}

/* Responsive horizontal gutter — every section, header, and content wrapper
   inherits from here so gutters stay perfectly aligned across templates. */
@media (max-width: 900px) {
	:root { --gutter-x: 32px; }
}
@media (max-width: 640px) {
	:root { --gutter-x: 20px; }
}

/* ---------- Reset + base ---------- */

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

html { scroll-behavior: smooth; }

html, body {
	margin: 0;
	padding: 0;
	background: var(--bg-surface);
	color: var(--text-primary);
	font-family: var(--font-body);
	font-size: var(--fs-16);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a { color: inherit; text-decoration: none; }
a:hover { opacity: .9; }

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

h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.02em; margin: 0 0 var(--sp-4); }
h1 { font-size: var(--fs-60); line-height: 1.05; }
h2 { font-size: var(--fs-40); line-height: 1.1; }
h3 { font-size: var(--fs-28); line-height: 1.15; }
h4 { font-size: var(--fs-22); line-height: 1.2; }

p { margin: 0 0 var(--sp-4); }

.eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-12);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--text-secondary);
}

/* ---------- Layout containers ---------- */

.wrap {
	max-width: var(--wrap-max);
	margin: 0 auto;
	padding-left: var(--wrap-pad);
	padding-right: var(--wrap-pad);
}

.section { padding: var(--sp-20) 0; }
.section.alt { background: var(--bg-cream); }
.section.dark { background: var(--bg-dark); color: var(--text-inverse); }

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

.btn {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: 14px 22px;
	border-radius: var(--r-pill);
	font-family: var(--font-body);
	font-size: var(--fs-16);
	font-weight: 600;
	line-height: 1;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--accent); color: var(--text-inverse); }
.btn-primary:hover { background: var(--accent-hover); opacity: 1; }
.btn-ghost { background: transparent; color: var(--text-primary); border-color: var(--border-subtle); }
.btn-ghost:hover { border-color: var(--text-primary); }
.btn-invert { background: var(--white); color: var(--ink); }
.btn-sm { padding: 10px 16px; font-size: var(--fs-14); }

/* ---------- Utility: screen-reader-only ---------- */

.visually-hidden {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px;
	overflow: hidden;
	white-space: nowrap;
}

/* ---------- Site header (pill nav floating over hero) ---------- */

.site-header {
	position: sticky;
	top: 0;
	z-index: 30;
	background: var(--cream-100);
}
.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: 20px var(--gutter-x);
	margin: 0 auto;
	justify-content: space-between;
}
.site-header__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: none;
}
.header-search-pill {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: var(--white);
	display: grid;
	place-items: center;
	color: var(--ink-4);
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(34, 36, 42, 0.06);
	transition: transform .15s ease, box-shadow .15s ease;
	border: 0;
	padding: 0;
	cursor: pointer;
	appearance: none;
	outline: none;
}
.header-search-pill:focus,
.header-search-pill:focus-visible { outline: none; box-shadow: 0 2px 10px rgba(34, 36, 42, .06), 0 0 0 3px rgba(34, 36, 42, .12); }
.header-search-pill::-moz-focus-inner { border: 0; }
.header-search-pill:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(34, 36, 42, 0.10);
}
.header-search-pill svg {
	display: block;
}

/* Account pill — mirrors the search pill so search / account / cart form a
   consistent row of white pills in the header. */
.header-account-pill {
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: var(--white);
	display: grid;
	place-items: center;
	color: var(--ink-4);
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(34, 36, 42, 0.06);
	transition: transform .15s ease, box-shadow .15s ease;
}
.header-account-pill:focus,
.header-account-pill:focus-visible { outline: none; box-shadow: 0 2px 10px rgba(34, 36, 42, .06), 0 0 0 3px rgba(34, 36, 42, .12); }
.header-account-pill:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(34, 36, 42, 0.10);
}
.header-account-pill svg { display: block; }
.site-brand {
	flex: none;
	display: flex;
	align-items: center;
	height: 52px;
	text-decoration: none;
}
.site-brand__text {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 22px;
	color: var(--ink-4);
	letter-spacing: -0.02em;
}
.site-brand img,
.custom-logo {
	height: 52px !important;
	width: auto !important;
	max-width: 200px;
	object-fit: contain;
}

/* Pill primary nav — white background, rounded 99, sits between logo + cart */
.primary-nav {
	flex: none;
	display: flex;
	align-items: center;
	gap: 32px;
	background: var(--white);
	border-radius: var(--r-pill);
	padding: 16px 34px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, 0.06);
}
.primary-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: var(--sp-8);
}
.primary-nav__list li { margin: 0; }
.primary-nav__list a {
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 600;
	color: var(--muted-3);
	text-decoration: none;
	transition: color .15s ease;
}
.primary-nav__list a:hover,
.primary-nav__list .current-menu-item > a,
.primary-nav__list .current-menu-ancestor > a {
	color: var(--ink-4);
	opacity: 1;
}

/* Cart summary button (right of nav) */
.cart-summary {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 50px;
	padding: 0 18px;
	background: var(--white);
	border-radius: 14px;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--fs-14);
	color: var(--ink-4);
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(34, 36, 42, 0.06);
	transition: transform .15s ease, box-shadow .15s ease;
}
.cart-summary:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(34, 36, 42, 0.10);
	opacity: 1;
}
.cart-summary__sep { color: var(--muted-3); }

/* Mobile hamburger — hidden on desktop, shown on mobile */
.site-header__toggle {
	display: none;
	flex: none;
	background: var(--white);
	border: 0;
	border-radius: var(--r-md);
	width: 48px;
	height: 48px;
	padding: 0;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(34, 36, 42, 0.06);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
}
.site-header__toggle-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--ink-4);
	border-radius: 2px;
	transition: transform .2s ease, opacity .2s ease;
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(2) { opacity: 0; }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile off-canvas nav */
.primary-nav-mobile {
	display: none;
	position: fixed;
	inset: 88px 0 0 0;
	background: var(--cream-100);
	z-index: 25;
	padding: var(--sp-6);
	overflow-y: auto;
}
.primary-nav-mobile[data-open="true"] { display: block; }
.primary-nav-mobile__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 4px;
}
.primary-nav-mobile__list li { margin: 0; }
.primary-nav-mobile__list a {
	display: block;
	padding: 16px 18px;
	border-radius: var(--r-md);
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 600;
	color: var(--ink-4);
	text-decoration: none;
	background: var(--white);
}
body.nav-open { overflow: hidden; }

@media (max-width: 900px) {
	.site-header__inner {
		gap: 8px;
		padding-top: 20px;
		justify-content: space-between;
	}
	.primary-nav { display: none; }
	.site-header__toggle { display: flex; }
}

/* ---------- Newsletter capture band ---------- */

.newsletter-band {
	background: var(--ink-4);
	color: var(--white);
	padding: var(--sp-10) var(--gutter-x);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--sp-10);
	flex-wrap: wrap;
}
.newsletter-band__copy { max-width: 420px; }
.newsletter-band__heading {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 26px;
	letter-spacing: -0.02em;
	margin: 0 0 var(--sp-2);
	color: var(--white);
}
.newsletter-band__subcopy {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--muted-3);
	margin: 0;
}
.newsletter-band__form { flex: none; }

/* Social icons row inside the newsletter band */
.dc-social {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.dc-social__link {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
	border: 1px solid var(--ink-7);
	color: rgba(255, 255, 255, .82);
	text-decoration: none;
	transition: background .18s, color .18s, transform .18s, border-color .18s;
}
.dc-social__link:hover {
	background: var(--accent-wine);
	border-color: var(--accent-wine);
	color: #fff;
	transform: translateY(-1px);
}
.dc-social__link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}
.newsletter-band__placeholder {
	display: flex;
	gap: 10px;
}
.newsletter-band__placeholder input {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--ink-7);
	border-radius: var(--r-md);
	padding: 14px 22px;
	font-family: var(--font-body);
	font-size: var(--fs-14);
	color: var(--white);
	width: 240px;
	outline: none;
	transition: border-color .15s ease, background .15s ease;
}
.newsletter-band__placeholder input::placeholder { color: var(--muted-3); }
.newsletter-band__placeholder input:focus {
	border-color: var(--white);
	background: rgba(255, 255, 255, 0.12);
}
.newsletter-band__placeholder button {
	background: var(--accent-wine);
	color: var(--white);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--fs-14);
	padding: 14px 26px;
	border-radius: var(--r-md);
	border: 0;
	cursor: pointer;
	transition: background .15s ease;
}
.newsletter-band__placeholder button:hover { background: var(--accent-wine-dark); }

/* MC4WP form styling — inherit the placeholder look. When Javid connects a
   MailChimp shortcode via Customizer, the raw MC4WP form output gets the same
   pill-input + wine-red button treatment as the placeholder form. */
.newsletter-band__form .mc4wp-form { margin: 0; }
.newsletter-band__form .mc4wp-form-fields { padding: 0; }
.newsletter-band__form .dc-mc4wp {
	display: flex;
	gap: 10px;
	align-items: center;
}
.newsletter-band__form .dc-mc4wp input[type="email"] {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid var(--ink-7);
	border-radius: var(--r-md);
	padding: 14px 22px;
	font-family: var(--font-body);
	font-size: var(--fs-14);
	color: var(--white);
	width: 240px;
	outline: none;
	transition: border-color .15s ease, background .15s ease;
}
.newsletter-band__form .dc-mc4wp input[type="email"]::placeholder { color: var(--muted-3); }
.newsletter-band__form .dc-mc4wp input[type="email"]:focus {
	border-color: var(--white);
	background: rgba(255, 255, 255, 0.12);
}
.newsletter-band__form .dc-mc4wp button {
	background: var(--accent-wine);
	color: var(--white);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: var(--fs-14);
	padding: 14px 26px;
	border-radius: var(--r-md);
	border: 0;
	cursor: pointer;
	transition: background .15s ease;
	white-space: nowrap;
}
.newsletter-band__form .dc-mc4wp button:hover { background: var(--accent-wine-dark); }
.newsletter-band__form .mc4wp-response { margin-top: 12px; font-size: 13px; color: var(--muted-3); }
.newsletter-band__form .mc4wp-response .mc4wp-success { color: #7fdc9a; }
.newsletter-band__form .mc4wp-response .mc4wp-error   { color: #ffb4a2; }
@media (max-width: 720px) {
	.newsletter-band__form .dc-mc4wp { width: 100%; }
	.newsletter-band__form .dc-mc4wp input[type="email"] { flex: 1; width: auto; min-width: 0; }
}

@media (max-width: 720px) {
	.newsletter-band {
		padding: var(--sp-8) var(--gutter-x);
		flex-direction: column;
		align-items: flex-start;
		gap: var(--sp-6);
	}
	.newsletter-band__placeholder { width: 100%; }
	.newsletter-band__placeholder input { flex: 1; width: auto; min-width: 0; }
}

/* ---------- Legal bar (footer copyright + minor links) ---------- */

.legal-bar {
	background: var(--ink-3);
	padding: 22px var(--gutter-x);
	color: rgba(255, 255, 255, 0.75);
	font-size: 13px;
	font-weight: 600;
}
.legal-bar__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	max-width: var(--wrap-max);
	margin: 0 auto;
}
.legal-bar__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
}
.legal-bar__list li { margin: 0; }
.legal-bar__list a {
	color: rgba(255, 255, 255, 0.75);
	text-decoration: none;
	transition: color .15s ease;
}
.legal-bar__list a:hover { color: var(--white); opacity: 1; }

/* Legal-bar mobile padding is driven by --gutter-x; no override needed here. */

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

.hero {
	background: var(--cream-100);
	color: var(--ink-4);
}
.hero__stage {
	position: relative;
	height: 750px;
	max-width: 1440px;
	margin: 0 auto;
	overflow: hidden;
}
.hero__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(500px 400px at 62% 55%, oklch(0.93 0.04 75 / 0.9), transparent 70%);
	pointer-events: none;
}

/* Big broken-word headline (left column) */
.hero__headline {
	position: absolute;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 150px;
	line-height: 0.92;
	letter-spacing: -0.04em;
	margin: 0;
}
.hero__headline--left {
	left: var(--gutter-x);
	top: 150px;
	color: #2a2d34;
	display: flex;
	flex-direction: column;
	animation: dcSlideL 0.8s cubic-bezier(.2,.8,.2,1) both;
}
.hero__headline--left span { display: block; }
.hero__headline--right {
	right: var(--gutter-x);
	bottom: 44px;
	color: var(--accent-wine);
	line-height: 1;
	animation: dcSlideR 0.95s cubic-bezier(.2,.8,.2,1) both;
}

/* Rotated center product photo */
.hero__product {
	position: absolute;
	left: 50%;
	top: 110px;
	transform: translateX(-46%) rotate(18deg);
	height: 560px;
	width: auto;
	max-width: none;
	filter: drop-shadow(-20px 30px 40px rgba(34, 36, 42, 0.25));
	animation: dcFadeUp 1.1s cubic-bezier(.2,.8,.2,1) both;
	pointer-events: none;
}

/* Floating callout card (right side) */
.hero__callout {
	position: absolute;
	right: var(--gutter-x);
	top: 150px;
	background: rgba(255, 255, 255, 0.75);
	border-radius: var(--r-lg);
	padding: 20px 24px;
	max-width: 250px;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.hero__callout-title {
	font-weight: 700;
	font-size: 16px;
	margin-bottom: 6px;
}
.hero__callout-body {
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--muted-4);
}

/* Bottom-left CTA + lede */
.hero__cta-block {
	position: absolute;
	left: var(--gutter-x);
	bottom: 64px;
}
.hero__cta {
	display: inline-flex;
	align-items: stretch;
	gap: 0;
	text-decoration: none;
	transition: transform .18s ease;
	line-height: 1;
}
.hero__cta:hover {
	transform: translateY(-1px);
	opacity: 1;
}
.hero__cta-label,
.hero__cta-arrow {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	font-size: 16px;
	color: var(--white);
}
.hero__cta-label {
	background: var(--ink-4);
	font-weight: 600;
	padding: 18px 28px;
	border-radius: 16px 0 0 16px;
}
.hero__cta-arrow {
	background: var(--accent-wine);
	padding: 18px 20px;
	border-radius: 0 16px 16px 0;
}
.hero__lede {
	font-size: 14.5px;
	color: var(--muted-4);
	margin: 16px 0 0;
	max-width: 34ch;
	line-height: 1.5;
}

/* Animations (mirroring the design mockup's timing) */
@keyframes dcSlideL {
	from { opacity: 0; transform: translateX(-50px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes dcSlideR {
	from { opacity: 0; transform: translateX(50px); }
	to   { opacity: 1; transform: translateX(0); }
}
@keyframes dcFadeUp {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* Hero — tablet + mobile */
@media (max-width: 900px) {
	.hero__stage { height: 620px; }
	.hero__headline { font-size: 100px; }
	.hero__callout {
		right: 24px;
		top: 130px;
		padding: 16px 18px;
		max-width: 210px;
	}
	.hero__product {
		height: 420px;
		top: 140px;
	}
	.hero__cta-block { left: 24px; bottom: 40px; }
}
@media (max-width: 640px) {
	.hero__stage { height: 560px; }
	.hero__headline { font-size: 68px; }
	.hero__headline--left { left: 20px; top: 130px; }
	.hero__headline--right { right: 20px; bottom: 24px; }
	.hero__product {
		height: 300px;
		top: 170px;
		left: 56%;
	}
	.hero__callout {
		display: none; /* Save space on the smallest screens */
	}
	.hero__cta-block { left: 20px; bottom: 20px; }
	.hero__cta-label { font-size: 14px; padding: 12px 20px; }
	.hero__cta-arrow { padding: 12px 16px; font-size: 14px; }
	.hero__lede { font-size: 13px; margin-top: 12px; }
}

/* ---------- Section shell ---------- */

.section--cream { background: var(--cream-100); padding: 56px var(--gutter-x); color: var(--ink-4); }
.section--cream .wrap { padding-left: 0; padding-right: 0; }

.section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 24px;
	gap: 16px;
	flex-wrap: wrap;
}
.section-head__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 30px;
	margin: 0;
	letter-spacing: -0.02em;
	line-height: 1.15;
}
.section-head__link {
	font-weight: 700;
	font-size: var(--fs-14);
	color: var(--accent-wine);
	text-decoration: none;
	white-space: nowrap;
}
.section-head__link:hover { opacity: 1; text-decoration: underline; }

/* ---------- Product card ---------- */

.product-grid {
	display: grid;
	gap: 16px;
}
.product-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.product-card {
	background: var(--white);
	border-radius: var(--r-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	position: relative;
	color: inherit;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.product-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 34px rgba(34, 36, 42, 0.15);
}
.product-card__link {
	display: flex;
	flex-direction: column;
	flex: 1;
	text-decoration: none;
	color: inherit;
}
.product-card__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	background: var(--gold-bright);
	color: var(--ink-4);
	border-radius: var(--r-pill);
	font-size: 11px;
	font-weight: 800;
	padding: 4px 10px;
	letter-spacing: 0.02em;
}
.product-card__well {
	aspect-ratio: 1;
	background: #fff;
	overflow: hidden;
	position: relative;
}
.product-card__well img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.product-card:hover .product-card__well img { transform: scale(1.04); }

.product-card__body {
	padding: 16px 18px 12px;
	display: flex;
	flex-direction: column;
	gap: 7px;
	flex: 1;
}
.product-card__eyebrow {
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--gold-dark);
	text-transform: uppercase;
}
.product-card__title {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 15px;
	line-height: 1.35;
	color: var(--ink-4);
}
.product-card__rating {
	font-size: 12.5px;
	color: var(--gold);
	display: flex;
	align-items: center;
	gap: 4px;
	letter-spacing: 1px;
}
.product-card__reviews {
	color: var(--muted-3);
	letter-spacing: 0;
}
.product-card__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 0 18px 18px;
}
.product-card__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 18px;
	color: var(--ink-4);
}
/* Reset WooCommerce's <ins>/<del> price markup */
.product-card__price ins { text-decoration: none; }
.product-card__price del { color: var(--muted-3); font-weight: 400; font-size: 14px; margin-right: 6px; }
.product-card__add {
	background: var(--ink-4);
	color: var(--white);
	border-radius: var(--r-sm);
	font-weight: 700;
	font-size: 11.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 10px 16px;
	transition: background 0.15s ease;
}
.product-card:hover .product-card__add { background: var(--accent-wine); }

@media (max-width: 900px) {
	.product-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.section--cream { padding: 40px var(--gutter-x); }
}
@media (max-width: 480px) {
	.product-grid--4 { grid-template-columns: 1fr 1fr; }
	.section-head__title { font-size: 22px; }
}

/* ---------- Shop by category (asymmetric 6-tile grid) ---------- */

.home-sbc {
	background: var(--cream-100);
	color: var(--ink-4);
	padding: 56px 0;
}
.home-sbc .wrap {
	padding-left: 48px;
	padding-right: 48px;
	max-width: none;
}
.section-head--padded { margin-bottom: 26px; }

.category-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 255px;
	gap: 0;
}

.category-tile {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	background: var(--cream-500);
	transition: transform 0.25s ease;
}
.category-tile:hover { opacity: 1; }
.category-tile:hover .category-tile__img,
.category-tile:hover .category-tile__video { transform: scale(1.04); }

.category-tile__img,
.category-tile__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
	background: #1c1714;
}

.category-tile__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(28, 23, 20, 0.62), transparent 46%);
	pointer-events: none;
}

.category-tile__meta {
	position: absolute;
	left: 26px;
	right: 26px;
	bottom: 24px;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	color: var(--white);
	gap: 12px;
}
.category-tile__name {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 28px;
	letter-spacing: -0.02em;
	line-height: 1.05;
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.3);
}
.category-tile__count {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: 0.02em;
	padding-bottom: 5px;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.4);
	white-space: nowrap;
}

@media (max-width: 900px) {
	.home-sbc .wrap { padding-left: var(--gutter-x); padding-right: var(--gutter-x); }
	.category-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; }
	.category-tile { grid-column: auto !important; grid-row: auto !important; }
	.category-tile:first-child { grid-column: 1 / 3 !important; }
	.category-tile__name { font-size: 22px; }
}
@media (max-width: 480px) {
	.category-grid { grid-auto-rows: 160px; }
	.category-tile__meta { left: 18px; right: 18px; bottom: 18px; }
	.category-tile__name { font-size: 18px; }
	.category-tile__count { font-size: 11px; }
}

/* ---------- Editorial band (video-backed "Twenty years at the torch") ---------- */

.home-editorial {
	background: var(--cream-100);
	padding: 56px var(--gutter-x);
}
.home-editorial .wrap { padding: 0; max-width: 1440px; }

.editorial-band {
	position: relative;
	border-radius: var(--r-2xl);
	overflow: hidden;
	height: 420px;
	color: var(--cream-200);
}

.editorial-band__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--ink-2); /* while video is loading */
}

.editorial-band__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, rgba(28, 23, 20, 0.85) 30%, rgba(28, 23, 20, 0.15) 70%);
	pointer-events: none;
}

.editorial-band__content {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 52%;
	padding: 52px 56px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
}

.editorial-band__badge {
	align-self: flex-start;
	background: var(--accent-wine);
	color: var(--white);
	border-radius: var(--r-pill);
	font-size: 11px;
	font-weight: 800;
	padding: 6px 14px;
	letter-spacing: 0.04em;
}

.editorial-band__heading {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	margin: 0;
	letter-spacing: -0.03em;
	line-height: 1.02;
	color: var(--cream-200);
}

.editorial-band__body {
	font-size: 15.5px;
	line-height: 1.7;
	color: rgba(242, 237, 232, 0.85);
	margin: 0;
	max-width: 40ch;
}

.editorial-band__cta {
	align-self: flex-start;
	margin-top: 8px;
	background: var(--cream-200);
	color: var(--ink-2);
	font-weight: 700;
	font-size: 15px;
	padding: 14px 30px;
	border-radius: var(--r-md);
	text-decoration: none;
	transition: transform 0.15s ease, background 0.15s ease;
}
.editorial-band__cta:hover {
	transform: translateY(-1px);
	background: var(--white);
	opacity: 1;
}

@media (max-width: 900px) {
	.home-editorial { padding: 40px var(--gutter-x); }
	.editorial-band { height: 460px; }
	.editorial-band__content { width: auto; right: 0; padding: 36px 30px; }
	.editorial-band__heading { font-size: 34px; }
}
@media (max-width: 480px) {
	.editorial-band { height: 440px; border-radius: var(--r-xl); }
	.editorial-band__content { padding: 28px 22px; gap: 12px; }
	.editorial-band__heading { font-size: 28px; }
	.editorial-band__body { font-size: 14px; }
	.editorial-band__cta { padding: 12px 24px; font-size: 14px; }
}

/* ---------- Shop archive ---------- */

.wc-archive { background: var(--cream-100); color: var(--ink-4); padding-bottom: 64px; }

.shop-breadcrumb {
	padding: 34px var(--gutter-x) 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--muted-3);
}
.shop-breadcrumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.shop-breadcrumb a { text-decoration: none; color: var(--muted-3); }
.shop-breadcrumb a:hover { color: var(--ink-4); opacity: 1; }
.shop-breadcrumb .shop-breadcrumb__sep { color: var(--muted-3); margin: 0 4px; }

.shop-header { padding: 14px var(--gutter-x) 20px; }
.shop-header__inner {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	flex-wrap: wrap;
}
.shop-header__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 52px;
	letter-spacing: -0.03em;
	margin: 0;
	line-height: 1;
	color: var(--ink-4);
}
.shop-header__desc {
	font-size: 14.5px;
	color: var(--muted-4);
	margin: 8px 0 0;
	max-width: 60ch;
	line-height: 1.55;
}
.shop-header__desc p { margin: 0; }

.shop-header__sort {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: var(--fs-14);
	font-weight: 600;
}
.shop-header__sort-label { color: var(--muted-3); }
.shop-header__sort .woocommerce-ordering { margin: 0; }
.shop-header__sort .woocommerce-ordering select,
.shop-header__sort .orderby {
	background: var(--white);
	border: 1px solid var(--cream-700);
	border-radius: var(--r-sm);
	padding: 11px 34px 11px 18px;
	font-family: var(--font-body);
	font-size: var(--fs-14);
	font-weight: 600;
	color: var(--ink-4);
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%238a8e96' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 10px;
}

.wc-archive__layout {
	display: grid;
	grid-template-columns: 250px 1fr;
	gap: 32px;
	padding: 12px var(--gutter-x) 0;
	align-items: start;
}
.wc-archive__main { min-width: 0; }
.wc-archive__empty { padding: 40px 0; color: var(--muted-4); }

.shop-filters { position: sticky; top: 96px; align-self: start; }
.shop-filters__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 4px;
}
.shop-filters__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	color: var(--ink-4);
}
.shop-filters__clear {
	font-size: 12.5px;
	color: var(--accent-wine);
	text-decoration: none;
	font-weight: 700;
}
.shop-filters__clear:hover { opacity: 1; text-decoration: underline; }

.shop-filters__group {
	border-top: 1px solid var(--cream-600);
	padding: 20px 0;
}
.shop-filters__label {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	margin-bottom: 14px;
	color: var(--ink-4);
}
.shop-filters__pills { display: flex; flex-wrap: wrap; gap: 8px; }
.shop-filters__pill {
	border: 1.5px solid var(--cream-900);
	border-radius: var(--r-pill);
	font-size: 13px;
	font-weight: 600;
	padding: 8px 14px;
	color: var(--ink-6);
	text-decoration: none;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.shop-filters__pill:hover { border-color: var(--ink-4); opacity: 1; }
.shop-filters__pill.is-active {
	border-color: var(--ink-4);
	background: var(--ink-4);
	color: var(--white);
}

.shop-filters__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 11px;
}
.shop-filters__list li { margin: 0; }
.shop-filters__row {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: var(--fs-14);
	color: var(--ink-6);
	cursor: pointer;
	text-decoration: none;
}
.shop-filters__row:hover { opacity: 1; color: var(--ink-4); }
.shop-filters__row.is-active { color: var(--ink-4); font-weight: 600; }
.shop-filters__check {
	width: 18px;
	height: 18px;
	border-radius: 6px;
	border: 1.5px solid var(--cream-900);
	background: var(--white);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	font-size: 11px;
	flex: none;
}
.shop-filters__row.is-active .shop-filters__check {
	border-color: var(--ink-4);
	background: var(--ink-4);
}
.shop-filters__row-label { flex: 1; }
.shop-filters__row-count {
	color: var(--muted-2);
	font-size: 12.5px;
}

.shop-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: 44px;
	flex-wrap: wrap;
}
.shop-pagination__item .page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	border-radius: var(--r-sm);
	background: var(--white);
	border: 1px solid var(--cream-700);
	font-weight: 700;
	font-size: var(--fs-14);
	color: var(--ink-4);
	text-decoration: none;
	padding: 0 12px;
	transition: transform 0.15s ease;
}
.shop-pagination__item .page-numbers.current {
	background: var(--ink-4);
	color: var(--white);
	border-color: var(--ink-4);
}
.shop-pagination__item .page-numbers.dots {
	background: transparent;
	border: 0;
	color: var(--muted-2);
	min-width: auto;
	padding: 0 6px;
}
.shop-pagination__item .page-numbers:hover:not(.current):not(.dots) {
	transform: translateY(-1px);
	opacity: 1;
}

@media (max-width: 900px) {
	.shop-breadcrumb { padding: 24px var(--gutter-x) 0; }
	.shop-header { padding: 12px var(--gutter-x) 20px; }
	.shop-header__title { font-size: 34px; }
	.wc-archive__layout { grid-template-columns: 1fr; padding: 12px var(--gutter-x) 0; }
	.shop-filters { position: static; }
	.product-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.shop-header__title { font-size: 28px; }
	.wc-archive__layout { padding: 12px 20px 0; }
	.product-grid--3 { grid-template-columns: 1fr 1fr; }
	.shop-header__inner { align-items: flex-start; }
	.shop-header__sort { width: 100%; justify-content: space-between; }
}

/* ---------- Blog card + blog row ---------- */

.blog-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.blog-card {
	background: var(--white);
	border-radius: var(--r-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--ink-4);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(34, 36, 42, 0.12);
	opacity: 1;
}
.blog-card__well {
	aspect-ratio: 16 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.blog-card__well img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.blog-card:hover .blog-card__well img { transform: scale(1.04); }
.blog-card__body {
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.blog-card__date {
	font-size: 12px;
	font-weight: 700;
	color: var(--muted-3);
	letter-spacing: 0.01em;
}
.blog-card__title {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
	margin: 0;
	color: var(--ink-4);
}

@media (max-width: 900px) {
	.blog-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.blog-row { grid-template-columns: 1fr; }
}

/* ---------- Trust band (dark: heading + description + 4-col stats) ---------- */

.home-trust {
	background: var(--ink-2);
	color: var(--cream-200);
	padding: 72px var(--gutter-x) 0;
}
.home-trust__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 40px;
	padding-bottom: 44px;
	flex-wrap: wrap;
}
.home-trust__heading {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 52px;
	margin: 0;
	letter-spacing: -0.03em;
	line-height: 1;
	color: var(--cream-200);
}
.home-trust__accent { color: var(--accent-wine); }
.home-trust__body {
	font-size: 15px;
	line-height: 1.7;
	color: var(--muted-1);
	margin: 0;
	max-width: 40ch;
}
.home-trust__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--accent-wine-dark);
}
.home-trust__stat {
	padding: 34px 28px 44px;
	border-right: 1px solid var(--accent-wine-dark);
}
.home-trust__stat:last-child { border-right: none; }
.home-trust__stat-value {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 40px;
	letter-spacing: -0.02em;
	color: var(--cream-200);
}
.home-trust__stat-body {
	font-size: 13px;
	color: var(--muted-1);
	margin-top: 8px;
	line-height: 1.5;
}

@media (max-width: 900px) {
	.home-trust { padding: 48px var(--gutter-x) 0; }
	.home-trust__heading { font-size: 34px; }
	.home-trust__top {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding-bottom: 32px;
	}
	.home-trust__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home-trust__stat { padding: 24px 20px 32px; }
	.home-trust__stat:nth-child(2) { border-right: none; }
	.home-trust__stat:nth-child(1),
	.home-trust__stat:nth-child(2) { border-bottom: 1px solid var(--accent-wine-dark); }
}
@media (max-width: 480px) {
	.home-trust__stats { grid-template-columns: 1fr; }
	.home-trust__stat { border-right: none !important; border-bottom: 1px solid var(--accent-wine-dark); }
	.home-trust__stat:last-child { border-bottom: none; }
}

/* -----------------------------------------------------------------------------
   Single product (PDP)
----------------------------------------------------------------------------- */
.pdp { background: var(--cream-100); }
.pdp__crumbs { padding: 20px var(--gutter-x) 0; }
.pdp__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
	padding: 28px var(--gutter-x) 56px;
	align-items: start;
}

/* Gallery */
.pdp-gallery {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 16px;
	position: sticky;
	top: 96px;
}
/* Products with a single image (no gallery) collapse to a single column so
   the hero fills the whole gallery area instead of the 1fr side track. */
.pdp-gallery--single {
	grid-template-columns: 1fr;
}
.pdp-gallery__thumbs {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.pdp-gallery__thumb {
	appearance: none;
	background: #fff;
	border: 2px solid var(--cream-500, #e2ded9);
	border-radius: 16px;
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	cursor: pointer;
	padding: 0;
	transition: border-color .18s;
}
.pdp-gallery__thumb img {
	max-height: 74%;
	max-width: 74%;
	object-fit: contain;
}
.pdp-gallery__thumb:hover { border-color: #b7ada3; }
.pdp-gallery__thumb.is-active { border-color: var(--ink-4); }
.pdp-gallery__hero {
	border-radius: 26px;
	aspect-ratio: 1;
	overflow: hidden;
	position: relative;
	background: #fff;
}
.pdp-gallery__badge {
	position: absolute;
	top: 18px;
	left: 18px;
	background: var(--gold-bright);
	color: var(--ink-4);
	border-radius: 99px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	padding: 5px 12px;
	z-index: 2;
}
.pdp-gallery__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Summary */
.pdp-summary {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.pdp-summary__eyebrow {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--gold-dark);
}
.pdp-summary__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 44px;
	letter-spacing: -.03em;
	line-height: 1.02;
	margin: 0;
	color: var(--ink);
}
.pdp-summary__rating {
	display: flex;
	align-items: center;
	gap: 12px;
}
.pdp-summary__stars {
	color: var(--gold);
	font-size: 15px;
	letter-spacing: 2px;
}
.pdp-summary__reviews {
	font-size: 13.5px;
	color: var(--muted-3);
	font-weight: 600;
}
.pdp-summary__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 32px;
	color: var(--ink);
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
}
.pdp-summary__price ins { text-decoration: none; }
.pdp-summary__price del {
	font-size: 20px;
	font-weight: 400;
	color: var(--muted-3);
}
.pdp-summary__price .woocommerce-Price-amount { color: inherit; }
.pdp-summary__short {
	font-size: 15.5px;
	line-height: 1.7;
	color: var(--ink-6, #5c616a);
	max-width: 52ch;
}
.pdp-summary__short p:last-child { margin-bottom: 0; }

/* Add-to-cart form */
.pdp-summary__cart .cart {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	margin: 6px 0 0;
}
.pdp-summary__cart .quantity {
	display: flex;
	align-items: center;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	overflow: hidden;
}
.pdp-summary__cart .quantity label { display: none; }
.pdp-summary__cart .qty {
	appearance: none;
	border: 0;
	background: transparent;
	width: 56px;
	text-align: center;
	font-weight: 700;
	font-size: 16px;
	padding: 14px 4px;
	color: var(--ink-4);
	-moz-appearance: textfield;
	outline: none;
}
.pdp-summary__cart .qty:focus,
.pdp-summary__cart .qty:focus-visible { outline: none; box-shadow: none; }
.pdp-summary__cart .quantity:focus-within { border-color: var(--ink-4); box-shadow: 0 0 0 1px var(--ink-4);
}
.pdp-summary__cart .qty::-webkit-outer-spin-button,
.pdp-summary__cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pdp-summary__cart .single_add_to_cart_button {
	flex: 1;
	min-width: 220px;
	appearance: none;
	border: 0;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .04em;
	padding: 16px 24px;
	border-radius: 14px;
	cursor: pointer;
	transition: background .18s;
	text-transform: none;
}
.pdp-summary__cart .single_add_to_cart_button:hover,
.pdp-summary__cart .single_add_to_cart_button:focus {
	background: var(--accent-wine);
}

/* Variations — restack the table as a vertical list of fields for a cleaner look */
.pdp-summary__cart .variations {
	width: 100%;
	border-collapse: collapse;
	display: block;
}
.pdp-summary__cart .variations tbody,
.pdp-summary__cart .variations tr { display: block; }
.pdp-summary__cart .variations tr {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 14px;
}
.pdp-summary__cart .variations th {
	display: block;
	padding: 0;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-4);
	text-align: left;
	width: auto;
}
.pdp-summary__cart .variations td {
	display: block;
	padding: 0;
	position: relative;
}
.pdp-summary__cart .variations select {
	appearance: none;
	background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'><path fill='none' stroke='%2322242a' stroke-width='1.6' d='M1 1l5 5 5-5'/></svg>") no-repeat right 18px center;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	padding: 16px 40px 16px 18px;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ink-4);
	width: 100%;
	line-height: 1;
	cursor: pointer;
	transition: border-color .15s;
}
.pdp-summary__cart .variations select:focus {
	outline: none;
	border-color: var(--ink-4);
}
.pdp-summary__cart .reset_variations {
	display: inline-block;
	font-size: 12.5px;
	color: var(--accent-wine);
	text-decoration: underline;
	text-underline-offset: 2px;
	margin: 6px 0 0;
	font-weight: 600;
}

/* Bottom row (qty + add-to-cart) on variable products has its own wrapper */
.pdp-summary__cart .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 6px;
}
.pdp-summary__cart .woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button {
	opacity: .5;
	pointer-events: none;
}
.pdp-summary__cart .woocommerce-variation-price {
	width: 100%;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	color: var(--ink);
	margin: 0 0 4px;
}
.pdp-summary__cart .woocommerce-variation-price .amount { color: inherit; }
.pdp-summary__cart .woocommerce-variation-availability {
	width: 100%;
	font-size: 13px;
	color: var(--muted-3);
	margin: 0 0 6px;
}
.pdp-summary__cart .woocommerce-variation-description {
	width: 100%;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ink-6);
	margin: 0 0 6px;
}
.pdp-summary__cart .reset_variations {
	font-size: 13px;
	color: var(--accent-wine);
	margin-left: 8px;
}
.pdp-summary__cart .woocommerce-variation-price { margin: 8px 0; font-weight: 700; }
.pdp-summary__cart .woocommerce-variation-availability { font-size: 13px; color: var(--muted-3); }

/* Benefits */
.pdp-summary__benefits {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	font-size: 13px;
	color: var(--ink-6, #5c616a);
	font-weight: 600;
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
}
.pdp-summary__benefits li::before {
	content: '✓';
	color: var(--accent-wine);
	font-weight: 700;
	margin-right: 6px;
}

/* Accordions */
.pdp-accordions { margin-top: 8px; }
.pdp-accordion {
	border-top: 1px solid #e2ded9;
}
.pdp-accordion:last-child { border-bottom: 1px solid #e2ded9; }
.pdp-accordion__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 0;
	font-weight: 700;
	font-size: 15px;
	color: var(--ink-4);
	cursor: pointer;
	list-style: none;
}
.pdp-accordion__head::-webkit-details-marker { display: none; }
.pdp-accordion__icon {
	font-size: 20px;
	color: var(--muted-3);
	width: 20px;
	text-align: center;
}
.pdp-accordion__icon::before { content: '+'; transition: transform .3s ease; display: inline-block; }
.pdp-accordion[open] .pdp-accordion__icon::before { content: '–'; }
/* We collapse height via JS so the body must always be rendered by the browser.
   Force the summary marker's siblings to be visible so the transition can run. */
.pdp-accordion > *:not(summary) { display: block !important; }
.pdp-accordion__body {
	padding-bottom: 18px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-6, #5c616a);
	will-change: max-height, opacity;
}
.pdp-accordion__body p:last-child { margin-bottom: 0; }
.pdp-accordion__specs {
	width: 100%;
	border-collapse: collapse;
}
.pdp-accordion__specs th,
.pdp-accordion__specs td {
	padding: 8px 0;
	border-bottom: 1px solid #ece7df;
	vertical-align: top;
	font-size: 13.5px;
}
.pdp-accordion__specs th {
	text-align: left;
	color: var(--ink-4);
	font-weight: 700;
	width: 40%;
	padding-right: 16px;
}
.pdp-accordion__specs tr:last-child th,
.pdp-accordion__specs tr:last-child td { border-bottom: 0; }

/* Reviews band */
.pdp-reviews {
	background: #1c1714;
	color: #f2ede8;
	padding: 56px var(--gutter-x);
}
.pdp-reviews__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 30px;
	margin-bottom: 28px;
	flex-wrap: wrap;
}
.pdp-reviews__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 30px;
	letter-spacing: -.02em;
	margin: 0;
}
.pdp-reviews__meta {
	color: var(--gold-bright);
	font-weight: 700;
	font-size: 14px;
}
.pdp-reviews__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.pdp-review {
	background: #241d19;
	border-radius: 20px;
	padding: 24px;
}
.pdp-review__stars {
	color: var(--gold-bright);
	letter-spacing: 2px;
	margin-bottom: 10px;
}
.pdp-review__title {
	font-weight: 700;
	font-size: 16px;
	margin: 0 0 8px;
	color: #f2ede8;
}
.pdp-review__body {
	font-size: 14px;
	line-height: 1.65;
	color: #b7ada3;
	margin-bottom: 14px;
}
.pdp-review__body p:last-child { margin-bottom: 0; }
.pdp-review__attribution {
	font-size: 12.5px;
	color: var(--muted-3);
	font-weight: 600;
}

/* Related */
.pdp-related { padding: 56px var(--gutter-x); }
.pdp-related__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 24px;
	flex-wrap: wrap;
	gap: 12px;
}
.pdp-related__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 30px;
	letter-spacing: -.02em;
	margin: 0;
}
.pdp-related__link {
	font-weight: 700;
	font-size: 14px;
	color: var(--accent-wine);
	text-decoration: none;
}

@media (max-width: 900px) {
	.pdp__crumbs { padding: 16px var(--gutter-x) 0; }
	.pdp__body {
		grid-template-columns: 1fr;
		padding: 20px var(--gutter-x) 40px;
		gap: 32px;
	}
	.pdp-gallery { position: static; }
	.pdp-summary__title { font-size: 34px; }
	.pdp-summary__price { font-size: 26px; }
	.pdp-reviews { padding: 40px var(--gutter-x); }
	.pdp-reviews__grid { grid-template-columns: 1fr; }
	.pdp-related { padding: 40px var(--gutter-x); }
}
@media (max-width: 560px) {
	.pdp-gallery {
		grid-template-columns: 72px 1fr;
	}
	.pdp-summary__title { font-size: 28px; }
	.pdp-summary__cart .cart { flex-direction: column; align-items: stretch; }
	.pdp-summary__cart .single_add_to_cart_button { width: 100%; }
	.pdp-summary__cart .quantity { width: 100%; justify-content: center; }
}

/* -----------------------------------------------------------------------------
   Cart
----------------------------------------------------------------------------- */
.dc-cart { background: var(--cream-100); min-height: 60vh; }
.dc-cart__header { padding: 44px var(--gutter-x) 8px; }
.dc-cart__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1;
	margin: 0;
	color: var(--ink);
}
.dc-cart__blurb {
	font-size: 14.5px;
	color: var(--ink-6, #5c616a);
	margin-top: 8px;
}
.dc-cart__blurb .amount { font-weight: 700; color: var(--ink-4); }

.dc-cart__grid {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 32px;
	padding: 24px var(--gutter-x) 56px;
	align-items: start;
}
.dc-cart__items {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.dc-cart-line {
	display: grid;
	grid-template-columns: 110px 1fr auto;
	gap: 20px;
	align-items: center;
	background: #fff;
	border-radius: 20px;
	padding: 18px 22px;
}
.dc-cart-line__thumb {
	aspect-ratio: 1;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	position: relative;
	background: #fff;
}
.dc-cart-line__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dc-cart-line__info {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.dc-cart-line__name {
	font-weight: 700;
	font-size: 17px;
	color: var(--ink-4);
}
.dc-cart-line__name a {
	color: inherit;
	text-decoration: none;
}
.dc-cart-line__name a:hover { color: var(--accent-wine); }
.dc-cart-line__attrs {
	font-size: 13.5px;
	color: var(--muted-3);
}
.dc-cart-line__attrs p { margin: 0; }
.dc-cart-line__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 17px;
	margin-top: 4px;
	color: var(--ink-4);
}
.dc-cart-line__price .amount { color: inherit; }
.dc-cart-line__side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}
.dc-cart-line__qty .quantity {
	display: flex;
	align-items: center;
	background: var(--cream-100);
	border-radius: 12px;
	overflow: hidden;
}
.dc-cart-line__qty label { display: none; }
.dc-cart-line__qty input.qty {
	appearance: none;
	border: 0;
	background: transparent;
	width: 46px;
	text-align: center;
	font-weight: 700;
	font-size: 15px;
	padding: 10px 4px;
	color: var(--ink-4);
	-moz-appearance: textfield;
	outline: none;
}
.dc-cart-line__qty input.qty:focus,
.dc-cart-line__qty input.qty:focus-visible { outline: none; box-shadow: none; }
.dc-cart-line__qty .quantity:focus-within {
	background: #fff;
	box-shadow: 0 0 0 2px var(--ink-4);
}
.dc-cart-line__qty input.qty::-webkit-outer-spin-button,
.dc-cart-line__qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dc-cart-line__remove {
	font-size: 12.5px;
	color: var(--muted-3);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}
.dc-cart-line__remove:hover { color: var(--accent-wine); }

.dc-cart__actions-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	padding: 6px 2px 0;
}
.dc-cart__continue {
	color: var(--accent-wine);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}
.dc-cart__update-wrap {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
.dc-cart__coupon {
	display: flex;
	gap: 8px;
	align-items: center;
}
.dc-cart__coupon-input {
	appearance: none;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 12px;
	padding: 10px 14px;
	font-family: inherit;
	font-size: 13.5px;
	color: var(--ink-4);
	min-width: 180px;
}
.dc-cart__coupon-apply,
.dc-cart__update {
	appearance: none;
	background: var(--cream-100);
	border: 1px solid #dcd7cd;
	border-radius: 12px;
	font-weight: 700;
	font-size: 13px;
	padding: 10px 16px;
	cursor: pointer;
	color: var(--ink-4);
	transition: background .18s, color .18s;
}
.dc-cart__coupon-apply:hover,
.dc-cart__update:hover {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}

.dc-cart__summary { position: sticky; top: 96px; }

.dc-summary-card {
	background: #fff;
	border-radius: 24px;
	padding: 28px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-summary-card__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	margin-bottom: 18px;
	color: var(--ink-4);
}
.dc-summary-card__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 14.5px;
	color: var(--ink-6, #5c616a);
	padding: 8px 0;
}
.dc-summary-card__val {
	font-weight: 700;
	color: var(--ink-4);
}
.dc-summary-card__val .amount { color: inherit; }
.dc-summary-card__shipping ul {
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: right;
}
.dc-summary-card__shipping ul li { padding: 2px 0; font-size: 13px; }
.dc-summary-card__shipping .shipping-calculator-button {
	font-size: 13px;
	color: var(--accent-wine);
	text-decoration: none;
	font-weight: 700;
}
.dc-summary-card__row--total {
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
	padding: 14px 0;
	border-top: 1px solid #e2ded9;
	margin-top: 6px;
}
.dc-summary-card__row--total .dc-summary-card__val { color: var(--ink); font-size: 18px; }
.dc-summary-card__cta {
	display: block;
	text-align: center;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .04em;
	padding: 16px;
	border-radius: 14px;
	text-decoration: none;
	margin-top: 10px;
	transition: background .18s;
}
.dc-summary-card__cta:hover,
.dc-summary-card__cta:focus { background: var(--accent-wine); }
.dc-summary-card__trust {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 16px;
	font-size: 12px;
	color: var(--muted-3);
	font-weight: 600;
	flex-wrap: wrap;
}

/* Empty cart */
.dc-cart--empty { padding: 44px var(--gutter-x) 80px; }
.dc-cart-empty {
	background: #fff;
	border-radius: 24px;
	padding: 64px 32px;
	text-align: center;
	max-width: 560px;
	margin: 24px auto 0;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .04);
}
.dc-cart-empty__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 24px;
	color: var(--ink-4);
	margin-bottom: 8px;
}
.dc-cart-empty__blurb {
	color: var(--muted-3);
	font-size: 14.5px;
	margin: 0 auto 24px;
	max-width: 40ch;
}
.dc-cart-empty__cta,
.dc-cart-empty__link {
	display: inline-block;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 14px 28px;
	border-radius: 14px;
	text-decoration: none;
	transition: background .18s;
}
.dc-cart-empty__cta:hover,
.dc-cart-empty__link:hover { background: var(--accent-wine); }
.dc-cart-empty__link { background: transparent; color: var(--accent-wine); padding: 0; font-weight: 700; }

@media (max-width: 900px) {
	.dc-cart__header { padding: 32px var(--gutter-x) 4px; }
	.dc-cart__title { font-size: 34px; }
	.dc-cart__grid {
		grid-template-columns: 1fr;
		padding: 20px var(--gutter-x) 40px;
	}
	.dc-cart__summary { position: static; }
	.dc-cart--empty { padding: 32px var(--gutter-x) 60px; }
}
@media (max-width: 560px) {
	.dc-cart-line {
		grid-template-columns: 84px 1fr;
		padding: 16px;
	}
	.dc-cart-line__side {
		grid-column: 1 / 3;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}
	.dc-cart__actions-row {
		flex-direction: column;
		align-items: stretch;
	}
	.dc-cart__update-wrap { justify-content: space-between; }
}

/* -----------------------------------------------------------------------------
   Checkout
----------------------------------------------------------------------------- */
.dc-checkout { background: var(--cream-100); min-height: 60vh; }
.dc-checkout__header {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px var(--gutter-x) 0;
}
.dc-checkout__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1;
	margin: 0;
	color: var(--ink);
}

.dc-checkout__steps {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	max-width: 1200px;
	margin: 0 auto;
	padding: 22px var(--gutter-x) 0;
}
.dc-checkout-step {
	display: flex;
	align-items: center;
	gap: 10px;
}
.dc-checkout-step__num {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #e2ded9;
	color: var(--muted-3);
	display: grid;
	place-items: center;
	font-size: 13px;
	font-weight: 800;
}
.dc-checkout-step__label {
	font-size: 14px;
	font-weight: 700;
	color: var(--muted-3);
}
.dc-checkout-step.is-active .dc-checkout-step__num {
	background: var(--ink-4);
	color: #fff;
}
.dc-checkout-step.is-active .dc-checkout-step__label { color: var(--ink-4); }
.dc-checkout-step__sep {
	flex: 1;
	height: 1px;
	background: #dcd7cd;
	min-width: 20px;
}

.dc-checkout__grid {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 36px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 28px var(--gutter-x) 56px;
	align-items: start;
}
.dc-checkout__main {
	display: flex;
	flex-direction: column;
	gap: 26px;
}

.dc-checkout__customer {
	display: flex;
	flex-direction: column;
	gap: 26px;
}
.dc-checkout-card {
	background: #fff;
	border-radius: 22px;
	padding: 28px 30px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 19px;
	color: var(--ink-4);
	margin: 0 0 18px;
	letter-spacing: -.01em;
}

.woocommerce-form-row {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 14px;
}
.woocommerce-form-row label,
form.checkout label {
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-6, #3f434a);
}
.woocommerce-form-row label .required {
	color: var(--accent-wine);
	text-decoration: none;
}
/* Unified input styling for every form on the site: checkout, login/register,
   my-account edit, coupon, lost-password. Scoped to our page templates so we
   don't override the header search modal (which has its own dark styling). */
.dc-checkout .woocommerce-input-wrapper,
.dc-account .woocommerce-input-wrapper,
.dc-cart .woocommerce-input-wrapper { display: block; width: 100%; }

/* Higher-specificity selector chain that beats WooCommerce's
   .woocommerce form .form-row .input-text (0,3,2 specificity). We match on
   .woocommerce + .dc-* + form + .form-row + .input-text (0,4,2) so ours wins. */
.woocommerce .dc-checkout form.checkout .form-row input.input-text,
.woocommerce .dc-checkout form.checkout .form-row input[type="text"],
.woocommerce .dc-checkout form.checkout .form-row input[type="email"],
.woocommerce .dc-checkout form.checkout .form-row input[type="password"],
.woocommerce .dc-checkout form.checkout .form-row input[type="tel"],
.woocommerce .dc-checkout form.checkout .form-row input[type="number"],
.woocommerce .dc-checkout form.checkout .form-row textarea,
.woocommerce .dc-checkout form.checkout .form-row select,
.woocommerce .dc-checkout form.checkout .form-row .select2-selection,
.woocommerce .dc-account form .form-row input.input-text,
.woocommerce .dc-account form .form-row input[type="text"],
.woocommerce .dc-account form .form-row input[type="email"],
.woocommerce .dc-account form .form-row input[type="password"],
.woocommerce .dc-account form .form-row input[type="tel"],
.woocommerce .dc-account form .form-row textarea,
.woocommerce .dc-account form .form-row select,
.dc-checkout input.input-text,
.dc-checkout input[type="text"],
.dc-checkout input[type="email"],
.dc-checkout input[type="password"],
.dc-checkout input[type="tel"],
.dc-checkout input[type="number"],
.dc-checkout textarea,
.dc-checkout select,
.dc-checkout .select2-selection,
.dc-account input.input-text,
.dc-account input[type="text"],
.dc-account input[type="email"],
.dc-account input[type="password"],
.dc-account input[type="tel"],
.dc-account input[type="number"],
.dc-account textarea,
.dc-account select,
.dc-cart input[type="text"]:not([name="coupon_code"]),
.dc-cart input[type="email"] {
	appearance: none;
	background: #fff !important;
	border: 1px solid #dcd7cd !important;
	border-radius: 12px !important;
	padding: 14px 16px !important;
	font-family: inherit !important;
	font-size: 14px !important;
	color: var(--ink-4) !important;
	width: 100% !important;
	box-sizing: border-box !important;
	line-height: 1.4 !important;
	display: block !important;
	box-shadow: none !important;
}
.dc-checkout input::placeholder,
.dc-checkout textarea::placeholder,
.dc-account input::placeholder,
.dc-account textarea::placeholder,
.dc-cart input::placeholder {
	color: #8a8e96;
	opacity: 1;
}
.dc-checkout textarea,
.dc-account textarea { min-height: 96px; }
.dc-checkout .select2-selection,
.dc-account .select2-selection { padding: 6px 12px; height: 46px; }
.dc-checkout .select2-selection__rendered,
.dc-account .select2-selection__rendered { padding: 0 !important; line-height: 34px; }
.dc-checkout .select2-selection__arrow,
.dc-account .select2-selection__arrow { top: 12px !important; right: 12px !important; }

/* Focus state */
.dc-checkout input:focus,
.dc-checkout textarea:focus,
.dc-checkout select:focus,
.dc-account input:focus,
.dc-account textarea:focus,
.dc-account select:focus {
	outline: none;
	border-color: var(--ink-4);
}

/* Two-col layout for form fields inside cards */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.woocommerce-billing-fields__field-wrapper > .form-row-wide,
.woocommerce-billing-fields__field-wrapper > #billing_address_1_field,
.woocommerce-billing-fields__field-wrapper > #billing_address_2_field,
.woocommerce-billing-fields__field-wrapper > #billing_company_field,
.woocommerce-billing-fields__field-wrapper > #billing_email_field,
.woocommerce-billing-fields__field-wrapper > #billing_country_field,
.woocommerce-shipping-fields__field-wrapper > .form-row-wide,
.woocommerce-shipping-fields__field-wrapper > #shipping_address_1_field,
.woocommerce-shipping-fields__field-wrapper > #shipping_address_2_field,
.woocommerce-shipping-fields__field-wrapper > #shipping_company_field,
.woocommerce-shipping-fields__field-wrapper > #shipping_country_field {
	grid-column: 1 / 3;
}

.woocommerce-billing-fields__field-wrapper > p.form-row,
.woocommerce-shipping-fields__field-wrapper > p.form-row {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}
.form-row-first { grid-column: 1 / 2; }
.form-row-last  { grid-column: 2 / 3; }

/* Shipping-method radio list restyled to card look */
#order_review .shipping ul#shipping_method,
.woocommerce-shipping-methods {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.woocommerce-shipping-methods li,
#shipping_method li {
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	padding: 14px 16px;
	background: #fff;
	cursor: pointer;
}
.woocommerce-shipping-methods li label,
#shipping_method li label {
	flex: 1;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--ink-4);
	margin: 0;
	cursor: pointer;
}

/* Aside / order summary */
.dc-checkout__aside {
	position: sticky;
	top: 96px;
	background: #fff;
	border-radius: 24px;
	padding: 28px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-checkout__aside-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	color: var(--ink-4);
	margin: 0 0 12px;
}

.dc-review__items {
	list-style: none;
	padding: 0;
	margin: 0;
	border-bottom: 1px solid #e2ded9;
	padding-bottom: 8px;
}
.dc-review-item {
	display: flex;
	gap: 14px;
	align-items: center;
	padding: 10px 0;
}
.dc-review-item__thumb {
	width: 60px;
	height: 60px;
	position: relative;
	flex: none;
	overflow: visible;
}
.dc-review-item__thumb-media {
	position: absolute;
	inset: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}
.dc-review-item__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.dc-review-item__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--ink-4);
	color: #fff;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 800;
	display: grid;
	place-items: center;
}
.dc-review-item__info { flex: 1; min-width: 0; }
.dc-review-item__name {
	font-weight: 700;
	font-size: 14px;
	line-height: 1.3;
	color: var(--ink-4);
}
.dc-review-item__name a { color: inherit; text-decoration: none; }
.dc-review-item__attrs {
	font-size: 12.5px;
	color: var(--muted-3);
}
.dc-review-item__attrs p { margin: 0; }
.dc-review-item__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	color: var(--ink-4);
	flex: none;
}
.dc-review-item__price .amount { color: inherit; }

.dc-review__totals { padding: 6px 0 4px; }
.dc-review__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 14.5px;
	color: var(--ink-6, #3f434a);
	padding: 7px 0;
}
.dc-review__val {
	font-weight: 700;
	color: var(--ink-4);
}
.dc-review__val .amount { color: inherit; }
.dc-review__row--total {
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
	border-top: 1px solid #e2ded9;
	margin-top: 8px;
	padding-top: 14px;
}
.dc-review__row--total .dc-review__val { color: var(--ink); font-size: 18px; }

/* Payment methods */
.wc_payment_methods.payment_methods {
	list-style: none;
	padding: 16px 0 0;
	margin: 8px 0 0;
	border-top: 1px solid #e2ded9;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.wc_payment_methods li {
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	padding: 14px 16px;
}
.wc_payment_methods li label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--ink-4);
	margin: 0;
	cursor: pointer;
}
.wc_payment_methods .payment_box {
	background: var(--cream-100);
	border-radius: 12px;
	padding: 14px 16px;
	margin-top: 10px;
	font-size: 13.5px;
	color: var(--ink-6);
}

.dc-review__place-order { margin-top: 18px; }
.dc-review__submit,
#place_order {
	appearance: none;
	border: 0;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	letter-spacing: .04em;
	padding: 18px;
	border-radius: 16px;
	text-decoration: none;
	width: 100%;
	cursor: pointer;
	transition: background .18s;
}
.dc-review__submit:hover,
.dc-review__submit:focus,
#place_order:hover,
#place_order:focus { background: var(--accent-wine); }

.dc-review__trust {
	display: flex;
	justify-content: center;
	gap: 14px;
	margin-top: 18px;
	font-size: 12px;
	color: var(--muted-3);
	font-weight: 600;
	flex-wrap: wrap;
}

/* Login/coupon toggle wrappers reuse the notice styling above. Colour their
   inline anchors so the "Click here" text uses our accent tone. */
.woocommerce-form-login-toggle a,
.woocommerce-form-coupon-toggle a { color: var(--accent-wine); font-weight: 700; text-decoration: none; }

.woocommerce-form.login,
.woocommerce-form-coupon {
	background: #fff;
	border-radius: 22px;
	padding: 24px 28px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
	margin-bottom: 26px;
}

@media (max-width: 900px) {
	.dc-checkout__header { padding: 32px var(--gutter-x) 0; }
	.dc-checkout__title { font-size: 34px; }
	.dc-checkout__steps { padding: 16px var(--gutter-x) 0; }
	.dc-checkout__grid {
		grid-template-columns: 1fr;
		padding: 20px var(--gutter-x) 40px;
	}
	.dc-checkout__aside { position: static; }
}
@media (max-width: 560px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
	.form-row-first,
	.form-row-last { grid-column: auto; }
	.dc-checkout-card { padding: 22px 20px; }
	.dc-checkout__aside { padding: 22px 20px; }
}

/* -----------------------------------------------------------------------------
   My account
----------------------------------------------------------------------------- */
.dc-account { background: var(--cream-100); min-height: 60vh; }
.dc-account__header { padding: 40px var(--gutter-x) 0; }
.dc-account__eyebrow {
	font-size: 13px;
	color: var(--muted-3);
	font-weight: 600;
	margin-bottom: 10px;
}
.dc-account__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1;
	margin: 0;
	color: var(--ink);
}
.dc-account__wave {
	font-family: 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif;
	margin-left: 4px;
}

.dc-account__layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 40px;
	padding: 30px var(--gutter-x) 56px;
	align-items: start;
}

/* Sidebar */
.dc-account-nav {
	position: sticky;
	top: 96px;
}
.dc-account-nav__profile {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #fff;
	border-radius: 18px;
	padding: 16px;
	margin-bottom: 16px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
}
.dc-account-nav__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--accent-wine);
	color: #fff;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: 14px;
	flex: none;
}
.dc-account-nav__name {
	font-weight: 700;
	font-size: 14.5px;
	color: var(--ink-4);
}
.dc-account-nav__since {
	font-size: 12.5px;
	color: var(--muted-3);
}

.dc-account-nav__links {
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.dc-account-nav__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ink-6, #5c616a);
	background: transparent;
	text-decoration: none;
	transition: background .15s, color .15s;
}
.dc-account-nav__link:hover {
	background: rgba(34, 36, 42, .06);
	color: var(--ink-4);
}
.dc-account-nav__icon {
	font-size: 15px;
	width: 18px;
	text-align: center;
}
.dc-account-nav__link.is-active,
.woocommerce-MyAccount-navigation-link--dashboard.is-active,
.dc-account-nav__link.woocommerce-MyAccount-navigation-link--is-active {
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
}

/* Content — full-width column that sits next to the sticky sidebar. WC ships
   a woocommerce-layout.css that forces `.woocommerce-account .woocommerce-
   MyAccount-content { float: right; width: 68%; }` — we override both. */
.dc-account__content,
.woocommerce-account .dc-account__content.woocommerce-MyAccount-content {
	display: flex;
	flex-direction: column;
	gap: 26px;
	min-width: 0;
	width: 100% !important;
	float: none !important;
}
/* WC prints its own wrapper divs inside the content column; force them full width */
.dc-account__content > *,
.dc-account__content .woocommerce-MyAccount-content,
.dc-account__content .u-columns,
.dc-account__content .col2-set { width: 100% !important; float: none !important; }
.dc-dash { display: flex; flex-direction: column; gap: 26px; }

.dc-dash__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.dc-dash-stat {
	background: #fff;
	border-radius: 20px;
	padding: 24px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
}
.dc-dash-stat__val {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 34px;
	letter-spacing: -.02em;
	color: var(--ink);
}
.dc-dash-stat__val .amount { color: inherit; }
.dc-dash-stat__label {
	font-size: 13px;
	color: var(--muted-3);
	margin-top: 4px;
}

/* Recent orders */
.dc-dash-orders__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 14px;
}
.dc-dash-orders__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	margin: 0;
	color: var(--ink-4);
}
.dc-dash-orders__link {
	font-size: 13.5px;
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.dc-dash-orders__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.dc-dash-orders__empty {
	background: #fff;
	border-radius: 18px;
	padding: 32px;
	text-align: center;
	color: var(--muted-3);
}
.dc-dash-orders__empty a {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
	margin-left: 8px;
}

.dc-dash-order {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 16px;
	align-items: center;
	background: #fff;
	border-radius: 18px;
	padding: 20px 22px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
}
.dc-dash-order__info { display: flex; flex-direction: column; gap: 6px; }
.dc-dash-order__id-row {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.dc-dash-order__id {
	font-weight: 800;
	font-size: 15px;
	color: var(--ink-4);
}
.dc-dash-order__status {
	border-radius: 99px;
	font-size: 11px;
	font-weight: 800;
	padding: 3px 10px;
	color: #fff;
	background: var(--muted-3);
	letter-spacing: .04em;
	text-transform: uppercase;
}
.dc-dash-order__status.is-completed,
.dc-dash-order__status.is-delivered { background: #2e6b3e; }
.dc-dash-order__status.is-processing { background: var(--accent-wine); }
.dc-dash-order__status.is-on-hold,
.dc-dash-order__status.is-pending { background: var(--gold-dark); }
.dc-dash-order__status.is-shipped { background: var(--gold-dark); }
.dc-dash-order__status.is-cancelled,
.dc-dash-order__status.is-failed,
.dc-dash-order__status.is-refunded { background: #6b6b6b; }

.dc-dash-order__meta {
	font-size: 13px;
	color: var(--muted-3);
}
.dc-dash-order__actions {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.dc-dash-order__view {
	text-decoration: none;
	background: var(--cream-100);
	color: var(--ink-4);
	font-weight: 700;
	font-size: 13px;
	padding: 11px 18px;
	border-radius: 12px;
	transition: background .18s, color .18s;
	border: 0;
	cursor: pointer;
}
.dc-dash-order__view:hover {
	background: var(--ink-4);
	color: #fff;
}

/* Dashboard panels */
.dc-dash-panels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.dc-dash-panel {
	background: #fff;
	border-radius: 20px;
	padding: 26px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
}
.dc-dash-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14px;
}
.dc-dash-panel__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 17px;
	color: var(--ink-4);
	margin: 0;
}
.dc-dash-panel__edit {
	font-size: 12.5px;
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.dc-dash-panel__body {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-6, #3f434a);
}
.dc-dash-panel__body a {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}

/* Orders index paginate */
.dc-orders__pagination {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 20px;
}
.dc-orders__pagination-btn {
	appearance: none;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 12px;
	padding: 10px 16px;
	font-weight: 700;
	color: var(--ink-4);
	text-decoration: none;
	transition: background .18s, color .18s;
}
.dc-orders__pagination-btn:hover {
	background: var(--ink-4);
	color: #fff;
}

/* Login split */
.dc-account--login { }
.dc-login-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	padding: 30px var(--gutter-x) 56px;
	max-width: 640px;
}
.dc-login-grid.has-register {
	grid-template-columns: 1fr 1fr;
	max-width: none;
}
.dc-login-card {
	background: #fff;
	border-radius: 22px;
	padding: 28px 30px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-login-card__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	color: var(--ink-4);
	margin: 0 0 18px;
}
.dc-login-card__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 6px 0 0;
	flex-wrap: wrap;
}
.dc-login-card__remember {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13.5px;
	color: var(--ink-6);
	font-weight: 600;
}
.dc-login-card__submit {
	appearance: none;
	border: 0;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 24px;
	border-radius: 14px;
	cursor: pointer;
	transition: background .18s;
}
.dc-login-card__submit:hover,
.dc-login-card__submit:focus { background: var(--accent-wine); }

.dc-account--login .woocommerce-LostPassword {
	margin: 12px 0 0;
	font-size: 13px;
}
.dc-account--login .woocommerce-LostPassword a {
	color: var(--accent-wine);
	text-decoration: none;
	font-weight: 700;
}

/* Inline inputs shared with checkout inherit .woocommerce-form-row styling.
   Add generic address-form buttons/table for other endpoints. */
/* Addresses page: 2-column grid at the top level; individual card is
   flow (heading + body), not grid, so the "Add" link sits inline with h3. */
.woocommerce-Addresses {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 20px;
	width: 100% !important;
}
.woocommerce-Address,
.woocommerce-Address.u-column1,
.woocommerce-Address.u-column2,
.woocommerce-Address.col-1,
.woocommerce-Address.col-2 {
	background: #fff;
	border-radius: 20px;
	padding: 26px 28px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
	display: block !important;
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	clear: none !important;
}
.woocommerce-Addresses::before,
.woocommerce-Addresses::after { display: none !important; }
.woocommerce-Address-title {
	display: flex !important;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 14px;
}
.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 18px;
	margin: 0;
	color: var(--ink-4);
	line-height: 1.2;
	white-space: nowrap;
}
.woocommerce-Address-title a {
	font-size: 13px;
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}
.woocommerce-Address address {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-6);
	font-style: normal;
	margin: 0;
}
.woocommerce-MyAccount-content .woocommerce-Message,
.woocommerce-MyAccount-content > p:first-child {
	margin: 0 0 20px;
	color: var(--muted-4);
	font-size: 14.5px;
}
@media (max-width: 720px) {
	.woocommerce-Addresses { grid-template-columns: 1fr !important; }
}

.woocommerce-EditAccountForm,
.woocommerce-EditAddressForm,
form.edit-account,
.woocommerce-MyAccount-content form:not(.woocommerce-form-login):not(.woocommerce-form-register):not(.woocommerce-ResetPassword) {
	background: #fff;
	border-radius: 22px;
	padding: 28px 30px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
	display: block;
	width: 100%;
	box-sizing: border-box;
}
.woocommerce-MyAccount-content .woocommerce-Notices-wrapper .woocommerce-info,
.woocommerce-MyAccount-content > .woocommerce-info,
.woocommerce-MyAccount-content > .woocommerce-message {
	background: #fff;
	border-radius: 20px;
	padding: 20px 26px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
	color: var(--ink-6);
	font-size: 14.5px;
	line-height: 1.6;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.woocommerce-MyAccount-content > .woocommerce-info .button,
.woocommerce-MyAccount-content > .woocommerce-message .button {
	background: var(--ink-4);
	color: #fff;
	border: 0;
	border-radius: 12px;
	font-weight: 700;
	font-size: 13px;
	padding: 12px 18px;
	text-decoration: none;
	white-space: nowrap;
}

/* Wishlist page */
.dc-wishlist { width: 100%; }
/* Ensure [hidden] wins over our display: flex on both wishlist blocks */
.dc-wishlist [hidden] { display: none !important; }
.dc-wishlist__empty {
	background: #fff;
	border-radius: 20px;
	padding: 56px 24px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
}
.dc-wishlist__empty-icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--cream-100);
	display: grid;
	place-items: center;
	color: var(--ink-4);
	margin-bottom: 4px;
}
.dc-wishlist__empty-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	color: var(--ink-4);
	margin: 0;
}
.dc-wishlist__empty-text {
	font-size: 14px;
	color: var(--muted-3);
	margin: 0;
	max-width: 340px;
	line-height: 1.5;
}
.dc-wishlist__empty-cta {
	display: inline-flex;
	align-items: center;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 22px;
	border-radius: 12px;
	text-decoration: none;
	margin-top: 4px;
	transition: background .18s;
}
.dc-wishlist__empty-cta:hover { background: var(--accent-wine); color: #fff; }
.dc-wishlist__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
@media (max-width: 900px) {
	.dc-wishlist__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.dc-wishlist__grid { grid-template-columns: 1fr; }
}

/* Order table on view-order */
.woocommerce-table--order-details,
table.shop_table,
table.my_account_orders {
	width: 100%;
	background: #fff;
	border-radius: 18px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
}
.woocommerce-table--order-details th,
table.shop_table th,
table.my_account_orders th {
	background: var(--cream-100);
	text-align: left;
	font-size: 12.5px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--muted-3);
	padding: 14px 20px;
	font-weight: 700;
}
.woocommerce-table--order-details td,
table.shop_table td,
table.my_account_orders td {
	padding: 14px 20px;
	font-size: 14px;
	color: var(--ink-4);
	border-top: 1px solid #eee7dd;
}

@media (max-width: 900px) {
	.dc-account__header { padding: 32px var(--gutter-x) 0; }
	.dc-account__title { font-size: 34px; }
	.dc-account__layout {
		grid-template-columns: 1fr;
		padding: 20px var(--gutter-x) 40px;
	}
	.dc-account-nav { position: static; }
	.dc-dash-panels,
	.dc-dash__stats,
	.woocommerce-Addresses,
	.dc-login-grid.has-register {
		grid-template-columns: 1fr;
	}
	.dc-login-grid { padding: 20px var(--gutter-x) 40px; }
}
@media (max-width: 560px) {
	.dc-dash-order {
		grid-template-columns: 1fr;
		gap: 12px;
	}
	.dc-dash-order__view { justify-self: start; }
}

/* -----------------------------------------------------------------------------
   Blog card additions + Blog index
----------------------------------------------------------------------------- */
.blog-card__date {
	text-transform: uppercase;
	color: var(--gold-dark);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
}
.blog-card__excerpt {
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink-6, #5c616a);
}
.blog-card__cta {
	margin-top: auto;
	padding-top: 6px;
	font-weight: 700;
	font-size: 13.5px;
	color: var(--accent-wine);
}
.blog-card__body {
	padding: 20px 22px 24px;
	gap: 10px;
	flex: 1;
}
.blog-card__title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}

.dc-blog { background: var(--cream-100); }
.dc-blog__header { padding: 44px var(--gutter-x) 10px; }
.dc-blog__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 56px;
	letter-spacing: -.03em;
	line-height: 1;
	margin: 0;
	color: var(--ink);
}
.dc-blog__intro {
	font-size: 15px;
	color: var(--ink-6, #5c616a);
	margin: 10px 0 0;
	max-width: 52ch;
}

.dc-blog__chips {
	padding: 22px var(--gutter-x) 0;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.dc-blog__chip {
	background: #fff;
	border: 1px solid #e2ded9;
	border-radius: 99px;
	font-size: 12.5px;
	font-weight: 700;
	padding: 8px 16px;
	color: var(--ink-6, #3f434a);
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.dc-blog__chip:hover { border-color: var(--ink-4); color: var(--ink-4); }
.dc-blog__chip.is-active {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}

/* Featured card */
.dc-blog__featured-wrap { padding: 28px var(--gutter-x) 8px; }
.dc-blog-featured {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
	text-decoration: none;
	color: var(--ink-4);
	transition: box-shadow .2s;
}
.dc-blog-featured:hover {
	box-shadow: 0 18px 40px rgba(34, 36, 42, .14);
	opacity: 1;
}
.dc-blog-featured__media {
	min-height: 340px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.dc-blog-featured__media img {
	max-height: 100%;
	max-width: 100%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s ease;
}
.dc-blog-featured:hover .dc-blog-featured__media img { transform: scale(1.02); }
.dc-blog-featured__body {
	padding: 44px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 14px;
}
.dc-blog-featured__flag {
	align-self: flex-start;
	background: var(--gold-bright);
	color: var(--ink-4);
	border-radius: 99px;
	font-size: 11px;
	font-weight: 800;
	padding: 5px 12px;
	letter-spacing: .06em;
}
.dc-blog-featured__eyebrow {
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--gold-dark);
	text-transform: uppercase;
}
.dc-blog-featured__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 32px;
	line-height: 1.1;
	letter-spacing: -.02em;
	margin: 0;
	color: var(--ink);
}
.dc-blog-featured__excerpt {
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink-6, #5c616a);
}
.dc-blog-featured__cta {
	font-weight: 700;
	font-size: 14px;
	color: var(--accent-wine);
	margin-top: 4px;
}

/* Grid */
.dc-blog__grid-wrap { padding: 28px var(--gutter-x) 56px; }
.dc-blog__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.dc-blog__empty {
	background: #fff;
	border-radius: 20px;
	padding: 60px 32px;
	text-align: center;
	color: var(--muted-3);
	font-size: 15px;
}

.dc-blog__pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 44px;
	flex-wrap: wrap;
}
.dc-blog__pagination-item .page-numbers {
	display: inline-block;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 20px;
	color: var(--ink-4);
	text-decoration: none;
	transition: background .18s, color .18s, border-color .18s;
	min-width: 46px;
	text-align: center;
}
.dc-blog__pagination-item .page-numbers:hover,
.dc-blog__pagination-item .page-numbers.current {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}
.dc-blog__pagination-item .page-numbers.dots {
	background: transparent;
	border: 0;
	padding: 12px 8px;
}

@media (max-width: 900px) {
	.dc-blog__header { padding: 32px var(--gutter-x) 4px; }
	.dc-blog__title { font-size: 40px; }
	.dc-blog__chips { padding: 18px var(--gutter-x) 0; }
	.dc-blog__featured-wrap { padding: 24px var(--gutter-x) 4px; }
	.dc-blog-featured { grid-template-columns: 1fr; }
	.dc-blog-featured__media { min-height: 240px; }
	.dc-blog-featured__body { padding: 28px; }
	.dc-blog-featured__title { font-size: 24px; }
	.dc-blog__grid-wrap { padding: 24px var(--gutter-x) 40px; }
	.dc-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.dc-blog__title { font-size: 32px; }
	.dc-blog__grid { grid-template-columns: 1fr; }
}

/* -----------------------------------------------------------------------------
   Single blog post
----------------------------------------------------------------------------- */
.dc-post {
	background: var(--cream-100);
	padding-bottom: 24px;
}

.dc-post__crumbs {
	padding: 30px var(--gutter-x) 0;
	font-size: 13px;
	color: var(--muted-3);
	font-weight: 600;
}
.dc-post__crumbs a {
	color: var(--muted-3);
	text-decoration: none;
}
.dc-post__crumbs a:hover { color: var(--ink-4); }
.dc-post__crumbs-sep { margin: 0 6px; color: var(--muted-3); }
.dc-post__crumbs-current { color: var(--ink-4); }

.dc-post__header {
	padding: 30px var(--gutter-x) 0;
	max-width: 820px;
	margin: 0 auto;
	box-sizing: border-box;
}
.dc-post__eyebrow {
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--gold-dark);
	text-transform: uppercase;
}
.dc-post__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1.05;
	margin: 14px 0 18px;
	color: var(--ink);
}
.dc-post__author {
	display: flex;
	align-items: center;
	gap: 12px;
}
.dc-post__author-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--accent-wine);
	color: #fff;
	display: grid;
	place-items: center;
	font-weight: 800;
	font-size: 14px;
	flex: none;
}
.dc-post__author-name {
	font-weight: 700;
	font-size: 14px;
	color: var(--ink-4);
}
.dc-post__author-bio {
	font-size: 12.5px;
	color: var(--muted-3);
}

.dc-post__hero {
	padding: 28px var(--gutter-x) 0;
	max-width: 960px;
	margin: 0 auto;
	box-sizing: border-box;
}
.dc-post__hero-well {
	aspect-ratio: 16 / 8;
	border-radius: 24px;
	overflow: hidden;
	position: relative;
}
.dc-post__hero-well img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dc-post__body {
	padding: 20px var(--gutter-x) 40px;
	max-width: 820px;
	margin: 0 auto;
	box-sizing: border-box;
}

.wp-content { color: var(--ink-6); }
.wp-content p {
	font-size: 17px;
	line-height: 1.8;
	color: #33373d;
	margin: 0 0 18px;
}
.wp-content h2 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 28px;
	letter-spacing: -.02em;
	margin: 36px 0 14px;
	line-height: 1.15;
	color: var(--ink);
}
.wp-content h3 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -.01em;
	margin: 28px 0 10px;
	line-height: 1.2;
	color: var(--ink);
}
.wp-content blockquote {
	border-left: 3px solid var(--accent-wine);
	margin: 24px 0;
	padding: 6px 0 6px 22px;
	font-size: 20px;
	line-height: 1.5;
	font-style: italic;
	color: var(--ink);
}
.wp-content ul,
.wp-content ol {
	font-size: 17px;
	line-height: 1.8;
	color: #33373d;
	padding-left: 22px;
	margin: 0 0 18px;
}
.wp-content li { margin-bottom: 6px; }
.wp-content a {
	color: var(--accent-wine);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.wp-content img {
	max-width: 100%;
	height: auto;
	border-radius: 16px;
	margin: 20px 0;
}
.wp-content figure {
	margin: 24px 0;
}
.wp-content figcaption {
	font-size: 13px;
	color: var(--muted-3);
	margin-top: 8px;
	text-align: center;
}
.wp-content code {
	background: var(--cream-100);
	border-radius: 6px;
	padding: 2px 6px;
	font-size: 15px;
}
.wp-content pre {
	background: #1c1714;
	color: #f2ede8;
	border-radius: 16px;
	padding: 22px;
	overflow-x: auto;
	font-size: 14px;
}
.wp-content hr {
	border: 0;
	border-top: 1px solid #e2ded9;
	margin: 32px 0;
}

.dc-post__tags {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 30px;
	padding-top: 22px;
	border-top: 1px solid #e2ded9;
}
.dc-post__tag {
	background: #fff;
	border: 1px solid #e2ded9;
	border-radius: 99px;
	font-size: 12.5px;
	font-weight: 600;
	padding: 7px 14px;
	color: var(--ink-6, #5c616a);
	text-decoration: none;
	transition: border-color .15s, color .15s;
}
.dc-post__tag:hover {
	border-color: var(--ink-4);
	color: var(--ink-4);
}

/* Related "Keep reading" dark band */
.dc-post-related {
	background: #1c1714;
	color: #f2ede8;
	padding: 44px var(--gutter-x);
}
.dc-post-related__inner {
	max-width: 1040px;
	margin: 0 auto;
}
.dc-post-related__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 26px;
	margin: 0 0 22px;
	letter-spacing: -.02em;
	color: #f2ede8;
}
.dc-post-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.dc-post-related__grid .blog-card { background: #fff; color: var(--ink-4); }
.dc-post-related__grid .blog-card__body { padding: 18px 20px 22px; gap: 8px; }
.dc-post-related__grid .blog-card__title { font-size: 16px; }
.dc-post-related__grid .blog-card__excerpt { display: none; }

@media (max-width: 900px) {
	.dc-post__crumbs { padding: 20px var(--gutter-x) 0; }
	.dc-post__header { padding: 24px var(--gutter-x) 0; }
	.dc-post__title { font-size: 32px; }
	.dc-post__hero { padding: 20px var(--gutter-x) 0; }
	.dc-post__hero-well { aspect-ratio: 16 / 9; }
	.dc-post__body { padding: 20px var(--gutter-x) 28px; }
	.wp-content p,
	.wp-content ul,
	.wp-content ol { font-size: 16px; line-height: 1.75; }
	.wp-content h2 { font-size: 24px; margin: 28px 0 12px; }
	.dc-post-related { padding: 32px var(--gutter-x); }
	.dc-post-related__grid { grid-template-columns: 1fr; }
}

/* -----------------------------------------------------------------------------
   Static page + 404 + search
----------------------------------------------------------------------------- */
.dc-page { background: var(--cream-100); padding-bottom: 40px; }
.dc-page__header { padding: 44px var(--gutter-x) 8px; }
.dc-page__crumbs {
	font-size: 13px;
	color: var(--muted-3);
	font-weight: 600;
	margin-bottom: 12px;
}
.dc-page__crumbs a { color: var(--muted-3); text-decoration: none; }
.dc-page__crumbs a:hover { color: var(--ink-4); }
.dc-page__crumbs-sep { margin: 0 6px; }
.dc-page__crumbs-current { color: var(--ink-4); }

.dc-page__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1;
	margin: 0;
	color: var(--ink);
}
.dc-page__updated {
	font-size: 14px;
	color: var(--muted-3);
	margin-top: 10px;
}

.dc-page__layout {
	padding: 28px var(--gutter-x) 56px;
	align-items: start;
	display: grid;
}
.dc-page__layout--with-nav {
	grid-template-columns: 240px 1fr;
	gap: 44px;
}
.dc-page__layout--single {
	grid-template-columns: 1fr;
	max-width: 820px;
	margin: 0 auto;
}

.dc-page-nav { position: sticky; top: 96px; }
.dc-page-nav__eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--muted-3);
	margin-bottom: 12px;
	padding-left: 16px;
}
.dc-page-nav__list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.dc-page-nav__link {
	display: block;
	padding: 11px 16px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink-6, #5c616a);
	background: transparent;
	text-decoration: none;
	transition: background .15s, color .15s;
}
.dc-page-nav__link:hover {
	background: rgba(34, 36, 42, .06);
	color: var(--ink-4);
}
.dc-page-nav__link.is-active {
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
}
.dc-page-nav__help {
	margin-top: 26px;
	background: #fff;
	border-radius: 18px;
	padding: 22px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .05);
}
.dc-page-nav__help-title {
	font-weight: 700;
	font-size: 15px;
	margin-bottom: 6px;
	color: var(--ink-4);
}
.dc-page-nav__help-body {
	font-size: 13.5px;
	color: var(--ink-6);
	line-height: 1.6;
	margin: 0 0 12px;
}
.dc-page-nav__help-cta {
	color: var(--accent-wine);
	font-weight: 700;
	font-size: 13.5px;
	text-decoration: none;
}

.dc-page__card {
	background: #fff;
	border-radius: 24px;
	padding: 44px 48px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-page__layout--single .dc-page__card { padding: 40px 44px; }

/* 404 — matches design/Dankcave - 404.dc.html */
.dc-404 {
	position: relative;
	overflow: hidden;
	padding: 70px var(--gutter-x) 40px;
	background: var(--cream-100);
	text-align: center;
}
.dc-404__watermark {
	position: absolute;
	left: 0;
	right: 0;
	top: 80px;
	text-align: center;
	pointer-events: none;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 260px;
	line-height: .8;
	letter-spacing: -.05em;
	color: transparent;
	-webkit-text-stroke: 2px rgba(34, 36, 42, .08);
}
.dc-404__inner {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
}
.dc-404__num {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 200px;
	line-height: .85;
	letter-spacing: -.05em;
	margin: 0 0 6px;
	display: flex;
	justify-content: center;
	gap: 4px;
}
.dc-404__num-side { color: var(--ink-4); }
.dc-404__num-zero {
	color: #f8c913;
	-webkit-text-stroke: 3px #6d1c15;
	paint-order: stroke fill;
}
.dc-404__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 40px;
	letter-spacing: -.03em;
	color: var(--ink-4);
	margin: 8px 0 0;
	line-height: 1.1;
}
.dc-404__intro {
	font-size: 17px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 16px auto 0;
	max-width: 44ch;
}
.dc-404__ctas {
	display: flex;
	gap: 12px;
	margin-top: 30px;
	flex-wrap: wrap;
	justify-content: center;
}
.dc-404__cta {
	display: inline-block;
	font-weight: 700;
	font-size: 15px;
	padding: 15px 30px;
	border-radius: 14px;
	text-decoration: none;
	transition: background .18s, color .18s, border-color .18s;
}
.dc-404__cta--dark {
	background: var(--ink-4);
	color: #fff;
}
.dc-404__cta--dark:hover { background: var(--accent-wine); color: #fff; }
.dc-404__cta--light {
	background: #fff;
	border: 1px solid var(--cream-700);
	color: var(--ink-4);
}
.dc-404__cta--light:hover { border-color: var(--ink-4); color: var(--ink-4); }

.dc-404__popular {
	padding: 20px var(--gutter-x) 60px;
	max-width: 900px;
	margin: 0 auto;
	width: 100%;
	box-sizing: border-box;
	background: var(--cream-100);
}
.dc-404__eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .1em;
	color: #b08a3c;
	margin-bottom: 16px;
	text-align: center;
}
.dc-404__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}
.dc-404__tile {
	text-decoration: none;
	color: var(--ink-4);
	background: #fff;
	border: 1px solid var(--cream-500);
	border-radius: 14px;
	padding: 16px 18px;
	font-weight: 700;
	font-size: 15px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: border-color .18s;
}
.dc-404__tile:hover { border-color: var(--ink-4); }
.dc-404__tile-arrow { color: var(--accent-wine); }
.dc-404__lost {
	text-align: center;
	margin-top: 28px;
	font-size: 14px;
	color: var(--muted-3);
	font-weight: 600;
}
.dc-404__lost a {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.dc-404__lost a:hover { text-decoration: underline; }

@media (max-width: 640px) {
	.dc-404 { padding: 44px 22px 30px; }
	.dc-404__watermark { font-size: 150px; }
	.dc-404__num { font-size: 130px; }
	.dc-404__title { font-size: 27px; }
	.dc-404__grid { grid-template-columns: 1fr 1fr; }
	.dc-404__popular { padding: 20px var(--gutter-x) 44px; }
}

/* Search */
.dc-search { background: var(--cream-100); padding-bottom: 56px; }
.dc-search__header { padding: 44px var(--gutter-x) 16px; }
.dc-search__eyebrow {
	font-size: 13px;
	font-weight: 700;
	color: var(--muted-3);
	margin-bottom: 8px;
}
.dc-search__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1.05;
	margin: 0 0 20px;
	color: var(--ink);
}
.dc-search__form {
	display: flex;
	gap: 8px;
	max-width: 640px;
	margin-bottom: 20px;
}
.dc-search__form input[type="search"] {
	appearance: none;
	flex: 1;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	padding: 14px 18px;
	font-family: inherit;
	font-size: 14px;
	color: var(--ink-4);
}
.dc-search__form input[type="search"]:focus { outline: none; border-color: var(--ink-4); }
.dc-search__form button {
	appearance: none;
	border: 0;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 0 22px;
	border-radius: 14px;
	cursor: pointer;
	transition: background .18s;
}
.dc-search__form button:hover { background: var(--accent-wine); }

.dc-search__filters {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.dc-search__filter {
	background: #fff;
	border: 1px solid #e2ded9;
	border-radius: 99px;
	font-size: 12.5px;
	font-weight: 700;
	padding: 8px 16px;
	color: var(--ink-6);
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.dc-search__filter:hover { border-color: var(--ink-4); color: var(--ink-4); }
.dc-search__filter.is-active {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}

.dc-search__results { padding: 8px var(--gutter-x) 40px; }
.dc-search__group { margin-top: 32px; }
.dc-search__group-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -.02em;
	color: var(--ink-4);
	margin: 0 0 16px;
}

.dc-search__pages { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.dc-search__page-link {
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: #fff;
	border-radius: 18px;
	padding: 20px 24px;
	box-shadow: 0 2px 10px rgba(34, 36, 42, .04);
	text-decoration: none;
	color: var(--ink-4);
	transition: transform .18s, box-shadow .18s;
}
.dc-search__page-link:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(34, 36, 42, .08);
}
.dc-search__page-title { font-weight: 700; font-size: 16px; }
.dc-search__page-excerpt { font-size: 14px; color: var(--muted-3); line-height: 1.5; }

.dc-search__empty {
	background: #fff;
	border-radius: 20px;
	padding: 60px 32px;
	text-align: center;
	max-width: 640px;
	margin: 32px auto;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-search__empty p {
	color: var(--muted-3);
	font-size: 15px;
	margin: 0 0 20px;
}

.dc-search__pagination { padding: 24px var(--gutter-x); text-align: center; }
.dc-search__pagination .nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}
.dc-search__pagination .page-numbers {
	display: inline-block;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 20px;
	color: var(--ink-4);
	text-decoration: none;
	min-width: 46px;
	text-align: center;
}
.dc-search__pagination .page-numbers.current,
.dc-search__pagination .page-numbers:hover {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}

@media (max-width: 900px) {
	.dc-page__header { padding: 32px var(--gutter-x) 4px; }
	.dc-page__title { font-size: 34px; }
	.dc-page__layout--with-nav {
		grid-template-columns: 1fr;
		padding: 20px var(--gutter-x) 40px;
	}
	.dc-page__layout--single { padding: 20px var(--gutter-x) 40px; }
	.dc-page-nav { position: static; }
	.dc-page__card { padding: 32px 28px; }

	.dc-404 { padding: 48px var(--gutter-x) 60px; }
	.dc-404__badge { font-size: 68px; }
	.dc-404__title { font-size: 32px; }

	.dc-search__header { padding: 32px var(--gutter-x) 12px; }
	.dc-search__title { font-size: 34px; }
	.dc-search__results { padding: 4px var(--gutter-x) 40px; }
	.dc-search__pagination { padding: 20px var(--gutter-x); }
}

/* -----------------------------------------------------------------------------
   Global WooCommerce overrides — force our design system on WC buttons and
   defaults that would otherwise inherit plugin CSS (purple checkout button,
   pill buttons on login/register, WooCommerce link underlines).
----------------------------------------------------------------------------- */

/* All WooCommerce action buttons: dark ink pill → wine on hover.
   Higher specificity than plugin defaults (three classes deep). */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt,
.woocommerce-page a.button,
.woocommerce-page button.button,
form.checkout button#place_order,
button.single_add_to_cart_button,
.dc-summary-card__cta,
.dc-cart-empty__cta {
	appearance: none;
	background: var(--ink-4);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .04em;
	padding: 14px 24px;
	border-radius: 14px;
	border: 0;
	cursor: pointer;
	transition: background .18s, color .18s, border-color .18s;
	text-decoration: none;
	line-height: 1.2;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-page a.button.alt:hover,
.woocommerce-page button.button.alt:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
form.checkout button#place_order:hover,
button.single_add_to_cart_button:hover,
.dc-summary-card__cta:hover,
.dc-cart-empty__cta:hover {
	background: var(--accent-wine);
	color: #fff;
	border-color: var(--accent-wine);
}

/* Neutralise WooCommerce link underlines and red-links inside our layouts */
.dc-account a,
.dc-cart a,
.dc-checkout a,
.dc-page a,
.dc-post__body a {
	text-decoration: none;
}
.dc-account-nav__link,
.dc-account-nav__link:hover,
.dc-account-nav__link:visited {
	text-decoration: none !important;
	color: var(--ink-6, #5c616a);
}
.dc-account-nav__link.is-active,
.dc-account-nav__link.woocommerce-MyAccount-navigation-link--is-active,
.woocommerce-MyAccount-navigation-link.is-active > a {
	color: #fff !important;
}

/* Hide WC-injected shipping calculator link inside cart totals */
.dc-summary-card__val .shipping-calculator-button,
.dc-summary-card__val .woocommerce-shipping-destination,
.dc-summary-card__val ul#shipping_method,
.dc-summary-card__val .woocommerce-shipping-calculator {
	display: none !important;
}

/* Newsletter band placeholder — soften-but-not-invisible */
.newsletter-band input::placeholder,
.newsletter-band__placeholder input::placeholder {
	color: rgba(255, 255, 255, .55);
}

/* Body BG once — makes every template inherit cream */
body,
body.woocommerce-account,
body.woocommerce-cart,
body.woocommerce-checkout,
body.search,
body.blog,
body.archive,
body.single {
	background: var(--cream-100);
}

/* Stats on account dashboard: give them room and clip long amounts */
.dc-dash__stats {
	gap: 12px;
}
.dc-dash-stat__val {
	font-size: 30px;
	overflow-wrap: anywhere;
}
@media (min-width: 900px) {
	.dc-dash-stat__val { font-size: 34px; }
}

/* Login card action row: prevent Log in / Create account being tiny */
.dc-login-card__submit,
.dc-login-card .woocommerce-Button {
	padding: 14px 28px;
	font-size: 14px;
	border-radius: 14px;
}
.dc-login-card .woocommerce-privacy-policy-text,
.dc-login-card .woocommerce-privacy-policy-text p {
	font-size: 12.5px;
	color: var(--muted-3);
	line-height: 1.55;
	margin: 8px 0 12px;
}

/* Match card heights when register is enabled */
.dc-login-grid.has-register { align-items: stretch; }
.dc-login-grid.has-register .dc-login-card { display: flex; flex-direction: column; }

/* WooCommerce notices — pill styling with a subtle left accent + built-in icon slot */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	background: #fff !important;
	border: 0 !important;
	border-left: 4px solid var(--gold-bright) !important;
	color: var(--ink-4) !important;
	font-size: 14px;
	padding: 16px 20px 16px 52px !important;  /* extra left padding for the check icon */
	border-radius: 16px !important;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05) !important;
	position: relative;
	list-style: none;
	line-height: 1.5;
	outline: none !important;  /* WC role="alert" triggers the browser focus ring on some setups */
}
.woocommerce-error { border-left-color: var(--accent-wine) !important; }
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--gold-bright);
	display: block;
}
.woocommerce-error::before { background: var(--accent-wine); }
.woocommerce-message::before {
	background: #2e6b3e url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2l2.4 2.4L9.5 3.8'/></svg>") center/12px no-repeat;
}
/* CTA link inside a notice — small pill button (View cart, Continue, etc.) */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	background: var(--ink-4) !important;
	color: #fff !important;
	padding: 8px 16px !important;
	font-weight: 700 !important;
	font-size: 12.5px !important;
	border: 0 !important;
	border-radius: 12px !important;
	text-decoration: none !important;
	letter-spacing: .04em !important;
	display: inline-block !important;
	float: right;
	margin-top: -3px;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
	background: var(--accent-wine) !important;
}


/* -----------------------------------------------------------------------------
   Cart & checkout polish (round 2)
----------------------------------------------------------------------------- */

/* WooCommerce prints notices and coupon/login toggles as direct children of
   .site-content > .woocommerce. Push those slots (not the wrapper — that
   would indent the entire checkout form too) inside our gutter. */
.site-content > .woocommerce > .woocommerce-notices-wrapper,
.site-content > .woocommerce > .woocommerce-form-login-toggle,
.site-content > .woocommerce > .woocommerce-form-coupon-toggle,
.site-content > .woocommerce > .woocommerce-form-login,
.site-content > .woocommerce > .woocommerce-form-coupon,
.site-content > .woocommerce > .checkout_coupon,
.site-content > .woocommerce-notices-wrapper {
	margin-left: var(--gutter-x);
	margin-right: var(--gutter-x);
	margin-top: 20px;
}
.dc-cart .woocommerce-message,
.dc-cart .woocommerce-info,
.dc-cart .woocommerce-error,
.dc-checkout .woocommerce-message,
.dc-checkout .woocommerce-info,
.dc-checkout .woocommerce-error,
.dc-account .woocommerce-message,
.dc-account .woocommerce-info,
.dc-account .woocommerce-error {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Cart line: keep side column narrow but not overflowing */
.dc-cart-line {
	grid-template-columns: 96px 1fr 140px;
}
.dc-cart-line__side { align-items: flex-end; }

/* Hide broken-image alt text on cart line thumbs (image sizing lives in the
   base rule above — full cover fill). */
.dc-cart-line__thumb img {
	color: transparent;
	font-size: 0;
	text-indent: -9999em;
}

/* Remove link: force muted styling regardless of WC bleed */
.dc-cart-line__remove,
.dc-cart-line__remove:visited,
.dc-cart-line__remove:link {
	font-size: 12.5px !important;
	color: var(--muted-3) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	font-weight: 400 !important;
	background: transparent !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	white-space: nowrap;
}
.dc-cart-line__remove:hover {
	color: var(--accent-wine) !important;
	background: transparent !important;
}

/* Update cart button: match Apply pill */
.dc-cart__update,
.dc-cart__update.button,
button.dc-cart__update {
	appearance: none !important;
	background: var(--cream-100) !important;
	color: var(--ink-4) !important;
	border: 1px solid #dcd7cd !important;
	border-radius: 12px !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	padding: 10px 16px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.dc-cart__update:hover,
.dc-cart__update.button:hover {
	background: var(--ink-4) !important;
	color: #fff !important;
	border-color: var(--ink-4) !important;
}

/* Same for Apply coupon button */
.dc-cart__coupon-apply {
	appearance: none !important;
	background: var(--cream-100) !important;
	color: var(--ink-4) !important;
	border: 1px solid #dcd7cd !important;
	border-radius: 12px !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	padding: 10px 16px !important;
	letter-spacing: 0 !important;
}
.dc-cart__coupon-apply:hover {
	background: var(--ink-4) !important;
	color: #fff !important;
	border-color: var(--ink-4) !important;
}


/* -----------------------------------------------------------------------------
   Button audit round 3 — kill remaining plugin CSS bleed
----------------------------------------------------------------------------- */

/* PDP add-to-cart — WC ships this as purple by default; force our ink pill.
   We use the maximum specificity chain WooCommerce uses. */
.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart button.single_add_to_cart_button,
form.cart button.single_add_to_cart_button,
button.single_add_to_cart_button.button.alt,
button.single_add_to_cart_button {
	background: var(--ink-4) !important;
	background-color: var(--ink-4) !important;
	color: #fff !important;
	border-radius: 14px !important;
	padding: 16px 24px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: .04em !important;
	border: 0 !important;
	text-transform: none !important;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce div.product form.cart button.single_add_to_cart_button:hover,
form.cart button.single_add_to_cart_button:hover,
button.single_add_to_cart_button.button.alt:hover,
button.single_add_to_cart_button:hover,
button.single_add_to_cart_button:focus {
	background: var(--accent-wine) !important;
	background-color: var(--accent-wine) !important;
	color: #fff !important;
}

/* Cart remove — WooCommerce sets a.remove{color:#a00}. Kill that with a more
   specific selector. */
.dc-cart-line a.dc-cart-line__remove,
.dc-cart-line a.dc-cart-line__remove:link,
.dc-cart-line a.dc-cart-line__remove:visited,
.woocommerce-cart-form .dc-cart-line a.remove,
a.dc-cart-line__remove.remove {
	color: var(--muted-3) !important;
	background: transparent !important;
	font-size: 12.5px !important;
	font-weight: 400 !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 1 !important;
	width: auto !important;
	height: auto !important;
}
.dc-cart-line a.dc-cart-line__remove:hover,
.woocommerce-cart-form .dc-cart-line a.remove:hover {
	color: var(--accent-wine) !important;
	background: transparent !important;
}

/* -----------------------------------------------------------------------------
   Full-screen search modal
----------------------------------------------------------------------------- */
.search-modal {
	position: fixed;
	inset: 0;
	background: rgba(23, 19, 16, 0.92);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	z-index: 200;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 0 var(--gutter-x);
	opacity: 0;
	transition: opacity .25s ease;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.search-modal[data-open="true"] { opacity: 1; }
.search-modal[hidden] { display: none; }
/* Slim scrollbar styling for the modal overflow */
.search-modal::-webkit-scrollbar { width: 8px; }
.search-modal::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .18);
	border-radius: 8px;
}
.search-modal::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .28); }
.search-modal__close {
	position: fixed;
	top: 24px;
	right: var(--gutter-x);
	width: 50px;
	height: 50px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #fff;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background .18s;
	z-index: 210;
}
.search-modal__close:hover { background: rgba(255, 255, 255, 0.16); }
.search-modal__inner {
	width: 100%;
	max-width: 720px;
	margin: 15vh auto 0;
	padding-bottom: 15vh; /* breathing room past the last result when scrolled */
	color: #f2ede8;
}
.search-modal__form {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 18px;
	padding: 8px 8px 8px 20px;
	position: sticky;
	top: 24px;
	z-index: 5;
	box-shadow: 0 20px 40px rgba(0, 0, 0, .35);
}
.search-modal__icon { color: var(--muted-3); flex: none; }
.search-modal__input {
	flex: 1;
	background: transparent;
	border: 0;
	color: var(--ink);
	font-family: inherit;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: -.005em;
	padding: 14px 0;
	outline: none;
	min-width: 0;
}
.search-modal__input::placeholder { color: var(--muted-3); font-weight: 500; }
.search-modal__input::-webkit-search-cancel-button {
	appearance: none;
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	background: rgba(34, 36, 42, .12) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path stroke='%23171310' stroke-width='2' stroke-linecap='round' d='M3 3l6 6M9 3l-6 6'/></svg>") center/10px no-repeat;
	border-radius: 50%;
	cursor: pointer;
	margin-right: 6px;
}
.search-modal__submit {
	appearance: none;
	background: var(--ink-4);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	padding: 14px 24px;
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	transition: background .18s;
	flex: none;
}
.search-modal__submit:hover { background: var(--accent-wine); }

.search-modal__hint {
	margin-top: 20px;
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.search-modal__hint-eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	color: rgba(255, 255, 255, 0.5);
}
.search-modal__suggestions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.search-modal__suggestions a {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: #f2ede8;
	padding: 8px 16px;
	border-radius: 99px;
	font-size: 13.5px;
	font-weight: 600;
	text-decoration: none;
	transition: background .18s;
}
.search-modal__suggestions a:hover { background: rgba(255, 255, 255, 0.14); }

.search-modal__results {
	margin-top: 24px;
	display: grid;
	gap: 10px;
}
.search-modal__results[hidden] { display: none; }
.search-modal-item {
	display: flex;
	gap: 14px;
	align-items: center;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 16px;
	padding: 12px 16px;
	color: #f2ede8;
	text-decoration: none;
	transition: background .18s;
}
.search-modal-item:hover { background: rgba(255, 255, 255, 0.12); }
.search-modal-item__thumb {
	width: 48px;
	height: 48px;
	border-radius: 10px;
	background: #fff;
	flex: none;
	overflow: hidden;
	display: grid;
	place-items: center;
}
.search-modal-item__thumb img { width: 100%; height: 100%; object-fit: cover; }
.search-modal-item__info { flex: 1; min-width: 0; }
.search-modal-item__title { font-weight: 700; font-size: 15px; line-height: 1.3; }
.search-modal-item__meta { font-size: 12.5px; color: rgba(255, 255, 255, 0.55); margin-top: 2px; }
.search-modal-item__price { font-weight: 800; font-size: 15px; flex: none; }
.search-modal-item__price .amount { color: inherit; }

body.search-open { overflow: hidden; }

@media (max-width: 640px) {
	.search-modal__inner { margin-top: 8vh; }
	.search-modal__input { font-size: 18px; }
	.search-modal__submit { padding: 10px 16px; font-size: 13px; }
}

/* -----------------------------------------------------------------------------
   Checkout shipping method card
----------------------------------------------------------------------------- */
.dc-checkout-card--shipping-method {
	background: #fff;
	border-radius: 22px;
	padding: 28px 30px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
}
.dc-checkout-card--shipping-method .dc-checkout-card__title,
.dc-checkout-card__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 19px;
	color: var(--ink-4);
	margin: 0 0 18px;
	letter-spacing: -.01em;
}
.dc-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.dc-shipping-methods li { margin: 0; }
.dc-shipping-method {
	display: flex;
	align-items: center;
	gap: 12px;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	padding: 16px 18px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.dc-shipping-method:hover { border-color: var(--ink-4); }
.dc-shipping-method input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid #c8c3ba;
	margin: 0;
	flex: none;
	cursor: pointer;
	position: relative;
}
.dc-shipping-method input[type="radio"]:checked {
	border-color: var(--ink-4);
	border-width: 6px;
}
.dc-shipping-method:has(input:checked) {
	border-color: var(--ink-4);
	border-width: 2px;
	padding: 15px 17px;
}
.dc-shipping-method__label {
	flex: 1;
	font-weight: 700;
	font-size: 14.5px;
	color: var(--ink-4);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
}
.dc-shipping-method__label .amount { color: inherit; font-weight: 800; }
.dc-shipping-method:has(input:checked) .dc-shipping-method__label { color: var(--ink); }

/* -----------------------------------------------------------------------------
   Inline log-in link + coupon field (replaces the full-width WC toasts)
----------------------------------------------------------------------------- */
.dc-checkout-inline-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--muted-3);
	margin: -8px 0 12px;
}
.dc-checkout-inline-actions__prompt { color: var(--muted-3); }
.dc-checkout-inline-actions__link {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.dc-checkout-inline-actions__link:hover { text-decoration: underline; }

.dc-checkout-inline-login {
	background: var(--cream-100);
	border-radius: 14px;
	padding: 18px 20px;
	margin: 0 0 18px;
}
.dc-checkout-inline-login[hidden] { display: none; }

/* Coupon in the order-review sidebar — cream pill input + cream Apply,
   always visible, no toggle. Matches Dankcave - Checkout.dc.html spec. */
.dc-review__coupon {
	display: flex;
	gap: 8px;
	padding: 16px 0;
	align-items: stretch;
}
.dc-checkout input[type="text"].dc-review__coupon-input,
.woocommerce .dc-checkout input[type="text"].dc-review__coupon-input,
input.dc-review__coupon-input {
	flex: 1;
	appearance: none;
	background: #f2f0ee !important;
	border: 0 !important;
	border-radius: 12px !important;
	padding: 12px 16px !important;
	font-family: inherit;
	font-size: 13.5px !important;
	color: var(--ink-4) !important;
	min-width: 0;
	outline: none;
	box-shadow: none !important;
	transition: box-shadow .18s;
	height: auto !important;
}
.dc-review__coupon-input::placeholder { color: var(--muted-3); }
.dc-review__coupon-input:focus { box-shadow: inset 0 0 0 1px var(--ink-4); }
.dc-review__coupon-apply {
	appearance: none;
	background: #f2f0ee;
	color: var(--ink-4);
	border: 0;
	border-radius: 12px;
	font-weight: 700;
	font-size: 13px;
	padding: 12px 16px;
	cursor: pointer;
	flex: none;
	transition: background .18s, color .18s;
}
.dc-review__coupon-apply:hover {
	background: var(--ink-4);
	color: #fff;
}
.dc-review__coupon.is-loading .dc-review__coupon-apply { opacity: .6; pointer-events: none; }
.dc-review__coupon-msg {
	flex-basis: 100%;
	margin-top: 6px;
	font-size: 12.5px;
	line-height: 1.4;
}
.dc-review__coupon-msg--ok  { color: var(--accent-forest, #2f6b46); }
.dc-review__coupon-msg--err { color: var(--accent-wine); }

/* Hide the full-width toast wrappers that WC prints at .site-content level */
.site-content > .woocommerce > .woocommerce-form-login-toggle,
.site-content > .woocommerce > .woocommerce-form-coupon-toggle {
	display: none !important;
}

/* -----------------------------------------------------------------------------
   Right-side cart drawer
----------------------------------------------------------------------------- */
.dc-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 250;
	pointer-events: none;
}
.dc-cart-drawer[hidden] { display: none; }
.dc-cart-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(23, 19, 16, 0.55);
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: auto;
}
.dc-cart-drawer[data-open="true"] .dc-cart-drawer__backdrop { opacity: 1; }
.dc-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: 100%;
	max-width: 440px;
	background: var(--cream-100);
	transform: translateX(100%);
	transition: transform .32s cubic-bezier(.2,.8,.2,1);
	display: flex;
	flex-direction: column;
	pointer-events: auto;
	box-shadow: -20px 0 40px rgba(23, 19, 16, .15);
}
.dc-cart-drawer[data-open="true"] .dc-cart-drawer__panel { transform: translateX(0); }

.dc-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 24px 24px 16px;
	flex: none;
}
.dc-cart-drawer__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -.02em;
	color: var(--ink);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 10px;
}
.dc-cart-drawer__count {
	background: var(--ink-4);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	padding: 3px 10px;
	border-radius: 99px;
	min-width: 24px;
	text-align: center;
	line-height: 1.4;
}
.dc-cart-drawer__close {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--muted-3);
	width: 40px;
	height: 40px;
	border-radius: 12px;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background .18s;
}
.dc-cart-drawer__close:hover { background: rgba(23, 19, 16, .06); color: var(--ink-4); }

.dc-cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 4px 24px 8px;
}

.dc-cart-drawer__empty {
	text-align: center;
	padding: 60px 20px;
	color: var(--muted-3);
}
.dc-cart-drawer__empty p { margin: 0 0 20px; font-size: 15px; }
.dc-cart-drawer__empty-cta {
	display: inline-block;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 22px;
	border-radius: 14px;
	text-decoration: none;
}

.dc-cart-drawer__items {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.dc-cart-drawer-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	background: #fff;
	border-radius: 16px;
	padding: 14px;
}
.dc-cart-drawer-item__thumb {
	width: 72px;
	height: 72px;
	position: relative;
	flex: none;
}
.dc-cart-drawer-item__thumb-media {
	position: absolute;
	inset: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	border: 1px solid #eee7dd;
}
.dc-cart-drawer-item__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.dc-cart-drawer-item__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--ink-4);
	color: #fff;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	font-size: 11.5px;
	font-weight: 800;
	display: grid;
	place-items: center;
	z-index: 1;
}
.dc-cart-drawer-item__info { flex: 1; min-width: 0; }
.dc-cart-drawer-item__name {
	font-weight: 700;
	font-size: 14.5px;
	line-height: 1.3;
	color: var(--ink-4);
}
.dc-cart-drawer-item__name a { color: inherit; text-decoration: none; }
.dc-cart-drawer-item__name a:hover { color: var(--accent-wine); }
.dc-cart-drawer-item__attrs {
	font-size: 12.5px;
	color: var(--muted-3);
	margin: 4px 0 0;
}
.dc-cart-drawer-item__attrs p { margin: 0; }
.dc-cart-drawer-item__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 8px;
	gap: 12px;
}
.dc-cart-drawer-item__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	color: var(--ink-4);
}
.dc-cart-drawer-item__price .amount { color: inherit; }
.dc-cart-drawer-item__remove {
	font-size: 12px;
	color: var(--muted-3);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.dc-cart-drawer-item__remove:hover { color: var(--accent-wine); }

.dc-cart-drawer__foot {
	padding: 18px 24px 24px;
	background: #fff;
	border-top: 1px solid #e2ded9;
	flex: none;
}
.dc-cart-drawer__subtotal {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 14px;
	font-size: 14.5px;
	color: var(--ink-4);
}
.dc-cart-drawer__subtotal-val {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 18px;
	color: var(--ink);
}
.dc-cart-drawer__subtotal-val .amount { color: inherit; }
.dc-cart-drawer__cta {
	display: block;
	text-align: center;
	font-family: inherit;
	font-weight: 700;
	font-size: 14px;
	padding: 14px 20px;
	border-radius: 14px;
	text-decoration: none;
	margin-bottom: 10px;
	transition: background .18s, color .18s, border-color .18s;
}
.dc-cart-drawer__cta--primary {
	background: var(--ink-4);
	color: #fff;
}
.dc-cart-drawer__cta--primary:hover { background: var(--accent-wine); }
.dc-cart-drawer__cta--secondary {
	background: transparent;
	color: var(--ink-4);
	border: 1px solid #dcd7cd;
	margin-bottom: 0;
}
.dc-cart-drawer__cta--secondary:hover {
	background: var(--ink-4);
	color: #fff;
	border-color: var(--ink-4);
}

body.dc-drawer-open { overflow: hidden; }
@media (max-width: 480px) {
	.dc-cart-drawer__panel { max-width: none; }
}

/* -----------------------------------------------------------------------------
   Product card hover actions (wishlist / compare / quick view)
----------------------------------------------------------------------------- */
.product-card__hover-actions {
	position: absolute;
	top: 12px;
	right: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	z-index: 3;
	opacity: 0;
	transform: translateX(6px);
	transition: opacity .2s ease, transform .2s ease;
	pointer-events: none;
}
.product-card:hover .product-card__hover-actions,
.product-card:focus-within .product-card__hover-actions {
	opacity: 1;
	transform: translateX(0);
	pointer-events: auto;
}
.product-card__hover-btn {
	appearance: none;
	background: #fff;
	border: 0;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	display: grid;
	place-items: center;
	color: var(--ink-4);
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(23, 19, 16, .12);
	transition: transform .18s, background .18s, color .18s;
}
.product-card__hover-btn:hover {
	background: var(--ink-4);
	color: #fff;
	transform: scale(1.06);
}
.product-card__hover-btn.is-active {
	background: var(--accent-wine);
	color: #fff;
}

/* -----------------------------------------------------------------------------
   Quick view modal
----------------------------------------------------------------------------- */
.dc-quickview {
	position: fixed;
	inset: 0;
	z-index: 260;
	pointer-events: none;
}
.dc-quickview[hidden] { display: none; }
.dc-quickview__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(23, 19, 16, .55);
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: auto;
}
.dc-quickview[data-open="true"] .dc-quickview__backdrop { opacity: 1; }
.dc-quickview__panel {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -48%);
	background: #fff;
	width: min(920px, calc(100vw - 40px));
	max-height: calc(100vh - 40px);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 30px 60px rgba(23, 19, 16, .25);
	opacity: 0;
	transition: opacity .25s ease, transform .3s cubic-bezier(.2,.8,.2,1);
	pointer-events: auto;
	display: flex;
	flex-direction: column;
}
.dc-quickview[data-open="true"] .dc-quickview__panel {
	opacity: 1;
	transform: translate(-50%, -50%);
}
.dc-quickview__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 40px;
	height: 40px;
	background: rgba(255, 255, 255, .9);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	display: grid;
	place-items: center;
	color: var(--ink-4);
	z-index: 2;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .1);
	transition: background .18s;
}
.dc-quickview__close:hover { background: #fff; }

.dc-quickview__body { overflow-y: auto; flex: 1; }
.dc-quickview__loading {
	padding: 80px 40px;
	text-align: center;
	color: var(--muted-3);
	font-size: 15px;
}
.dc-quickview__grid {
	display: grid;
	grid-template-columns: 42% 58%;
	gap: 0;
	min-height: 480px;
	align-items: stretch;
}
.dc-quickview__media {
	background: #fff;
	position: relative;
	overflow: hidden;
	min-height: 480px;
}
.dc-quickview__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 24px;
}
.dc-quickview__summary {
	padding: 40px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--cream-100);
	overflow-y: auto;
}
.dc-quickview__eyebrow {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--gold-dark);
}
.dc-quickview__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 32px;
	letter-spacing: -.02em;
	line-height: 1.05;
	margin: 0;
	color: var(--ink);
}
.dc-quickview__price {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 24px;
	color: var(--ink);
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
.dc-quickview__price ins { text-decoration: none; }
.dc-quickview__price del { font-size: 16px; color: var(--muted-3); font-weight: 400; }
.dc-quickview__price .amount { color: inherit; }
.dc-quickview__short {
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--ink-6, #5c616a);
}
.dc-quickview__short p:last-child { margin-bottom: 0; }
.dc-quickview__cart .cart {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
/* Variable products: 15px gap between the last variation select and the
   qty + Add-to-cart row. Kill every default margin from WC's nested wrappers
   (.variations table, .reset_variations_alert, .single_variation_wrap,
   .woocommerce-variation) so nothing else adds space. */
.dc-quickview__cart form.cart {
	margin: 0 !important;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	gap: 15px;   /* single source of truth for spacing between variations table and CTA row */
}
.dc-quickview__cart .variations {
	margin: 0 !important;
	padding: 0 !important;
	border-collapse: collapse !important;
	border-spacing: 0 !important;
}
.dc-quickview__cart .variations tbody { line-height: 0; }
.dc-quickview__cart .variations tr { line-height: 1.4; }
.dc-quickview__cart .reset_variations_alert { display: none !important; }
.dc-quickview__cart .single_variation_wrap {
	margin: 0 !important;
	padding: 0 !important;
	display: block;
	width: 100%;
}
/* .woocommerce-variation holds price/availability slots — empty until a
   variation is picked. Set min-height:0 so it collapses when empty. */
.dc-quickview__cart .woocommerce-variation {
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	line-height: 0;
}
.dc-quickview__cart .woocommerce-variation:empty { display: none !important; }
.dc-quickview__cart .woocommerce-variation > * {
	line-height: 1.4;  /* restore for actual content when variation is picked */
}
.dc-quickview__cart .woocommerce-variation-add-to-cart {
	display: flex !important;
	gap: 10px;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	align-self: stretch;
}
.dc-quickview__cart .woocommerce-variation-add-to-cart .quantity { flex: 0 0 auto; }
.dc-quickview__cart .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	flex: 1;
	min-width: 200px;
}
/* Kill any leftover width:100% inheritance from other input rules that would
   stretch the qty input across the whole card. */
.dc-quickview__cart .quantity {
	flex: 0 0 auto;
	max-width: 140px;
	width: auto;
}
.dc-quickview__cart .qty {
	width: 56px !important;
	max-width: 56px;
}
.dc-quickview__cart .woocommerce-variation-price {
	width: 100%;
	order: -1;   /* Price appears above the button row */
}
.dc-quickview__cart .woocommerce-variation-description,
.dc-quickview__cart .woocommerce-variation-availability {
	width: 100%;
	order: -1;
}
.dc-quickview__cart .quantity {
	display: flex;
	background: #fff;
	border: 1px solid #dcd7cd;
	border-radius: 14px;
	overflow: hidden;
	transition: border-color .15s;
}
.dc-quickview__cart .quantity:focus-within {
	border-color: var(--ink-4);
	box-shadow: 0 0 0 1px var(--ink-4);
}
.dc-quickview__cart .quantity label { display: none; }
.dc-quickview__cart .qty {
	appearance: none;
	border: 0;
	background: transparent;
	width: 56px;
	text-align: center;
	font-weight: 700;
	padding: 13px 4px;
	color: var(--ink-4);
	outline: none !important;
	-moz-appearance: textfield;
}
.dc-quickview__cart .qty:focus,
.dc-quickview__cart .qty:focus-visible { outline: none !important; box-shadow: none !important; }
.dc-quickview__cart .qty::-webkit-outer-spin-button,
.dc-quickview__cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dc-quickview__cart .single_add_to_cart_button {
	flex: 1;
	min-width: 200px;
	appearance: none;
	border: 0;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .04em;
	padding: 14px 22px;
	border-radius: 14px;
	cursor: pointer;
	transition: background .18s;
}
.dc-quickview__cart .single_add_to_cart_button:hover { background: var(--accent-wine); }
.dc-quickview__cart .variations {
	width: 100%;
	border-collapse: collapse;
	display: block;
	margin-bottom: 8px;
}
.dc-quickview__cart .variations tbody,
.dc-quickview__cart .variations tr {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 0;   /* .variations wrapper already carries the 15px gap */
}
/* Trim the last-child spacing so the total below the select is exactly 15px */
.dc-quickview__cart .variations tr:last-child { margin-bottom: 0; }
.dc-quickview__cart .variations th {
	display: block;
	padding: 0;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink-4);
	text-align: left;
}
.dc-quickview__cart .variations td { display: block; padding: 0; }
.dc-quickview__cart .variations select {
	appearance: none;
	background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'><path fill='none' stroke='%2322242a' stroke-width='1.6' d='M1 1l5 5 5-5'/></svg>") no-repeat right 16px center;
	border: 1px solid #dcd7cd;
	border-radius: 12px;
	padding: 12px 34px 12px 14px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink-4);
	width: 100%;
	outline: none;
	transition: border-color .15s, box-shadow .15s;
}
.dc-quickview__cart .variations select:focus,
.dc-quickview__cart .variations select:focus-visible {
	outline: none;
	border-color: var(--ink-4);
	box-shadow: 0 0 0 1px var(--ink-4);
}
.dc-quickview__cart .reset_variations {
	font-size: 12.5px;
	color: var(--accent-wine);
	text-decoration: underline;
	margin: 4px 0 0;
	display: none;   /* hidden until a variation is picked — WC JS toggles this */
}
.dc-quickview__cart .reset_variations[style*="visible"],
.dc-quickview__cart .reset_variations:not([style*="none"]):hover { display: inline-block; }
.dc-quickview__cart .woocommerce-variation-price {
	width: 100%;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	margin: 0 0 6px;
}
.dc-quickview__cart .woocommerce-variation-availability { font-size: 12.5px; color: var(--muted-3); margin: 0 0 6px; }
.dc-quickview__cart .woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button { opacity: .5; pointer-events: none; }

.dc-quickview__view-full {
	color: var(--accent-wine);
	font-weight: 700;
	font-size: 13.5px;
	text-decoration: none;
	margin-top: 4px;
}
.dc-quickview__view-full:hover { text-decoration: underline; }

@media (max-width: 720px) {
	.dc-quickview__grid { grid-template-columns: 1fr; min-height: 0; }
	.dc-quickview__media { aspect-ratio: 4 / 3; }
	.dc-quickview__summary { padding: 24px; }
	.dc-quickview__title { font-size: 24px; }
}

/* -----------------------------------------------------------------------------
   Tooltip on hover (data-tooltip attr)
----------------------------------------------------------------------------- */
.dc-tooltip { position: relative; }
.dc-tooltip::after {
	content: attr(data-tooltip);
	position: absolute;
	top: 50%;
	right: calc(100% + 10px);
	transform: translateY(-50%);
	background: var(--ink-4);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	padding: 7px 10px;
	border-radius: 8px;
	white-space: nowrap;
	pointer-events: none;
	opacity: 0;
	transition: opacity .15s ease, transform .15s ease;
	z-index: 4;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}
.dc-tooltip::before {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(100% + 4px);
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 6px solid var(--ink-4);
	opacity: 0;
	transition: opacity .15s ease;
	pointer-events: none;
	z-index: 4;
}
.dc-tooltip:hover::after,
.dc-tooltip:focus-visible::after,
.dc-tooltip:hover::before,
.dc-tooltip:focus-visible::before {
	opacity: 1;
}

/* -----------------------------------------------------------------------------
   Compare tray (fixed bottom-right) — appears when 1+ items are queued
----------------------------------------------------------------------------- */
.dc-compare-tray {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	z-index: 240;
	background: var(--ink-4);
	color: #fff;
	border-radius: 20px;
	padding: 12px 14px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, .28);
	opacity: 0;
	transition: opacity .22s ease, transform .28s cubic-bezier(.2,.8,.2,1);
	max-width: calc(100vw - 40px);
}
.dc-compare-tray[hidden] { display: none; }
/* Hide the compare tray on cart / checkout / my-account — distracting during purchase. */
body.woocommerce-cart .dc-compare-tray,
body.woocommerce-checkout .dc-compare-tray,
body.woocommerce-account .dc-compare-tray,
body.woocommerce-order-received .dc-compare-tray { display: none !important; }
.dc-compare-tray[data-visible="true"] {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}
.dc-compare-tray__inner {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.dc-compare-tray__label {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-size: 12.5px;
	color: rgba(255, 255, 255, .75);
	font-weight: 600;
}
.dc-compare-tray__label strong {
	color: #fff;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: 11.5px;
}
.dc-compare-tray__thumbs {
	display: flex;
	gap: 8px;
}
/* Outer thumb keeps overflow visible so the remove badge can sit outside the
   rounded image mask. Inner .thumb-media (added below) carries the mask. */
.dc-compare-tray__thumb {
	position: relative;
	width: 42px;
	height: 42px;
	overflow: visible;
}
.dc-compare-tray__thumb::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	z-index: 0;
}
.dc-compare-tray__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	position: relative;
	z-index: 1;
	display: block;
}
.dc-compare-tray__thumb-remove {
	position: absolute;
	top: -6px;
	right: -6px;
	z-index: 2;
	width: 18px;
	height: 18px;
	background: var(--accent-wine);
	color: #fff;
	border: 0;
	border-radius: 50%;
	font-size: 13px;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
}
.dc-compare-tray__actions { display: flex; gap: 8px; }
.dc-compare-tray__clear,
.dc-compare-tray__open {
	appearance: none;
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 12px;
	font-family: inherit;
	font-weight: 700;
	font-size: 12.5px;
	padding: 8px 14px;
	cursor: pointer;
	transition: background .18s, color .18s;
}
.dc-compare-tray__open {
	background: var(--accent-wine);
	border-color: var(--accent-wine);
}
.dc-compare-tray__clear:hover { background: rgba(255, 255, 255, .1); }
.dc-compare-tray__open:hover { background: #b23f3d; border-color: #b23f3d; }

/* Compare modal — full-screen side-by-side attribute table */
.dc-compare-modal {
	position: fixed;
	inset: 0;
	z-index: 260;
	pointer-events: none;
}
.dc-compare-modal[hidden] { display: none; }
.dc-compare-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(23, 19, 16, .6);
	opacity: 0;
	transition: opacity .25s ease;
	pointer-events: auto;
	cursor: pointer;
}
.dc-compare-modal[data-open="true"] .dc-compare-modal__backdrop { opacity: 1; }
.dc-compare-modal__panel {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -48%);
	background: #fff;
	width: min(1100px, calc(100vw - 40px));
	max-height: calc(100vh - 40px);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 30px 60px rgba(23, 19, 16, .3);
	opacity: 0;
	transition: opacity .25s ease, transform .3s cubic-bezier(.2,.8,.2,1);
	pointer-events: auto;
	display: flex;
	flex-direction: column;
}
.dc-compare-modal[data-open="true"] .dc-compare-modal__panel {
	opacity: 1;
	transform: translate(-50%, -50%);
}
.dc-compare-modal__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 22px 30px;
	border-bottom: 1px solid #eee7dd;
	background: linear-gradient(180deg, #fdfaf3 0%, #fff 100%);
}
.dc-compare-modal__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 22px;
	color: var(--ink);
	margin: 0;
}
.dc-compare-modal__close {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--muted-3);
	width: 40px;
	height: 40px;
	border-radius: 10px;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background .18s;
}
.dc-compare-modal__close:hover { background: rgba(0, 0, 0, .06); color: var(--ink-4); }
.dc-compare-modal__body {
	flex: 1;
	overflow: auto;
	padding: 24px 30px 30px;
	background: #fff;
}
.dc-compare-modal__body.is-refreshing { opacity: .55; pointer-events: none; }

/* Empty state */
.dc-compare-empty {
	text-align: center;
	padding: 60px 20px;
	color: var(--muted-3);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.dc-compare-empty__icon {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--cream-100);
	display: grid;
	place-items: center;
	color: var(--ink-4);
	margin-bottom: 4px;
}
.dc-compare-empty__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	color: var(--ink-4);
	margin: 0;
}
.dc-compare-empty__text {
	font-size: 14px;
	color: var(--muted-3);
	margin: 0;
	max-width: 320px;
	line-height: 1.5;
}
.dc-compare-empty__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 22px;
	border-radius: 12px;
	text-decoration: none;
	margin-top: 4px;
	transition: background .18s;
}
.dc-compare-empty__cta:hover { background: var(--accent-wine); color: #fff; }

/* Table */
.dc-compare-table-wrap { overflow-x: auto; overflow-y: visible; }
.dc-compare-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}
.dc-compare-table th,
.dc-compare-table td {
	border-bottom: 1px solid #eee7dd;
	padding: 16px 14px;
	vertical-align: middle;
	text-align: left;
	font-size: 14px;
	color: var(--ink-4);
}
.dc-compare-table tbody tr:hover td { background: rgba(253, 250, 243, .55); }
.dc-compare-table__label {
	background: var(--cream-100);
	font-weight: 800;
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ink-4);
	width: 160px;
	position: sticky;
	left: 0;
	z-index: 2;
}
.dc-compare-table__head {
	text-align: center;
	vertical-align: bottom;
	padding-bottom: 14px;
	min-width: 180px;
	position: relative;
	background: #fff;
}
.dc-compare-table__head .dc-compare-table__product {
	display: block;
	text-decoration: none;
	color: var(--ink);
	transition: opacity .18s;
}
.dc-compare-table__head .dc-compare-table__product:hover { opacity: .82; }
.dc-compare-table__remove {
	position: absolute;
	top: 8px;
	right: 8px;
	appearance: none;
	background: #fff;
	border: 1px solid #e6dfd2;
	color: var(--ink-4);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	cursor: pointer;
	display: grid;
	place-items: center;
	transition: background .18s, color .18s, transform .18s, border-color .18s;
	z-index: 3;
	box-shadow: 0 2px 6px rgba(23, 19, 16, .08);
}
.dc-compare-table__remove:hover {
	background: var(--accent-wine);
	color: #fff;
	border-color: var(--accent-wine);
	transform: scale(1.08);
}
.dc-compare-table__thumb {
	width: 120px;
	height: 120px;
	margin: 0 auto 10px;
	border-radius: 14px;
	overflow: hidden;
	background: #fff;
	border: 1px solid #eee7dd;
}
.dc-compare-table__thumb img { width: 100%; height: 100%; object-fit: cover; }
.dc-compare-table__name {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 14.5px;
	line-height: 1.3;
	color: var(--ink-4);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.3em * 2);
}
.dc-compare-table__price {
	font-weight: 700;
	color: var(--ink-4);
	display: inline-block;
}
.dc-compare-table__price.is-best { color: var(--accent-forest, #2f6b46); }
.dc-compare-table__badge {
	display: inline-block;
	font-size: 10px;
	letter-spacing: .05em;
	text-transform: uppercase;
	font-weight: 800;
	padding: 3px 8px;
	border-radius: 999px;
	margin-left: 6px;
	vertical-align: middle;
}
.dc-compare-table__badge--best {
	background: rgba(47, 107, 70, .12);
	color: var(--accent-forest, #2f6b46);
}
.dc-compare-table__chip {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 10px;
	border-radius: 999px;
}
.dc-compare-table__chip--ok { background: rgba(47, 107, 70, .12); color: var(--accent-forest, #2f6b46); }
.dc-compare-table__chip--out { background: rgba(184, 63, 61, .12); color: var(--accent-wine); }
.dc-compare-table__rating { font-weight: 600; }
.dc-compare-table__star { color: #e6a635; margin: 0 2px; }
.dc-compare-table__count { color: var(--muted-3); font-size: 12.5px; font-weight: 500; }
.dc-compare-table__empty { color: #c8c1b3; }
.dc-compare-table__cta {
	display: inline-block;
	background: var(--ink-4);
	color: #fff;
	font-weight: 700;
	font-size: 12.5px;
	padding: 10px 16px;
	border-radius: 12px;
	text-decoration: none;
	transition: background .18s;
}
.dc-compare-table__cta:hover { background: var(--accent-wine); color: #fff; }

/* Compare modal — mobile: full-screen sheet, stacked layout below 640px */
@media (max-width: 720px) {
	.dc-compare-modal__panel {
		width: 100vw;
		max-width: 100vw;
		height: 100vh;
		max-height: 100vh;
		border-radius: 0;
		top: 0;
		left: 0;
		transform: translateY(20px);
	}
	.dc-compare-modal[data-open="true"] .dc-compare-modal__panel { transform: translateY(0); }
	.dc-compare-modal__head { padding: 16px 18px; }
	.dc-compare-modal__title { font-size: 18px; }
	.dc-compare-modal__close { width: 44px; height: 44px; }
	.dc-compare-modal__body { padding: 16px 18px 28px; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 640px) {
	/* Compact horizontal-scroll table with sticky label column. Narrower columns
	   let ~1.5 products peek in a 360px viewport so users know to swipe. */
	.dc-compare-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scrollbar-width: thin;
		/* Right-side fade to signal horizontally-scrollable content. */
		background: linear-gradient(to right, transparent calc(100% - 24px), rgba(255, 255, 255, .9)) no-repeat right center;
		background-attachment: local;
	}
	.dc-compare-table th,
	.dc-compare-table td {
		padding: 12px 10px;
		font-size: 13px;
	}
	.dc-compare-table__label {
		width: 88px;
		min-width: 88px;
		font-size: 10.5px;
		padding: 12px 8px;
	}
	.dc-compare-table__head,
	.dc-compare-table tbody td {
		min-width: 160px;
		width: 160px;
	}
	.dc-compare-table__head {
		padding: 12px 10px;
		scroll-snap-align: start;
	}
	.dc-compare-table__thumb { width: 96px; height: 96px; margin-bottom: 8px; }
	.dc-compare-table__name { font-size: 13px; -webkit-line-clamp: 2; }
	.dc-compare-table__remove {
		top: 6px;
		right: 6px;
		width: 32px;
		height: 32px;
	}
	.dc-compare-table__price { font-size: 14px; }
	.dc-compare-table__cta {
		padding: 9px 10px;
		font-size: 11.5px;
		width: 100%;
		text-align: center;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.dc-compare-table__badge {
		display: block;
		margin: 4px 0 0;
		font-size: 9.5px;
		padding: 3px 6px;
		white-space: nowrap;
	}
	.dc-compare-table__chip { font-size: 11.5px; padding: 4px 8px; white-space: nowrap; }
}

/* -----------------------------------------------------------------------------
   Touch devices: hover-only actions become always-visible so they're reachable
----------------------------------------------------------------------------- */
@media (hover: none), (pointer: coarse) {
	.product-card__hover-actions {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}
	.product-card__hover-btn {
		width: 40px;
		height: 40px;
	}
}

/* -----------------------------------------------------------------------------
   Accessibility utilities
----------------------------------------------------------------------------- */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--ink-4);
	color: #fff;
	padding: 12px 20px;
	border-radius: 0 0 14px 0;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	z-index: 999;
}
.skip-link:focus,
.skip-link:focus-visible {
	left: 0;
	top: 0;
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	overflow: visible;
	position: fixed;
	outline: 2px solid #fff;
	outline-offset: -4px;
}

/* -----------------------------------------------------------------------------
   Landing-template breadcrumb strip
----------------------------------------------------------------------------- */
.dc-landing-crumbs {
	padding: 18px var(--gutter-x);
	font-size: 13px;
	font-weight: 600;
	color: var(--muted-3);
	background: var(--cream-100);
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: wrap;
}
.dc-landing-crumbs a {
	color: var(--muted-3);
	text-decoration: none;
	transition: color .18s;
}
.dc-landing-crumbs a:hover { color: var(--ink-4); }
.dc-landing-crumbs__sep { color: var(--muted-3); }
.dc-landing-crumbs__current { color: var(--ink-4); }

/* =============================================================================
   BLOCK PATTERNS — About + Contact page sections
   These are inserted via the Gutenberg block inserter and reuse theme tokens.
   ============================================================================= */

/* Shared pattern primitives */
.pattern-eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted-3);
	margin: 0 0 14px;
}
.pattern-eyebrow--gold        { color: #b08a3c; }
.pattern-eyebrow--gold-bright { color: #f8c913; }

.pattern-h2 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 34px;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: var(--ink-4);
	margin: 0 0 18px;
}
.pattern-body {
	font-size: 16px;
	line-height: 1.8;
	color: var(--muted-4);
	margin: 0 0 14px;
}

/* Reusable image-tile with gradient overlay + bottom-left label */
.pattern-tile {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	text-decoration: none;
	aspect-ratio: 1 / 1;
	transition: transform .3s ease;
}
.pattern-tile:hover { transform: scale(1.015); }
.pattern-tile img {
	max-width: 82%;
	max-height: 82%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.pattern-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(28, 23, 20, .55), transparent 52%);
	pointer-events: none;
}
.pattern-tile__label {
	position: absolute;
	left: 20px;
	bottom: 16px;
	color: #fff;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 20px;
	letter-spacing: -.01em;
	z-index: 1;
}
.pattern-tile--sand  { background: var(--cream-500); }
.pattern-tile--peach { background: #f3e3d0; }
.pattern-tile--pearl { background: var(--cream-400); }
.pattern-tile--wheat { background: #f1e6d6; }

/* -----------------------------------------------------------------------------
   About hero — dark radial band
----------------------------------------------------------------------------- */
.pattern-about-hero {
	background: radial-gradient(130% 130% at 12% 0%, #2b2521, #171310 65%);
	color: var(--cream-200);
	padding: 72px var(--gutter-x);
	position: relative;
	overflow: hidden;
}
.pattern-about-hero::before {
	content: "✦";
	position: absolute;
	right: -40px;
	bottom: -60px;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 240px;
	line-height: .8;
	color: rgba(242, 237, 232, .05);
	letter-spacing: -.04em;
	pointer-events: none;
}
.pattern-about-hero__inner {
	position: relative;
	max-width: 760px;
}
.pattern-about-hero .pattern-about-hero__eyebrow {
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #f8c913;
	margin: 0 0 18px;
}
.pattern-about-hero__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 64px;
	line-height: 1;
	letter-spacing: -.03em;
	color: var(--cream-200);
	margin: 0 0 20px;
}
.pattern-about-hero__intro {
	font-size: 18px;
	line-height: 1.7;
	color: rgba(242, 237, 232, .82);
	margin: 0;
	max-width: 60ch;
}
@media (max-width: 640px) {
	.pattern-about-hero { padding: 44px var(--gutter-x); }
	.pattern-about-hero__title { font-size: 38px; }
	.pattern-about-hero__intro { font-size: 16px; }
	.pattern-about-hero::before { font-size: 160px; right: -20px; }
}

/* -----------------------------------------------------------------------------
   Commitment split — text + 2×2 tile grid
----------------------------------------------------------------------------- */
.pattern-commitment {
	padding: 72px var(--gutter-x);
	background: var(--cream-100);
}
.pattern-commitment__inner {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: 48px;
	align-items: center;
}
.pattern-commitment__tiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
@media (max-width: 900px) {
	.pattern-commitment__inner { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 640px) {
	.pattern-commitment { padding: 44px var(--gutter-x); }
	.pattern-commitment__tiles { gap: 10px; }
}

/* -----------------------------------------------------------------------------
   Why-choose feature cards
----------------------------------------------------------------------------- */
.pattern-why {
	background: #fff;
	padding: 72px var(--gutter-x);
}
.pattern-why__inner { max-width: 1080px; margin: 0 auto; }
.pattern-why__head { text-align: center; margin-bottom: 40px; }
.pattern-why__head .pattern-eyebrow { margin: 0 0 12px; }
.pattern-why__head .pattern-h2       { margin: 0; }
.pattern-why__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.pattern-why__card {
	background: #fff;
	border-radius: 20px;
	padding: 28px;
	box-shadow: 0 2px 12px rgba(34, 36, 42, .05);
	transition: transform .25s ease, box-shadow .25s ease;
}
.pattern-why__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(34, 36, 42, .08);
}
.pattern-why__bar {
	display: block;
	width: 38px;
	height: 4px;
	background: var(--accent-wine);
	border-radius: 2px;
	margin-bottom: 16px;
}
.pattern-why__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 19px;
	letter-spacing: -.02em;
	color: var(--ink-4);
	margin: 0 0 8px;
}
.pattern-why__body {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 0;
}
@media (max-width: 900px) {
	.pattern-why__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.pattern-why { padding: 44px var(--gutter-x); }
}

/* -----------------------------------------------------------------------------
   Category showcase — asymmetric mosaic + bulleted callouts
----------------------------------------------------------------------------- */
.pattern-showcase {
	padding: 72px var(--gutter-x);
	background: var(--cream-100);
}
.pattern-showcase__inner { max-width: 1200px; margin: 0 auto; }
.pattern-showcase__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 28px;
	flex-wrap: wrap;
	gap: 12px;
}
.pattern-showcase__head .pattern-eyebrow { margin-bottom: 10px; }
.pattern-showcase__head .pattern-h2       { margin: 0; }
.pattern-showcase__more {
	font-weight: 700;
	font-size: 14px;
	color: var(--accent-wine);
	text-decoration: none;
}
.pattern-showcase__more:hover { text-decoration: underline; }
.pattern-showcase__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}
.pattern-showcase__cell { aspect-ratio: 3 / 2; }
.pattern-showcase__cell img { max-width: 60%; max-height: 82%; }
.pattern-showcase__callouts { max-width: 1080px; margin: 40px auto 0; }
.pattern-showcase__lead {
	font-size: 16px;
	line-height: 1.8;
	color: var(--muted-4);
	margin: 0 0 22px;
	text-align: center;
}
.pattern-showcase__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.pattern-showcase__item {
	background: #fff;
	border-radius: 16px;
	padding: 20px 24px;
	display: flex;
	gap: 14px;
	align-items: baseline;
	font-size: 14.5px;
	color: var(--muted-4);
	line-height: 1.5;
}
.pattern-showcase__item strong { color: var(--ink-4); font-size: 15.5px; }
.pattern-showcase__item--full  { grid-column: 1 / 3; }
.pattern-showcase__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--accent-wine);
	flex: none;
	transform: translateY(-2px);
}
@media (max-width: 900px) {
	.pattern-showcase__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.pattern-showcase { padding: 44px var(--gutter-x); }
	.pattern-showcase__grid { grid-template-columns: 1fr 1fr; }
	.pattern-showcase__cell { aspect-ratio: 1 / 1; }
	.pattern-showcase__list { grid-template-columns: 1fr; }
	.pattern-showcase__item--full { grid-column: 1; }
}

/* -----------------------------------------------------------------------------
   Customer-satisfaction dark band
----------------------------------------------------------------------------- */
.pattern-satisfaction {
	background: var(--ink-2);
	color: var(--cream-200);
	padding: 72px var(--gutter-x);
}
.pattern-satisfaction__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}
.pattern-satisfaction__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 34px;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: #fff;
	margin: 0 0 16px;
}
.pattern-satisfaction__body {
	font-size: 16px;
	line-height: 1.8;
	color: var(--muted-1);
	margin: 0 0 22px;
}
.pattern-satisfaction__cta {
	display: inline-block;
	background: #f8c913;
	color: var(--ink-4);
	font-weight: 700;
	font-size: 15px;
	padding: 14px 28px;
	border-radius: 14px;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
}
.pattern-satisfaction__cta:hover { background: #ffd633; transform: translateY(-1px); }
.pattern-satisfaction__stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.pattern-satisfaction__stat {
	background: #241d19;
	border-radius: 20px;
	padding: 26px;
}
.pattern-satisfaction__stat-value {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 34px;
	line-height: 1;
	color: #fff;
}
.pattern-satisfaction__stat-label {
	font-size: 13.5px;
	color: var(--muted-3);
	margin-top: 4px;
}
@media (max-width: 900px) {
	.pattern-satisfaction__inner { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 640px) {
	.pattern-satisfaction { padding: 44px var(--gutter-x); }
	.pattern-satisfaction__title { font-size: 26px; }
}

/* -----------------------------------------------------------------------------
   Community CTA — centred closer
----------------------------------------------------------------------------- */
.pattern-community {
	text-align: center;
	padding: 72px var(--gutter-x);
	background: var(--cream-100);
}
.pattern-community__inner { max-width: 720px; margin: 0 auto; }
.pattern-community .pattern-eyebrow { margin-bottom: 14px; }
.pattern-community__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 34px;
	letter-spacing: -.02em;
	line-height: 1.1;
	color: var(--ink-4);
	margin: 0 auto 16px;
	max-width: 20ch;
}
.pattern-community__body {
	font-size: 16px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 0 auto 26px;
	max-width: 52ch;
}
.pattern-community__buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}
.pattern-community__btn {
	font-weight: 700;
	font-size: 15px;
	padding: 15px 32px;
	border-radius: 14px;
	text-decoration: none;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}
.pattern-community__btn--dark  {
	background: var(--ink-4);
	color: #fff;
}
.pattern-community__btn--dark:hover  {
	background: var(--accent-wine);
	color: #fff;
}
.pattern-community__btn--light {
	background: #fff;
	border: 1px solid var(--cream-700);
	color: var(--ink-4);
}
.pattern-community__btn--light:hover {
	border-color: var(--ink-4);
	color: var(--ink-4);
	transform: translateY(-1px);
}
@media (max-width: 640px) {
	.pattern-community { padding: 44px var(--gutter-x); }
	.pattern-community__title { font-size: 26px; }
}

/* -----------------------------------------------------------------------------
   Contact split — form + FAQ accordion
----------------------------------------------------------------------------- */
.pattern-contact {
	padding: 56px var(--gutter-x);
	background: var(--cream-100);
}
.pattern-contact__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
	max-width: 1200px;
	margin: 0 auto;
}
.pattern-contact__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	letter-spacing: -.03em;
	line-height: 1;
	color: var(--ink-4);
	margin: 0 0 8px;
}
.pattern-contact__intro {
	font-size: 15px;
	color: var(--muted-4);
	margin: 0 0 28px;
	max-width: 44ch;
}
.pattern-contact__meta {
	display: flex;
	gap: 22px;
	flex-wrap: wrap;
	margin-top: 30px;
	padding-top: 26px;
	border-top: 1px solid var(--cream-600);
	font-size: 14px;
	color: var(--muted-4);
}
.pattern-contact__meta strong { color: var(--ink-4); }
.pattern-contact__faq-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 38px;
	letter-spacing: -.03em;
	line-height: 1.05;
	color: var(--ink-4);
	margin: 0 0 24px;
}
/* CF7 form styling to match the design's input spec */
.pattern-contact__form .wpcf7 form { margin: 0; padding: 0; }
.pattern-contact__form .wpcf7 p {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0 0 18px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-6);
}
.pattern-contact__form .wpcf7 label {
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-6);
}
.pattern-contact__form .wpcf7 input[type="text"],
.pattern-contact__form .wpcf7 input[type="email"],
.pattern-contact__form .wpcf7 input[type="tel"],
.pattern-contact__form .wpcf7 input[type="url"],
.pattern-contact__form .wpcf7 textarea {
	background: #fff !important;
	border: 1px solid var(--cream-700) !important;
	border-radius: 12px !important;
	padding: 15px 16px !important;
	font-size: 14px !important;
	color: var(--ink-4) !important;
	width: 100% !important;
	box-sizing: border-box;
	font-family: var(--font-body) !important;
	transition: border-color .18s ease;
}
.pattern-contact__form .wpcf7 input:focus,
.pattern-contact__form .wpcf7 textarea:focus {
	border-color: var(--ink-4) !important;
	outline: none !important;
}
.pattern-contact__form .wpcf7 textarea { min-height: 150px; resize: vertical; }
.pattern-contact__form .wpcf7 input::placeholder,
.pattern-contact__form .wpcf7 textarea::placeholder { color: var(--muted-3); }
.pattern-contact__form .wpcf7-submit {
	align-self: flex-start;
	background: var(--ink-4) !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: .04em !important;
	padding: 15px 34px !important;
	border-radius: 14px !important;
	border: 0 !important;
	cursor: pointer;
	transition: background .2s ease;
	width: auto !important;
	margin-top: 4px;
}
.pattern-contact__form .wpcf7-submit:hover { background: var(--accent-wine) !important; }
.pattern-contact__form .wpcf7-response-output {
	margin: 20px 0 0 !important;
	border-radius: 12px !important;
	padding: 14px 18px !important;
	font-size: 14px !important;
}

/* FAQ accordion (native core/details block) */
.pattern-contact__faq .wp-block-details,
.pattern-contact__faq .pattern-contact__acc {
	border-top: 1px solid var(--cream-700);
	padding: 0;
	margin: 0;
	background: transparent;
}
.pattern-contact__faq .wp-block-details:last-child,
.pattern-contact__faq .pattern-contact__acc:last-child {
	border-bottom: 1px solid var(--cream-700);
}
.pattern-contact__faq .wp-block-details > summary,
.pattern-contact__faq .pattern-contact__acc > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 22px 4px;
	cursor: pointer;
	font-weight: 700;
	font-size: 16px;
	color: var(--ink-4);
	list-style: none;
	position: relative;
}
.pattern-contact__faq .wp-block-details > summary::-webkit-details-marker,
.pattern-contact__faq .pattern-contact__acc > summary::-webkit-details-marker { display: none; }
.pattern-contact__faq .wp-block-details > summary::after,
.pattern-contact__faq .pattern-contact__acc > summary::after {
	content: "+";
	font-size: 22px;
	color: var(--muted-3);
	font-weight: 400;
	flex: none;
	margin-left: 16px;
	transition: transform .18s ease;
}
.pattern-contact__faq .wp-block-details[open] > summary::after,
.pattern-contact__faq .pattern-contact__acc[open] > summary::after {
	content: "–";
	color: var(--ink-4);
}
.pattern-contact__faq .wp-block-details > .dc-acc__body,
.pattern-contact__faq .pattern-contact__acc > .dc-acc__body {
	padding: 0 4px 22px;
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 0;
}
.pattern-contact__faq .wp-block-details > .dc-acc__body > *:first-child,
.pattern-contact__faq .pattern-contact__acc > .dc-acc__body > *:first-child { margin-top: 0; }
.pattern-contact__faq .wp-block-details > .dc-acc__body > *:last-child,
.pattern-contact__faq .pattern-contact__acc > .dc-acc__body > *:last-child { margin-bottom: 0; }
.pattern-contact__faq .wp-block-details a,
.pattern-contact__faq .pattern-contact__acc a {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.pattern-contact__faq .wp-block-details a:hover,
.pattern-contact__faq .pattern-contact__acc a:hover { text-decoration: underline; }

@media (max-width: 900px) {
	.pattern-contact__inner { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 640px) {
	.pattern-contact { padding: 40px var(--gutter-x); }
	.pattern-contact__title { font-size: 32px; }
	.pattern-contact__faq-title { font-size: 28px; }
}

/* =============================================================================
   ORDER RECEIVED (thank-you page)
   ============================================================================= */
.dc-thankyou { background: var(--cream-100); }
.dc-thankyou__hero {
	background: radial-gradient(120% 130% at 12% 0%, #2b2521, #171310 68%);
	color: var(--cream-200);
	padding: 72px var(--gutter-x) 96px;
	position: relative;
	overflow: hidden;
}
.dc-thankyou__hero::before {
	content: "✓";
	position: absolute;
	right: -20px;
	bottom: -40px;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 240px;
	line-height: .8;
	color: rgba(248, 201, 19, .08);
	letter-spacing: -.04em;
	pointer-events: none;
}
.dc-thankyou__inner {
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 var(--gutter-x);
	position: relative;
}
.dc-thankyou__hero .dc-thankyou__inner { padding: 0 0; }
.dc-thankyou__eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	color: #f8c913;
	margin-bottom: 18px;
}
.dc-thankyou__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 46px;
	line-height: 1.05;
	letter-spacing: -.03em;
	color: var(--cream-200);
	margin: 0 0 16px;
	max-width: 20ch;
}
.dc-thankyou__intro {
	font-size: 17px;
	line-height: 1.6;
	color: rgba(242, 237, 232, .82);
	margin: 0;
	max-width: 60ch;
}
.dc-thankyou__overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0;
	background: #fff;
	border-radius: 20px;
	padding: 22px 6px;
	margin: -48px 0 40px;
	box-shadow: 0 20px 40px rgba(23, 19, 16, .08);
	position: relative;
	z-index: 1;
}
.dc-thankyou__overview-cell {
	padding: 4px 20px;
	border-right: 1px solid var(--cream-600);
}
.dc-thankyou__overview-cell:last-child { border-right: 0; }
.dc-thankyou__overview-cell dt {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--muted-3);
	margin: 0 0 6px;
}
.dc-thankyou__overview-cell dd {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	color: var(--ink-4);
	margin: 0;
	word-break: break-word;
}
.dc-thankyou__section-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 24px;
	letter-spacing: -.02em;
	color: var(--ink-4);
	margin: 0 0 18px;
}
.dc-thankyou__items {
	background: #fff;
	border-radius: 20px;
	padding: 28px 30px;
	margin: 0 0 32px;
}
.dc-thankyou__item-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.dc-thankyou__item {
	display: grid;
	grid-template-columns: 72px 1fr auto;
	gap: 16px;
	align-items: center;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--cream-600);
}
.dc-thankyou__item:last-child { padding-bottom: 0; border-bottom: 0; }
.dc-thankyou__item-thumb {
	display: block;
	width: 72px;
	height: 72px;
	border-radius: 14px;
	overflow: hidden;
	background: var(--cream-100);
	border: 1px solid var(--cream-600);
}
.dc-thankyou__item-thumb img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.dc-thankyou__item-body { min-width: 0; }
.dc-thankyou__item-name {
	display: block;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15.5px;
	color: var(--ink-4);
	text-decoration: none;
	line-height: 1.3;
	margin-bottom: 4px;
}
.dc-thankyou__item-name:hover { color: var(--accent-wine); }
.dc-thankyou__item-qty {
	display: block;
	font-size: 13px;
	color: var(--muted-3);
}
.dc-thankyou__item-total {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15.5px;
	color: var(--ink-4);
	white-space: nowrap;
}
.dc-thankyou__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 40px;
}
.dc-thankyou__block {
	background: #fff;
	border-radius: 20px;
	padding: 28px;
}
.dc-thankyou__block-title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	letter-spacing: .02em;
	color: var(--ink-4);
	margin: 0 0 14px;
}
.dc-thankyou__address {
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--muted-4);
}
.dc-thankyou__meta {
	color: var(--muted-4);
	font-size: 14px;
	margin-top: 4px;
}
.dc-thankyou__next {
	list-style: none;
	counter-reset: dc-next;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.dc-thankyou__next li {
	counter-increment: dc-next;
	position: relative;
	padding-left: 32px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--muted-4);
}
.dc-thankyou__next li::before {
	content: counter(dc-next);
	position: absolute;
	left: 0;
	top: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--accent-wine);
	color: #fff;
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 12px;
	display: grid;
	place-items: center;
}
.dc-thankyou__cta-row {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	padding: 0 0 72px;
}
.dc-thankyou__cta {
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 15px;
	padding: 15px 30px;
	border-radius: 14px;
	text-decoration: none;
	transition: background .2s, color .2s, transform .2s, border-color .2s;
	display: inline-block;
}
.dc-thankyou__cta--dark {
	background: var(--ink-4);
	color: #fff;
}
.dc-thankyou__cta--dark:hover {
	background: var(--accent-wine);
	transform: translateY(-1px);
	color: #fff;
}
.dc-thankyou__cta--light {
	background: #fff;
	color: var(--ink-4);
	border: 1px solid var(--cream-700);
}
.dc-thankyou__cta--light:hover {
	border-color: var(--ink-4);
	transform: translateY(-1px);
	color: var(--ink-4);
}
.dc-thankyou--failed .dc-thankyou__inner { padding: 72px var(--gutter-x); }
.dc-thankyou--failed .dc-thankyou__title { color: var(--ink-4); }
.dc-thankyou--failed .dc-thankyou__intro { color: var(--muted-4); }
.dc-thankyou--failed .dc-thankyou__eyebrow { color: var(--accent-wine); }
.dc-thankyou--empty {
	padding: 96px var(--gutter-x);
	text-align: center;
}

@media (max-width: 900px) {
	.dc-thankyou__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.dc-thankyou__hero { padding: 48px var(--gutter-x) 72px; }
	.dc-thankyou__title { font-size: 32px; }
	.dc-thankyou__overview { padding: 18px 0; gap: 12px; margin-top: -36px; }
	.dc-thankyou__overview-cell { border-right: 0; border-bottom: 1px solid var(--cream-600); padding-bottom: 12px; }
	.dc-thankyou__overview-cell:last-child { border-bottom: 0; padding-bottom: 4px; }
	.dc-thankyou__items { padding: 22px 20px; }
	.dc-thankyou__block { padding: 22px; }
	.dc-thankyou__item { grid-template-columns: 60px 1fr; }
	.dc-thankyou__item-total { grid-column: 2; padding-top: 4px; }
	.dc-thankyou__item-thumb { width: 60px; height: 60px; }
}

/* =============================================================================
   LEGAL PAGES — Privacy, Terms, Shipping Policy, Returns
   Shared editorial layout: big display hero, gold scroll-progress bar,
   numbered sections with wine-red number pills, dark and wine-bordered
   callout cards for emphasis.
   ============================================================================= */
.dc-legal { background: var(--cream-100); counter-reset: dc-section; }

/* Landing-template scroll progress bar (emitted by page-templates/landing.php
   for legal pages, kept out of the block content so the pattern is 100% blocks) */
.dc-landing-progress {
	position: sticky;
	top: 74px;
	z-index: 15;
	height: 3px;
	background: transparent;
	pointer-events: none;
	margin: 0;
}
.dc-landing-progress__bar {
	height: 100%;
	width: 0%;
	background: #f8c913;
	transition: width .12s linear;
}

.dc-legal__hero {
	padding: 56px var(--gutter-x) 8px;
}
.dc-legal__hero > .wp-block-group__inner-container { max-width: 900px; margin: 0 auto; }
.dc-legal__hero-inner {
	max-width: 900px;
	margin: 0 auto;
}
.dc-legal__title {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 88px;
	line-height: .94;
	letter-spacing: -.04em;
	margin: 0;
	max-width: 15ch;
	color: var(--ink-4);
}
.dc-legal__title-accent { color: var(--accent-wine); }
.dc-legal__lede {
	font-size: 17px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 22px 0 0;
	max-width: 52ch;
}

.dc-legal__body {
	padding: 36px var(--gutter-x) 64px;
}
.dc-legal__body > .wp-block-group__inner-container { max-width: 900px; margin: 0 auto; }
.dc-legal__body-inner {
	max-width: 900px;
	margin: 0 auto;
}
.dc-legal__intro {
	font-size: 16px;
	line-height: 1.8;
	color: var(--muted-4);
	margin: 0 0 14px;
}

.dc-legal__section {
	padding: 32px 0;
	border-top: 1px solid var(--cream-500);
	counter-increment: dc-section;
}
.dc-legal__h2 {
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 24px;
	line-height: 1.25;
	letter-spacing: -.02em;
	margin: 0 0 14px;
	color: var(--ink-4);
	display: flex;
	align-items: center;
	gap: 12px;
}
.dc-legal__h2::before {
	content: counter(dc-section);
	font-family: var(--font-body);
	font-weight: 800;
	font-size: 15px;
	color: var(--accent-wine);
	background: #fff;
	border: 1px solid var(--cream-500);
	border-radius: 10px;
	width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	flex: none;
}
.dc-legal__p {
	font-size: 15.5px;
	line-height: 1.8;
	color: var(--muted-4);
	margin: 0 0 14px;
}
.dc-legal__p strong { color: var(--ink-6); }
.dc-legal__p a,
.dc-legal__body a {
	color: var(--accent-wine);
	font-weight: 700;
	text-decoration: none;
}
.dc-legal__p a:hover,
.dc-legal__body a:hover { text-decoration: underline; }

.dc-legal__list {
	margin: 6px 0 0;
	padding-left: 18px;
	color: var(--muted-4);
	font-size: 15.5px;
	line-height: 1.8;
}
.dc-legal__list li { margin-bottom: 8px; }
.dc-legal__list li strong { color: var(--ink-6); }

/* Dark accent card */
.dc-legal__card {
	background: var(--ink-4);
	color: var(--cream-200);
	border-radius: 20px;
	padding: 26px 28px;
	margin: 0 0 14px;
}
.dc-legal__card p { margin: 0; font-size: 16px; line-height: 1.7; font-weight: 500; }
.dc-legal__card--big p { font-size: 17px; }
.dc-legal__card-accent { color: #f8c913; font-weight: 800; }

/* Wine-left-border warning card (surgeon general etc.) */
.dc-legal__warning {
	background: #fff;
	border: 1px solid var(--cream-500);
	border-left: 4px solid var(--accent-wine);
	border-radius: 14px;
	padding: 20px 22px;
	margin: 0 0 14px;
}
.dc-legal__warning p {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--muted-4);
	margin: 0;
}
.dc-legal__warning strong { color: var(--ink-6); }

/* Soft info card */
.dc-legal__info {
	background: #fff;
	border: 1px solid var(--cream-500);
	border-radius: 16px;
	padding: 20px 22px;
	margin-top: 16px;
}
.dc-legal__info p { font-size: 15px; line-height: 1.75; color: var(--muted-4); margin: 0; }

@media (max-width: 640px) {
	.dc-legal__hero { padding: 44px var(--gutter-x) 12px; }
	.dc-legal__title { font-size: 44px; }
	.dc-legal__body { padding: 32px var(--gutter-x) 44px; }
	.dc-legal__section { padding: 24px 0; }
	.dc-legal__h2 { font-size: 22px; }
	.dc-legal__card { padding: 22px 20px; }
}
