/**
 * Wine Upgrade Campaigns — Bonner premium cellar landing page.
 * Conversion mechanics, restrained private-wine visual language.
 */

@font-face {
	font-family: "Libre Caslon Display";
	src: url("../fonts/librecaslondisplay-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Hanken Grotesk";
	src: url("../fonts/hankengrotesk-var.woff2") format("woff2");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

.wuc-campaign-page {
	--wuc-bg: #fbf3e8;
	--wuc-bg-2: #efe8e1;
	--wuc-surface: #fffaf2;
	--wuc-surface-warm: #efe8e1;
	--wuc-ink: #2a2018;
	--wuc-ink-soft: #6b5e4f;
	--wuc-ink-faint: #8a7e6d;
	--wuc-gold: #947527;
	--wuc-gold-soft: #c9a96e;
	--wuc-gold-deep: #6e5526;
	--wuc-line: #e1d6c4;
	--wuc-line-strong: #c8b797;
	--wuc-line-gold: rgba(148, 117, 39, 0.42);
	--wuc-cellar: #0e0c0a;
	--wuc-cellar-2: #1a1310;
	--wuc-ivory: #f5efe6;
	--wuc-ivory-dim: #c8bca8;
	--wuc-ivory-faint: #8a7e6d;
	--wuc-parchment: #fbf3e8;
	--wuc-parchment-edge: #e1d6c4;
	--wuc-ink-on-parch: #2a2018;
	--wuc-font-display: "Libre Caslon Display", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--wuc-font-sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
	background: var(--wuc-bg);
	color: var(--wuc-ink);
	font-family: var(--wuc-font-sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	isolation: isolate;
	margin: 0 calc(50% - 50vw);
	min-height: 100vh;
	padding: 0 calc(50vw - 50%);
	position: relative;
	z-index: 0;
}

.wuc-campaign-landing-shell { margin: 0; }
.wuc-campaign-landing-main { min-height: 100vh; }
.wuc-campaign-page-compact {
	background:
		radial-gradient(circle at 18% 8%, rgba(201, 169, 110, 0.16), transparent 24rem),
		linear-gradient(180deg, #fffaf2 0%, var(--wuc-bg) 54%, var(--wuc-bg-2) 100%),
		var(--wuc-bg);
}
.wuc-campaign-page *,
.wuc-campaign-page *::before,
.wuc-campaign-page *::after { box-sizing: border-box; }
.wuc-campaign-page a { color: var(--wuc-gold); text-underline-offset: 3px; }
.wuc-campaign-page img { max-width: 100%; }
.wuc-campaign-wrap { margin: 0 auto; max-width: 1240px; padding-left: clamp(18px, 4vw, 44px); padding-right: clamp(18px, 4vw, 44px); }

.wuc-campaign-header {
	align-items: center;
	border-bottom: 1px solid var(--wuc-line);
	display: flex;
	justify-content: center;
	padding-bottom: 17px;
	padding-top: 19px;
}
.wuc-campaign-header img { display: block; height: auto; max-height: 36px; width: auto; }

.wuc-campaign-layout {
	display: grid;
	gap: clamp(26px, 4vw, 54px);
	grid-template-columns: minmax(0, 0.96fr) minmax(420px, 1.04fr);
	padding-bottom: clamp(52px, 8vw, 96px);
	padding-top: clamp(18px, 3vw, 34px);
}
.wuc-campaign-left,
.wuc-campaign-right { min-width: 0; }
.wuc-campaign-right { align-self: start; position: sticky; top: 24px; }

.wuc-campaign-art {
	background:
		linear-gradient(180deg, rgba(255, 250, 242, 0.92), rgba(239, 232, 225, 0.82)),
		var(--wuc-surface);
	border: 1px solid var(--wuc-line);
	border-radius: 5px;
	box-shadow: 0 12px 34px rgba(42, 32, 24, 0.12);
	margin: 0 0 clamp(18px, 2.4vw, 28px);
	overflow: hidden;
	position: relative;
}
.wuc-campaign-art::after {
	border: 1px solid var(--wuc-line-gold);
	bottom: 10px;
	content: "";
	left: 10px;
	pointer-events: none;
	position: absolute;
	right: 10px;
	top: 10px;
}
.wuc-campaign-art img { aspect-ratio: 16 / 10; display: block; height: 100%; object-fit: cover; padding: clamp(12px, 2vw, 22px); width: 100%; }
.wuc-campaign-price-badge {
	color: var(--wuc-ink);
	display: flex;
	flex-direction: column;
	gap: 7px;
	left: clamp(24px, 3.4vw, 42px);
	padding: 0;
	position: absolute;
	top: clamp(24px, 3.4vw, 42px);
	z-index: 2;
}
.wuc-campaign-price-badge strong {
	background: var(--wuc-cellar);
	box-shadow: 0 8px 18px rgba(42, 32, 24, 0.22);
	color: var(--wuc-ivory);
	display: inline-block;
	font: 900 clamp(22px, 2.8vw, 34px)/1 var(--wuc-font-sans);
	letter-spacing: 0.02em;
	padding: 10px 15px 9px;
	white-space: nowrap;
	width: fit-content;
}
.wuc-campaign-price-badge span:not(.wuc-campaign-price-badge-regular) {
	background: var(--wuc-cellar);
	box-shadow: 0 8px 18px rgba(42, 32, 24, 0.16);
	color: var(--wuc-ivory);
	display: inline-block;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: 0.17em;
	padding: 7px 12px 6px;
	text-transform: uppercase;
	width: fit-content;
}
.wuc-campaign-price-badge-regular,
.wuc-campaign-price-regular {
	color: var(--wuc-ink-faint)!important;
	display: block;
	font-family: var(--wuc-font-sans);
	font-size: 15px!important;
	font-weight: 700;
	letter-spacing: 0!important;
	margin: 0 0 5px!important;
	text-decoration: line-through;
	text-decoration-thickness: 1.5px;
	text-transform: none!important;
}
.wuc-campaign-price-badge-regular {
	background: rgba(255, 250, 242, 0.94);
	border: 1px solid rgba(148, 117, 39, 0.42);
	box-shadow: 0 8px 18px rgba(42, 32, 24, 0.16);
	color: var(--wuc-ink-soft)!important;
	display: inline-block;
	margin: 0!important;
	padding: 6px 10px!important;
	width: fit-content;
}
.wuc-campaign-panel .wuc-campaign-price-regular { color: var(--wuc-ivory-faint)!important; }

.wuc-campaign-story { margin-bottom: clamp(16px, 2vw, 24px); }
.wuc-campaign-title {
	color: var(--wuc-ink);
	font-family: var(--wuc-font-display);
	font-size: clamp(42px, 5.4vw, 68px);
	font-weight: 400;
	letter-spacing: -0.022em;
	line-height: 1.02;
	margin: 0;
	text-wrap: balance;
}
.wuc-campaign-title::after { background: var(--wuc-gold); content: ""; display: block; height: 2px; margin-top: clamp(14px, 1.8vw, 20px); width: 72px; }
.wuc-campaign-pitch { color: var(--wuc-ink-soft); font-size: clamp(16px, 1.25vw, 18px); line-height: 1.54; margin: clamp(14px, 1.8vw, 20px) 0 0; max-width: 58ch; text-wrap: pretty; }
.wuc-campaign-list { color: var(--wuc-ink-soft); list-style: none; margin: 22px 0 0; padding: 0; }
.wuc-campaign-list li { line-height: 1.45; margin: 0; padding: 8px 0 8px 24px; position: relative; }
.wuc-campaign-list li + li { border-top: 1px solid var(--wuc-line); }
.wuc-campaign-list li::before { color: var(--wuc-gold); content: "—"; left: 0; position: absolute; }
.wuc-campaign-how {
	background: rgba(255, 250, 242, 0.72);
	border: 1px solid var(--wuc-line);
	margin-top: 18px;
	padding: 15px 17px;
}
.wuc-campaign-how ol { counter-reset: wuc-step; display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.wuc-campaign-how li { color: var(--wuc-ink-soft); line-height: 1.48; padding-left: 34px; position: relative; }
.wuc-campaign-how li::before {
	align-items: center;
	background: var(--wuc-cellar);
	border: 1px solid var(--wuc-line-gold);
	color: var(--wuc-ivory);
	content: counter(wuc-step);
	counter-increment: wuc-step;
	display: inline-flex;
	font-size: 12px;
	font-weight: 800;
	height: 22px;
	justify-content: center;
	left: 0;
	position: absolute;
	top: 1px;
	width: 22px;
}

.wuc-campaign-panel {
	background:
		linear-gradient(180deg, rgba(245, 239, 230, 0.045), transparent 45%),
		var(--wuc-cellar-2);
	border: 1px solid rgba(245, 239, 230, 0.18);
	border-radius: 5px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
	color: var(--wuc-ivory);
	padding: clamp(18px, 2.4vw, 26px);
}
.wuc-campaign-buy-form { display: grid; gap: 13px; margin: 0; }
.wuc-campaign-label { color: var(--wuc-ivory-faint); display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; margin-bottom: 9px; text-transform: uppercase; }
.wuc-campaign-price { color: var(--wuc-ivory); font-family: var(--wuc-font-display); font-size: clamp(30px, 4vw, 42px); font-weight: 400; line-height: 1; white-space: nowrap; }
.wuc-campaign-price-compact { font-size: clamp(24px, 2.3vw, 32px); }
.wuc-campaign-price small { color: var(--wuc-ivory-dim); display: block; font-family: var(--wuc-font-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; margin-top: 9px; text-transform: uppercase; }
.wuc-campaign-checkout-strip { align-items: end; display: grid; gap: clamp(10px, 1.2vw, 14px); grid-template-columns: minmax(112px, 0.74fr) minmax(218px, 1.2fr) minmax(132px, 0.82fr); }
.wuc-campaign-quantity-options { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wuc-campaign-quantity-option {
	background: rgba(245, 239, 230, 0.045);
	border: 1px solid rgba(255, 249, 239, 0.24);
	color: var(--wuc-ivory);
	cursor: pointer;
	min-height: 58px;
	padding: 9px 8px 8px;
	position: relative;
	text-align: center;
	transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
}
.wuc-campaign-quantity-option:hover,
.wuc-campaign-quantity-option.is-selected { background: rgba(201, 169, 110, 0.14); border-color: var(--wuc-gold); }
.wuc-campaign-quantity-option:active { transform: translateY(1px); }
.wuc-campaign-quantity-option:focus-visible { outline: 3px solid rgba(198, 164, 106, 0.44); outline-offset: 3px; }
.wuc-campaign-quantity-number { display: block; font: 800 20px/1 var(--wuc-font-sans); }
.wuc-campaign-quantity-label { color: var(--wuc-ivory-dim); display: block; font-size: 9px; font-weight: 800; letter-spacing: 0.06em; margin-top: 4px; min-height: 0; text-transform: uppercase; white-space: nowrap; }
.wuc-campaign-quantity-total { color: var(--wuc-ivory); display: block; font-size: 11px; font-weight: 800; margin-top: 4px; white-space: nowrap; }
.wuc-campaign-quantity-badge {
	background: var(--wuc-gold);
	border: 1px solid var(--wuc-ivory);
	box-shadow: 3px 3px 0 rgba(8, 6, 5, 0.9);
	color: #0e0c0a;
	display: inline-block;
	font-size: 9px;
	font-weight: 900;
	left: 50%;
	letter-spacing: 0.07em;
	line-height: 1;
	padding: 5px 7px 4px;
	position: absolute;
	text-transform: uppercase;
	top: -17px;
	transform: translateX(-50%) rotate(-3deg);
	white-space: nowrap;
	z-index: 2;
}
.wuc-campaign-buy-row { align-items: end; display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); padding-top: 0; text-align: right; }
.wuc-campaign-total { font-size: clamp(24px, 2.5vw, 32px); }
.wuc-campaign-button {
	background: var(--wuc-gold);
	border: 1px solid var(--wuc-gold);
	color: var(--wuc-cellar);
	cursor: pointer;
	font: 800 15px/1 var(--wuc-font-sans);
	letter-spacing: 0.08em;
	min-height: 50px;
	padding: 14px 22px;
	text-transform: uppercase;
	transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease;
	width: 100%;
}
.wuc-campaign-button:hover { background: var(--wuc-gold-soft); border-color: var(--wuc-gold-soft); }
.wuc-campaign-button:active { transform: translateY(1px); }
.wuc-campaign-button:focus-visible { outline: 3px solid var(--wuc-gold-soft); outline-offset: 3px; }
.wuc-campaign-note { color: var(--wuc-ivory-dim); font-size: 13px; line-height: 1.55; margin: 0; }
.wuc-campaign-trust-list { color: var(--wuc-ivory-faint); display: grid; gap: 6px; font-size: 12px; line-height: 1.42; list-style: none; margin: -2px 0 0; padding: 0; }
.wuc-campaign-trust-list li { padding-left: 18px; position: relative; }
.wuc-campaign-trust-list li::before { color: var(--wuc-gold-soft); content: "✓"; font-weight: 800; left: 0; position: absolute; top: 0; }
.wuc-campaign-alert {
	background: #fff3ef;
	border: 1px solid #d9afa4;
	color: #6f1f16;
	font-weight: 700;
	margin-bottom: 18px;
	padding: 12px 14px;
}

.wuc-campaign-upgrade-pool { padding: 0; }
.wuc-campaign-section-label { align-items: center; color: var(--wuc-gold); display: flex; font-size: 11px; font-weight: 800; gap: 12px; letter-spacing: 0.19em; margin: 0 0 10px; text-transform: uppercase; }
.wuc-campaign-section-label::after { background: linear-gradient(90deg, var(--wuc-line-gold), transparent); content: ""; flex: 1; height: 1px; }
.wuc-campaign-section-title { color: var(--wuc-ink); font-family: var(--wuc-font-display); font-size: clamp(23px, 2.6vw, 32px); font-weight: 400; letter-spacing: -0.01em; line-height: 1.12; margin: 0 0 15px; text-wrap: balance; }
.wuc-campaign-card-grid { display: grid; gap: 9px; grid-template-columns: 1fr; }
.wuc-campaign-wine-card { align-items: stretch; background: rgba(255, 250, 242, 0.78); border: 1px solid var(--wuc-line); border-radius: 5px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42); display: grid; grid-template-columns: 76px 1fr; overflow: hidden; transition: border-color 160ms ease, background-color 160ms ease; }
.wuc-campaign-wine-card:hover { background: var(--wuc-surface); border-color: var(--wuc-line-gold); }
.wuc-campaign-wine-card img { background: var(--wuc-surface-warm); height: 100%; object-fit: contain; padding: 10px; width: 76px; }
.wuc-campaign-wine-card-body { padding: 12px 15px; }
.wuc-campaign-wine-card h3 { color: var(--wuc-ink); font-family: var(--wuc-font-display); font-size: 18px; font-weight: 400; line-height: 1.15; margin: 0; }
.wuc-campaign-wine-meta { color: var(--wuc-ink-faint); font-size: 11px; letter-spacing: 0.06em; margin-top: 4px; }
.wuc-campaign-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.wuc-campaign-badge { border: 1px solid var(--wuc-line-strong); color: var(--wuc-ink-soft); font-size: 10px; font-weight: 800; letter-spacing: 0.04em; padding: 3px 8px; text-transform: uppercase; }
.wuc-campaign-badge-gold { background: #fff4da; border-color: var(--wuc-line-gold); color: var(--wuc-gold-deep); }

.wuc-campaign-closed { background: var(--wuc-cellar); color: var(--wuc-ivory); padding: clamp(24px, 3.5vw, 36px); }
.wuc-campaign-closed h2 { color: var(--wuc-ivory); font-family: var(--wuc-font-display); font-size: 26px; font-weight: 400; margin: 0 0 10px; }
.wuc-campaign-closed p { color: var(--wuc-ivory-dim); margin: 0; }

/* Keep individual legacy shortcodes coherent when used inside normal theme pages. */
.wuc-campaign-hero,
.wuc-campaign-offer,
.wuc-campaign-related,
.wuc-campaign-editorial-band { margin: 0 auto; max-width: 1140px; padding: clamp(40px, 6vw, 72px) clamp(20px, 5vw, 48px); }
.wuc-campaign-hero { align-items: center; display: grid; gap: clamp(28px, 5vw, 56px); grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr); }
.wuc-campaign-brand { margin-bottom: 28px; }
.wuc-campaign-brand img { display: block; height: auto; max-height: 40px; width: auto; }
.wuc-campaign-hero-media { background: linear-gradient(170deg, var(--wuc-surface), var(--wuc-bg-2)); border: 1px solid var(--wuc-line); overflow: hidden; }
.wuc-campaign-hero-media img { aspect-ratio: 4 / 5; display: block; height: 100%; object-fit: contain; padding: clamp(18px, 3vw, 32px); width: 100%; }
.wuc-campaign-offer { display: grid; gap: clamp(28px, 4vw, 48px); grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); }
.wuc-campaign-copy { color: var(--wuc-ink-soft); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.6; max-width: 62ch; }
.wuc-campaign-stat-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 28px; }
.wuc-campaign-stat { border-top: 2px solid var(--wuc-gold); padding-top: 14px; }
.wuc-campaign-stat strong { color: var(--wuc-ink); display: block; font: 400 32px/1 var(--wuc-font-display); }
.wuc-campaign-stat span { color: var(--wuc-ink-faint); display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; margin-top: 9px; text-transform: uppercase; }
.wuc-campaign-eyebrow { color: var(--wuc-gold); display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; margin-bottom: 14px; text-transform: uppercase; }
.wuc-campaign-placeholder { border: 1px dashed var(--wuc-line-strong); color: var(--wuc-ink-faint); padding: 28px; }

@keyframes wuc-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
	.wuc-campaign-header,
	.wuc-campaign-art,
	.wuc-campaign-story,
	.wuc-campaign-panel,
	.wuc-campaign-upgrade-pool,
	.wuc-campaign-hero > *,
	.wuc-campaign-offer > * { animation: wuc-rise 620ms cubic-bezier(0.22, 1, 0.36, 1) both; }
	.wuc-campaign-art { animation-delay: 70ms; }
	.wuc-campaign-story { animation-delay: 40ms; }
	.wuc-campaign-panel { animation-delay: 130ms; }
	.wuc-campaign-upgrade-pool { animation-delay: 180ms; }
}

@media (max-width: 1180px) {
	.wuc-campaign-checkout-strip { grid-template-columns: 1fr; }
	.wuc-campaign-buy-row { text-align: left; }
}

@media (max-width: 880px) {
	.wuc-campaign-layout { display: flex; flex-direction: column; gap: 22px; padding-top: 20px; }
	.wuc-campaign-right,
	.wuc-campaign-left { display: contents; }
	.wuc-campaign-right { position: static; }
	.wuc-campaign-art { margin-bottom: 0; order: -4; }
	.wuc-campaign-story { order: -3; }
	.wuc-campaign-panel,
	.wuc-campaign-closed { order: -2; }
	.wuc-campaign-upgrade-pool { margin-top: 4px; order: 1; }
	.wuc-campaign-hero,
	.wuc-campaign-offer { grid-template-columns: 1fr; }
	.wuc-campaign-card-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

@media (max-width: 520px) {
	.wuc-campaign-header { padding-bottom: 14px; padding-top: 15px; }
	.wuc-campaign-header img { max-height: 31px; }
	.wuc-campaign-art img { aspect-ratio: 4 / 3; padding: 10px; }
	.wuc-campaign-quantity-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wuc-campaign-quantity-option { min-height: 58px; padding-left: 5px; padding-right: 5px; }
	.wuc-campaign-quantity-label { font-size: 8px; }
	.wuc-campaign-quantity-total { font-size: 10px; }
	.wuc-campaign-stat-grid { grid-template-columns: 1fr; }
	.wuc-campaign-wine-card { grid-template-columns: 66px 1fr; }
	.wuc-campaign-wine-card img { width: 66px; }
	.wuc-campaign-price-badge { gap: 6px; left: 18px; top: 18px; }
	.wuc-campaign-price-badge strong { font-size: 24px; padding: 8px 11px 7px; }
	.wuc-campaign-price-badge span:not(.wuc-campaign-price-badge-regular) { font-size: 9px; }
}
