/* ==========================================================================
   VAYUÉ — Cart & Checkout
   Targets the WooCommerce Cart/Checkout BLOCKS (which render client-side and
   never execute cart.php / form-checkout.php), plus a shortcode fallback so
   the same brand styling applies if the pages are ever switched back.
   Light-first: no prefers-color-scheme blocks. Colours forced with both
   `color` and `-webkit-text-fill-color`.
   ========================================================================== */

:root {
	/* ---- Dark theme. Gold is decoded from the logo pixels; the greys are
	   built around the logo's own #0F0E13 background. ---- */
	--vy-gold: #BB9D50;        /* decoded: logo core gold */
	--vy-gold-lt: #C8B57E;     /* decoded: logo highlight */
	--vy-gold-dk: #C8B57E;     /* on dark, the LIGHT gold is the readable one */
	--vy-on-gold: #0F0E13;     /* text sitting on a gold fill */
	--vy-slate: #7F9CAB;

	--vy-bg: #0B0A0E;          /* page */
	--vy-deep: #060609;        /* deepest bands / flags */
	--vy-surface: #15141A;     /* cards, panels, inputs */
	--vy-surface-2: #1E1C24;   /* raised / hover */
	--vy-text: #F2EEE4;        /* body text */
	--vy-muted: #A29C92;       /* secondary text */
	--vy-line: #2C2A33;        /* hairlines */
	--vy-line-strong: #494450; /* stronger borders */

	/* Legacy aliases kept so any rule this script did not rewrite still
	   resolves to something sane rather than an invalid value. */
	--vy-ink: #0B0A0E;
	--vy-ivory: #F2EEE4;
	--vy-paper: #0B0A0E;
	--vy-line-dk: #2C2A33;

	--vy-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--vy-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--vy-btn-h: 54px;
	--vy-btn-r: 2px;
	--vy-btn-fs: 13px;
	--vy-btn-fw: 500;
	--vy-btn-ls: 0.14em;
}

body { overflow-x: hidden; }

.vc-wrap {
	font-family: var(--vy-sans);
	color: var(--vy-text);
	-webkit-text-fill-color: var(--vy-text);
	background: var(--vy-bg);
	max-width: 1240px;
	margin-inline: auto;
	padding: 0 20px 40px;
}

.vc-wrap p, .vc-wrap li, .vc-wrap span, .vc-wrap td, .vc-wrap th,
.vc-wrap label, .vc-wrap legend, .vc-wrap dt, .vc-wrap dd {
	color: var(--vy-text);
	-webkit-text-fill-color: var(--vy-text);
}

.vc-wrap h1, .vc-wrap h2, .vc-wrap h3 {
	font-family: var(--vy-serif);
	font-weight: 300;
	color: var(--vy-text);
	-webkit-text-fill-color: var(--vy-text);
}

/* ------------------------------------------------------------------ head */
.vc-head { text-align: center; padding: 44px 0 30px; }
.vc-eyebrow {
	font-size: 11px;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: var(--vy-gold-dk) !important;
	-webkit-text-fill-color: var(--vy-gold-dk);
	margin: 0 0 10px;
}
.vc-title {
	font-size: clamp(32px, 4.4vw, 48px);
	letter-spacing: 0.02em;
	margin: 0 0 26px;
}

/* -------------------------------------------------------- progress steps */
.vc-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	list-style: none;
	margin: 0 auto 8px;
	padding: 0;
	max-width: 520px;
}
.vc-progress__step {
	display: flex;
	align-items: center;
	gap: 9px;
	flex: 1 1 0;
	justify-content: center;
	position: relative;
}
.vc-progress__step + .vc-progress__step::before {
	content: "";
	position: absolute;
	left: -50%;
	right: 50%;
	top: 13px;
	height: 1px;
	background: var(--vy-line);
	z-index: 0;
	margin: 0 22px;
}
.vc-progress__dot {
	position: relative;
	z-index: 1;
	width: 27px;
	height: 27px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 12px;
	border: 1px solid var(--vy-line);
	background: var(--vy-bg);
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}
.vc-progress__label {
	position: relative;
	z-index: 1;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	background: var(--vy-bg);
	padding-right: 4px;
}
.vc-progress__step.is-current .vc-progress__dot,
.vc-progress__step.is-done .vc-progress__dot {
	background: var(--vy-gold);
	border-color: var(--vy-gold);
	color: var(--vy-on-gold) !important;
	-webkit-text-fill-color: var(--vy-on-gold);
}
.vc-progress__step.is-current .vc-progress__label,
.vc-progress__step.is-done .vc-progress__label {
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}

/* ======================================================================
   WooCommerce Cart / Checkout BLOCKS
   ====================================================================== */

.vc-wrap .wc-block-components-title,
.vc-wrap .wp-block-woocommerce-cart h2,
.vc-wrap .wc-block-cart__submit-container + *,
.vc-wrap .wc-block-components-order-summary__title {
	font-family: var(--vy-serif) !important;
	font-weight: 300 !important;
	letter-spacing: 0.02em;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}

/* Product titles + text inside blocks */
.vc-wrap .wc-block-components-product-name,
.vc-wrap .wc-block-cart-item__product-name {
	font-family: var(--vy-serif) !important;
	font-size: 21px !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
	text-decoration: none;
}
.vc-wrap .wc-block-components-product-metadata,
.vc-wrap .wc-block-components-product-metadata__description {
	font-size: 13px;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}

/* Item rows as cards */
.vc-wrap .wc-block-cart-items__row {
	border-bottom: 1px solid var(--vy-line);
	padding: 22px 0;
}
.vc-wrap .wc-block-cart-items thead { display: none; }
.vc-wrap .wc-block-cart-item__image img {
	border: 1px solid var(--vy-line);
	background: var(--vy-surface);
	border-radius: 0;
}

/* Prices */
.vc-wrap .wc-block-components-product-price__value,
.vc-wrap .wc-block-formatted-money-amount,
.vc-wrap .wc-block-components-totals-item__value {
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
	font-weight: 500;
}
.vc-wrap .wc-block-components-product-price__regular {
	text-decoration: line-through;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}

/* Quantity stepper */
.vc-wrap .wc-block-components-quantity-selector {
	border: 1px solid var(--vy-line-strong);
	border-radius: var(--vy-btn-r);
	background: var(--vy-surface);
}
.vc-wrap .wc-block-components-quantity-selector__input,
.vc-wrap .wc-block-components-quantity-selector__button {
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
	background: transparent;
	font-family: var(--vy-sans);
}
.vc-wrap .wc-block-components-quantity-selector::after { border: 0; }

/* Remove link */
.vc-wrap .wc-block-cart-item__remove-link {
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.vc-wrap .wc-block-cart-item__remove-link:hover {
	color: #E5827A !important;
	-webkit-text-fill-color: #E5827A;
}

/* Sticky order summary / sidebar */
.vc-wrap .wc-block-cart__sidebar .wc-block-components-sidebar,
.vc-wrap .wc-block-checkout__sidebar {
	position: sticky;
	top: 24px;
}
.vc-wrap .wc-block-components-sidebar .wc-block-components-panel,
.vc-wrap .wc-block-cart__sidebar > *,
.vc-wrap .wc-block-checkout__sidebar > * {
	background: var(--vy-surface);
	border: 1px solid var(--vy-line);
	border-radius: 0;
}
.vc-wrap .wc-block-components-totals-wrapper { border-top-color: var(--vy-line); }

/* Inputs */
.vc-wrap .wc-block-components-text-input input,
.vc-wrap .wc-block-components-textarea,
.vc-wrap .wc-block-components-combobox-control input,
.vc-wrap .wc-block-components-select__container,
.vc-wrap input[type="text"],
.vc-wrap input[type="email"],
.vc-wrap input[type="tel"],
.vc-wrap input[type="password"],
.vc-wrap select,
.vc-wrap textarea {
	border: 1px solid var(--vy-line) !important;
	border-radius: var(--vy-btn-r) !important;
	background: var(--vy-surface) !important;
	font-family: var(--vy-sans) !important;
	font-size: 15px !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text) !important;
	box-shadow: none !important;
}
.vc-wrap .wc-block-components-text-input input:focus,
.vc-wrap input:focus, .vc-wrap select:focus, .vc-wrap textarea:focus {
	border-color: var(--vy-gold) !important;
	outline: none !important;
}
.vc-wrap .wc-block-components-text-input label,
.vc-wrap .wc-block-components-checkout-step__title,
.vc-wrap label {
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	font-family: var(--vy-sans);
}
.vc-wrap .wc-block-components-checkout-step__title {
	font-family: var(--vy-serif) !important;
	font-size: 24px !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vc-wrap .wc-block-components-checkout-step__description {
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}

/* Payment method box */
.vc-wrap .wc-block-components-radio-control__option,
.vc-wrap .wp-block-woocommerce-checkout-payment-block .wc-block-components-radio-control {
	border: 1px solid var(--vy-line);
	border-radius: var(--vy-btn-r);
	padding: 14px 16px;
	margin-bottom: 10px;
	background: var(--vy-surface);
}
.vc-wrap .wc-block-components-radio-control__option--checked-option-highlighted,
.vc-wrap .wc-block-components-radio-control__option:has(input:checked) {
	border-color: var(--vy-gold);
	background: var(--vy-surface);
}

/* ---------------------------- ONE BUTTON SPEC ---------------------------- */
.vc-wrap .wc-block-cart__submit-button,
.vc-wrap .wc-block-components-checkout-place-order-button,
.vc-wrap .wc-block-components-button:not(.wc-block-components-panel__button):not(.wc-block-components-quantity-selector__button),
.vc-wrap .wp-element-button,
.vc-wrap a.checkout-button,
.vc-wrap button.button,
.vc-wrap .vc-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: var(--vy-btn-h) !important;
	min-height: var(--vy-btn-h) !important;
	padding: 0 26px !important;
	border: 1px solid var(--vy-gold) !important;
	border-radius: var(--vy-btn-r) !important;
	background: var(--vy-gold) !important;
	color: var(--vy-on-gold) !important;
	-webkit-text-fill-color: var(--vy-on-gold) !important;
	font-family: var(--vy-sans) !important;
	font-size: var(--vy-btn-fs) !important;
	font-weight: var(--vy-btn-fw) !important;
	letter-spacing: var(--vy-btn-ls) !important;
	text-transform: uppercase !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
}
.vc-wrap .wc-block-cart__submit-button:hover,
.vc-wrap .wc-block-components-checkout-place-order-button:hover,
.vc-wrap button.button:hover,
.vc-wrap a.checkout-button:hover {
	background: var(--vy-gold-dk) !important;
	border-color: var(--vy-gold-dk) !important;
	color: var(--vy-on-gold) !important;
	-webkit-text-fill-color: var(--vy-on-gold) !important;
}
.vc-wrap .wc-block-cart__submit-button,
.vc-wrap .wc-block-components-checkout-place-order-button { width: 100% !important; }

/* Coupon / secondary panel toggles stay quiet, not primary gold. */
.vc-wrap .wc-block-components-panel__button {
	background: transparent !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text) !important;
	font-family: var(--vy-sans) !important;
	letter-spacing: 0.06em;
}

/* Notices */
.vc-wrap .wc-block-components-notice-banner {
	border-radius: var(--vy-btn-r);
	font-family: var(--vy-sans);
}

/* ======================================================================
   Shortcode fallback ([woocommerce_cart] / [woocommerce_checkout])
   ====================================================================== */
.vc-wrap .woocommerce-cart-form table.shop_table { border: 0; border-collapse: collapse; }
.vc-wrap .woocommerce-cart-form table.shop_table th {
	border: 0;
	border-bottom: 1px solid var(--vy-line);
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	padding: 0 0 14px;
}
.vc-wrap .woocommerce-cart-form table.shop_table td {
	border: 0;
	border-bottom: 1px solid var(--vy-line);
	padding: 20px 0;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vc-wrap .cart_totals {
	background: var(--vy-surface);
	border: 1px solid var(--vy-line);
	padding: 26px;
}
.vc-wrap .cart_totals h2 { font-family: var(--vy-serif); font-size: 26px; margin-top: 0; }
.vc-wrap .woocommerce-checkout #order_review,
.vc-wrap .woocommerce-checkout .woocommerce-checkout-review-order {
	background: var(--vy-surface);
	border: 1px solid var(--vy-line);
	padding: 26px;
	position: sticky;
	top: 24px;
}
.vc-wrap #payment { background: transparent; border-radius: 0; }
.vc-wrap #payment ul.payment_methods {
	border: 0;
	padding: 0;
	background: var(--vy-surface);
}
.vc-wrap #payment ul.payment_methods li {
	border: 1px solid var(--vy-line);
	border-radius: var(--vy-btn-r);
	padding: 14px 16px;
	margin-bottom: 10px;
	list-style: none;
	background: var(--vy-surface);
}
.vc-wrap #payment div.payment_box {
	background: var(--vy-surface);
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
	border-radius: var(--vy-btn-r);
}
.vc-wrap #payment div.payment_box::before { display: none; }

/* ------------------- layout for our own cart.php / form-checkout.php ----
   Dormant while the pages use blocks; active the moment they are switched
   back to the shortcodes.
   ---------------------------------------------------------------------- */
.vc-cart { display: grid; grid-template-columns: 1fr 370px; gap: 44px; align-items: start; }
.vc-cart__form { margin: 0; }

.vc-item {
	display: grid;
	grid-template-columns: 96px 1fr 132px 110px 32px;
	gap: 18px;
	align-items: center;
	padding: 22px 0;
	border-bottom: 1px solid var(--vy-line);
}
.vc-item__media img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border: 1px solid var(--vy-line);
	background: var(--vy-surface);
	display: block;
}
.vc-item__name { font-family: var(--vy-serif); font-size: 22px; margin: 0 0 4px; }
.vc-item__name a { color: var(--vy-text) !important; -webkit-text-fill-color: var(--vy-text); text-decoration: none; }
.vc-item__meta, .vc-item__unit-label {
	font-size: 12px;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}
.vc-item__unit { font-size: 14px; margin: 4px 0 2px; }
.vc-item__stock { font-size: 12px; margin: 0; }
.vc-item__stock.is-in { color: #6FC79A !important; -webkit-text-fill-color: #6FC79A; }
.vc-item__stock.is-out { color: #E5827A !important; -webkit-text-fill-color: #E5827A; }
.vc-item__qty .quantity {
	display: flex;
	border: 1px solid var(--vy-line-strong);
	border-radius: var(--vy-btn-r);
	height: 46px;
	overflow: hidden;
	background: var(--vy-surface);
}
.vc-item__qty input.qty {
	width: 100%;
	border: 0;
	text-align: center;
	background: transparent;
	font-family: var(--vy-sans);
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vc-item__total { font-family: var(--vy-serif); font-size: 20px; text-align: right; }
.vc-remove {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border: 1px solid var(--vy-line);
	border-radius: 50%;
	text-decoration: none;
	font-size: 17px;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
}
.vc-remove:hover { border-color: #E5827A; color: #E5827A !important; -webkit-text-fill-color: #E5827A; }

.vc-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding: 24px 0; }
.vc-coupon { display: flex; gap: 10px; flex: 1 1 320px; }
.vc-coupon__input {
	flex: 1 1 auto;
	height: var(--vy-btn-h);
	padding: 0 14px;
	border: 1px solid var(--vy-line);
	border-radius: var(--vy-btn-r);
	font-family: var(--vy-sans);
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
	background: var(--vy-surface);
}
.vc-actions .vc-btn { width: auto !important; }

.vc-summary__inner {
	background: var(--vy-surface);
	border: 1px solid var(--vy-line);
	padding: 26px;
	position: sticky;
	top: 24px;
}
.vc-summary h2 { font-family: var(--vy-serif); font-size: 26px; margin: 0 0 16px; }
.vc-summary table { width: 100%; border-collapse: collapse; }
.vc-summary th, .vc-summary td {
	border: 0;
	border-bottom: 1px solid var(--vy-line);
	padding: 12px 0;
	font-size: 14px;
	text-align: left;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vc-summary td { text-align: right; }

.vc-checkout { display: grid; grid-template-columns: 1fr 380px; gap: 44px; align-items: start; }
.vc-panel { display: grid; grid-template-columns: 1fr; gap: 30px; }
.vc-checkout h3 { font-family: var(--vy-serif); font-size: 26px; margin: 0 0 18px; }
.vc-checkout .form-row { margin-bottom: 14px; }
.vc-checkout .form-row label {
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	margin-bottom: 6px;
	display: block;
}
.vc-checkout input.input-text, .vc-checkout textarea, .vc-checkout select {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--vy-line);
	border-radius: var(--vy-btn-r);
	background: var(--vy-surface);
	font-family: var(--vy-sans);
	font-size: 15px;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vc-checkout textarea { height: auto; padding: 12px 14px; min-height: 96px; }
.vc-review {
	background: var(--vy-surface);
	border: 1px solid var(--vy-line);
	padding: 26px;
	position: sticky;
	top: 24px;
}
.vc-review__title { margin-top: 0 !important; }
.vc-review__assurance {
	font-size: 13px;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--vy-line);
}
.vc-review__assurance a { color: var(--vy-gold-dk) !important; -webkit-text-fill-color: var(--vy-gold-dk); }

/* --------------------------------------------------- custom empty cart */
.vc-empty { text-align: center; padding: 60px 20px 20px; max-width: 620px; margin-inline: auto; }
.vc-empty__star { color: var(--vy-gold); margin-bottom: 22px; }
.vc-empty__star svg { width: 18px; height: 18px; }
.vc-empty__title { font-size: clamp(28px, 3.6vw, 40px); margin: 0 0 14px; }
.vc-empty__text {
	font-size: 15px;
	line-height: 1.8;
	color: var(--vy-muted) !important;
	-webkit-text-fill-color: var(--vy-muted);
	margin: 0 0 30px;
}
.vc-empty__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.vc-btn--ghost {
	background: transparent !important;
	border-color: var(--vy-line-strong) !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text) !important;
}
.vc-btn--ghost:hover {
	background: var(--vy-deep) !important;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text) !important;
}

/* ---------------------------------------------------- trust strip (once) */
.vy-trust {
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	background: var(--vy-deep);
	margin: 56px 0 0;
	padding: 32px 20px;
}
.vy-trust__inner {
	max-width: 1240px;
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}
.vy-trust__item { display: flex; align-items: center; gap: 12px; justify-content: center; }
.vy-trust__item span {
	font-size: 12.5px;
	letter-spacing: 0.05em;
	line-height: 1.45;
	color: var(--vy-text) !important;
	-webkit-text-fill-color: var(--vy-text);
}
.vy-trust__icon { width: 22px; height: 22px; flex: 0 0 22px; color: var(--vy-gold); }

/* ============================== responsive ============================== */
@media (max-width: 1024px) {
	.vy-trust__inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
	.vc-cart, .vc-checkout { grid-template-columns: 1fr; gap: 30px; }
	.vc-summary__inner, .vc-review { position: static; }
}
@media (max-width: 782px) {
	.vc-wrap { padding-inline: 16px; }
	.vc-item {
		grid-template-columns: 76px 1fr 32px;
		grid-template-areas: "media body remove" "qty qty total";
		row-gap: 14px;
	}
	.vc-item__media { grid-area: media; }
	.vc-item__body { grid-area: body; }
	.vc-item__remove { grid-area: remove; }
	.vc-item__qty { grid-area: qty; max-width: 132px; }
	.vc-item__total { grid-area: total; }
	.vc-item__media img { width: 76px; height: 76px; }
	.vc-coupon { flex: 1 1 100%; }
	.vc-head { padding: 30px 0 22px; }
	.vc-progress__label { display: none; }
	.vc-progress { max-width: 260px; }
	.vc-wrap .wc-block-cart__sidebar .wc-block-components-sidebar,
	.vc-wrap .wc-block-checkout__sidebar,
	.vc-wrap .woocommerce-checkout #order_review { position: static; }
	.vy-trust__inner { grid-template-columns: 1fr; gap: 16px; }
	.vc-wrap .wc-block-components-product-name,
	.vc-wrap .wc-block-cart-item__product-name { font-size: 18px !important; }
}
