/*
Theme Name: CineSigns

WooCommerce styles - Dark luxury theme
*/

/*--------------------------------------------------------------
# WooCommerce Main Wrapper
--------------------------------------------------------------*/
/* Shop content area is transparent so the fixed hero backdrop shows through
   when the user scrolls back up to the top. The page itself runs on the
   solid html bg (set via :has() further down). */
.woocommerce-page .site-main,
.woocommerce-page.woocommerce-shop .site-main,
.post-type-archive-product .site-main,
.single-product .site-main {
	background: transparent;
}

/* Extra padding-top for pages with the secondary category nav in the header */
.woocommerce-page.woocommerce-shop .site,
.tax-product_cat .site,
.single-product .site {
	padding-top: 120px;
}

/*--------------------------------------------------------------
# Shop Page
--------------------------------------------------------------*/
/* Shop pages run on pure black so the hero fade matches cleanly. The colour
   is applied to the ROOT (html) instead of body so the fixed hero-backdrop
   pseudo-elements (which use z-index: -1 to sit behind body content) can
   actually paint — body itself stays transparent on these pages. */
html:has(body.woocommerce),
html:has(body.woocommerce-page),
html:has(body.archive.post-type-archive-product),
html:has(body.tax-product_cat),
html:has(body.tax-product_tag),
html:has(body.single-product) {
	background: #000;
}

body.woocommerce,
body.woocommerce-page,
body.archive.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag,
body.single-product {
	background: transparent;
}

/* Shop Hero — tight typography-focused, backdrop image fixed at viewport top
   via ::before pseudo. Section itself stays in flow with eyebrow/title/desc;
   the cinematic backdrop pins to the viewport while the content scrolls
   over it. The .shop-hero--single variant (empty backdrop on single-product
   pages) uses its own fixed-section approach further down. */
.shop-hero {
	position: relative;
	padding: var(--space-8) 0 var(--space-5);
	min-height: clamp(180px, 28vh, 320px);
	display: flex;
	align-items: center;
}

/* Compact variant for cart + checkout — same desktop hero as shop, but tighter
   on mobile so the form/cart content starts closer to the top. */
@media screen and (max-width: 47.99em) {
	.shop-hero--compact {
		padding: var(--space-5) 0 var(--space-3);
		min-height: 0;
	}

	.shop-hero--compact .shop-hero__title {
		font-size: clamp(2.25rem, 1.5rem + 5vw, 3.25rem);
	}

	body.woocommerce-checkout .site-main > .container.section,
	body.woocommerce-cart .site-main > .container.section {
		padding-top: var(--space-5);
	}
}

/* Bring checkout content closer to the hero headline on desktop too. */
@media screen and (min-width: 48em) {
	body.woocommerce-checkout .site-main > .container.section {
		padding-top: var(--space-2);
	}
}

.shop-hero:not(.shop-hero--single)::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	/* Mobile budget: ~80px fixed header + ~50px category-nav strip ≈ 130px
	   are obscured by the chrome on top, so size the backdrop generously
	   below that so the cinema-curtain image is actually visible. */
	height: clamp(380px, 52dvh, 520px);
	background-color: #000;
	background-image:
		linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.4) 55%, rgba(0, 0, 0, 0.92) 88%, #000 100%),
		image-set(
			url('img/shop-hero.avif') type('image/avif'),
			url('img/shop-hero.webp') type('image/webp'),
			url('img/shop-hero.jpg') type('image/jpeg')
		);
	background-size: 100% 100%, cover;
	background-position: center, center 35%;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: -1;
}

@media screen and (min-width: 48em) {
	.shop-hero {
		padding: var(--space-10) 0 var(--space-6);
		min-height: clamp(200px, 24vh, 320px);
	}
	.shop-hero:not(.shop-hero--single)::before {
		height: clamp(360px, 44dvh, 520px);
	}
}

.shop-hero .container {
	width: 100%;
	position: relative;
	z-index: 1;
}

.shop-hero__inner {
	max-width: 1100px;
	margin: 0 auto;
	text-align: center;
}

.shop-hero__eyebrow {
	color: var(--color-accent-gold);
	font-size: var(--text-sm);
	text-transform: uppercase;
	letter-spacing: var(--tracking-widest, 0.18em);
	margin-bottom: var(--space-3);
	font-weight: var(--font-medium);
}

.shop-hero__title {
	font-size: clamp(2.25rem, 1.5rem + 5.5vw, 6rem);
	line-height: 1;
	letter-spacing: -0.025em;
	margin-bottom: var(--space-4);
	font-weight: var(--font-bold);
}

.shop-hero__description {
	color: var(--color-text-secondary);
	font-size: var(--text-base);
	line-height: var(--leading-relaxed);
	max-width: 540px;
	margin: 0 auto;
}

.shop-hero__description:empty {
	display: none;
}

.shop-page {
	padding: 0 0 var(--space-16);
	margin-top: -32px;
}

/* Single product page: cinematic backdrop pinned to the viewport top —
   stays put while content scrolls over it. Using `dvh` (dynamic viewport
   height) so the hero doesn't jump when iOS Safari's URL bar collapses. */
.shop-hero--single {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 0;
	height: clamp(420px, 58dvh, 660px);
	padding: 0;
	pointer-events: none;
	background-image:
		linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.35) 45%, rgba(0, 0, 0, 0.85) 80%, rgba(0, 0, 0, 0.95) 100%),
		image-set(
			url('img/shop-hero.avif') type('image/avif'),
			url('img/shop-hero.webp') type('image/webp'),
			url('img/shop-hero.jpg') type('image/jpeg')
		);
	background-size: 100% 100%, cover;
	background-position: center, center top;
	background-repeat: no-repeat;
}

@media screen and (min-width: 48em) {
	.shop-hero--single {
		height: clamp(520px, 68dvh, 780px);
	}
}

/* Hero is out of flow → reserve a top gap on main so content starts where
   the cinematic overlap begins (matches the previous in-flow layout where
   hero_min_height + negative margin_bottom ≈ 100–180px effective). */
.single-product .site-main {
	margin-top: clamp(80px, 14vh, 140px);
}

@media screen and (min-width: 48em) {
	.single-product .site-main {
		margin-top: clamp(120px, 18vh, 180px);
	}
}

.single-product .site-main .container.section {
	padding-top: 0;
}

/* Glass panel behind the product summary so text reads cleanly on the walnut backdrop */
.single-product .entry-summary {
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(18px) saturate(1.1);
	-webkit-backdrop-filter: blur(18px) saturate(1.1);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: var(--radius-lg);
	padding: var(--space-5);
}

@media screen and (min-width: 48em) {
	.single-product .entry-summary {
		padding: var(--space-10);
	}
}


/* Content area on single product is transparent so the hero bleeds behind it */
.single-product .site-main {
	background: transparent;
	position: relative;
	z-index: 1;
}

/* Shop Toolbar */
.shop-page__toolbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-3);
	margin-bottom: var(--space-6);
}

@media screen and (min-width: 48em) {
	.shop-page__toolbar {
		gap: var(--space-4);
		margin-bottom: var(--space-10);
	}
}

.woocommerce-result-count {
	color: var(--color-text-tertiary);
	font-size: var(--text-xs, 0.75rem);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0;
}

.woocommerce-ordering {
	margin: 0;
}

.woocommerce-ordering select {
	min-width: 0;
	max-width: 100%;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background: transparent;
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	padding: var(--space-2) var(--space-9) var(--space-2) var(--space-3);
	color: var(--color-text-secondary);
	font-size: var(--text-xs, 0.75rem);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%23c9a962' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='1 1.5 6 6.5 11 1.5'/></svg>");
	background-repeat: no-repeat;
	background-position: right var(--space-3) center;
	transition: border-color var(--transition-fast), color var(--transition-fast);
}

.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
	border-color: var(--color-accent-gold);
	color: var(--color-text-primary);
	outline: none;
}

.woocommerce-ordering select option {
	background: #000;
	color: var(--color-text-primary);
}

/*--------------------------------------------------------------
# Product Grid
--------------------------------------------------------------*/
ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: var(--space-3);
	row-gap: var(--space-8);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media screen and (min-width: 37.5em) {
	ul.products {
		column-gap: var(--space-6);
		row-gap: var(--space-12);
	}
}

@media screen and (min-width: 48em) {
	ul.products {
		grid-template-columns: repeat(3, 1fr);
		row-gap: var(--space-16);
	}
}

@media screen and (min-width: 64em) {
	ul.products {
		grid-template-columns: repeat(4, 1fr);
	}
}

ul.products li.product {
	list-style: none;
	margin: 0;
	float: none;
	width: auto;
}

/*--------------------------------------------------------------
# Product Card
--------------------------------------------------------------*/
.product-card {
	position: relative;
	background: transparent;
	transition: transform var(--transition-base);
	will-change: transform;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform: translateZ(0);
}

.product-card:hover {
	transform: translateY(-4px) translateZ(0);
}

.product-card__link {
	display: block;
	text-decoration: none;
}

.product-card__image {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-md);
}

.product-card__image img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.product-card:hover .product-card__image img {
	transform: scale(1.04);
}

.product-card__content {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-3) 0;
}

@media screen and (min-width: 37.5em) {
	.product-card__content {
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"title  price"
			"rating rating";
		column-gap: var(--space-5);
		row-gap: var(--space-2);
		align-items: baseline;
		padding: var(--space-4) 0;
	}

	.product-card__title { grid-area: title; }
	.product-card .price { grid-area: price; }
	.product-card__rating { grid-area: rating; }
}

/* Shop-card rating row: small, subtle, sits below the title.
   On mobile (flex-column), order:99 pushes it below the price (DOM has it
   between title and price thanks to WC's hook priority). */
.product-card__rating {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	line-height: 1;
	order: 99;
}

.product-card__rating .star-rating {
	--star-size: 11px;
	margin: 0;
	opacity: 0.7;
}

.product-card__rating-avg {
	font-size: 0.75em;
	font-weight: 600;
	color: var(--color-gold, #c9a962);
	font-variant-numeric: tabular-nums;
}

.product-card__rating-count {
	font-size: 0.7em;
	color: rgba(255, 255, 255, 0.35);
	font-variant-numeric: tabular-nums;
}

.product-card__title {
	font-size: var(--text-base);
	font-weight: var(--font-medium);
	color: var(--color-text-primary);
	margin: 0;
	line-height: var(--leading-snug);
	flex: 1 1 auto;
	min-width: 0;
}

.product-card .price {
	font-size: var(--text-sm);
	font-weight: var(--font-regular);
	color: var(--color-text-secondary);
	letter-spacing: 0.02em;
	flex: 0 0 auto;
	white-space: nowrap;
}

.product-card .price del {
	color: var(--color-text-tertiary);
	font-size: var(--text-xs);
	font-weight: var(--font-regular);
}

.product-card .price ins {
	color: var(--color-accent-gold);
	text-decoration: none;
	background: none;
	padding: 0;
}

.product-card__actions {
	padding-top: var(--space-2);
}

.product-card__actions .button,
.product-card__actions .add_to_cart_button {
	display: inline-block;
	background: transparent;
	border: none;
	color: var(--color-accent-gold);
	font-size: var(--text-xs);
	font-weight: var(--font-medium);
	padding: 0;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
}

.product-card__actions .button:hover,
.product-card__actions .add_to_cart_button:hover {
	color: var(--color-accent-gold-light);
	background: transparent;
}

/* Sale Badge */
.product-card .onsale,
.onsale {
	position: absolute;
	top: var(--space-3);
	left: var(--space-3);
	background: var(--color-accent-gold);
	color: var(--color-text-inverse);
	font-size: var(--text-xs);
	font-weight: var(--font-semibold);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-sm);
	z-index: 1;
}

@media screen and (max-width: 47.9375em) {
	.product-card .onsale,
	.onsale {
		top: var(--space-2);
		left: var(--space-2);
		font-size: 0.625rem;
		letter-spacing: 0.04em;
		padding: 2px var(--space-2);
	}
}

/*--------------------------------------------------------------
# Single Product
--------------------------------------------------------------*/
.product-main {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
}

@media screen and (min-width: 48em) {
	.product-main {
		grid-template-columns: 60fr 40fr;
		gap: var(--space-16);
	}
}

/* Product Gallery */
.woocommerce-product-gallery {
	position: relative;
	float: none;
	width: 100%;
	margin-bottom: 0;
}

.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.woocommerce-product-gallery__image {
	margin: 0;
}

.woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--radius-lg);
}

/* Main Image Container */
.woocommerce-product-gallery .flex-viewport {
	margin-bottom: var(--space-4);
	border-radius: var(--radius-xl);
	overflow: hidden;
	box-shadow:
		0 8px 32px rgba(0, 0, 0, 0.4),
		0 2px 8px rgba(0, 0, 0, 0.2);
	background: var(--color-bg-tertiary);
}

.woocommerce-product-gallery .flex-viewport img {
	border-radius: 0;
}

/* Thumbnail Strip */
.woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 auto;
	width: calc(20% - 5px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs li img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--radius-sm);
	border: 2px solid transparent;
	opacity: 0.5;
	cursor: pointer;
	transition: all 0.2s ease;
	background: var(--color-bg-tertiary);
}

.woocommerce-product-gallery .flex-control-thumbs li img:hover {
	opacity: 0.85;
	border-color: var(--color-border-accent);
}

.woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--color-accent-gold);
	box-shadow: 0 0 0 1px var(--color-accent-gold);
}

/* Lightbox Trigger */
.woocommerce-product-gallery__trigger {
	position: absolute;
	top: var(--space-3);
	right: var(--space-3);
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(8px);
	border-radius: var(--radius-full);
	z-index: 10;
	transition: all 0.2s ease;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

.woocommerce-product-gallery__trigger:hover {
	background: rgba(0, 0, 0, 0.8);
	transform: scale(1.05);
}

.woocommerce-product-gallery__trigger img {
	filter: invert(1);
	width: 18px;
	height: 18px;
}

/* Single Image (no gallery) */
.woocommerce-product-gallery--without-images .flex-viewport,
.woocommerce-product-gallery .woocommerce-product-gallery__image:only-child img {
	border-radius: var(--radius-xl);
}

/* Responsive Thumbnails */
@media (max-width: 768px) {
	.woocommerce-product-gallery .flex-control-thumbs li {
		width: calc(25% - 5px);
	}
}

/* Product Summary */
.entry-summary {
	margin: 0;
}

@media screen and (min-width: 48em) {
	.entry-summary {
		align-self: start;
	}
}

/* Sticky nur, wenn der Summary deutlich kürzer ist als das Viewport.
   Andernfalls würde der Block entweder einen inneren Scrollcontainer
   brauchen (führt zur sichtbaren zweiten Scrollbar) oder nach oben
   "wegscrollen". Auf hohen Screens (≥ 900px) ist meist Platz für den
   ganzen Block; darunter scrollt er natürlich mit. */
@media screen and (min-width: 48em) and (min-height: 900px) {
	.entry-summary {
		position: sticky;
		top: 180px;
	}
}

.entry-summary .product_title {
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	font-weight: var(--font-semibold);
	letter-spacing: var(--tracking-tight);
	line-height: var(--leading-tight);
	margin-bottom: var(--space-4);
}

.entry-summary .price {
	font-size: var(--text-xl);
	font-weight: var(--font-bold);
	margin-bottom: var(--space-6);
}

.entry-summary .price del {
	color: var(--color-text-tertiary);
	font-size: var(--text-lg);
	font-weight: var(--font-regular);
}

.entry-summary .price ins {
	color: var(--color-accent-gold);
	text-decoration: none;
	background: none;
}

.entry-summary .woocommerce-product-details__short-description {
	color: var(--color-text-secondary);
	margin-bottom: var(--space-6);
	line-height: var(--leading-relaxed);
}

/* Stock Status */
.stock {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	margin-bottom: var(--space-4);
}

.stock:empty::before {
	display: none;
}

.stock.in-stock {
	color: var(--color-success);
}

.stock.out-of-stock {
	color: var(--color-error);
}

/* Add to Cart Form */
.entry-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4);
	margin-bottom: var(--space-8);
}

.entry-summary .quantity {
	display: flex;
	align-items: center;
}

.entry-summary .quantity .qty {
	width: 80px;
	text-align: center;
	padding: var(--space-3);
}

.entry-summary .single_add_to_cart_button {
	flex: 1;
	min-width: 200px;
	background: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	color: var(--color-text-inverse);
	padding: var(--space-4) var(--space-8);
	font-size: var(--text-base);
}

.entry-summary .single_add_to_cart_button:hover {
	background: var(--color-accent-gold-light);
	border-color: var(--color-accent-gold-light);
}

.entry-summary .single_add_to_cart_button.loading {
	opacity: 0.7;
	cursor: wait;
}

/*
 * Inline confirmation rendered by js/add-to-cart.js after a successful AJAX add.
 * Minimalist dark/gold premium look — subtle gold accent on a dark elevated
 * surface, slim check icon, no chunky colored badges.
 */
.entry-summary form.cart:has(+ .cinesigns-atc-confirm) {
	margin-bottom: var(--space-3);
}

.cinesigns-atc-confirm {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-left: 1px solid var(--color-accent-gold);
	border-radius: var(--radius-md);
	padding: 0 var(--space-4);
	max-height: 0;
	border-top-width: 0;
	border-bottom-width: 0;
	margin-bottom: 0;
	opacity: 0;
	transform: translateY(-4px);
	overflow: hidden;
	pointer-events: none;
	transition:
		opacity var(--transition-base),
		transform var(--transition-base),
		max-height var(--transition-base),
		padding var(--transition-base),
		margin-bottom var(--transition-base),
		border-width var(--transition-base);
}

.cinesigns-atc-confirm.is-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	max-height: 80px;
	padding-top: var(--space-3);
	padding-bottom: var(--space-3);
	margin-bottom: var(--space-8);
	border-top-width: 1px;
	border-bottom-width: 1px;
}

.cinesigns-atc-confirm.is-error {
	border-left-color: var(--color-error);
}

.cinesigns-atc-confirm__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	color: var(--color-accent-gold);
}

.cinesigns-atc-confirm__icon svg {
	width: 16px;
	height: 16px;
	stroke-width: 2;
}

.cinesigns-atc-confirm.is-error .cinesigns-atc-confirm__icon {
	color: var(--color-error);
}

.cinesigns-atc-confirm__text {
	flex: 1;
	color: var(--color-text-primary);
	font-size: var(--text-sm);
	font-weight: var(--font-regular);
	letter-spacing: 0.01em;
}

.cinesigns-atc-confirm__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--color-accent-gold);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	text-decoration: none;
	white-space: nowrap;
	transition: color var(--transition-fast), gap var(--transition-fast);
}

.cinesigns-atc-confirm__link:hover {
	color: var(--color-accent-gold-light);
	gap: 10px;
}

.cinesigns-atc-confirm__link:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
	.cinesigns-atc-confirm,
	.cinesigns-atc-confirm.is-visible,
	.cinesigns-atc-confirm__link {
		transition: opacity 1ms linear;
	}
}

/* Product Meta */
.product_meta {
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border-subtle);
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.product_meta > span {
	display: block;
	margin-bottom: var(--space-2);
}

.product_meta a {
	color: var(--color-text-secondary);
}

.product_meta a:hover {
	color: var(--color-accent-gold);
}

/* Trademark Disclaimer */
.product-description-inline p.trademark-disclaimer,
.trademark-disclaimer {
	margin-top: var(--space-8);
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
	line-height: var(--leading-relaxed);
}

/* Price Suffix (inkl. MwSt. zzgl. Versand) */
.price-suffix {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
	margin-top: calc(var(--space-4) * -1);
	margin-bottom: var(--space-2);
}

.price-suffix a {
	color: var(--color-text-tertiary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.price-suffix a:hover {
	color: var(--color-accent-gold);
}

/* Delivery Time */
.delivery-time {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--text-sm);
	color: var(--color-success);
	font-weight: var(--font-medium);
	margin-bottom: var(--space-6);
}

.delivery-time .delivery-icon {
	flex-shrink: 0;
}

/* Product specs (size, material) below add-to-cart button */
.product-specs {
	list-style: none;
	margin: var(--space-6) 0 var(--space-4);
	padding: var(--space-4) 0;
	border-top: 1px solid var(--color-border-subtle);
	border-bottom: 1px solid var(--color-border-subtle);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.product-specs__item {
	display: grid;
	grid-template-columns: auto auto 1fr;
	align-items: center;
	gap: var(--space-3);
	font-size: var(--text-sm);
}

.product-specs__icon {
	color: var(--color-accent-gold);
	flex-shrink: 0;
}

.product-specs__label {
	color: var(--color-text-tertiary);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: var(--text-xs);
	font-weight: var(--font-medium);
}

.product-specs__value {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
	justify-self: end;
	text-align: right;
}

.product-specs__sub {
	color: var(--color-text-tertiary);
	font-weight: var(--font-normal);
	margin-left: var(--space-1);
}

/* "The Original — Made in Germany" badge in product summary */
.product-original-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--space-5);
	margin: var(--space-10) 0 var(--space-6);
	padding: var(--space-5);
	border: 1px solid var(--color-border-strong);
	border-radius: var(--radius-md);
}

.product-original-badge img {
	display: block;
	width: 70%;
	height: auto;
	opacity: 0.9;
	flex-shrink: 0;
}

.product-original-badge__text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-1);
	font-size: var(--text-xs);
	line-height: var(--leading-relaxed);
	color: var(--color-text-secondary);
}

.product-original-badge__text strong {
	font-weight: 500;
	color: var(--color-text-primary);
}

/* Inline Product Description */
.product-description-inline {
	margin-top: var(--space-12);
	padding: var(--space-6);
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
}

.product-additional-info-inline h3 {
	font-size: var(--text-lg);
	font-weight: var(--font-semibold);
	margin-bottom: var(--space-4);
}

.product-description-inline p {
	color: var(--color-text-primary);
	line-height: var(--leading-relaxed);
}

/* Inline Additional Information */
.product-additional-info-inline {
	margin-top: var(--space-6);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border-subtle);
}

.product-additional-info-inline table {
	width: 100%;
}

.product-additional-info-inline table th,
.product-additional-info-inline table td {
	padding: var(--space-3) 0;
	border-bottom: 1px solid var(--color-border-subtle);
}

.product-additional-info-inline table th {
	font-weight: var(--font-medium);
	color: var(--color-text-secondary);
	text-align: left;
	width: 40%;
}

.product-additional-info-inline table td {
	color: var(--color-text-primary);
}

/*--------------------------------------------------------------
# Single product layout: gallery → summary → description → tabs
# DOM order matches mobile reading order. On desktop, the summary is
# placed into column 2 and spans all rows so the long description and
# reviews tab flow into column 1 below the gallery.
# Span must equal the max number of column-1 items (gallery, description,
# product-family, tabs, upsells, related = 6). A larger span creates empty
# implicit row tracks; row-gap applies between them and produces hundreds
# of pixels of dead scroll-space before the footer.
--------------------------------------------------------------*/
@media screen and (min-width: 48em) {
	.product-main > .summary.entry-summary {
		grid-column: 2;
		grid-row: 1 / span 6;
	}
	.product-main > .woocommerce-product-gallery,
	.product-main > .product-description-inline,
	.product-main > .product-family,
	.product-main > .woocommerce-tabs,
	.product-main > .upsells.products,
	.product-main > .related.products {
		grid-column: 1;
	}
}

/*--------------------------------------------------------------
# Tabs (Reviews only)
--------------------------------------------------------------*/
.product-main > .woocommerce-tabs {
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border-subtle);
}

/* Hide tab navigation when only reviews tab exists */
.woocommerce-tabs ul.tabs:has(li:only-child) {
	display: none;
}

.woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--space-1);
	list-style: none;
	margin: 0 0 var(--space-8);
	padding: 0;
	border-bottom: 1px solid var(--color-border-subtle);
}

.woocommerce-tabs ul.tabs li {
	margin: 0;
}

.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: var(--space-4) var(--space-6);
	color: var(--color-text-secondary);
	font-weight: var(--font-medium);
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color var(--transition-fast), border-color var(--transition-fast);
}

.woocommerce-tabs ul.tabs li a:hover {
	color: var(--color-text-primary);
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--color-accent-gold);
	border-bottom-color: var(--color-accent-gold);
}

.woocommerce-tabs .panel {
	max-width: var(--width-narrow);
}

.woocommerce-tabs .panel h2 {
	font-size: var(--text-xl);
	margin-bottom: var(--space-6);
}

/*--------------------------------------------------------------
# Related Products
--------------------------------------------------------------*/
.related.products,
.upsells.products,
.product-family {
	margin-top: var(--space-12);
	padding-top: var(--space-8);
	border-top: 1px solid var(--color-border-subtle);
}

.related.products > h2,
.upsells.products > h2,
.product-family__title {
	font-size: var(--text-2xl);
	margin-bottom: var(--space-8);
}

/* Family cards live in the narrower left column of .product-main, so the
   standard 2-col title|price layout would crush titles into 3 lines.
   Stack title above price for this block only. */
.product-family__grid .product-card__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-1);
}

.product-family__grid .product-card .price {
	white-space: normal;
}

/*--------------------------------------------------------------
# Star Rating
--------------------------------------------------------------*/
.star-rating {
	overflow: hidden;
	position: relative;
	height: 1.2em;
	line-height: 1.2;
	width: 5.3em;
	font-family: star;
	font-weight: 400;
	color: var(--color-accent-gold);
}

.star-rating::before {
	content: "\53\53\53\53\53";
	opacity: 0.3;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
}

.star-rating span {
	overflow: hidden;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
	padding-top: 1.5em;
}

.star-rating span::before {
	content: "\53\53\53\53\53";
	top: 0;
	position: absolute;
	left: 0;
	color: var(--color-accent-gold);
}

/* Interactive Stars */
p.stars a {
	position: relative;
	height: 1em;
	width: 1em;
	text-indent: -999em;
	display: inline-block;
	text-decoration: none;
	margin-right: 1px;
	font-weight: 400;
}

p.stars a::before {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1em;
	height: 1em;
	line-height: 1;
	font-family: star;
	content: "\53";
	color: var(--color-text-tertiary);
	text-indent: 0;
}

p.stars:hover a::before,
p.stars.selected a.active::before,
p.stars.selected a:not(.active)::before {
	color: var(--color-accent-gold);
}

p.stars a:hover ~ a::before,
p.stars.selected a.active ~ a::before {
	color: var(--color-text-tertiary);
}

/*--------------------------------------------------------------
# Cart
--------------------------------------------------------------*/
.woocommerce-cart .woocommerce {
	padding: 0 0 var(--space-8);
}

/* Pull the cart content up under the shop hero, like .shop-page does on archives */
.woocommerce-cart .site-main > .container.section {
	padding-top: var(--space-2);
	margin-top: -32px;
}

.woocommerce-cart-form {
	margin-bottom: var(--space-8);
}

table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

table.shop_table th {
	background: var(--color-bg-tertiary);
	color: var(--color-text-secondary);
	font-size: var(--text-xs);
	font-weight: var(--font-semibold);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	padding: var(--space-4);
	text-align: left;
}

table.shop_table td {
	padding: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
	vertical-align: middle;
}

table.shop_table tr:last-child td {
	border-bottom: none;
}

table.shop_table .product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--radius-md);
}

table.shop_table .product-name a {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
}

table.shop_table .product-name a:hover {
	color: var(--color-accent-gold);
}

table.shop_table .product-remove a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--color-text-tertiary);
	border-radius: var(--radius-md);
	transition: color var(--transition-fast), background var(--transition-fast);
}

table.shop_table .product-remove a:hover {
	color: var(--color-error);
	background: rgba(255, 69, 58, 0.1);
}

table.shop_table .quantity .qty {
	width: 60px;
	text-align: center;
}

table.shop_table .actions {
	text-align: right;
}

table.shop_table .actions .button {
	margin-left: var(--space-2);
}

/* Responsive Cart */
table.shop_table_responsive thead {
	display: none;
}

table.shop_table_responsive tr td {
	display: block;
	text-align: right;
	padding: var(--space-3) var(--space-4);
}

table.shop_table_responsive tr td::before {
	content: attr(data-title) ": ";
	float: left;
	font-weight: var(--font-medium);
	color: var(--color-text-secondary);
}

table.shop_table_responsive tr td.product-remove::before,
table.shop_table_responsive tr td.actions::before {
	display: none;
}

table.shop_table_responsive tr {
	border-bottom: 1px solid var(--color-border-default);
	padding: var(--space-4) 0;
}

@media screen and (min-width: 48em) {
	table.shop_table_responsive thead {
		display: table-header-group;
	}

	table.shop_table_responsive tr td {
		display: table-cell;
		text-align: left;
	}

	table.shop_table_responsive tr td::before {
		display: none;
	}

	table.shop_table_responsive tr {
		border-bottom: none;
	}
}

/* Cart Totals */
.cart_totals {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
}

.cart_totals h2 {
	font-size: var(--text-xl);
	margin-bottom: var(--space-6);
}

.cart_totals table {
	background: transparent;
}

.cart_totals table th,
.cart_totals table td {
	padding: var(--space-3) 0;
	background: transparent;
}

.cart_totals table th {
	color: var(--color-text-secondary);
	font-weight: var(--font-medium);
	text-transform: none;
	letter-spacing: normal;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	font-size: var(--text-lg);
	font-weight: var(--font-bold);
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-default);
}

.wc-proceed-to-checkout {
	margin-top: var(--space-6);
}

.wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	background: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	color: var(--color-text-inverse);
	padding: var(--space-4);
	font-size: var(--text-base);
}

.wc-proceed-to-checkout .checkout-button:hover {
	background: var(--color-accent-gold-light);
	border-color: var(--color-accent-gold-light);
}

/* Empty Cart */
.cart-empty {
	text-align: center;
	padding: var(--space-16) var(--space-4);
}

.return-to-shop .button {
	background: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	color: var(--color-text-inverse);
}

/*--------------------------------------------------------------
# Checkout
--------------------------------------------------------------*/
.woocommerce-checkout .woocommerce {
	padding: var(--space-8) 0;
}

.woocommerce-checkout .col2-set {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
}

@media screen and (min-width: 48em) {
	.woocommerce-checkout .col2-set {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-checkout h3 {
	font-size: var(--text-xl);
	margin-bottom: var(--space-6);
}

/* Form Fields */
.woocommerce-checkout .form-row {
	margin-bottom: var(--space-4);
}

.woocommerce-checkout .form-row label {
	display: block;
	margin-bottom: var(--space-2);
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
}

.woocommerce-checkout .form-row .required {
	color: var(--color-error);
}

.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
	width: 100%;
}

/* Keine grünen "validated" Rahmen — Default-Border lassen wenn Feld OK ist.
   Nur rot wenn invalid, das reicht als Feedback. */
.woocommerce-checkout .form-row.woocommerce-invalid .input-text {
	border-color: var(--color-error);
}

/* Order Review */
#order_review_heading {
	margin-top: var(--space-8);
}

.woocommerce-checkout-review-order {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
}

.woocommerce-checkout-review-order-table {
	background: transparent;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	background: transparent;
	padding: var(--space-3) 0;
}

/* Payment Methods */
#payment {
	margin-top: var(--space-6);
}

#payment ul.payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

#payment ul.payment_methods li {
	margin-bottom: var(--space-3);
	padding: var(--space-4);
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-md);
}

#payment ul.payment_methods li label {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	cursor: pointer;
	font-weight: var(--font-medium);
}

#payment .payment_box {
	padding: var(--space-4);
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

#payment .place-order {
	margin-top: var(--space-6);
}

#payment #place_order {
	display: block;
	width: 100%;
	background: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	color: var(--color-text-inverse);
	padding: var(--space-5);
	font-size: var(--text-lg);
}

#payment #place_order:hover {
	background: var(--color-accent-gold-light);
	border-color: var(--color-accent-gold-light);
}

/*--------------------------------------------------------------
# Notices
--------------------------------------------------------------*/
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	padding: var(--space-4) var(--space-6);
	margin-bottom: var(--space-6);
	border-radius: var(--radius-md);
	font-size: var(--text-sm);
}

.woocommerce-message {
	background: rgba(52, 199, 89, 0.1);
	border: 1px solid var(--color-success);
	color: var(--color-success);
}

.woocommerce-info,
.woocommerce-noreviews,
p.no-comments {
	background: rgba(90, 200, 250, 0.1);
	border: 1px solid var(--color-info);
	color: var(--color-info);
}

.woocommerce-error {
	background: rgba(255, 69, 58, 0.1);
	border: 1px solid var(--color-error);
	color: var(--color-error);
	list-style: none;
	margin: 0 0 var(--space-6);
	padding: var(--space-4) var(--space-6);
}

.woocommerce-error li {
	margin: 0;
}

/* Demo Store Notice */
.demo_store {
	position: fixed;
	left: 0;
	bottom: 0;
	right: 0;
	margin: 0;
	padding: var(--space-4);
	background: var(--color-info);
	color: var(--color-text-inverse);
	text-align: center;
	z-index: 9999;
}

/*--------------------------------------------------------------
# Forms & Password
--------------------------------------------------------------*/
.woocommerce-password-strength {
	text-align: right;
	font-size: var(--text-sm);
	margin-top: var(--space-2);
}

.woocommerce-password-strength.strong {
	color: var(--color-success);
}

.woocommerce-password-strength.short,
.woocommerce-password-strength.bad {
	color: var(--color-error);
}

.woocommerce-password-strength.good {
	color: var(--color-warning);
}

/*--------------------------------------------------------------
# Widgets
--------------------------------------------------------------*/
.widget_price_filter .price_slider {
	margin-bottom: var(--space-6);
}

.widget_price_filter .price_slider_amount {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.widget_price_filter .ui-slider {
	position: relative;
	height: 4px;
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-full);
}

.widget_price_filter .ui-slider .ui-slider-range {
	position: absolute;
	height: 100%;
	background: var(--color-accent-gold);
	border-radius: var(--radius-full);
}

.widget_price_filter .ui-slider .ui-slider-handle {
	position: absolute;
	width: 16px;
	height: 16px;
	background: var(--color-accent-gold);
	border-radius: var(--radius-full);
	cursor: ew-resize;
	margin-top: -6px;
	outline: none;
}

.widget_price_filter .ui-slider .ui-slider-handle:hover,
.widget_price_filter .ui-slider .ui-slider-handle:focus {
	box-shadow: var(--shadow-gold);
}

/*--------------------------------------------------------------
# My Account
--------------------------------------------------------------*/
.woocommerce-account .woocommerce {
	padding: var(--space-8) 0;
}

.woocommerce-MyAccount-navigation {
	margin-bottom: var(--space-8);
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: var(--space-3) var(--space-5);
	background: var(--color-bg-secondary);
	border-radius: var(--radius-md);
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	transition: background var(--transition-fast), color var(--transition-fast);
}

.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
	background: var(--color-accent-gold);
	color: var(--color-text-inverse);
}

@media screen and (min-width: 48em) {
	.woocommerce-account .woocommerce {
		display: grid;
		grid-template-columns: 200px 1fr;
		gap: var(--space-8);
	}

	.woocommerce-MyAccount-navigation {
		margin-bottom: 0;
	}

	.woocommerce-MyAccount-navigation ul {
		flex-direction: column;
	}
}

/*--------------------------------------------------------------
# Breadcrumbs
--------------------------------------------------------------*/
.woocommerce-breadcrumb {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
	margin-bottom: var(--space-6);
}

.woocommerce-breadcrumb a {
	color: var(--color-text-tertiary);
}

.woocommerce-breadcrumb a:hover {
	color: var(--color-accent-gold);
}

/*--------------------------------------------------------------
# Pagination
--------------------------------------------------------------*/
.woocommerce-pagination {
	margin-top: var(--space-12);
	text-align: center;
}

.woocommerce-pagination ul {
	display: inline-flex;
	gap: var(--space-2);
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--space-3);
	background: transparent;
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	color: var(--color-text-tertiary);
	font-weight: var(--font-medium);
	font-size: var(--text-sm);
	transition: border-color var(--transition-fast), color var(--transition-fast);
}

.woocommerce-pagination ul li a:hover {
	border-color: var(--color-accent-gold);
	color: var(--color-text-primary);
}

.woocommerce-pagination ul li span.current {
	background: transparent;
	border-color: var(--color-accent-gold);
	color: var(--color-accent-gold);
	font-weight: var(--font-semibold);
}

/*--------------------------------------------------------------
# WooCommerce Block Checkout
--------------------------------------------------------------*/
.wc-block-checkout,
.wc-block-cart {
	--wc-block-components-form-control-background: var(--color-bg-secondary);
	--wc-block-components-form-control-border: var(--color-border-default);
	--wc-block-components-form-control-focus-border: var(--color-accent-gold);
	--wc-block-components-form-control-text: var(--color-text-primary);
}

/* Block Checkout Input Fields */
.wc-block-components-text-input input,
.wc-block-components-select-input select,
.wc-block-components-textarea textarea {
	background: var(--color-bg-secondary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
	color: var(--color-text-primary) !important;
	font-size: var(--text-base) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-select-input select:focus,
.wc-block-components-textarea textarea:focus {
	border-color: var(--color-accent-gold) !important;
	box-shadow: 0 0 0 2px var(--color-accent-gold-muted) !important;
	outline: none !important;
}

/* Floating Labels - make them more visible */
.wc-block-components-text-input label,
.wc-block-components-select-input label {
	color: var(--color-text-secondary) !important;
	font-size: var(--text-sm) !important;
}

/* Placeholder text */
.wc-block-components-text-input input::placeholder {
	color: var(--color-text-tertiary) !important;
	opacity: 1 !important;
}

/* When input has value or is focused, label moves up */
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label,
.wc-block-components-select-input.is-active label {
	color: var(--color-text-secondary) !important;
	font-size: var(--text-xs) !important;
}

/* Select dropdown styling */
.wc-block-components-select-input select,
.wc-blocks-components-select__select {
	appearance: none !important;
	background: var(--color-bg-secondary) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23a1a1a6' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right var(--space-4) center !important;
	padding-right: var(--space-10) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
	color: var(--color-text-primary) !important;
	font-size: var(--text-base) !important;
}

.wc-blocks-components-select__select:focus {
	border-color: var(--color-accent-gold) !important;
	box-shadow: 0 0 0 2px var(--color-accent-gold-muted) !important;
	outline: none !important;
}

/* Select wrapper */
.wc-blocks-components-select {
	background: transparent !important;
}

.wc-blocks-components-select__container {
	background: var(--color-bg-secondary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
}

.wc-blocks-components-select__label {
	color: var(--color-text-secondary) !important;
}

/* Country/State Combobox - Target the wrapper and all inputs */
.wc-block-components-combobox,
.wc-block-components-country-input,
.wc-block-components-state-input {
	background: transparent !important;
}

.wc-block-components-combobox .wc-block-components-combobox-control,
.wc-block-components-combobox .components-combobox-control,
.wc-block-components-country-input .wc-block-components-combobox-control,
.wc-block-components-state-input .wc-block-components-combobox-control {
	background: var(--color-bg-secondary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
}

.wc-block-components-combobox input,
.wc-block-components-country-input input,
.wc-block-components-state-input input,
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-combobox input[type="text"] {
	background: var(--color-bg-secondary) !important;
	border: none !important;
	border-radius: var(--radius-md) !important;
	color: var(--color-text-primary) !important;
	font-size: var(--text-base) !important;
}

.wc-block-components-combobox input:focus,
.wc-block-components-country-input input:focus,
.wc-block-components-state-input input:focus {
	border-color: var(--color-accent-gold) !important;
	box-shadow: none !important;
	outline: none !important;
}

.wc-block-components-combobox:focus-within,
.wc-block-components-country-input:focus-within,
.wc-block-components-state-input:focus-within {
	border-color: var(--color-accent-gold) !important;
	box-shadow: 0 0 0 2px var(--color-accent-gold-muted) !important;
}

/* Combobox dropdown list */
.wc-block-components-combobox .components-form-token-field__suggestions-list,
.wc-block-components-combobox-control__menu,
.components-popover__content {
	background: var(--color-bg-secondary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
}

.wc-block-components-combobox .components-form-token-field__suggestion,
.wc-block-components-combobox-control__option,
.components-popover__content li {
	color: var(--color-text-primary) !important;
	padding: var(--space-2) var(--space-4) !important;
	background: var(--color-bg-secondary) !important;
}

.wc-block-components-combobox .components-form-token-field__suggestion:hover,
.wc-block-components-combobox .components-form-token-field__suggestion.is-selected,
.wc-block-components-combobox-control__option:hover,
.wc-block-components-combobox-control__option.is-highlighted,
.components-popover__content li:hover {
	background: var(--color-bg-tertiary) !important;
	color: var(--color-text-primary) !important;
}

/* Combobox label */
.wc-block-components-combobox label {
	color: var(--color-text-secondary) !important;
}

/* Checkbox styling */
.wc-block-components-checkbox .wc-block-components-checkbox__input {
	accent-color: var(--color-accent-gold);
}

.wc-block-components-checkbox .wc-block-components-checkbox__label {
	color: var(--color-text-secondary) !important;
}

/* Block checkout headings */
.wc-block-checkout__sidebar .wc-block-components-title,
.wc-block-checkout__main .wc-block-components-title {
	color: var(--color-text-primary) !important;
	font-weight: var(--font-semibold) !important;
}

/* Error/validation messages */
.wc-block-components-validation-error {
	color: var(--color-error) !important;
}

/* Place order button */
.wc-block-components-checkout-place-order-button {
	background: var(--color-accent-gold) !important;
	border: none !important;
	border-radius: var(--radius-md) !important;
	color: #0a0a0a !important;
	font-weight: var(--font-semibold) !important;
	padding: var(--space-4) var(--space-6) !important;
	text-transform: uppercase !important;
	letter-spacing: var(--tracking-wide) !important;
}

.wc-block-components-checkout-place-order-button:hover {
	background: var(--color-accent-gold-light) !important;
}

/* Return to cart link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--color-accent-gold) !important;
}

.wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--color-accent-gold-light) !important;
}

/* Order summary */
.wc-block-components-order-summary {
	background: var(--color-bg-secondary) !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-4) !important;
}

/* Totals */
.wc-block-components-totals-item {
	border-color: var(--color-border-subtle) !important;
}

.wc-block-components-totals-item__label {
	color: var(--color-text-secondary) !important;
}

.wc-block-components-totals-item__value {
	color: var(--color-text-primary) !important;
}

/* Notice/Error box */
.wc-block-components-notice-banner {
	border-radius: var(--radius-md) !important;
}

.wc-block-components-notice-banner.is-error {
	background: rgba(255, 69, 58, 0.1) !important;
	border-color: var(--color-error) !important;
}

.wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content {
	color: var(--color-text-primary) !important;
}

/*--------------------------------------------------------------
# WooCommerce Block Cart - Styling wie Kasse
--------------------------------------------------------------*/

/* Hauptcontainer für den Warenkorb */
.wc-block-cart {
	padding: var(--space-8) 0;
}

/* Produkt-Tabelle im Warenkorb - dunkelgraue Box wie Bestellübersicht */
.wc-block-cart__main .wc-block-cart-items {
	background: var(--color-bg-secondary) !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-6) !important;
	margin-bottom: var(--space-6);
}

/* Einzelne Produkt-Zeilen */
.wc-block-cart-items__row {
	border-bottom: 1px solid var(--color-border-subtle) !important;
	padding: var(--space-4) 0 !important;
}

.wc-block-cart-items__row:last-child {
	border-bottom: none !important;
}

/* Produktbild im Warenkorb */
.wc-block-cart-item__image img {
	border-radius: var(--radius-md) !important;
}

/* Produktname */
.wc-block-cart-item__product-name,
.wc-block-components-product-name {
	color: var(--color-text-primary) !important;
	font-weight: var(--font-medium) !important;
}

.wc-block-cart-item__product-name:hover,
.wc-block-components-product-name:hover {
	color: var(--color-accent-gold) !important;
}

/* Produktpreis */
.wc-block-cart-item__product-price,
.wc-block-components-product-price {
	color: var(--color-text-secondary) !important;
}

/* Produktbeschreibung/Meta */
.wc-block-cart-item__product-metadata,
.wc-block-components-product-metadata {
	color: var(--color-text-tertiary) !important;
	font-size: var(--text-sm) !important;
}

/* Mengensteuerung */
.wc-block-cart-item__quantity .wc-block-components-quantity-selector {
	background: var(--color-bg-tertiary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
}

.wc-block-components-quantity-selector__button {
	color: var(--color-text-primary) !important;
	background: transparent !important;
}

.wc-block-components-quantity-selector__button:hover {
	color: var(--color-accent-gold) !important;
}

.wc-block-components-quantity-selector__input {
	color: var(--color-text-primary) !important;
	background: transparent !important;
}

/* Artikel entfernen Link */
.wc-block-cart-item__remove-link {
	color: var(--color-accent-gold) !important;
	font-size: var(--text-sm) !important;
}

.wc-block-cart-item__remove-link:hover {
	color: var(--color-accent-gold-light) !important;
	text-decoration: underline !important;
}

/* Warenkorb-Summen Sidebar - eine zusammenhängende dunkelgraue Box */
.wc-block-cart__sidebar {
	background: var(--color-bg-secondary) !important;
	border-radius: var(--radius-lg) !important;
	overflow: hidden !important;
	padding: var(--space-6) !important;
}

.wc-block-cart__totals-title {
	color: var(--color-text-primary) !important;
	font-size: var(--text-xl) !important;
	font-weight: var(--font-semibold) !important;
	padding: 0 0 var(--space-6) 0 !important;
	margin: 0 !important;
	background: transparent !important;
}

/* Totals Container */
.wc-block-cart .wc-block-components-totals-wrapper {
	background: transparent !important;
	padding: 0 !important;
}

.wc-block-cart .wc-block-components-totals-wrapper:first-child {
	padding-top: 0 !important;
}

.wc-block-cart .wc-block-components-totals-wrapper:last-of-type {
	padding-bottom: 0 !important;
}

/* Gutschein/Coupon Bereich */
.wc-block-cart .wc-block-components-totals-coupon {
	background: transparent !important;
	padding: 0 0 var(--space-6) 0 !important;
}

/* Panel-Button Styling */
.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: var(--color-text-primary) !important;
	padding: 0 !important;
	margin-bottom: var(--space-3) !important;
}

.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-panel__button:hover {
	color: var(--color-accent-gold) !important;
}

.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	fill: var(--color-text-secondary) !important;
}

/* Gutschein Label */
.wc-block-cart .wc-block-components-totals-coupon__content > label,
.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-text-input label {
	color: var(--color-text-secondary) !important;
	font-size: var(--text-sm) !important;
	margin-bottom: var(--space-2) !important;
}

/* Gutschein Input */
.wc-block-cart .wc-block-components-totals-coupon__content {
	display: flex !important;
	gap: var(--space-3) !important;
	align-items: flex-start !important;
}

.wc-block-cart .wc-block-components-totals-coupon__content input,
.wc-block-cart .wc-block-components-totals-coupon__content .wc-block-components-text-input input {
	background: var(--color-bg-tertiary) !important;
	border: 1px solid var(--color-border-default) !important;
	border-radius: var(--radius-md) !important;
	color: var(--color-text-primary) !important;
	padding: var(--space-3) var(--space-4) !important;
	flex: 1 !important;
}

.wc-block-cart .wc-block-components-totals-coupon__content input:focus {
	border-color: var(--color-accent-gold) !important;
	box-shadow: 0 0 0 2px var(--color-accent-gold-muted) !important;
	outline: none !important;
}

.wc-block-cart .wc-block-components-totals-coupon__content .wc-block-components-button {
	background: var(--color-accent-gold) !important;
	color: #0a0a0a !important;
	border-radius: var(--radius-md) !important;
	padding: var(--space-3) var(--space-5) !important;
	font-weight: var(--font-semibold) !important;
	white-space: nowrap !important;
}

.wc-block-cart .wc-block-components-totals-coupon__content .wc-block-components-button:hover {
	background: var(--color-accent-gold-light) !important;
}

/* Zwischensumme und Gesamtsumme */
.wc-block-cart .wc-block-components-totals-footer-item {
	background: transparent !important;
	padding: var(--space-4) 0 0 0 !important;
	border-top: 1px solid var(--color-border-subtle) !important;
	margin-top: var(--space-4) !important;
}

.wc-block-components-totals-footer-item__label {
	color: var(--color-text-primary) !important;
	font-size: var(--text-lg) !important;
	font-weight: var(--font-semibold) !important;
}

.wc-block-components-totals-footer-item__value {
	color: var(--color-accent-gold) !important;
	font-size: var(--text-lg) !important;
	font-weight: var(--font-bold) !important;
}

/* Weiter zur Kasse Button */
.wc-block-cart__submit-container {
	background: transparent !important;
	padding: var(--space-6) 0 0 0 !important;
}

.wc-block-cart__submit-button {
	background: transparent !important;
	border: none !important;
	color: var(--color-accent-gold) !important;
	font-weight: var(--font-semibold) !important;
	text-transform: uppercase !important;
	letter-spacing: var(--tracking-wide) !important;
	padding: 0 !important;
	text-align: center !important;
	width: 100% !important;
}

.wc-block-cart__submit-button:hover {
	color: var(--color-accent-gold-light) !important;
	background: transparent !important;
}

/* Spalten-Header ausblenden wie auf dem Screenshot */
.wc-block-cart-items__header {
	display: none !important;
}

/* Cross-sells Bereich */
.wc-block-cart .cross-sells {
	background: var(--color-bg-secondary) !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-6) !important;
	margin-top: var(--space-6) !important;
}

/* Allgemeine Abstände und Layout */
.wc-block-cart .wc-block-components-sidebar-layout {
	gap: var(--space-8) !important;
}

/* Mobile Anpassungen */
@media screen and (max-width: 48em) {
	.wc-block-cart__main .wc-block-cart-items,
	.wc-block-cart__totals-title,
	.wc-block-cart .wc-block-components-totals-wrapper,
	.wc-block-cart .wc-block-components-totals-footer-item,
	.wc-block-cart__submit-container {
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
}

/*--------------------------------------------------------------
# Product Category Navigation (Secondary Nav Strip)
--------------------------------------------------------------*/
.product-category-nav {
	position: relative;
	margin: 0;
	padding-top: var(--space-3);
}

/* Gold gradient separator line — centered, fades on both sides */
.product-category-nav::before {
	content: '';
	position: absolute;
	top: var(--space-3);
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - var(--container-padding) * 2);
	max-width: var(--width-wide);
	height: 1px;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(201, 169, 98, 0.30) 20%,
		rgba(201, 169, 98, 0.30) 80%,
		transparent 100%
	);
	pointer-events: none;
}

.product-category-nav__container {
	max-width: var(--width-wide);
	margin: 0 auto;
	padding: 0 var(--container-padding);
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
}

/* Edge scroll indicators — small chevrons hint that the strip scrolls horizontally on mobile */
.product-category-nav__edge {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	color: var(--color-text-secondary);
	pointer-events: none;
	opacity: 0.85;
}

.product-category-nav__edge--left {
	left: 2px;
	background: linear-gradient(90deg, rgba(10, 10, 10, 0.95) 35%, rgba(10, 10, 10, 0));
	padding-right: 8px;
	width: 36px;
	justify-content: flex-start;
	padding-left: 4px;
}

.product-category-nav__edge--right {
	right: 2px;
	background: linear-gradient(-90deg, rgba(10, 10, 10, 0.95) 35%, rgba(10, 10, 10, 0));
	padding-left: 8px;
	width: 36px;
	justify-content: flex-end;
	padding-right: 4px;
}

@media screen and (max-width: 47.9375em) {
	.product-category-nav__edge {
		display: flex;
	}
}

.product-category-nav__container::-webkit-scrollbar {
	display: none;
}

.product-category-nav__list {
	display: flex;
	gap: var(--space-1);
	list-style: none;
	margin: 0;
	padding: var(--space-2) 0;
	min-width: max-content;
}

.product-category-nav__item {
	flex-shrink: 0;
}

.product-category-nav__item:last-child .product-category-nav__link {
	padding-right: 0;
}

.product-category-nav__link,
.product-category-nav__link:visited {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	background: transparent;
	border: none;
	border-radius: var(--radius-sm);
	color: var(--color-text-primary);
	font-size: var(--text-xs);
	font-weight: var(--font-medium);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	white-space: nowrap;
	transition: color var(--transition-base), background var(--transition-base);
}

/* Subtle warm glow on hover */
.product-category-nav__link:hover {
	color: var(--color-accent-gold-light);
	background: rgba(201, 169, 98, 0.06);
}

.product-category-nav__link:focus-visible {
	outline: 1px solid var(--color-accent-gold);
	outline-offset: 2px;
}

/* Active: gold text + glowing underline */
.product-category-nav__link.is-active {
	color: var(--color-accent-gold);
	background: transparent;
}

.product-category-nav__link.is-active::after {
	content: '';
	position: absolute;
	bottom: -2px;
	left: var(--space-4);
	right: var(--space-4);
	height: 1px;
	background: var(--color-accent-gold);
	box-shadow: 0 0 6px rgba(201, 169, 98, 0.5), 0 0 12px rgba(201, 169, 98, 0.2);
}

.product-category-nav__link.is-active:hover {
	color: var(--color-accent-gold-light);
	background: rgba(201, 169, 98, 0.06);
}

/* Category thumbnail icon */
.product-category-nav__icon {
	width: 18px;
	height: 18px;
	border-radius: var(--radius-full);
	overflow: hidden;
	flex-shrink: 0;
	border: 1px solid rgba(255, 255, 255, 0.1);
	transition: border-color var(--transition-base);
}

.product-category-nav__link:hover .product-category-nav__icon,
.product-category-nav__link.is-active .product-category-nav__icon {
	border-color: rgba(201, 169, 98, 0.4);
}

.product-category-nav__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-category-nav__text {
	line-height: 1;
}

/* Count badge — subtle and refined */
.product-category-nav__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	background: transparent;
	border-radius: var(--radius-full);
	font-size: 10px;
	font-weight: var(--font-regular);
	line-height: 1;
	color: var(--color-text-secondary);
	opacity: 0.7;
	transition: opacity var(--transition-base), color var(--transition-base);
}

.product-category-nav__link:hover .product-category-nav__count {
	opacity: 1;
	color: var(--color-text-primary);
}

.product-category-nav__link.is-active .product-category-nav__count {
	opacity: 1;
	color: var(--color-accent-gold-dark);
}

/* Responsive adjustments */
@media screen and (min-width: 48em) {
	.product-category-nav__list {
		justify-content: flex-end;
	}

	.product-category-nav__container {
		overflow: visible;
	}
}

/*--------------------------------------------------------------
# Classic Cart & Checkout - Modern Dark Theme
--------------------------------------------------------------*/

/* Cart and Checkout now use standard .container wrapper from woocommerce.php hooks */

/* Modern two-column layout for cart - DISABLED: now using custom AJAX cart (.cinesigns-cart) */
/* The old classic cart grid is no longer needed since we use .cinesigns-cart__layout */
/*
@media screen and (min-width: 64em) {
	.woocommerce-cart .woocommerce {
		display: grid;
		grid-template-columns: 1fr 380px;
		gap: var(--space-8);
		align-items: start;
	}

	.woocommerce-cart .woocommerce-cart-form {
		margin-bottom: 0;
	}

	.woocommerce-cart .cart-collaterals {
		position: sticky;
		top: var(--space-8);
	}
}
*/

/* Cart table modern styling */
.woocommerce-cart table.shop_table {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-xl);
	border: none;
	overflow: hidden;
}

.woocommerce-cart table.shop_table thead {
	display: none;
}

.woocommerce-cart table.shop_table td {
	padding: var(--space-5);
	border-bottom: 1px solid var(--color-border-subtle);
}

.woocommerce-cart table.shop_table tr:last-child td {
	border-bottom: none;
}

.woocommerce-cart table.shop_table .product-thumbnail img {
	width: 100px;
	height: 100px;
	object-fit: cover;
	border-radius: var(--radius-lg);
}

.woocommerce-cart table.shop_table .product-name {
	font-size: var(--text-lg);
}

.woocommerce-cart table.shop_table .product-name a {
	color: var(--color-text-primary);
	font-weight: var(--font-semibold);
	text-decoration: none;
}

.woocommerce-cart table.shop_table .product-name a:hover {
	color: var(--color-accent-gold);
}

.woocommerce-cart table.shop_table .product-price,
.woocommerce-cart table.shop_table .product-subtotal {
	font-size: var(--text-base);
	color: var(--color-text-secondary);
}

/* Quantity input styling */
.woocommerce-cart .quantity {
	display: inline-flex;
	align-items: center;
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.woocommerce-cart .quantity .qty {
	width: 60px;
	height: 44px;
	text-align: center;
	background: transparent;
	border: none;
	color: var(--color-text-primary);
	font-size: var(--text-base);
	font-weight: var(--font-medium);
}

.woocommerce-cart .quantity .qty:focus {
	outline: none;
	background: var(--color-bg-primary);
}

/* Remove button */
.woocommerce-cart table.shop_table .product-remove a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-md);
	color: var(--color-text-tertiary);
	font-size: var(--text-xl);
	text-decoration: none;
	transition: all var(--transition-fast);
}

.woocommerce-cart table.shop_table .product-remove a.remove:hover {
	background: rgba(255, 69, 58, 0.15);
	color: var(--color-error);
}

/* Update cart button */
.woocommerce-cart table.shop_table .actions {
	padding: var(--space-5);
	background: var(--color-bg-tertiary);
	border-top: 1px solid var(--color-border-subtle);
}

.woocommerce-cart table.shop_table .actions .button {
	background: transparent;
	border: 1px solid var(--color-border-default);
	color: var(--color-text-secondary);
	padding: var(--space-3) var(--space-5);
	border-radius: var(--radius-md);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	cursor: pointer;
	transition: all var(--transition-fast);
}

.woocommerce-cart table.shop_table .actions .button:hover {
	border-color: var(--color-accent-gold);
	color: var(--color-accent-gold);
}

.woocommerce-cart table.shop_table .actions .button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Coupon form */
.woocommerce-cart .coupon {
	display: flex;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.woocommerce-cart .coupon label {
	display: none;
}

.woocommerce-cart .coupon #coupon_code {
	flex: 1;
	min-width: 150px;
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	color: var(--color-text-primary);
}

.woocommerce-cart .coupon #coupon_code::placeholder {
	color: var(--color-text-tertiary);
}

.woocommerce-cart .coupon #coupon_code:focus {
	border-color: var(--color-accent-gold);
	outline: none;
}

/* Cart totals box */
.cart_totals {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-xl);
	padding: var(--space-8);
	border: none;
}

.cart_totals > h2 {
	font-size: var(--text-xl);
	font-weight: var(--font-semibold);
	margin-bottom: var(--space-6);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
}

.cart_totals table {
	width: 100%;
}

.cart_totals table th,
.cart_totals table td {
	padding: var(--space-4) 0;
	vertical-align: top;
}

.cart_totals table th {
	color: var(--color-text-secondary);
	font-weight: var(--font-medium);
	font-size: var(--text-base);
	text-align: left;
	width: 40%;
}

.cart_totals table td {
	text-align: right;
	color: var(--color-text-primary);
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	font-size: var(--text-xl);
	font-weight: var(--font-bold);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border-subtle);
}

.cart_totals .order-total td {
	color: var(--color-accent-gold);
}

/* Tax info styling */
.cart_totals .includes_tax {
	display: block;
	font-size: var(--text-sm);
	font-weight: var(--font-normal);
	color: var(--color-text-tertiary);
	margin-top: var(--space-2);
}

/* Proceed to checkout button */
.wc-proceed-to-checkout {
	margin-top: var(--space-8);
}

.wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	background: var(--color-accent-gold);
	border: none;
	border-radius: var(--radius-lg);
	color: #0a0a0a;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	padding: var(--space-5) var(--space-6);
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	cursor: pointer;
	transition: all var(--transition-fast);
}

.wc-proceed-to-checkout .checkout-button:hover {
	background: var(--color-accent-gold-light);
	transform: translateY(-2px);
}

/*--------------------------------------------------------------
# CineSigns Custom Checkout - Two Column Layout
--------------------------------------------------------------*/

/* Two-column layout */
.cinesigns-checkout__layout {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	width: 100%;
}

@media screen and (min-width: 64em) {
	.cinesigns-checkout__layout {
		display: grid;
		grid-template-columns: 55% 45%;
		gap: var(--space-12);
		align-items: start;
	}
}

/* Left column - customer details */
.cinesigns-checkout__left {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	width: 100%;
	max-width: 100%;
}

/* Make form fields wider in left column - 6 column grid for flexibility */
.cinesigns-checkout__left .woocommerce-billing-fields__field-wrapper,
.cinesigns-checkout__left .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: var(--space-2) var(--space-4);
}

/* Full width fields */
.cinesigns-checkout__left .form-row-wide,
.cinesigns-checkout__left #billing_company_field,
.cinesigns-checkout__left #billing_address_1_field,
.cinesigns-checkout__left #billing_address_2_field,
.cinesigns-checkout__left #billing_email_field,
.cinesigns-checkout__left #shipping_address_1_field,
.cinesigns-checkout__left #shipping_address_2_field {
	grid-column: 1 / -1;
}

/* Half-width fields (50/50 split) */
.cinesigns-checkout__left #billing_first_name_field,
.cinesigns-checkout__left #billing_last_name_field,
.cinesigns-checkout__left #shipping_first_name_field,
.cinesigns-checkout__left #shipping_last_name_field {
	grid-column: span 3;
}

/* Country full width */
.cinesigns-checkout__left #billing_country_field,
.cinesigns-checkout__left #shipping_country_field {
	grid-column: 1 / -1;
}

/* State/Bundesland full width */
.cinesigns-checkout__left #billing_state_field,
.cinesigns-checkout__left #shipping_state_field {
	grid-column: 1 / -1;
}

/* Postcode + City side by side (PLZ ~33%, City ~67%) */
.cinesigns-checkout__left #billing_postcode_field,
.cinesigns-checkout__left #shipping_postcode_field {
	grid-column: span 2;
}

.cinesigns-checkout__left #billing_city_field,
.cinesigns-checkout__left #shipping_city_field {
	grid-column: span 4;
}

/* Right column - order review (sticky) */
.cinesigns-checkout__right {
	position: relative;
	min-width: 0;
	max-width: 100%;
}

@media screen and (min-width: 64em) {
	.cinesigns-checkout__right {
		position: sticky;
		top: var(--space-6);
	}
}

/* Section styling - no background/padding for clean form look */
.cinesigns-checkout__section {
	background: transparent;
	padding: 0;
}

/* Hide empty shipping section */
.cinesigns-checkout__shipping:empty,
.cinesigns-checkout__shipping .woocommerce-shipping-fields:empty {
	display: none;
}

/* Order review box - Stripe-style modern design */
.cinesigns-checkout__order-review {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	border: 1px solid var(--color-border-subtle);
}

.cinesigns-checkout__section-title {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	margin: 0 0 var(--space-4);
	color: var(--color-text-primary);
	border-bottom: none;
	padding-bottom: 0;
}

/* Express payment buttons (Apple Pay, Google Pay, etc.) */
.cinesigns-checkout .woocommerce-checkout-payment,
.cinesigns-checkout #wc-stripe-payment-request-wrapper,
.cinesigns-checkout .wc-stripe-payment-request-button-wrapper {
	margin-bottom: var(--space-6);
}

/* Hide coupon notice at top - we show it in order review */
.woocommerce-form-coupon-toggle {
	display: none;
}

/* Order review inner styling */
.cinesigns-checkout__order-review .woocommerce-checkout-review-order {
	background: transparent;
	padding: 0;
	border-radius: 0;
}

/* Billing/Shipping section titles - clean modern style */
.cinesigns-checkout .woocommerce-billing-fields h3,
.cinesigns-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout h3 {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	margin: 0 0 var(--space-5);
	padding-bottom: 0;
	border-bottom: none;
	color: var(--color-text-primary);
}

/* Form fields */
.woocommerce-checkout .form-row {
	margin-bottom: var(--space-2);
}

.woocommerce-checkout .form-row label {
	display: block;
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	margin-bottom: var(--space-1);
}

.woocommerce-checkout .form-row .required {
	color: var(--color-accent-gold);
}

.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
	width: 100%;
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	padding: var(--space-4);
	color: var(--color-text-primary);
	font-size: var(--text-base);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row select:focus {
	border-color: var(--color-accent-gold);
	box-shadow: 0 0 0 3px var(--color-accent-gold-muted);
	outline: none;
}

.woocommerce-checkout .form-row input::placeholder {
	color: var(--color-text-tertiary);
}

/* Select2 dropdown styling */
.woocommerce-checkout .select2-container--default .select2-selection--single {
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	height: auto;
	padding: var(--space-3) var(--space-4);
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--color-text-primary);
	line-height: 1.5;
	padding: 0;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
	right: var(--space-4);
}

.select2-dropdown {
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
}

.select2-container--default .select2-results__option {
	padding: var(--space-3) var(--space-4);
	color: var(--color-text-primary);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--color-accent-gold);
	color: #0a0a0a;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	color: var(--color-text-primary);
	padding: var(--space-3);
}

/* Make Select2 dropdowns taller to show more options */
.select2-container--default .select2-results > .select2-results__options {
	max-height: 350px;
}

/* Order review box - right sidebar */
#order_review_heading {
	font-size: var(--text-xl);
	font-weight: var(--font-semibold);
	margin-bottom: var(--space-4);
	color: var(--color-text-primary);
}

/* Order review - Stripe-style clean design */
.woocommerce-checkout-review-order {
	background: transparent;
	padding: 0;
}

.woocommerce-checkout-review-order-table {
	width: 100%;
	margin-bottom: var(--space-4);
}

.woocommerce-checkout-review-order-table thead {
	display: none;
}

.woocommerce-checkout-review-order-table td {
	padding: var(--space-3) 0;
	border-bottom: none;
	font-size: var(--text-sm);
}

.woocommerce-checkout-review-order-table .product-name {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
}

.woocommerce-checkout-review-order-table .product-name .product-quantity {
	color: var(--color-text-tertiary);
	font-weight: var(--font-normal);
}

.woocommerce-checkout-review-order-table .product-total {
	text-align: right;
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

.woocommerce-checkout-review-order-table tfoot th {
	color: var(--color-text-tertiary);
	font-weight: var(--font-normal);
	font-size: var(--text-sm);
	text-align: left;
	padding: var(--space-2) 0;
}

.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	padding: var(--space-2) 0;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

/* Subtotal row */
.woocommerce-checkout-review-order-table tfoot .cart-subtotal th,
.woocommerce-checkout-review-order-table tfoot .cart-subtotal td {
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-subtle);
}

/* Total row - subtle, not oversized */
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	padding-top: var(--space-3);
	border-top: none;
}

.woocommerce-checkout-review-order-table tfoot .order-total th {
	color: var(--color-text-primary);
}

.woocommerce-checkout-review-order-table tfoot .order-total td {
	color: var(--color-text-primary);
}

/* Tax info smaller */
.woocommerce-checkout-review-order-table .includes_tax,
.woocommerce-checkout-review-order-table small {
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
	display: block;
	margin-top: var(--space-1);
}

/* Payment methods - integrated in order review */
#payment {
	background: transparent;
	border-radius: 0;
	padding: 0;
	margin-top: var(--space-6);
	padding-top: var(--space-6);
	border-top: 1px solid var(--color-border-subtle);
}

#payment ul.payment_methods {
	list-style: none;
	margin: 0 0 var(--space-6);
	padding: 0;
}

#payment ul.payment_methods li {
	margin-bottom: var(--space-3);
}

#payment ul.payment_methods li label {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: var(--space-4);
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: border-color var(--transition-fast);
}

#payment ul.payment_methods li label:hover {
	border-color: var(--color-border-default);
}

#payment ul.payment_methods li input[type="radio"]:checked + label,
#payment ul.payment_methods li.wc_payment_method input[type="radio"]:checked ~ label {
	border-color: var(--color-accent-gold);
}

#payment .payment_box {
	padding: var(--space-4);
	background: var(--color-bg-secondary);
	border-radius: var(--radius-md);
	margin-top: var(--space-3);
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

/* Place order button */
#payment .place-order {
	margin-top: var(--space-6);
}

#payment #place_order {
	display: block;
	width: 100%;
	background: var(--color-accent-gold);
	border: none;
	border-radius: var(--radius-lg);
	color: #0a0a0a;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	padding: var(--space-5) var(--space-6);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	cursor: pointer;
	transition: all var(--transition-fast);
}

#payment #place_order:hover {
	background: var(--color-accent-gold-light);
	transform: translateY(-2px);
}

/* Privacy policy text */
.woocommerce-privacy-policy-text {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
	margin-bottom: var(--space-4);
}

.woocommerce-privacy-policy-text a {
	color: var(--color-accent-gold);
}

/* Terms checkbox */
.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: var(--space-4);
}

.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	cursor: pointer;
}

.woocommerce-form__label-for-checkbox input[type="checkbox"] {
	margin-top: 2px;
	accent-color: var(--color-accent-gold);
}

.woocommerce-form__label-for-checkbox a {
	color: var(--color-accent-gold);
}

/* Stripe save payment checkbox */
#payment .payment_box fieldset {
	margin: 0;
	padding: var(--space-3) 0;
	border: none;
}

.woocommerce-SavedPaymentMethods-saveNew {
	display: flex !important;
	align-items: center;
	gap: var(--space-3);
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce-SavedPaymentMethods-saveNew label,
#payment .payment_box fieldset label,
label[for="wc-stripe-new-payment-method"] {
	display: inline !important;
	color: var(--color-text-secondary) !important;
	font-size: var(--text-sm) !important;
	font-weight: var(--font-normal) !important;
	cursor: pointer;
}

#wc-stripe-new-payment-method,
.woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"] {
	accent-color: var(--color-accent-gold);
	width: 16px !important;
	height: 16px !important;
	margin-right: var(--space-2);
}

/* Empty cart message */
.cart-empty.woocommerce-info {
	text-align: center;
	padding: var(--space-16);
	background: var(--color-bg-secondary);
	border-radius: var(--radius-xl);
	border: none;
	color: var(--color-text-secondary);
}

.return-to-shop {
	margin-top: var(--space-6);
}

.return-to-shop .button {
	background: var(--color-accent-gold);
	border: none;
	border-radius: var(--radius-lg);
	color: #0a0a0a;
	padding: var(--space-4) var(--space-8);
	font-weight: var(--font-semibold);
}

/* ==========================================================================
   Custom Order Review (AJAX-based with product images)
   ========================================================================== */

/* Default WooCommerce order table — visible on Classic checkout.
   (Custom .cinesigns-order-review skeleton was Block-checkout-only;
   we switched DE Kasse back to [woocommerce_checkout] shortcode.) */

/* Custom Order Review Container */
.cinesigns-order-review {
	margin-bottom: var(--space-6);
}

.cinesigns-order-review.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Loading spinner */
.cinesigns-order-review__loading {
	display: flex;
	justify-content: center;
	padding: var(--space-8);
}

.loading-spinner {
	width: 24px;
	height: 24px;
	border: 2px solid var(--color-border-subtle);
	border-top-color: var(--color-accent-gold);
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* Order Items List */
.order-items {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	margin-bottom: var(--space-5);
}

/* Single Order Item */
.order-item {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
}

.order-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

/* Product Image (3:2 aspect ratio) */
.order-item__image {
	flex-shrink: 0;
	width: 78px;
	height: 52px;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-bg-tertiary);
}

.order-item__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Product Details */
.order-item__details {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.order-item__name {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	color: var(--color-text-primary);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.order-item__quantity {
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
}

/* Product Price */
.order-item__price {
	flex-shrink: 0;
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--space-1);
}

.order-item__price-amount {
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.order-item__price-tax {
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
}

/* Order Summary (Subtotal & Total) */
.order-summary {
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-subtle);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.order-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.order-summary__label {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
}

.order-summary__value {
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	text-align: right;
}

/* Subtotal Row */
.order-summary__subtotal .order-summary__label,
.order-summary__subtotal .order-summary__value {
	color: var(--color-text-tertiary);
}

/* Total Row */
.order-summary__total {
	padding-top: var(--space-3);
}

.order-summary__total .order-summary__label {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

.order-summary__total .order-summary__value {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

/* Tax info */
.order-summary__tax {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--font-normal);
	color: var(--color-text-tertiary);
	margin-top: var(--space-1);
}

/* ==========================================================================
   Custom Cart Page (AJAX-based)
   ========================================================================== */

/* Hide the page title on cart page (we have our own) */
.woocommerce-cart .entry-title,
.woocommerce-cart .page-title,
.woocommerce-cart .woocommerce-products-header__title {
	display: none;
}

.cinesigns-cart__title {
	font-size: var(--text-3xl);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	margin: 0 0 var(--space-6);
	padding-bottom: 0;
	border-bottom: none;
}

/* Two-column layout - same as checkout */
.cinesigns-cart__layout {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	width: 100%;
}

@media screen and (min-width: 64em) {
	.cinesigns-cart__layout {
		display: grid;
		grid-template-columns: 55% 45%;
		gap: var(--space-12);
		align-items: start;
	}
}

/* Left column - cart items */
.cinesigns-cart__left {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
	width: 100%;
	max-width: 100%;
}

/* Right column - summary (sticky) */
.cinesigns-cart__right {
	position: relative;
}

@media screen and (min-width: 64em) {
	.cinesigns-cart__right {
		position: sticky;
		top: var(--space-6);
	}
}

/* Loading states */
.cinesigns-cart__items-container.is-loading,
.cinesigns-cart__summary-container.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.cinesigns-cart__loading {
	display: flex;
	justify-content: center;
	padding: var(--space-8);
}

/* Coupon Form */
.cinesigns-cart__coupon {
	margin-top: var(--space-6);
}

.cinesigns-coupon-form__label {
	display: block;
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	color: var(--color-text-secondary);
	margin-bottom: var(--space-2);
}

.cinesigns-coupon-form__input-group {
	display: flex;
	gap: var(--space-3);
}

.cinesigns-coupon-form__input {
	flex: 1;
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	font-size: var(--text-base);
	color: var(--color-text-primary);
	transition: border-color var(--transition-fast);
}

.cinesigns-coupon-form__input::placeholder {
	color: var(--color-text-tertiary);
}

.cinesigns-coupon-form__input:focus {
	outline: none;
	border-color: var(--color-accent-gold);
}

.cinesigns-coupon-form__button {
	background: transparent;
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-5);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	color: var(--color-text-secondary);
	cursor: pointer;
	transition: all var(--transition-fast);
	white-space: nowrap;
}

.cinesigns-coupon-form__button:hover {
	border-color: var(--color-accent-gold);
	color: var(--color-accent-gold);
}

/* Cart Items Box */
.cinesigns-cart__items {
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	border: 1px solid var(--color-border-subtle);
	display: flex;
	flex-direction: column;
	gap: var(--space-5);
}

/* Single Cart Item */
.cart-item {
	display: grid;
	grid-template-columns: 90px 1fr auto auto 40px;
	gap: var(--space-4);
	align-items: center;
	padding-bottom: var(--space-5);
	border-bottom: 1px solid var(--color-border-subtle);
}

.cart-item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

@media (max-width: 700px) {
	.cart-item {
		grid-template-columns: 70px 1fr auto;
		grid-template-rows: auto auto;
	}

	.cart-item__quantity {
		grid-column: 2;
		grid-row: 2;
		justify-self: start;
	}

	.cart-item__subtotal {
		grid-column: 3;
		grid-row: 1 / 3;
		padding-right: var(--space-4);
	}

	.cart-item__remove {
		position: absolute;
		top: 0;
		right: 0;
	}
}

/* Cart Item Image */
.cart-item__image {
	width: 90px;
	height: 60px;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-bg-tertiary);
}

.cart-item__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Cart Item Details */
.cart-item__details {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	min-width: 0;
}

.cart-item__name {
	font-size: var(--text-base);
	font-weight: var(--font-medium);
	color: var(--color-text-primary);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cart-item__name:hover {
	color: var(--color-accent-gold);
}

.cart-item__price-single {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
}

/* Quantity Controls */
.cart-item__quantity {
	display: flex;
	align-items: center;
	gap: 0;
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border-subtle);
}

.cart-item__quantity-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: transparent;
	border: none;
	color: var(--color-text-primary);
	cursor: pointer;
	transition: all var(--transition-fast);
	font-size: var(--text-lg);
	font-weight: var(--font-bold);
	line-height: 1;
}

.cart-item__quantity-btn:hover {
	color: var(--color-accent-gold);
	background: rgba(255, 255, 255, 0.1);
}

.cart-item__quantity-input {
	width: 40px;
	height: 32px;
	background: transparent;
	border: none;
	text-align: center;
	font-size: var(--text-sm);
	color: var(--color-text-primary);
	-moz-appearance: textfield;
}

.cart-item__quantity-input::-webkit-inner-spin-button,
.cart-item__quantity-input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Cart Item Subtotal */
.cart-item__subtotal {
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--space-1);
	min-width: 100px;
}

.cart-item__subtotal-amount {
	font-size: var(--text-base);
	font-weight: var(--font-medium);
	color: var(--color-text-primary);
}

.cart-item__subtotal-tax {
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
}

/* Remove Button */
.cart-item__remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	min-width: 36px;
	flex-shrink: 0;
	background: transparent;
	border: none;
	color: var(--color-text-secondary);
	cursor: pointer;
	transition: all var(--transition-fast);
	border-radius: var(--radius-md);
}

.cart-item__remove svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

.cart-item__remove:hover {
	color: #ef4444;
	background: rgba(239, 68, 68, 0.1);
}

/* Cart Summary Box - Hybrid approach with WooCommerce cart_totals */
.cinesigns-cart__summary {
	background: var(--color-bg-tertiary);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	border: 1px solid var(--color-border-subtle);
}

.cinesigns-cart__summary-title {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	margin: 0 0 var(--space-5);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
}

/* Free Shipping Progress (above cart totals, inside summary box).
   Hidden visually when the wrap is empty so we don't leave a phantom gap. */
#cinesigns-free-shipping-progress-wrap:empty {
	display: none;
}

.cinesigns-free-shipping-progress {
	margin-bottom: var(--space-5);
	padding-bottom: var(--space-5);
	border-bottom: 1px solid var(--color-border-subtle);
}

.cinesigns-free-shipping-progress__label {
	font-size: var(--text-sm);
	color: var(--color-text-primary);
	margin-bottom: var(--space-3);
	line-height: 1.4;
	text-align: right;
}

.cinesigns-free-shipping-progress__amount {
	white-space: nowrap;
}

.cinesigns-free-shipping-progress__bar {
	position: relative;
	height: 4px;
	background: var(--color-border-subtle);
	border-radius: 999px;
	overflow: hidden;
}

.cinesigns-free-shipping-progress__fill {
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, var(--color-accent-gold-dark), var(--color-accent-gold-light));
	border-radius: inherit;
	box-shadow: 0 0 10px rgba(201, 169, 98, 0.45);
	transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

.cinesigns-free-shipping-progress.is-reached .cinesigns-free-shipping-progress__label {
	color: var(--color-accent-gold-light);
}

.cinesigns-free-shipping-progress.is-reached .cinesigns-free-shipping-progress__fill {
	width: 100%;
}

@media (prefers-reduced-motion: reduce) {
	.cinesigns-free-shipping-progress__fill {
		transition: none;
	}
}

/* Cart totals container (refreshed via AJAX) */
.cinesigns-cart__totals {
	width: 100%;
}

.cinesigns-cart__totals.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Express buttons container (NOT refreshed - keeps Stripe etc. working) */
.cinesigns-cart__express-buttons {
	margin-top: var(--space-4);
}

.cinesigns-cart__summary .cart_totals {
	background: transparent;
	padding: 0;
	border-radius: 0;
	border: none;
}

.cinesigns-cart__summary .cart_totals > h2 {
	display: none; /* We have our own title */
}

.cinesigns-cart__summary .cart_totals table {
	width: 100%;
	border: none;
	background: transparent;
	border-radius: 0;
	overflow: visible;
}

.cinesigns-cart__summary .cart_totals table th,
.cinesigns-cart__summary .cart_totals table td {
	padding: var(--space-3) 0;
	border: none;
	background: transparent;
}

.cinesigns-cart__summary .cart_totals table th {
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
	font-weight: var(--font-normal);
	width: 40%;
	text-align: left;
}

.cinesigns-cart__summary .cart_totals table td {
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	width: 60%;
	text-align: right;
}

/* Tax-Label als Block unter dem Preis */
.cinesigns-cart__summary .cart_totals table td .woocommerce-Price-amount + small,
.cinesigns-cart__summary .cart_totals table td .amount + small {
	display: block;
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
	margin-top: var(--space-1);
}

.cinesigns-cart__summary .cart_totals .order-total th,
.cinesigns-cart__summary .cart_totals .order-total td {
	font-size: var(--text-xl);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	padding-top: var(--space-5);
	border-top: 1px solid var(--color-border-subtle);
}

.cinesigns-cart__summary .cart_totals .order-total td {
	color: var(--color-text-primary);
}

/* Tax info unter dem Preis anzeigen */
.cinesigns-cart__summary .cart_totals .includes_tax,
.cinesigns-cart__summary .cart_totals .woocommerce-Price-taxLabel {
	display: block;
	font-size: var(--text-xs);
	font-weight: var(--font-normal);
	color: var(--color-text-tertiary);
	margin-top: var(--space-1);
}

/* Shipping method list — clean styling without bullets */
.cinesigns-cart__summary .cart_totals ul#shipping_method,
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cinesigns-cart__summary .cart_totals ul#shipping_method li,
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-methods li {
	list-style: none;
	margin: 0 0 var(--space-2);
	padding: 0;
}

.cinesigns-cart__summary .cart_totals ul#shipping_method li::before,
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-methods li::before {
	content: none;
}

.cinesigns-cart__summary .cart_totals ul#shipping_method li:last-child,
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-methods li:last-child {
	margin-bottom: 0;
}

.cinesigns-cart__summary .cart_totals .shipping_method {
	margin-right: var(--space-2);
}

.cinesigns-cart__summary .cart_totals ul#shipping_method label,
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-methods label {
	cursor: pointer;
	color: var(--color-text-secondary);
}

/* Shipping destination text */
.cinesigns-cart__summary .cart_totals .woocommerce-shipping-destination {
	margin: var(--space-3) 0 0;
	font-size: var(--text-xs);
	color: var(--color-text-tertiary);
	line-height: 1.5;
}

/* Mobile: opt out of the generic shop_table_responsive block-layout for our summary.
   Without this, td becomes display:block + width:60% and the responsive ::before
   re-renders the th label inside the td ("Subtotal: Subtotal €47,84"), which also
   shifts the values to ~60% of the card width instead of flush right. */
@media screen and (max-width: 47.99em) {
	.cinesigns-cart__summary .cart_totals table tr td {
		display: table-cell;
		text-align: right;
		padding: var(--space-3) 0;
	}

	.cinesigns-cart__summary .cart_totals table tr td::before {
		display: none;
	}

	.cinesigns-cart__summary .cart_totals table tr {
		border-bottom: none;
		padding: 0;
	}
}

/* Our checkout button */
.cinesigns-cart__summary > .wc-proceed-to-checkout {
	margin-top: var(--space-6);
}

/* Express loading indicator */
.cinesigns-cart__express-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-3);
	padding: var(--space-4);
	color: var(--color-text-tertiary);
	font-size: var(--text-sm);
	margin-top: var(--space-4);
}

.cinesigns-cart__express-loading .loading-spinner {
	width: 18px;
	height: 18px;
	border-width: 2px;
}

/* Hide loading when express buttons are loaded */
.cinesigns-cart__summary.express-loaded .cinesigns-cart__express-loading {
	display: none;
}

/* Stripe express buttons container (moved by JS after checkout button) */
.cinesigns-cart__summary .wc-proceed-to-checkout.moved {
	margin-top: var(--space-4);
}

/* Hide express buttons until loaded */
.cinesigns-cart__summary #wc-stripe-express-checkout-element {
	opacity: 0;
	transition: opacity 0.3s ease;
}

.cinesigns-cart__summary.express-loaded #wc-stripe-express-checkout-element {
	opacity: 1;
}

/* Stripe Express Payment buttons in cart */
.cinesigns-cart__summary .wc-stripe-payment-request-button-wrapper,
.cinesigns-cart__summary #wc-stripe-payment-request-wrapper {
	margin-bottom: var(--space-4);
}

/* Proceed to checkout button styling */
.cinesigns-cart__summary .wc-proceed-to-checkout .checkout-button {
	display: block;
	width: 100%;
	background: var(--color-accent-gold);
	border: none;
	border-radius: var(--radius-lg);
	color: #0a0a0a;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	padding: var(--space-4) var(--space-6);
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	cursor: pointer;
	transition: all var(--transition-fast);
}

.cinesigns-cart__summary .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--color-accent-gold-light);
	transform: translateY(-2px);
	color: #0a0a0a;
}

/* Continue shopping link */
.cinesigns-cart__summary .woocommerce-cart-form__cart-item + a,
.cinesigns-cart__continue-link {
	display: block;
	width: 100%;
	text-align: center;
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
	text-decoration: none;
	padding: var(--space-3) 0;
	margin-top: var(--space-3);
	transition: color var(--transition-fast);
}

.cinesigns-cart__continue-link:hover {
	color: var(--color-accent-gold);
}

/* Hide cross-sells in cart summary - they don't fit the compact design */
.cinesigns-cart__summary .cross-sells {
	display: none;
}

/* Continue Shopping Link */
.cinesigns-cart__continue-btn {
	display: block;
	width: 100%;
	text-align: center;
	font-size: var(--text-sm);
	color: var(--color-text-tertiary);
	text-decoration: none;
	padding: var(--space-2);
	transition: color var(--transition-fast);
}

.cinesigns-cart__continue-btn:hover {
	color: var(--color-accent-gold);
}

/* Empty Cart */
.cinesigns-cart__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: var(--space-16);
	background: var(--color-bg-secondary);
	border-radius: var(--radius-lg);
	border: 1px solid var(--color-border-subtle);
}

.cinesigns-cart__empty svg {
	color: var(--color-text-tertiary);
	margin-bottom: var(--space-6);
}

.cinesigns-cart__empty h2 {
	font-size: var(--text-xl);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	margin: 0 0 var(--space-2);
}

.cinesigns-cart__empty p {
	font-size: var(--text-base);
	color: var(--color-text-tertiary);
	margin: 0 0 var(--space-6);
}

.cinesigns-cart__shop-btn {
	display: inline-block;
	background: var(--color-accent-gold);
	border: none;
	border-radius: var(--radius-lg);
	color: #0a0a0a;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	padding: var(--space-4) var(--space-8);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	transition: all var(--transition-fast);
}

.cinesigns-cart__shop-btn:hover {
	background: var(--color-accent-gold-light);
	transform: translateY(-2px);
	color: #0a0a0a;
}

/* ==========================================================================
   Invoice Download Button - My Account
   ========================================================================== */

.woocommerce-orders-table__cell-order-actions .button.invoice,
.woocommerce-orders-table__cell-order-actions a.invoice {
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-subtle);
	color: var(--color-text-primary);
	padding: var(--space-2) var(--space-3);
	font-size: var(--text-sm);
	text-decoration: none;
	border-radius: var(--radius-md);
	transition: all var(--transition-fast);
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
}

.woocommerce-orders-table__cell-order-actions .button.invoice:hover,
.woocommerce-orders-table__cell-order-actions a.invoice:hover {
	background: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	color: #0a0a0a;
}

/*--------------------------------------------------------------
# Block Checkout polish (matches the rest of the site)
--------------------------------------------------------------*/
/* Hide the big page title on the checkout page */
.woocommerce-checkout .entry-header,
.woocommerce-checkout > .entry-title,
.woocommerce-checkout .wp-block-post-title,
body.woocommerce-checkout .page-title,
body.page-template-default.woocommerce-checkout .entry-title {
	display: none;
}

/* Section headings inside checkout */
.wc-block-checkout .wc-block-components-checkout-step__heading,
.wc-block-checkout h2,
.wc-block-components-totals-wrapper h2 {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text-primary);
}

.wc-block-checkout .wc-block-components-checkout-step__description {
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

/* Express checkout container — solid grey card */
.wc-block-checkout__express-checkout,
.wc-block-components-express-payment {
	background: var(--color-bg-tertiary) !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 1px solid var(--color-border-subtle) !important;
	border-radius: var(--radius-lg);
	padding: var(--space-6) !important;
}

.wc-block-components-express-payment__title-container,
.wc-block-components-express-payment__title {
	color: var(--color-text-primary) !important;
	font-size: var(--text-xs, 0.75rem) !important;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-align: center;
	display: block;
	width: 100%;
}

/* Lift the "EXPRESS-KASSE" label visually above the box */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title {
	transform: translateY(-170%);
}

.wc-block-components-express-payment__title-container::before,
.wc-block-components-express-payment__title-container::after,
.wc-block-components-express-payment__content::before,
.wc-block-components-express-payment__content::after {
	display: none !important;
}

.wc-block-components-express-payment__content {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
}

/* "Or continue below" divider */
.wc-block-components-express-payment-continue-rule {
	color: var(--color-text-primary);
	font-size: var(--text-xs, 0.75rem);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin: var(--space-8) 0;
}

.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
	background: var(--color-border-subtle) !important;
}

/* Saved address card — integrate flush into parent step card */
.wc-block-components-address-card {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	color: var(--color-text-primary) !important;
}

.wc-block-components-address-card address,
.wc-block-components-address-card .wc-block-components-address-card__address {
	color: var(--color-text-primary) !important;
	font-style: normal;
}

.wc-block-components-address-card .wc-block-components-address-card__address-section {
	color: var(--color-text-secondary) !important;
	display: block;
}

.wc-block-components-address-card .wc-block-components-address-card__address-section--primary {
	color: var(--color-text-primary) !important;
	font-weight: var(--font-medium);
	margin-bottom: var(--space-1);
}

.wc-block-components-address-card .wc-block-components-address-card__address-section--secondary {
	color: var(--color-text-secondary) !important;
}

.wc-block-components-address-card__edit,
.wc-block-components-address-card__edit:hover {
	color: var(--color-accent-gold) !important;
	text-decoration: none;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-size: var(--text-xs, 0.75rem);
}

.wc-block-components-address-card__edit:hover {
	color: var(--color-accent-gold-light) !important;
}

/* Checkboxes */
.wc-block-components-checkbox__input,
.wc-block-components-checkbox input[type="checkbox"] {
	accent-color: var(--color-accent-gold);
}

.wc-block-components-checkbox__mark {
	color: var(--color-accent-gold) !important;
}

/* Radio cards (shipping options + payment methods) — slightly lifted from the card */
.wc-block-components-radio-control .wc-block-components-radio-control__option,
label.wc-block-components-radio-control__option {
	position: relative !important;
	display: block !important;
	background: rgba(255, 255, 255, 0.04) !important;
	border: 1px solid transparent !important;
	border-radius: var(--radius-md) !important;
	padding: var(--space-5) var(--space-6) var(--space-5) calc(var(--space-6) + 32px) !important;
	margin-bottom: var(--space-3) !important;
	transition: border-color var(--transition-fast), background var(--transition-fast);
	cursor: pointer;
}

/* Shipping rates wrapper — transparent, no nested card around the radio */
.wc-block-components-shipping-rates-control__package {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Native radio input absolute on the left so it never overlaps the label text */
.wc-block-components-radio-control .wc-block-components-radio-control__option > input.wc-block-components-radio-control__input,
.wc-block-components-radio-control .wc-block-components-radio-control__option > .wc-block-components-radio-control__input,
label.wc-block-components-radio-control__option > input[type="radio"],
.wc-block-components-radio-control__option .wc-block-components-radio-control__input {
	position: absolute !important;
	left: var(--space-6) !important;
	top: var(--space-6) !important;
	transform: none !important;
	margin: 0 !important;
	width: 18px !important;
	height: 18px !important;
	flex: 0 0 auto;
}

/* The layout wrapper inside the label sits in the remaining space */
.wc-block-components-radio-control__option > .wc-block-components-radio-control__option-layout {
	margin-left: 0 !important;
	padding-left: 0 !important;
	display: block !important;
	width: 100%;
}

.wc-block-components-radio-control__option:hover {
	border-color: var(--color-accent-gold);
}

.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control__option--checked,
.wc-block-components-radio-control__option[aria-checked="true"] {
	border-color: var(--color-accent-gold) !important;
	background: rgba(201, 169, 98, 0.06) !important;
}

.wc-block-components-radio-control__input {
	accent-color: var(--color-accent-gold);
}

.wc-block-components-radio-control__label {
	color: var(--color-text-primary);
}

.wc-block-components-radio-control__secondary-label {
	color: var(--color-text-secondary);
}

/* Kill WC's white inset box-shadow on checked radio options
 * (`box-shadow: inset 0 0 0 1.5px currentColor` — currentColor = white). */
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: none !important;
}

/* Kill WC's wrapper outline (`.wc-block-components-radio-control--highlight-checked:after`) */
.wc-block-components-radio-control--highlight-checked::after,
.wc-block-components-radio-control--highlight-checked:after {
	display: none !important;
}

/* Kill the 1px separator line WC injects between radio options */
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option::after,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option:after,
.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option::after,
.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option:after {
	display: none !important;
}

/* Inner radio dot — WC paints `:before { background: #000 }` which is invisible
 * on the dark card. Use the gold accent so the checked state is readable. */
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before {
	background: var(--color-accent-gold) !important;
}

.wc-block-components-radio-control .wc-block-components-radio-control__input:checked,
.wc-block-components-radio-control .wc-block-components-radio-control__input:focus {
	border-color: var(--color-accent-gold) !important;
	outline: none !important;
}

/* Payment method options accordion */
.wc-block-components-payment-method-options,
.wc-block-components-payment-methods {
	border: none;
	border-radius: 0;
	overflow: visible;
}

.wc-block-components-payment-method-label {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
}

/* Test mode badge softer + on-brand */
.wc-block-components-payment-method-label__test-mode-badge,
.wc-block-components-payment-methods__test-mode-badge {
	background: rgba(201, 169, 98, 0.15) !important;
	color: var(--color-accent-gold) !important;
	border: 1px solid rgba(201, 169, 98, 0.3) !important;
}

/* Right-side order summary — solid grey card matching all other panels */
.wc-block-checkout__sidebar,
.wc-block-components-sidebar {
	background: var(--color-bg-tertiary);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
}

/* All inner totals wrappers should be transparent — no nested cards, but keep WC's horizontal padding */
.wc-block-components-totals-wrapper {
	background: transparent !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
}

/* Inner blocks lose any horizontal margin so they don't extend past the sidebar padding */
.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-cart-items-block,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-summary-totals-block,
.wp-block-woocommerce-checkout-order-summary-subtotal-block,
.wp-block-woocommerce-checkout-order-summary-shipping-block,
.wp-block-woocommerce-checkout-order-summary-fee-block,
.wp-block-woocommerce-checkout-order-summary-discount-block {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wc-block-components-order-summary {
	background: transparent;
	border: none;
	padding: 0;
}

.wc-block-components-order-summary-item {
	border-bottom: 1px solid var(--color-border-subtle);
	padding: var(--space-3) 0;
}

.wc-block-components-order-summary-item:last-child {
	border-bottom: none;
}

.wc-block-components-order-summary-item__name,
.wc-block-components-order-summary-item__price {
	color: var(--color-text-primary);
}

.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__quantity {
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

/* Total row prominent */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-item--total .wc-block-components-totals-item__label,
.wc-block-components-totals-item--total .wc-block-components-totals-item__value {
	font-size: var(--text-xl, 1.5rem);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

/* Coupons accordion / panel buttons */
.wc-block-components-totals-coupon button,
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
	color: var(--color-text-primary) !important;
}

.wc-block-components-totals-coupon__button:hover,
.wc-block-components-panel__button:hover {
	color: var(--color-accent-gold) !important;
}

.wc-block-components-totals-coupon__form .wc-block-components-button {
	background: transparent;
	border: 1px solid var(--color-accent-gold);
	color: var(--color-accent-gold);
}

.wc-block-components-totals-coupon__form .wc-block-components-button:hover {
	background: var(--color-accent-gold);
	color: #0a0a0a;
}

/* Place order button polish */
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-actions__submit-button {
	width: 100%;
	padding: var(--space-4) var(--space-6);
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Return-to-cart link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--color-accent-gold) !important;
	font-size: var(--text-sm) !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* Notes textarea */
.wc-block-checkout__add-note .wc-block-components-textarea {
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	color: var(--color-text-primary);
}

.wc-block-checkout__add-note .wc-block-components-textarea:focus {
	border-color: var(--color-accent-gold);
}

/* Terms link colour */
.wc-block-checkout__terms,
.wc-block-checkout__terms-and-conditions {
	color: var(--color-text-tertiary);
	font-size: var(--text-sm);
}

.wc-block-checkout__terms a,
.wc-block-checkout__terms-and-conditions a {
	color: var(--color-accent-gold);
}


/*--------------------------------------------------------------
# Block Checkout polish (matches the rest of the site)
--------------------------------------------------------------*/
/* Hide the big page title on the checkout page */
.woocommerce-checkout .entry-header,
.woocommerce-checkout > .entry-title,
.woocommerce-checkout .wp-block-post-title,
body.woocommerce-checkout .page-title,
body.page-template-default.woocommerce-checkout .entry-title {
	display: none;
}

/* Block checkout outer layout */
.wc-block-checkout {
	color: var(--color-text-primary);
}

.wc-block-checkout .wc-block-components-checkout-step__heading,
.wc-block-checkout h2,
.wc-block-components-totals-wrapper h2 {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text-primary);
}

.wc-block-checkout .wc-block-components-checkout-step__description {
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

/* Express checkout container — solid grey card */
.wc-block-checkout__express-checkout,
.wc-block-components-express-payment {
	background: var(--color-bg-tertiary) !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 1px solid var(--color-border-subtle) !important;
	border-radius: var(--radius-lg);
	padding: var(--space-6) !important;
}

.wc-block-components-express-payment__title-container,
.wc-block-components-express-payment__title {
	color: var(--color-text-primary) !important;
	font-size: var(--text-xs, 0.75rem) !important;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	text-align: center;
	display: block;
	width: 100%;
}

/* Lift the "EXPRESS-KASSE" label visually above the box */
.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title {
	transform: translateY(-170%);
}

.wc-block-components-express-payment__title-container::before,
.wc-block-components-express-payment__title-container::after,
.wc-block-components-express-payment__content::before,
.wc-block-components-express-payment__content::after {
	display: none !important;
}

.wc-block-components-express-payment__content {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
}

/* "Or continue below" divider */
.wc-block-components-express-payment-continue-rule {
	color: var(--color-text-primary);
	font-size: var(--text-xs, 0.75rem);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin: var(--space-8) 0;
}

.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
	background: var(--color-border-subtle) !important;
}


/* Checkboxes (Use same address, Add a note, Terms) */
.wc-block-components-checkbox__input,
.wc-block-components-checkbox input[type="checkbox"] {
	accent-color: var(--color-accent-gold);
}

.wc-block-components-checkbox__mark {
	color: var(--color-accent-gold) !important;
}

/* Shipping options card */
.wc-block-components-radio-control__option {
	background: rgba(255, 255, 255, 0.04) !important;
	border: 1px solid transparent !important;
	border-radius: var(--radius-md) !important;
	padding: var(--space-5) var(--space-6) !important;
	margin-bottom: var(--space-3) !important;
	transition: border-color var(--transition-fast), background var(--transition-fast);
}

.wc-block-components-shipping-rates-control__package {
	background: transparent;
	border: none;
	padding: 0;
	margin: 0;
}

.wc-block-components-radio-control__option:hover {
	border-color: var(--color-accent-gold);
}

.wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control__option--checked,
.wc-block-components-radio-control__option[aria-checked="true"] {
	border-color: var(--color-accent-gold) !important;
	background: rgba(201, 169, 98, 0.06) !important;
}

.wc-block-components-radio-control__input {
	accent-color: var(--color-accent-gold);
}

.wc-block-components-radio-control__label {
	color: var(--color-text-primary);
}

.wc-block-components-radio-control__secondary-label {
	color: var(--color-text-secondary);
}

/* Payment methods accordion */
.wc-block-components-payment-method-options,
.wc-block-components-payment-methods {
	border: none;
	border-radius: 0;
	overflow: visible;
}

.wc-block-components-payment-method-label {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
}

/* Test mode badge softer */
.wc-block-components-payment-method-label__test-mode-badge,
.wc-block-components-payment-methods__test-mode-badge {
	background: rgba(201, 169, 98, 0.15) !important;
	color: var(--color-accent-gold) !important;
	border: 1px solid rgba(201, 169, 98, 0.3) !important;
}

.wc-block-components-order-summary {
	background: transparent;
	border: none;
	padding: 0;
}

.wc-block-components-order-summary-item {
	border-bottom: 1px solid var(--color-border-subtle);
	padding: var(--space-3) 0;
}

.wc-block-components-order-summary-item:last-child {
	border-bottom: none;
}

.wc-block-components-order-summary-item__name,
.wc-block-components-order-summary-item__price {
	color: var(--color-text-primary);
}

.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__quantity {
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

/* Total row prominent */
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-item--total .wc-block-components-totals-item__label,
.wc-block-components-totals-item--total .wc-block-components-totals-item__value {
	font-size: var(--text-xl, 1.5rem);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

/* Tighten spacing between product name and unit price in order summary */
.wc-block-components-order-summary .wc-block-components-order-summary-item__description,
.wc-block-components-order-summary .wc-block-components-order-summary-item__image {
	display: block !important;
}

.wc-block-components-order-summary-item .wc-block-components-product-name {
	margin: 0 !important;
	line-height: 1.3 !important;
}

.wc-block-components-order-summary-item .wc-block-components-product-price,
.wc-block-components-order-summary-item .wc-block-components-product-metadata,
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description {
	margin-top: var(--space-1) !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
}

/* Coupons accordion */
.wc-block-components-totals-coupon button,
.wc-block-components-totals-coupon__button,
.wc-block-components-panel__button {
	color: var(--color-text-primary) !important;
}

.wc-block-components-totals-coupon__button:hover,
.wc-block-components-panel__button:hover {
	color: var(--color-accent-gold) !important;
}

.wc-block-components-totals-coupon__form .wc-block-components-button {
	background: transparent;
	border: 1px solid var(--color-accent-gold);
	color: var(--color-accent-gold);
}

.wc-block-components-totals-coupon__form .wc-block-components-button:hover {
	background: var(--color-accent-gold);
	color: #0a0a0a;
}

/* Place order button polish */
.wc-block-components-checkout-place-order-button,
.wc-block-components-checkout-actions__submit-button {
	width: 100%;
	padding: var(--space-4) var(--space-6) !important;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Return-to-cart link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--color-accent-gold) !important;
	font-size: var(--text-sm) !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
}

.wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--color-accent-gold-light) !important;
}

/* Action row layout (return to cart left, place order right) */
.wc-block-checkout__actions_row {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.wc-block-checkout__actions_row .wc-block-components-checkout-return-to-cart-button {
	margin-right: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button {
	flex: 1 1 auto;
	max-width: none;
	margin-left: auto;
	white-space: nowrap;
}

/*--------------------------------------------------------------
# Block Checkout — backdrop + premium polish v2
--------------------------------------------------------------*/

/* Same walnut backdrop as the single-product page, but pinned to the viewport
   so the cinematic image stays put while checkout content scrolls over it. */
body.woocommerce-checkout .site-main {
	position: relative;
	background: transparent;
}

body.woocommerce-checkout .site-main::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: clamp(380px, 48dvh, 580px);
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.42) 50%, rgba(0, 0, 0, 0.92) 88%, #000 100%),
		image-set(
			url('img/shop-hero.avif') type('image/avif'),
			url('img/shop-hero.webp') type('image/webp'),
			url('img/shop-hero.jpg') type('image/jpeg')
		);
	background-size: 100% 100%, cover;
	background-position: center, center top;
	background-repeat: no-repeat;
}

body.woocommerce-checkout .site-main > .container.section,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
	position: relative;
	z-index: 1;
}

/* Order summary card — solid grey panel matching the cart.
 * Sticky engages 150px earlier than WC's default (top: 24px → top: 174px). */
.wc-block-checkout__sidebar.wc-block-components-sidebar,
.wc-block-components-sidebar.wp-block-woocommerce-checkout-totals-block {
	background: var(--color-bg-tertiary) !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-7) var(--space-8) !important;
	top: 174px !important;
}

/* Order summary inner blocks — kill nested cards */
.wp-block-woocommerce-checkout-order-summary-cart-items-block,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-summary-totals-block,
.wp-block-woocommerce-checkout-order-summary-subtotal-block,
.wp-block-woocommerce-checkout-order-summary-shipping-block,
.wp-block-woocommerce-checkout-order-summary-fee-block,
.wp-block-woocommerce-checkout-order-summary-discount-block {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}

/* Order summary block — single source of horizontal inset for everything inside */
.wp-block-woocommerce-checkout-order-summary-block {
	background: transparent !important;
	border: none !important;
	padding: 0 var(--space-6) !important;
}

/* Order summary header with collapsible chevron */
.wc-block-components-checkout-order-summary__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
	margin: 0 0 var(--space-5);
}

.wc-block-components-checkout-order-summary__title-text {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wc-block-components-checkout-order-summary__title-price {
	color: var(--color-text-secondary);
	font-size: var(--text-base);
	margin-left: auto;
}

.wc-block-components-checkout-order-summary__title-icon {
	color: var(--color-text-tertiary);
	display: none; /* hide collapse arrow on desktop, summary always visible */
}

@media screen and (max-width: 47.9375em) {
	.wc-block-components-checkout-order-summary__title-icon {
		display: inline-flex;
	}
}

/* Product line in order summary */
.wc-block-components-order-summary-item {
	display: grid !important;
	grid-template-columns: 56px 1fr auto;
	gap: var(--space-4);
	padding: var(--space-4) 0 !important;
	border-bottom: 1px solid var(--color-border-subtle) !important;
}

.wc-block-components-order-summary-item:last-of-type {
	border-bottom: none !important;
}

.wc-block-components-order-summary-item__image {
	position: relative;
	overflow: visible;
}

.wc-block-components-order-summary-item__image img {
	display: block;
	width: 56px !important;
	height: 56px !important;
	object-fit: cover;
	border-radius: var(--radius-md);
}

.wc-block-components-order-summary-item__quantity {
	position: absolute;
	top: -6px;
	right: -6px;
	background: var(--color-accent-gold);
	color: #0a0a0a !important;
	min-width: 22px;
	height: 22px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.7rem;
	font-weight: var(--font-semibold);
	box-shadow: 0 0 0 2px #000;
	border: none !important;
	padding: 0 6px;
}

.wc-block-components-order-summary-item__description .wc-block-components-product-name {
	font-size: var(--text-sm);
	color: var(--color-text-primary);
	margin: 0 0 var(--space-1);
	font-weight: var(--font-medium);
}

/* Hide the auto-excerpt in checkout order summary — name + price are enough */
.wc-block-checkout .wc-block-components-product-metadata,
.wc-block-checkout .wc-block-components-product-metadata__description {
	display: none !important;
}

.wc-block-components-order-summary-item__individual-prices {
	font-size: var(--text-xs, 0.75rem);
	color: var(--color-text-tertiary);
}

.wc-block-components-order-summary-item__total-price {
	color: var(--color-text-primary);
	font-size: var(--text-sm);
	align-self: start;
}

/* Coupons accordion — chevron right, gold hover */
.wc-block-components-totals-coupon .wc-block-components-panel__button {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: var(--space-3) 0 !important;
	border-top: 1px solid var(--color-border-subtle);
	border-bottom: 1px solid var(--color-border-subtle);
	background: transparent !important;
	color: var(--color-text-primary) !important;
	font-size: var(--text-sm);
	letter-spacing: 0.02em;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	margin-left: auto !important;
	order: 2;
	color: var(--color-text-tertiary);
	transition: transform 0.2s ease, color 0.2s ease;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button:hover {
	color: var(--color-accent-gold) !important;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button:hover .wc-block-components-panel__button-icon {
	color: var(--color-accent-gold);
}

.wc-block-components-totals-coupon .wc-block-components-panel__button[aria-expanded="true"] .wc-block-components-panel__button-icon {
	transform: rotate(180deg);
}

/* Subtotal / shipping rows in totals */
.wc-block-components-totals-item {
	padding: var(--space-3) 0 !important;
	color: var(--color-text-secondary);
	margin: 0 !important;
}

.wc-block-components-totals-item__label {
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

.wc-block-components-totals-item__value {
	color: var(--color-text-primary);
	font-size: var(--text-sm);
	font-variant-numeric: tabular-nums;
}

/* Total row prominent + tax description small */
.wc-block-components-totals-footer-item {
	border-top: 1px solid var(--color-border-subtle);
	margin-top: var(--space-3) !important;
	padding-top: var(--space-4) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	text-transform: none;
	letter-spacing: 0;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: clamp(1.25rem, 1rem + 0.6vw, 1.5rem);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__description,
.wc-block-components-totals-item--total .wc-block-components-totals-item__description {
	display: flex !important;
	justify-content: flex-end !important;
	flex: 1 0 100% !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: none !important;
	margin: var(--space-1) 0 0 !important;
	text-align: right !important;
}

p.wc-block-components-totals-footer-item-tax {
	margin: 0 !important;
	padding: 0 !important;
	font-size: var(--text-xs, 0.75rem) !important;
	color: var(--color-text-tertiary) !important;
}

/* Express checkout buttons — clean grid */
.wc-block-components-express-payment__event-buttons {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
}

@media screen and (min-width: 64em) {
	.wc-block-components-express-payment__event-buttons {
		grid-template-columns: repeat(4, 1fr);
	}
}

.wc-block-components-express-payment__event-buttons > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

/* Section heading typography */
.wc-block-components-checkout-step__heading {
	margin-bottom: var(--space-4);
}

.wc-block-components-title.wc-block-components-checkout-step__title {
	font-size: var(--text-sm) !important;
	font-weight: var(--font-semibold) !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
	color: var(--color-text-primary) !important;
	margin: 0;
}

/* Stripe test mode badge — subtle gold pill */
.wc-stripe-test-mode-badge {
	display: inline-block;
	margin-left: var(--space-2);
	padding: 2px var(--space-2);
	background: rgba(201, 169, 98, 0.12) !important;
	color: var(--color-accent-gold) !important;
	border: 1px solid rgba(201, 169, 98, 0.3);
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: var(--font-medium);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	vertical-align: middle;
}

/* Stripe "use card 4242..." instruction — flat inline notice, no boxed look */
.wc-stripe-payment-method-instruction {
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0 0 var(--space-3);
	margin: 0 0 var(--space-3);
	border-bottom: 1px solid var(--color-border-subtle);
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.wc-stripe-payment-method-instruction strong {
	color: var(--color-text-primary);
}

.wc-stripe-payment-method-instruction a {
	color: var(--color-accent-gold);
}

.wc-stripe-copy-test-number {
	background: transparent !important;
	border: none !important;
	color: var(--color-text-primary) !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.85em;
	cursor: pointer;
	padding: 0 var(--space-1) !important;
	transition: color 0.2s ease;
}

.wc-stripe-copy-test-number:hover {
	color: var(--color-accent-gold) !important;
}

.wc-stripe-copy-test-number i::before {
	content: '⧉';
	margin-right: 4px;
	opacity: 0.5;
}

/*--------------------------------------------------------------
# Address form — ensure everything is readable
--------------------------------------------------------------*/

/* Whole address form inherits a sane default text color */
.wc-block-components-address-form,
.wc-block-components-address-card,
.wc-block-components-address-card-wrapper,
.wc-block-components-address-form-wrapper {
	color: var(--color-text-primary) !important;
}

/* All inputs + selects in the address form — inset darker than parent card.
 * The 5%-white border is barely visible to the eye but real enough that the
 * WC Stripe block samples it when computing the iframe Appearance, so the
 * Karte/Klarna/iDEAL rows in the Stripe iframe inherit a matching look. */
.wc-block-components-address-form input,
.wc-block-components-address-form select,
.wc-block-components-address-form .wc-blocks-components-select__select,
.wc-block-checkout__contact-fields input {
	background: var(--color-bg-secondary) !important;
	border: 1px solid rgba(255, 255, 255, 0.05) !important;
	color: var(--color-text-primary) !important;
}

.wc-block-components-address-form input:focus,
.wc-block-components-address-form select:focus,
.wc-block-components-address-form .wc-blocks-components-select__select:focus,
.wc-block-checkout__contact-fields input:focus {
	border-color: var(--color-accent-gold) !important;
	outline: none !important;
}

/* Field labels */
.wc-block-components-address-form .wc-block-components-text-input label,
.wc-block-components-address-form .wc-blocks-components-select__label,
.wc-block-components-text-input label,
.wc-blocks-components-select__label {
	color: var(--color-text-secondary) !important;
}

/* Floated / active label — bg matches parent card (sitting over the input border) */
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label {
	color: var(--color-text-tertiary) !important;
	background: var(--color-bg-tertiary);
	padding: 0 var(--space-1);
}

/* "+ Add apartment, suite, etc." link */
.wc-block-components-address-form__address_2-toggle {
	color: var(--color-accent-gold) !important;
	font-size: var(--text-xs, 0.75rem) !important;
	letter-spacing: 0.04em;
	margin: var(--space-1) 0 var(--space-3);
	display: inline-block;
	cursor: pointer;
}

.wc-block-components-address-form__address_2-toggle:hover {
	color: var(--color-accent-gold-light) !important;
}

/* Country/state dropdown options (browser-native dropdown) */
.wc-blocks-components-select__select option {
	background: #000;
	color: var(--color-text-primary);
}

/* Address card text — explicit overrides in case WC defaults paint dark text */
.wc-block-components-address-card,
.wc-block-components-address-card *,
.wc-block-components-address-card address,
.wc-block-components-address-card span {
	color: var(--color-text-primary);
}

.wc-block-components-address-card .wc-block-components-address-card__address-section--secondary {
	color: var(--color-text-secondary) !important;
}

.wc-block-components-address-card .wc-block-components-address-card__edit {
	color: var(--color-accent-gold) !important;
}

/* Use-same-address-for-billing checkbox text */
.wc-block-checkout__use-address-for-billing .wc-block-components-checkbox__label {
	color: var(--color-text-primary) !important;
}

/*--------------------------------------------------------------
# Section Group Cards (left side of checkout)
--------------------------------------------------------------*/
/* Each checkout step becomes a clearly visible grey panel.
 * The .wc-block-components-form prefix beats WC's own
 * `.wc-block-components-form .wc-block-components-checkout-step { background: none }`
 * which would otherwise win on specificity. */
.wc-block-components-checkout-step,
.wc-block-components-form .wc-block-components-checkout-step {
	background: var(--color-bg-tertiary) !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	border: 1px solid var(--color-border-subtle) !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-8) !important;
	margin: 0 0 var(--space-4) !important;
}

/* Visually merge Contact-Information + Shipping-Address into one box */
.wc-block-components-form .wc-block-checkout__contact-fields {
	margin-bottom: 0 !important;
	border-bottom: 1px solid var(--color-border-subtle) !important;
	border-bottom-left-radius: 0 !important;
	border-bottom-right-radius: 0 !important;
}

.wc-block-components-form .wc-block-checkout__shipping-fields {
	border-top: none !important;
	border-top-left-radius: 0 !important;
	border-top-right-radius: 0 !important;
}

/* Hide the empty placeholder blocks WC injects between Contact and Shipping */
.wp-block-woocommerce-checkout-shipping-method-block:empty,
.wp-block-woocommerce-checkout-pickup-options-block:empty {
	display: none !important;
}

@media screen and (min-width: 48em) {
	.wc-block-components-checkout-step {
		padding: var(--space-7) var(--space-8) !important;
	}
}

@media screen and (max-width: 47.99em) {
	.wc-block-components-checkout-step,
	.wc-block-components-form .wc-block-components-checkout-step {
		padding: var(--space-5) var(--space-4) !important;
	}

	.wc-block-checkout__order-notes.wc-block-components-checkout-step,
	.wc-block-components-form .wc-block-checkout__order-notes.wc-block-components-checkout-step {
		padding: var(--space-4) !important;
	}

	#payment ul.payment_methods li.wc_payment_method {
		padding: var(--space-3);
	}
}

/* Section heading inside each card */
.wc-block-components-checkout-step__heading-container {
	margin: 0 0 var(--space-5) !important;
	padding: 0 !important;
}

.wc-block-components-checkout-step__heading {
	margin: 0 !important;
}

.wc-block-components-checkout-step__content {
	padding: 0 !important;
}

/* Order notes section is a div (not fieldset), make it styled the same way */
.wc-block-checkout__order-notes.wc-block-components-checkout-step,
.wc-block-components-form .wc-block-checkout__order-notes.wc-block-components-checkout-step {
	background: var(--color-bg-tertiary) !important;
	border: 1px solid var(--color-border-subtle) !important;
	border-radius: var(--radius-lg) !important;
	padding: var(--space-5) var(--space-8) !important;
}

/* Terms text — sits below cards, not in a card */
.wc-block-checkout__terms,
.wc-block-checkout__terms-and-conditions {
	background: transparent !important;
	border: none !important;
	padding: var(--space-4) var(--space-2) !important;
	margin-top: var(--space-2) !important;
	color: var(--color-text-tertiary) !important;
	font-size: var(--text-sm) !important;
}

/*--------------------------------------------------------------
# Order Received / Thank You Page
--------------------------------------------------------------*/
.woocommerce-order-received .woocommerce {
	padding: var(--space-12) 0 var(--space-16);
}

.woocommerce-order {
	display: flex;
	flex-direction: column;
	gap: var(--space-8);
	max-width: var(--width-narrow);
	margin: 0 auto;
}

/* Success notice — hero confirmation */
.woocommerce-order > .woocommerce-notice--success,
.woocommerce-order .woocommerce-thankyou-order-received {
	background: linear-gradient(135deg, var(--color-bg-secondary), var(--color-bg-tertiary));
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-xl);
	padding: var(--space-10) var(--space-8);
	margin: 0;
	text-align: center;
	font-size: var(--text-2xl);
	font-weight: var(--font-semibold);
	letter-spacing: var(--tracking-tight);
	color: var(--color-text-primary);
	position: relative;
	overflow: hidden;
}

.woocommerce-order > .woocommerce-notice--success::before,
.woocommerce-order .woocommerce-thankyou-order-received::before {
	content: "";
	display: block;
	width: 56px;
	height: 56px;
	margin: 0 auto var(--space-4);
	border-radius: var(--radius-full);
	background: var(--color-accent-gold-muted);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a962' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 28px 28px;
}

.woocommerce-order > .woocommerce-notice--success::after {
	display: none;
}

/* Order overview — facts grid */
.woocommerce-order-overview.order_details {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--space-2);
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-6);
	margin: 0;
}

.woocommerce-order-overview.order_details li {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	padding: var(--space-3) var(--space-4);
	border: none;
	margin: 0;
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	color: var(--color-text-tertiary);
}

.woocommerce-order-overview.order_details li strong {
	display: block;
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	letter-spacing: var(--tracking-normal);
	text-transform: none;
	color: var(--color-text-primary);
}

/* Section card — used for bank details, order details, customer details */
.woocommerce-order .woocommerce-bacs-bank-details,
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-lg);
	padding: var(--space-8);
	margin: 0;
}

.woocommerce-order .woocommerce-bacs-bank-details > h2,
.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title {
	font-size: var(--text-xl);
	font-weight: var(--font-semibold);
	letter-spacing: var(--tracking-tight);
	margin: 0 0 var(--space-5);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--color-border-subtle);
	color: var(--color-text-primary);
}

/* BACS bank details */
.woocommerce-order .wc-bacs-bank-details-account-name {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-accent-gold);
	margin: 0 0 var(--space-3);
}

.woocommerce-order ul.wc-bacs-bank-details {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.woocommerce-order ul.wc-bacs-bank-details li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-4);
	padding: var(--space-3) 0;
	border-bottom: 1px dashed var(--color-border-subtle);
	color: var(--color-text-secondary);
	font-size: var(--text-sm);
}

.woocommerce-order ul.wc-bacs-bank-details li:last-child {
	border-bottom: none;
}

.woocommerce-order ul.wc-bacs-bank-details li strong {
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
	font-family: var(--font-mono);
	font-size: var(--text-sm);
	text-align: right;
}

/* Order details table */
.woocommerce-order .woocommerce-table--order-details {
	background: transparent;
	border: none;
	margin: 0;
	width: 100%;
}

.woocommerce-order .woocommerce-table--order-details thead th {
	background: transparent;
	color: var(--color-text-tertiary);
	font-size: var(--text-xs);
	font-weight: var(--font-medium);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	padding: 0 0 var(--space-3);
	border-bottom: 1px solid var(--color-border-default);
}

.woocommerce-order .woocommerce-table--order-details tbody td {
	background: transparent;
	padding: var(--space-4) 0;
	border-bottom: 1px solid var(--color-border-subtle);
	color: var(--color-text-primary);
	font-size: var(--text-base);
}

.woocommerce-order .woocommerce-table--order-details tbody tr:last-child td {
	border-bottom: 1px solid var(--color-border-default);
}

.woocommerce-order .woocommerce-table--order-details .product-total,
.woocommerce-order .woocommerce-table--order-details td.product-total {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.woocommerce-order .woocommerce-table--order-details tfoot th,
.woocommerce-order .woocommerce-table--order-details tfoot td {
	background: transparent;
	padding: var(--space-3) 0;
	border: none;
	font-size: var(--text-sm);
}

.woocommerce-order .woocommerce-table--order-details tfoot th {
	color: var(--color-text-secondary);
	font-weight: var(--font-medium);
	text-transform: uppercase;
	letter-spacing: var(--tracking-wider);
	font-size: var(--text-xs);
	text-align: left;
}

.woocommerce-order .woocommerce-table--order-details tfoot td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.woocommerce-order .woocommerce-table--order-details tfoot tr.order-total th,
.woocommerce-order .woocommerce-table--order-details tfoot tr.order-total td {
	font-size: var(--text-lg);
	font-weight: var(--font-bold);
	text-transform: none;
	letter-spacing: var(--tracking-normal);
	color: var(--color-text-primary);
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-default);
}

.woocommerce-order .woocommerce-table--order-details .woocommerce-Price-amount {
	color: inherit;
}

/* Customer details — addresses */
.woocommerce-order .woocommerce-customer-details address {
	font-style: normal;
	color: var(--color-text-secondary);
	font-size: var(--text-base);
	line-height: var(--leading-relaxed);
	padding: 0;
	border: none;
	background: transparent;
}

.woocommerce-order .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
	margin: 0;
}

@media screen and (min-width: 48em) {
	.woocommerce-order .woocommerce-customer-details .woocommerce-columns--addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-order .woocommerce-customer-details .woocommerce-column {
	margin: 0;
	padding: 0;
}

.woocommerce-order .woocommerce-customer-details .woocommerce-column + .woocommerce-column {
	border-top: 1px solid var(--color-border-subtle);
	padding-top: var(--space-6);
}

@media screen and (min-width: 48em) {
	.woocommerce-order .woocommerce-customer-details .woocommerce-column + .woocommerce-column {
		border-top: none;
		border-left: 1px solid var(--color-border-subtle);
		padding-top: 0;
		padding-left: var(--space-8);
	}
}

/* Mobile tightening */
@media screen and (max-width: 47.9375em) {
	.woocommerce-order > .woocommerce-notice--success,
	.woocommerce-order .woocommerce-thankyou-order-received {
		padding: var(--space-8) var(--space-5);
		font-size: var(--text-xl);
	}

	.woocommerce-order .woocommerce-bacs-bank-details,
	.woocommerce-order .woocommerce-order-details,
	.woocommerce-order .woocommerce-customer-details {
		padding: var(--space-6);
	}

	.woocommerce-order-overview.order_details {
		grid-template-columns: 1fr 1fr;
		padding: var(--space-4);
	}
}

/* =========================================================================
   Product reviews — premium dark+gold layout
   ========================================================================= */

/* Above-the-fold rating row on product page: stars + count inline & compact */
.woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: var(--space-3, 12px);
	margin: var(--space-2, 8px) 0 var(--space-4, 16px) 0;
	line-height: 1;
}

.woocommerce-product-rating .star-rating {
	--star-size: 16px;
	margin: 0;
}

.woocommerce-product-rating .woocommerce-review-link {
	font-size: 0.82em;
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color 0.15s ease;
}

.woocommerce-product-rating .woocommerce-review-link:hover,
.woocommerce-product-rating .woocommerce-review-link:focus-visible {
	color: var(--color-gold, #c9a962);
}

.woocommerce-product-rating .woocommerce-review-link:focus-visible {
	outline: 2px solid var(--color-gold, #c9a962);
	outline-offset: 2px;
	border-radius: 2px;
}


/* Reviews section heading */
.cinesigns-reviews-heading {
	font-size: 1.5rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.95);
	margin: 0 0 var(--space-5, 20px) 0;
	letter-spacing: -0.01em;
}

.cinesigns-reviews-heading__count {
	color: var(--color-gold, #c9a962);
	font-weight: 600;
}

/* Summary header — average rating + distribution */
.cinesigns-reviews-summary {
	display: grid;
	grid-template-columns: minmax(180px, auto) 1fr;
	gap: var(--space-8, 40px);
	align-items: center;
	padding: var(--space-6, 24px) 0 var(--space-7, 32px) 0;
	margin-bottom: var(--space-6, 24px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

@media (max-width: 640px) {
	.cinesigns-reviews-summary {
		grid-template-columns: 1fr;
		gap: var(--space-5, 20px);
		text-align: center;
	}
}

.cinesigns-reviews-summary__main {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-2, 8px);
}

@media (max-width: 640px) {
	.cinesigns-reviews-summary__main {
		align-items: center;
	}
}

.cinesigns-reviews-summary__number {
	font-size: 3rem;
	font-weight: 300;
	line-height: 1;
	color: var(--color-gold, #c9a962);
	letter-spacing: -0.02em;
}

/* Summary stars are sized via --star-size on .cinesigns-reviews-summary .star-rating above */

.cinesigns-reviews-summary__count {
	font-size: 0.85em;
	color: rgba(255, 255, 255, 0.55);
	margin-top: var(--space-1, 4px);
}

.cinesigns-reviews-summary__count strong {
	color: rgba(255, 255, 255, 0.85);
	font-weight: 600;
}

.cinesigns-reviews-summary__distribution {
	display: flex;
	flex-direction: column;
	gap: var(--space-2, 8px);
	min-width: 0;
}

.cinesigns-reviews-summary__bar {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: var(--space-3, 12px);
	align-items: center;
	font-size: 0.82em;
	color: rgba(255, 255, 255, 0.6);
}

.cinesigns-reviews-summary__bar-label {
	color: var(--color-gold, #c9a962);
	font-weight: 500;
	min-width: 2em;
}

.cinesigns-reviews-summary__bar-track {
	height: 6px;
	background: rgba(255, 255, 255, 0.06);
	border-radius: 999px;
	overflow: hidden;
}

.cinesigns-reviews-summary__bar-fill {
	height: 100%;
	background: var(--color-gold, #c9a962);
	border-radius: 999px;
	transition: width 0.4s ease;
}

.cinesigns-reviews-summary__bar-count {
	min-width: 3em;
	text-align: right;
	font-variant-numeric: tabular-nums;
}


/* Strip the default numbered <ol> styling */
#comments ol.commentlist,
.woocommerce #reviews #comments ol.commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Each review as a subtle card */
#comments ol.commentlist > li {
	background: rgba(255, 255, 255, 0.025);
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 14px;
	padding: var(--space-5, 20px) var(--space-6, 24px);
	margin: 0;
	list-style: none;
	transition: border-color 0.2s ease, background 0.2s ease;
}

#comments ol.commentlist > li:hover {
	border-color: rgba(255, 255, 255, 0.1);
	background: rgba(255, 255, 255, 0.035);
}

#comments ol.commentlist > li + li {
	margin-top: var(--space-3, 12px);
}

#comments ol.commentlist > li .comment_container {
	display: block;
	background: none;
	border: none;
	padding: 0;
	margin: 0;
}

#comments ol.commentlist > li .comment-text {
	padding: 0;
	margin: 0;
	border: none;
}

/* Star rating — replace WC's font-based stars with custom SVG mask.
   Sizing via --star-size variable (pixels) so it doesn't collapse with the
   text-hiding font: 0 trick on the inner span. */
#comments .star-rating,
.cinesigns-reviews-summary .star-rating {
	--star-size: 16px;
	width: calc(var(--star-size) * 5);
	height: var(--star-size);
	position: relative;
	display: inline-block;
	overflow: hidden;
	font-family: inherit !important;
	letter-spacing: 0 !important;
	color: var(--color-gold, #c9a962);
}

#comments .star-rating {
	margin: 0 0 var(--space-2, 8px) 0;
}

.cinesigns-reviews-summary .star-rating {
	--star-size: 26px;
}

#comments .star-rating::before,
.cinesigns-reviews-summary .star-rating::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background-color: rgba(255, 255, 255, 0.16);
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2 9.19 8.62 2 9.24l5.45 4.73L5.82 21z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2 9.19 8.62 2 9.24l5.45 4.73L5.82 21z'/></svg>");
	-webkit-mask-size: 20% 100%;
	mask-size: 20% 100%;
	-webkit-mask-repeat: repeat-x;
	mask-repeat: repeat-x;
	font: inherit !important;
}

#comments .star-rating span,
.cinesigns-reviews-summary .star-rating span {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
	padding-top: 0 !important;
	text-indent: -9999em;
	white-space: nowrap;
}

#comments .star-rating span::before,
.cinesigns-reviews-summary .star-rating span::before {
	content: '' !important;
	position: absolute;
	top: 0;
	left: 0;
	width: calc(var(--star-size) * 5);
	height: 100%;
	background-color: var(--color-gold, #c9a962);
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2 9.19 8.62 2 9.24l5.45 4.73L5.82 21z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2 9.19 8.62 2 9.24l5.45 4.73L5.82 21z'/></svg>");
	-webkit-mask-size: 20% 100%;
	mask-size: 20% 100%;
	-webkit-mask-repeat: repeat-x;
	mask-repeat: repeat-x;
	font: inherit !important;
}

/* Meta row: name · flag · date — compact, single line */
#comments .meta {
	margin: 0 0 var(--space-2, 8px) 0;
	font-size: 0.85em;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.4;
	font-style: normal;
}

#comments .woocommerce-review__author {
	font-weight: 600;
	color: rgba(255, 255, 255, 0.95);
	font-style: normal;
}

#comments .woocommerce-review__dash {
	margin: 0 var(--space-2, 8px);
	color: rgba(255, 255, 255, 0.3);
}

/* Hide the "(verified buyer)" line — implicit for all imported reviews */
#comments .woocommerce-review__verified {
	display: none;
}

.cinesigns-review__flag {
	display: inline-flex;
	align-items: center;
	margin-left: var(--space-2, 8px);
	line-height: 1;
	vertical-align: -0.2em;
	cursor: help;
}

.cinesigns-review__flag .cs-flag {
	width: 1.1em;
	height: 1.1em;
}

/* Review body */
#comments .description,
#comments .cinesigns-review__body {
	font-size: 0.88em;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.85);
}

#comments .description p,
#comments .cinesigns-review__body p {
	margin: 0 0 var(--space-2, 8px) 0;
}

#comments .description p:last-child,
#comments .cinesigns-review__body p:last-child {
	margin-bottom: 0;
}

/* Two-column main row: text left, optional image column right */
.cinesigns-review__main {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-4, 16px);
	align-items: start;
}

.cinesigns-review__main.has-images {
	grid-template-columns: 1fr auto;
}

@media (max-width: 640px) {
	.cinesigns-review__main.has-images {
		grid-template-columns: 1fr;
	}
}

/* Image column: stack multiple images vertically */
.cinesigns-review__images {
	display: flex;
	flex-direction: column;
	gap: var(--space-2, 8px);
	flex-shrink: 0;
}

.cinesigns-review__image-link {
	display: inline-block;
	border-radius: 10px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.cinesigns-review__image-link:hover {
	transform: scale(1.03);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
	border-color: rgba(201, 169, 98, 0.3);
}

.cinesigns-review__image-link:focus-visible {
	outline: 2px solid var(--color-gold, #c9a962);
	outline-offset: 3px;
}

.cinesigns-review__image-link img {
	display: block;
	width: 140px;
	height: 140px;
	object-fit: cover;
}

/* Translate — dezenter Text-Link statt Pill */
.cinesigns-review__translate {
	background: transparent;
	border: none;
	padding: 0;
	margin-top: var(--space-3, 12px);
	color: rgba(255, 255, 255, 0.45);
	font-size: 0.75em;
	letter-spacing: 0.04em;
	cursor: pointer;
	font-family: inherit;
	transition: color 0.15s ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.cinesigns-review__translate::before {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'><path d='M5 8h12M9 4l3 4-3 4M15 16h-5M11 20l-3-4 3-4'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'><path d='M5 8h12M9 4l3 4-3 4M15 16h-5M11 20l-3-4 3-4'/></svg>");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.cinesigns-review__translate:hover {
	background: transparent;
	color: var(--color-gold, #c9a962);
}

.cinesigns-review__translate:focus-visible {
	outline: 2px solid var(--color-gold, #c9a962);
	outline-offset: 3px;
	border-radius: 2px;
}

.cinesigns-review__translate:disabled {
	opacity: 0.4;
	cursor: wait;
}

/* Pagination — only the circles, no outer pill/border/divider */
.woocommerce-pagination,
nav.woocommerce-pagination {
	margin-top: var(--space-8, 40px);
	padding: 0;
	border: none;
	background: none;
}

.woocommerce-pagination ul,
.woocommerce-pagination ol,
.woocommerce-pagination ul.page-numbers,
.woocommerce-pagination ol.page-numbers {
	list-style: none;
	padding: 0;
	margin: 0;
	border: none;
	background: none;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: var(--space-2, 8px);
}

.woocommerce-pagination li {
	list-style: none;
	border: none;
	background: none;
	padding: 0;
	margin: 0;
}

.woocommerce-pagination li a,
.woocommerce-pagination li span,
.woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 12px;
	border-radius: 999px;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.9em;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.woocommerce-pagination .page-numbers:hover {
	border-color: var(--color-gold, #c9a962);
	color: var(--color-gold, #c9a962);
}

.woocommerce-pagination .page-numbers:focus-visible {
	outline: 2px solid var(--color-gold, #c9a962);
	outline-offset: 2px;
}

.woocommerce-pagination .page-numbers.current {
	background: var(--color-gold, #c9a962);
	border-color: var(--color-gold, #c9a962);
	color: #0a0a0a;
	font-weight: 600;
}

.woocommerce-pagination .page-numbers.dots {
	border: none;
	background: none;
	color: rgba(255, 255, 255, 0.3);
}

/* Hide reply links inside reviews (no threading needed) */
#comments .comment-reply-link {
	display: none;
}

/* ==========================================================================
   Classic Checkout — Payment Methods refinement
   ========================================================================== */

/* Each payment method renders as a self-contained card. Radio + label +
   payment_box all inside the same bordered container (was previously: radio
   floating above the label-styled box). */
#payment ul.payment_methods li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	margin-bottom: var(--space-3);
	padding: var(--space-4);
	background: var(--color-bg-secondary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	transition: border-color var(--transition-fast);
}

#payment ul.payment_methods li.wc_payment_method:hover {
	border-color: var(--color-border-default);
}

#payment ul.payment_methods li.wc_payment_method:has(> input[type="radio"]:checked) {
	border-color: var(--color-accent-gold);
}

#payment ul.payment_methods li.wc_payment_method > input[type="radio"] {
	flex-shrink: 0;
	margin: 0;
	accent-color: var(--color-accent-gold);
	width: 18px;
	height: 18px;
}

/* Reset old label styling — label is now just text inside the card */
#payment ul.payment_methods li.wc_payment_method > label {
	flex: 1;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	border-radius: 0;
	color: var(--color-text-primary);
	font-weight: var(--font-medium);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

/* PayPal logo — rendered as <img> via PHP filter (Stripe UPE JS doesn't touch
   PPCP labels). */
#payment ul.payment_methods li.wc_payment_method > label img.cinesigns-payment-icon--paypal {
	height: 24px;
	width: auto;
	margin-left: auto;
	display: block;
}

/* Stripe brand stack — rendered via CSS pseudo-element so it survives the
   Stripe UPE JS that rewrites the label innerHTML after init. */
#payment ul.payment_methods li.wc_payment_method.payment_method_stripe > label::after {
	content: '';
	display: inline-block;
	margin-left: auto;
	width: 184px;
	height: 26px;
	flex-shrink: 0;
	background-image:
		url('/wp-content/plugins/woocommerce-gateway-stripe/assets/images/visa.svg'),
		url('/wp-content/plugins/woocommerce-gateway-stripe/assets/images/mastercard.svg'),
		url('/wp-content/plugins/woocommerce-gateway-stripe/assets/images/amex.svg'),
		url('/wp-content/plugins/woocommerce-gateway-stripe/assets/images/klarna.svg');
	background-repeat: no-repeat;
	background-size: 40px 26px;
	background-position: 0 center, 48px center, 96px center, 144px center;
}

/* Reset old label hover/checked styles that no longer apply */
#payment ul.payment_methods li.wc_payment_method > label:hover {
	border-color: transparent;
}

#payment ul.payment_methods li.wc_payment_method input[type="radio"]:checked + label,
#payment ul.payment_methods li.wc_payment_method input[type="radio"]:checked ~ label {
	border-color: transparent;
}

/* payment_box (Stripe UPE accordion / Stripe Element / etc) lives below label,
   takes full row width inside the card */
#payment ul.payment_methods li.wc_payment_method > .payment_box {
	flex-basis: 100%;
	margin: var(--space-2) 0 0;
	padding: var(--space-2) 0 0;
	background: none;
	border: none;
	border-top: 1px solid var(--color-border-subtle);
	border-radius: 0;
}

/* Stripe UPE fieldset: kill default fieldset padding/border + the
   "save card" wrapper margin so the box hugs the accordion content. */
#payment ul.payment_methods li.wc_payment_method fieldset#wc-stripe-upe-form,
#payment ul.payment_methods li.wc_payment_method .wc-payment-form {
	margin: 0;
	padding: 0;
	border: 0;
}

#payment ul.payment_methods li.wc_payment_method .wc-stripe-upe-element {
	margin: 0;
}

/* Stripe's currency selector iframe sits above the UPE element with its own
   top margin — flatten it. */
#payment ul.payment_methods li.wc_payment_method #wc-stripe-currency-selector {
	margin-top: 0 !important;
}

/* "Save card for future use" row spacing — tight against the accordion */
#payment ul.payment_methods li.wc_payment_method .woocommerce-SavedPaymentMethods-saveNew {
	margin-top: var(--space-2);
	margin-bottom: 0;
}

/* Hide the inline payment_box for methods that have no extra fields
   (e.g. PayPal — its box just contains the description). Keeps the card tight. */
#payment ul.payment_methods li.wc_payment_method.payment_method_ppcp-gateway > .payment_box:empty,
#payment ul.payment_methods li.wc_payment_method.payment_method_ppcp-gateway > .payment_box p:only-child {
	display: none;
}

/* "Zahlungspflichtig bestellen" muss IMMER sichtbar bleiben — PPCP versteckt
   den Button per JS wenn PayPal radio gewählt ist, weil normalerweise ihre
   Smart-Buttons im payment_box das Auslösen übernehmen. Wir haben den
   Smart-Button aber in die Express-Area oben verschoben → unten wäre sonst
   nix mehr da. WC core stellt eh `data-order_button_text` korrekt um
   ("Weiter zu PayPal" für PPCP), Klick triggert dann den Server-Redirect zu
   PayPal — funktional identisch zum Smart-Button. */
.cinesigns-checkout #place_order,
.cinesigns-checkout .place-order #place_order {
	display: inline-block !important;
}

/* ==========================================================================
   Classic Checkout — Terms + Place Order section
   ========================================================================== */

/* Force left-aligned content for the whole terms/place-order wrapper */
#payment .place-order,
.woocommerce-terms-and-conditions-wrapper,
.woocommerce-terms-and-conditions-wrapper .form-row {
	text-align: left;
}

/* Checkbox row: checkbox left, text immediately right, no centering.
   Higher specificity (.cinesigns-checkout) + !important to win over default WC. */
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper .form-row.validate-required {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--space-3);
	margin: 0 0 var(--space-4);
	text-align: left !important;
}

/* Top-of-checkout WC notice komplett unterdrücken. Wir zeigen Fehler inline
   am betroffenen Feld (roter Rahmen) — Notice oben ist redundant und schlecht
   positioniert. NoticeGroup-checkout ist WC-spezifisch für AJAX-Validation-
   Feedback auf der Checkout-Seite. */
.woocommerce-NoticeGroup-checkout,
.woocommerce-NoticeGroup-updateOrderReview {
	display: none !important;
}

/* Original WC "Bereits Kunde?"-Banner ausblenden — wir rendern einen
   dezenten Inline-Link unter dem Rechnungsdaten-Header. Login-Form bleibt
   im DOM und wird per body.cinesigns-login-form-visible eingeklappt. */
.woocommerce-form-login-toggle {
	display: none !important;
}

/* Inline-Login-Form-Wrapper — sitzt direkt unter dem "Bereits Kunde?"-Link.
   Initial verborgen, klappt bei body.cinesigns-login-form-visible auf.
   Eigene Klassen statt .woocommerce-form-login Selektor weil HTML5 keine
   nested forms erlaubt — Browser strippt den inneren <form>-Tag. */
.cinesigns-login-form-wrapper {
	display: none;
	margin: 0 0 var(--space-5);
	padding: var(--space-4);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	background: rgba(255, 255, 255, 0.02);
}

body.cinesigns-login-form-visible .cinesigns-login-form-wrapper {
	display: block;
}

/* Wenn die Form offen ist, den "Bereits Kunde? Anmelden →" Prompt darüber
   ausblenden — redundant, die Form ist ja schon da. */
body.cinesigns-login-form-visible .cinesigns-login-prompt {
	display: none;
}

.cinesigns-login-form-wrapper .cinesigns-login-row {
	margin: 0 0 var(--space-3);
}

.cinesigns-login-form-wrapper label {
	display: block;
	margin: 0 0 var(--space-1);
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.cinesigns-login-form-wrapper .cinesigns-login-input {
	width: 100%;
	padding: var(--space-3);
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	color: var(--color-text-primary);
	font-size: var(--text-sm);
}

.cinesigns-login-form-wrapper .cinesigns-login-input:focus {
	border-color: var(--color-accent-gold);
	outline: none;
}

.cinesigns-login-form-wrapper .cinesigns-login-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3);
	margin: var(--space-3) 0 var(--space-2);
}

.cinesigns-login-form-wrapper .cinesigns-login-remember {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	cursor: pointer;
}

.cinesigns-login-form-wrapper .cinesigns-login-remember input[type="checkbox"] {
	margin: 0;
}

.cinesigns-login-form-wrapper .cinesigns-login-submit-btn {
	background: var(--color-accent-gold) !important;
	color: #111 !important;
	border: 0 !important;
	padding: var(--space-3) var(--space-6) !important;
	border-radius: var(--radius-md) !important;
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s;
	margin-left: auto;
}

.cinesigns-login-form-wrapper .cinesigns-login-submit-btn:hover {
	background: #d4b56e !important;
	color: #111 !important;
	border-color: transparent !important;
}

.cinesigns-login-form-wrapper .cinesigns-login-lost {
	margin: 0;
	font-size: var(--text-sm);
}

.cinesigns-login-form-wrapper .cinesigns-login-lost a {
	color: var(--color-text-tertiary);
	text-decoration: none;
}

.cinesigns-login-form-wrapper .cinesigns-login-lost a:hover {
	color: var(--color-accent-gold);
}

.cinesigns-login-prompt {
	margin: var(--space-2) 0 var(--space-4);
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	text-align: left;
}

.cinesigns-login-prompt a {
	color: var(--color-accent-gold);
	text-decoration: none;
	border-bottom: 1px dashed currentColor;
	padding-bottom: 1px;
	cursor: pointer;
}

.cinesigns-login-prompt a:hover,
.cinesigns-login-prompt a:focus-visible {
	border-bottom-style: solid;
}

/* AGB-Wrapper bekommt roten Rahmen wenn die required-Checkbox nicht angehakt
   ist (WC fügt .woocommerce-invalid auf die .form-row hinzu). Damit fällt's
   visuell auf, ohne dass die Layout-Struktur der Checkbox-Zeile bricht. */
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper:has(.form-row.woocommerce-invalid) {
	border: 1px solid var(--color-error);
	background: rgba(255, 69, 58, 0.06);
	border-radius: var(--radius-md);
	padding: var(--space-4);
	margin-bottom: var(--space-4);
}

/* WC AJAX kann die "bitte akzeptieren"-Fehlermeldung als <small>/<div> direkt
   in die terms .form-row injizieren — das bricht das Flex-Layout der Checkbox.
   Inline-Errors innerhalb des Terms-Wrappers verstecken; der rote Rahmen oben
   übernimmt das visuelle Feedback. */
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-error,
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-NoticeGroup,
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper small.error,
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper .wc_error,
.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper .checkout-inline-error-message {
	display: none !important;
}

.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	flex: 1;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	line-height: 1.5;
}

.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox input[type="checkbox"] {
	margin: 1px 0 0 !important;
}

.cinesigns-checkout .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox .woocommerce-terms-and-conditions-checkbox-text {
	flex: 1;
	min-width: 0;
}

/* Privacy policy paragraph aligned with the rest */
.woocommerce-privacy-policy-text {
	text-align: left;
	margin-bottom: var(--space-4);
}

/* ==========================================================================
   Newsletter Opt-In — sits above the AGB wrapper. Visually separate from
   the terms checkbox so the consent is unmistakably its own (GDPR: no
   coupling of newsletter consent with terms acceptance).
   ========================================================================== */

.cinesigns-newsletter-optin {
	margin: 0 0 var(--space-4);
	padding: var(--space-3) var(--space-4);
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
}

.cinesigns-newsletter-optin__label {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--space-3);
	margin: 0;
	padding: 0;
	cursor: pointer;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	line-height: 1.5;
}

.cinesigns-newsletter-optin__label input[type="checkbox"] {
	margin: 1px 0 0;
}

.cinesigns-newsletter-optin__text {
	flex: 1;
	min-width: 0;
}

/* ==========================================================================
   Unified Checkbox System — classic checkout. Replaces near-invisible
   native checkboxes with branded gold-on-dark boxes via appearance:none.
   Touch-friendly (20px box + padded label) for mobile.
   ========================================================================== */

.cinesigns-checkout input[type="checkbox"],
.cinesigns-login-form-wrapper input[type="checkbox"],
.cinesigns-newsletter-optin__label input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 20px !important;
	height: 20px !important;
	min-width: 20px;
	padding: 0;
	flex-shrink: 0;
	background: var(--color-bg-tertiary);
	border: 1.5px solid var(--color-border-default);
	border-radius: 4px;
	cursor: pointer;
	transition: border-color var(--transition-fast), background-color var(--transition-fast);
	position: relative;
	vertical-align: middle;
}

.cinesigns-checkout input[type="checkbox"]:hover,
.cinesigns-login-form-wrapper input[type="checkbox"]:hover,
.cinesigns-newsletter-optin__label input[type="checkbox"]:hover {
	border-color: var(--color-accent-gold);
}

.cinesigns-checkout input[type="checkbox"]:focus-visible,
.cinesigns-login-form-wrapper input[type="checkbox"]:focus-visible,
.cinesigns-newsletter-optin__label input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
	border-color: var(--color-accent-gold);
}

.cinesigns-checkout input[type="checkbox"]:checked,
.cinesigns-login-form-wrapper input[type="checkbox"]:checked,
.cinesigns-newsletter-optin__label input[type="checkbox"]:checked {
	background-color: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
}

.cinesigns-checkout input[type="checkbox"]:checked::after,
.cinesigns-login-form-wrapper input[type="checkbox"]:checked::after,
.cinesigns-newsletter-optin__label input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	top: 2px;
	left: 6px;
	width: 5px;
	height: 10px;
	border: solid #111;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* "Create an account?" wrapper — subtle card matching the newsletter opt-in.
   Without this the checkbox sits flush against the form fields and is easy
   to overlook. */
.cinesigns-checkout .woocommerce-account-fields .form-row.create-account {
	margin: var(--space-3) 0 var(--space-4);
	padding: var(--space-3) var(--space-4);
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
}

/* Force flex on the create-account label — default .form-row label rule
   (line ~2964) gives it display:block, which stacks checkbox above text. */
.cinesigns-checkout .woocommerce-account-fields label.woocommerce-form__label-for-checkbox {
	display: flex !important;
	align-items: center;
	gap: var(--space-3);
	margin: 0 !important;
	padding: 0;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	cursor: pointer;
	font-weight: var(--font-medium);
	line-height: 1.5;
}

.cinesigns-checkout .woocommerce-account-fields label.woocommerce-form__label-for-checkbox span {
	flex: 1;
	min-width: 0;
}

/* "Save payment method" checkbox inside the Stripe payment box —
   alignment uses center, since label is single-line. */
.cinesigns-checkout .woocommerce-SavedPaymentMethods-saveNew input[type="checkbox"],
.cinesigns-checkout #wc-stripe-new-payment-method {
	width: 20px !important;
	height: 20px !important;
	margin-right: var(--space-2);
}

/* ==========================================================================
   Classic Checkout — Order Review (Block-Layout-style card)
   ========================================================================== */

.cinesigns-order-review.woocommerce-checkout-review-order-table {
	display: block;
	background: transparent;
	padding: 0;
	margin: 0 0 var(--space-6);
	border: none;
}

/* Single product card */
.cinesigns-order-item {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding: var(--space-4);
	margin-bottom: var(--space-3);
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
}

.cinesigns-order-item__thumb {
	position: relative;
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: var(--radius-sm);
	overflow: hidden;
	background: var(--color-bg-primary);
}

.cinesigns-order-item__thumb img,
.cinesigns-order-item__thumb .cinesigns-order-item__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cinesigns-order-item__qty {
	position: absolute;
	top: -8px;
	right: -8px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: #0a0a0a;
	color: #fff;
	font-size: 11px;
	font-weight: var(--font-semibold);
	line-height: 22px;
	text-align: center;
	border-radius: 11px;
	border: 2px solid var(--color-bg-tertiary);
}

.cinesigns-order-item__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.cinesigns-order-item__name {
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	color: var(--color-text-primary);
	line-height: 1.3;
}

.cinesigns-order-item__prices {
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: var(--text-sm);
}

.cinesigns-order-item__regular {
	color: var(--color-text-tertiary);
	text-decoration: line-through;
}

.cinesigns-order-item__regular .woocommerce-Price-amount {
	color: inherit;
}

.cinesigns-order-item__sale {
	background: rgba(201, 169, 98, 0.15);
	color: var(--color-accent-gold);
	padding: 2px 8px;
	border-radius: 4px;
	font-weight: var(--font-semibold);
}

.cinesigns-order-item__sale .woocommerce-Price-amount {
	color: inherit;
}

.cinesigns-order-item__col-right {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 4px;
}

.cinesigns-order-item__line-total {
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
	font-weight: var(--font-medium);
}

.cinesigns-order-item__line-total .woocommerce-Price-amount {
	color: inherit;
	font-weight: inherit;
}

.cinesigns-order-item__savings {
	background: rgba(255, 255, 255, 0.06);
	color: var(--color-text-secondary);
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 4px;
	white-space: nowrap;
}

@media (max-width: 47.99em) {
	.cinesigns-order-item__savings {
		white-space: normal;
		width: min-content;
		text-align: center;
	}
}

/* Coupon accordion */
.cinesigns-order-review__coupon {
	margin: var(--space-4) 0;
	border-top: 1px solid var(--color-border-subtle);
	border-bottom: 1px solid var(--color-border-subtle);
}

.cinesigns-order-review__coupon[open] .cinesigns-order-review__coupon-toggle svg {
	transform: rotate(180deg);
}

.cinesigns-order-review__coupon-toggle {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-3) 0;
	color: var(--color-text-primary);
	cursor: pointer;
	font-size: var(--text-base);
	font-weight: var(--font-medium);
	list-style: none;
}

.cinesigns-order-review__coupon-toggle::-webkit-details-marker {
	display: none;
}

.cinesigns-order-review__coupon-toggle svg {
	transition: transform 0.2s ease;
	color: var(--color-text-tertiary);
}

.cinesigns-order-review__coupon-form {
	display: flex;
	gap: var(--space-2);
	padding-bottom: var(--space-3);
}

.cinesigns-order-review__coupon-form .cinesigns-coupon-input {
	flex: 1;
	min-width: 0;
	background: var(--color-bg-tertiary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	padding: var(--space-3);
	color: var(--color-text-primary);
	font-size: var(--text-sm);
}

.cinesigns-order-review__coupon-form .cinesigns-coupon-input:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
	border-color: var(--color-accent-gold);
}

.cinesigns-order-review__coupon-form .cinesigns-coupon-apply {
	background: var(--color-bg-tertiary);
	color: var(--color-text-primary);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	font-size: var(--text-sm);
	font-weight: var(--font-medium);
	cursor: pointer;
	transition: border-color var(--transition-fast);
}

.cinesigns-order-review__coupon-form .cinesigns-coupon-apply:hover {
	border-color: var(--color-accent-gold);
}

/* Totals */
.cinesigns-order-review__totals {
	padding-top: var(--space-3);
}

.cinesigns-order-review__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 10px 0;
	font-size: var(--text-sm);
	color: var(--color-text-secondary);
}

.cinesigns-order-review__row .cinesigns-order-review__label {
	color: var(--color-text-secondary);
}

.cinesigns-order-review__row .cinesigns-order-review__value {
	color: var(--color-text-primary);
	text-align: right;
}

.cinesigns-order-review__row .cinesigns-order-review__value .woocommerce-Price-amount {
	color: inherit;
	font-weight: var(--font-medium);
}

/* Shipping (single option = inline row; multi = own block) */
.cinesigns-order-review__shipping-options {
	padding: 10px 0;
	font-size: var(--text-sm);
}

.cinesigns-order-review__shipping-options .cinesigns-order-review__label {
	display: block;
	color: var(--color-text-secondary);
	margin-bottom: var(--space-2);
}

.cinesigns-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cinesigns-shipping-methods li {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: 6px 0;
	color: var(--color-text-primary);
}

.cinesigns-shipping-methods input[type="radio"] {
	accent-color: var(--color-accent-gold);
}

/* Order total — bigger and bolder */
.cinesigns-order-review__row.order-total {
	border-top: 1px solid var(--color-border-subtle);
	margin-top: var(--space-2);
	padding-top: var(--space-4);
	padding-bottom: var(--space-2);
	align-items: center;
}

.cinesigns-order-review__row.order-total .cinesigns-order-review__label {
	font-size: var(--text-base);
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
}

.cinesigns-order-review__row.order-total .cinesigns-order-review__value {
	font-size: 1.75rem;
	font-weight: var(--font-bold);
	color: var(--color-text-primary);
	line-height: 1.1;
}

.cinesigns-order-review__row.order-total .cinesigns-order-review__value .woocommerce-Price-amount {
	font-size: inherit;
	font-weight: inherit;
}

/* WC's wc_cart_totals_order_total_html() injects its own tax note inside .order-total.
   We hide the inline duplicate because we render a custom one below. */
.cinesigns-order-review__row.order-total .includes_tax,
.cinesigns-order-review__row.order-total small {
	display: none;
}

.cinesigns-order-review__tax-info {
	text-align: right;
	color: var(--color-text-tertiary);
	font-size: var(--text-sm);
	padding-top: 4px;
}

.cinesigns-order-review__tax-info .woocommerce-Price-amount {
	color: inherit;
	font-weight: inherit;
}

/* When a coupon is applied, give it a subtle gold accent */
.cinesigns-order-review__row.cart-discount .cinesigns-order-review__value {
	color: var(--color-accent-gold);
}

/* ==========================================================================
   Classic Checkout — Express Buttons Bar (top of customer details column)
   ========================================================================== */

.cinesigns-checkout__express {
	margin-bottom: var(--space-6);
}

.cinesigns-checkout__express-label {
	display: block;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: var(--tracking-wide);
	font-size: 11px;
	font-weight: var(--font-semibold);
	color: var(--color-text-primary);
	margin-bottom: var(--space-3);
}

.cinesigns-checkout__express-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	align-content: flex-start;
}

/* Hide PayPal Pay-Later message and any zero-content element that sneaks
   into the express row via the woocommerce_checkout_before_customer_details
   hook — they shouldn't take vertical space between button rows. */
.cinesigns-checkout__express-buttons .ppcp-messages,
.cinesigns-checkout__express-buttons > *:empty {
	display: none !important;
}

/* WC Order Attribution Inputs ships a `<wc-order-attribution-inputs>` web
   component containing only hidden inputs for source/UTM tracking. It needs
   to stay in the DOM for form submission, but must NOT participate in the
   flex layout (otherwise it occupies an empty grid cell between the wallet
   buttons and PayPal, causing a visible gap). */
.cinesigns-checkout__express-buttons wc-order-attribution-inputs {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	min-width: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	flex: 0 0 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Strip Stripe ECE's inline `margin-top: 1em` — display:contents already
   collapses the wrapper but the margin lingers via the children. */
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element {
	margin: 0 !important;
}

.cinesigns-checkout__express-buttons > * {
	flex: 1 1 calc(50% - var(--space-2));
	min-width: 180px;
	min-height: 44px;
}

/* Stripe Express Checkout Element wraps Apple/Google/Link in ONE container
   that stacks them vertically. Let its inner buttons join the parent flex
   so they sit side-by-side with Amazon Pay & co. */
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element {
	display: contents;
}

.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element > * {
	flex: 1 1 calc(50% - var(--space-2));
	min-width: 180px;
	min-height: 44px;
}

.cinesigns-checkout__express-divider {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin-top: var(--space-5);
	color: var(--color-text-primary);
	font-size: var(--text-sm);
}

/* Adresszeile 2 (Wohnung/Suite) per default ausblenden — Kunden tippen da
   sonst aus Versehen die Hausnummer rein. JS injiziert einen Toggle-Link
   nach Adresszeile 1, der das Feld auf Klick einblendet.
   !important nötig damit WCs default form-row display nicht durchschlägt. */
#billing_address_2_field,
#shipping_address_2_field {
	display: none !important;
}

/* Bundesland für DE-Adressen komplett ausblenden — irrelevant für deutsche
   Postanschriften. WC's address-i18n.js hided das Feld zwar via locale-Config
   (hidden: true), aber erst nach JS-Init und nur per `country_to_state_changed`.
   CSS-Fallback verhindert FOUC und greift selbst wenn JS scheitert. */
body.cinesigns-billing-country-de #billing_state_field,
body.cinesigns-billing-country-de #shipping_state_field {
	display: none !important;
}

.cinesigns-address2-toggle-row {
	margin: calc(var(--space-2) * -1) 0 var(--space-3) !important;
	padding: 0 !important;
	width: 100%;
	text-align: left;
}

.cinesigns-address2-toggle {
	/* Theme-Vererbungen (uppercase, font-family, padding) explizit zurücksetzen */
	display: inline-block;
	width: auto;
	min-width: 0;
	padding: 0 0 1px;
	background: transparent;
	border: 0;
	border-bottom: 1px dashed currentColor;
	border-radius: 0;
	color: var(--color-accent-gold);
	cursor: pointer;
	font-size: var(--text-sm);
	font-weight: var(--font-normal);
	font-family: inherit;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
}

.cinesigns-address2-toggle:hover,
.cinesigns-address2-toggle:focus-visible {
	color: var(--color-accent-gold);
	background: transparent;
	border-bottom-style: solid;
	box-shadow: none;
	transform: none;
}

.cinesigns-address2-expanded #billing_address_2_field,
.cinesigns-address2-expanded #shipping_address_2_field {
	display: block !important;
}

/* PayPal Smart Button row below the 4 wallet buttons. PPCP renders the
   wrapper somewhere else in the DOM with inline display:none; our JS moves
   it here and the rules below force it visible, full width, and zero
   external spacing so it sits tight against the wallet row above. */
.cinesigns-checkout__express-buttons .ppc-button-wrapper {
	flex: 1 1 100%;
	min-width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.cinesigns-checkout__express-buttons .ppc-button-wrapper #ppc-button-ppcp-gateway {
	display: block !important;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.cinesigns-checkout__express-buttons .ppc-button-wrapper #ppc-button-ppcp-gateway > div {
	margin: 0 !important;
}

/* Hide any plugin-injected "— OR —" separator inside the express area —
   we render our own ("oder fülle…") below the buttons. Various plugins
   (Stripe, Amazon Pay, etc.) inject their own, all targeted here. */
.cinesigns-checkout__express-buttons p,
.cinesigns-checkout__express-buttons hr,
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element p,
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element hr,
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element .separator,
.wc-stripe-payment-request-button-separator,
.wc-stripe-express-checkout-separator,
#wc-stripe-payment-request-button-separator,
#pwa-divider,
.pwa-divider,
#pay_with_amazon_separator,
.wc-apa-button-separator,
.amazon-payments-advanced-button-separator {
	display: none !important;
}

/* Catch-all: any direct flex-item that contains NO button/iframe/canvas
   inside the express area is almost certainly a text separator. */
.cinesigns-checkout__express-buttons #wc-stripe-express-checkout-element > *:not(:has(button)):not(:has(iframe)):not(:has(canvas)):not(:has([role="button"])) {
	display: none !important;
}

/* PayPal Pay-Later messaging text — PPCP renders the message INLINE
   (same-origin) with these classes, so CSS reaches it directly. */
.cinesigns-checkout__right .message__headline,
.cinesigns-checkout__right .message__headline *,
.cinesigns-checkout__right .message__messaging,
.cinesigns-checkout__right .message__messaging *,
.cinesigns-checkout__right .tag--medium,
.cinesigns-checkout__right .tag--medium *,
.cinesigns-checkout__right .tag--xsmall,
.cinesigns-checkout__right .tag--xsmall *,
.cinesigns-checkout__right .message__disclaimer,
.cinesigns-checkout__right .message__disclaimer * {
	color: var(--color-text-primary) !important;
}

.cinesigns-checkout__express-divider::before,
.cinesigns-checkout__express-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--color-text-primary);
}

/* Hide the whole express section when the buttons container has no
   children at all — i.e. neither PPCP nor Stripe injected anything. */
.cinesigns-checkout__express:not(:has(.cinesigns-checkout__express-buttons > *)) {
	display: none;
}

/* ==========================================================================
   Product Share Button (single-product summary)
   Native share sheet on touch devices, glassmorphism popover on desktop.
   ========================================================================== */

.cs-share {
	position: relative;
	display: inline-block;
	margin: 1.25rem 0 0;
}

.cs-share__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.45rem 0.9rem;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.cs-share__trigger:hover,
.cs-share__trigger[aria-expanded="true"] {
	color: var(--color-accent-gold);
	border-color: var(--color-accent-gold);
	background: var(--color-accent-gold-muted);
}

.cs-share__trigger:focus-visible {
	outline: 2px solid var(--color-accent-gold);
	outline-offset: 2px;
}

.cs-share__icon {
	flex-shrink: 0;
}

.cs-share__menu {
	position: absolute;
	top: calc(100% + 0.5rem);
	left: 0;
	z-index: 50;
	min-width: 12rem;
	padding: 0.375rem;
	background: rgba(18, 18, 22, 0.92);
	backdrop-filter: blur(16px) saturate(140%);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	border: 1px solid rgba(201, 169, 98, 0.18);
	border-radius: 12px;
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 0, 0, 0.4);
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.cs-share__menu[hidden] {
	display: none;
}

.cs-share__menu.is-open {
	opacity: 1;
	transform: translateY(0);
}

.cs-share__option {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	width: 100%;
	padding: 0.55rem 0.75rem;
	background: transparent;
	border: 0;
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.875rem;
	font-family: inherit;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.cs-share__option + .cs-share__option {
	margin-top: 1px;
}

.cs-share__option:hover,
.cs-share__option:focus-visible {
	color: var(--color-accent-gold);
	background: var(--color-accent-gold-muted);
}

.cs-share__option:focus-visible {
	outline: none;
}

.cs-share__option-icon {
	flex-shrink: 0;
	color: rgba(255, 255, 255, 0.5);
	transition: color 0.15s ease;
}

.cs-share__option:hover .cs-share__option-icon,
.cs-share__option:focus-visible .cs-share__option-icon {
	color: var(--color-accent-gold);
}

.cs-share.is-copied .cs-share__option[data-share-action="copy"] .cs-share__option-icon {
	color: var(--color-accent-gold);
}

/* Open menu to the right edge of the trigger on very narrow viewports
   so it never gets clipped by the summary column. */
@media (max-width: 480px) {
	.cs-share__menu {
		left: auto;
		right: 0;
	}
}

/* US DDP-Zoll-Hinweis im Checkout (cinesigns_us_import_duty_checkout_notice). */
.cinesigns-ddp-notice {
	margin: 1.25em 0;
	padding: 0.85em 1em;
	background: rgba(201, 169, 98, 0.08);
	border-left: 3px solid var(--color-accent-gold, #c9a962);
	font-size: 0.9em;
	line-height: 1.45;
}

.cinesigns-ddp-notice p {
	margin: 0;
}