/* Genussexpress Gift Cards – frontend (PDP on dark ink) */

.gx-pdp-buy__cart form.cart .gx-gc-product-fields {
	flex: 1 1 100%;
	width: 100%;
	order: -1;
	margin: 0 0 1.1rem;
	padding: 0;
	border: 0;
	display: grid;
	gap: 1.15rem;
}

.gx-gc-panel__intro {
	padding: 0 0 1rem;
	border-bottom: 1px solid #34302c;
}

.gx-gc-panel__eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #dfc9ab;
	margin-bottom: 0.45rem;
}

.gx-gc-panel__lede {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.55;
	color: #b7b0a8;
	max-width: 36em;
}

.gx-gc-amount-picker__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #8a837b;
	margin-bottom: 0.65rem;
}

.gx-gc-amount-picker__options {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.45rem;
}

@media (max-width: 520px) {
	.gx-gc-amount-picker__options {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.gx-gc-amount-chip {
	cursor: pointer;
	margin: 0;
	display: block;
}

.gx-gc-amount-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.gx-gc-amount-chip span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.55rem 0.35rem;
	border: 1px solid #34302c;
	background: #1d1a17;
	color: #e6dccd;
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.gx-gc-amount-chip:hover span {
	border-color: #96764f;
	color: #f8f5f1;
}

.gx-gc-amount-chip input:focus-visible + span {
	outline: 2px solid #ae9069;
	outline-offset: 2px;
}

.gx-gc-amount-chip input:checked + span {
	border-color: #ae9069;
	background: #ae9069;
	color: #13110f;
}

.gx-gc-amount-chip--custom span {
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.gx-gc-amount-custom {
	margin-top: 0.75rem;
}

.gx-gc-amount-custom label {
	display: block;
	font-size: 13px;
	color: #8a837b;
	margin-bottom: 0.4rem;
}

.gx-gc-amount-custom__row {
	display: flex;
	align-items: stretch;
	max-width: 11rem;
	border: 1px solid #34302c;
	background: #1d1a17;
}

.gx-gc-amount-custom__row input {
	flex: 1;
	min-width: 0;
	height: 48px;
	border: 0;
	background: transparent;
	color: #f8f5f1;
	padding: 0 0.85rem;
	font-size: 1rem;
	font-weight: 600;
}

.gx-gc-amount-custom__row input:focus {
	outline: none;
}

.gx-gc-amount-custom__suffix {
	display: flex;
	align-items: center;
	padding: 0 0.85rem;
	color: #ae9069;
	font-weight: 600;
	border-left: 1px solid #34302c;
}

.gx-gc-personalize {
	border: 1px solid #34302c;
	background: #181512;
}

.gx-gc-personalize > summary {
	list-style: none;
	cursor: pointer;
	padding: 0.95rem 1.05rem;
	color: #f8f5f1;
	font-size: 0.95rem;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 0.55rem;
	user-select: none;
}

.gx-gc-personalize > summary::-webkit-details-marker {
	display: none;
}

.gx-gc-personalize > summary::before {
	content: '';
	width: 7px;
	height: 7px;
	border-right: 1.5px solid #ae9069;
	border-bottom: 1.5px solid #ae9069;
	transform: rotate(-45deg);
	transition: transform 0.2s ease;
	flex: 0 0 auto;
}

.gx-gc-personalize[open] > summary::before {
	transform: rotate(45deg);
}

.gx-gc-personalize > summary span {
	margin-left: auto;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #8a837b;
	font-weight: 600;
}

.gx-gc-personalize__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.85rem 0.75rem;
	padding: 0 1.05rem 1.1rem;
	border-top: 1px solid #34302c;
}

@media (max-width: 520px) {
	.gx-gc-personalize__grid {
		grid-template-columns: 1fr;
	}
}

.gx-gc-field {
	margin: 0;
}

.gx-gc-field--full {
	grid-column: 1 / -1;
}

.gx-gc-field label {
	display: block;
	font-size: 12px;
	color: #8a837b;
	margin: 0.85rem 0 0.35rem;
}

.gx-gc-field input,
.gx-gc-field textarea {
	width: 100%;
	max-width: none;
	height: 46px;
	border: 1px solid #34302c;
	background: #100f0e;
	color: #f8f5f1;
	padding: 0 0.85rem;
	font-size: 0.95rem;
	border-radius: 0;
}

.gx-gc-field textarea {
	height: auto;
	padding: 0.75rem 0.85rem;
	resize: vertical;
	min-height: 5rem;
}

.gx-gc-field input::placeholder,
.gx-gc-field textarea::placeholder {
	color: #625d58;
}

.gx-gc-field input:focus,
.gx-gc-field textarea:focus {
	outline: none;
	border-color: #ae9069;
}

/* Landscape voucher image: show full card, don’t crop */
body.gx-gc-pdp .gx-pdp-gallery__stage {
	aspect-ratio: 21 / 12.6;
	background: #fff;
}

body.gx-gc-pdp .gx-pdp-gallery__stage img {
	object-fit: contain;
	cursor: default;
}

body.gx-gc-pdp .gx-pdp-gallery__stage:hover img.is-active {
	transform: none;
}

body.gx-gc-pdp .gx-pdp-gallery__thumbs {
	display: none;
}

body.gx-gc-pdp .gx-pdp-gallery__count {
	display: none;
}

body.gx-gc-pdp .gx-pdp-buy__delivery {
	display: none;
}

body.gx-gc-pdp .gx-pdp-buy__tax {
	/* Virtual gift card — no shipping */
}

/* Shop / archive cards: same square frame as other products; full voucher via contain */
.gx-product-card--voucher .gx-product-card__media {
	background: #fff;
}

.gx-product-card--voucher .gx-product-card__media img {
	object-fit: contain;
	object-position: center;
}

/* Redeem (cart / checkout — paper surface) */
.gx-gc-redeem {
	margin: 0 0 1.75rem;
	padding: 1.25rem 1.35rem 1.15rem;
	background: var(--surface, #fff);
	border: 1px solid var(--paper-border, #e2dad2);
	border-radius: var(--r-lg, 12px);
	box-shadow: var(--shadow-card, 0 8px 30px rgba(20, 15, 10, .06));
}

.gx-gc-redeem label {
	display: block;
	font-family: var(--font-display, Georgia, serif);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--text-strong, #171513);
	margin-bottom: 0.65rem;
}

.gx-gc-redeem__row {
	display: flex;
	gap: 0.65rem;
	flex-wrap: wrap;
	align-items: stretch;
}

.gx-gc-redeem__row input {
	flex: 1 1 12rem;
	min-width: 0;
	height: var(--control-h, 52px);
	padding: 0 1rem;
	border: 1px solid var(--paper-border, #e2dad2);
	border-radius: var(--r-sm, 8px);
	background: var(--surface-sunken, #fbf8f4);
	font-family: var(--font-body, Inter, sans-serif);
	font-size: 15px;
	color: var(--text-strong, #171513);
	letter-spacing: 0.04em;
}

.gx-gc-redeem__row input:focus {
	outline: none;
	border-color: var(--gold, #ae9069);
	box-shadow: 0 0 0 3px rgba(174, 144, 105, 0.22);
	background: #fff;
}

.gx-gc-redeem__btn {
	height: var(--control-h, 52px);
	flex: 0 0 auto;
}

.gx-gc-redeem__hint {
	margin: 0.55rem 0 0;
	font-size: 0.85rem;
	color: #625d58;
}

.gx-gc-redeem__msg {
	margin-top: 0.6rem;
	font-size: 0.9rem;
}

.gx-gc-redeem__msg.is-error { color: #7a2e2a; }
.gx-gc-redeem__msg.is-ok { color: #4f8a5b; }

.gx-gc-redeem__list {
	list-style: none;
	margin: 0.85rem 0 0;
	padding: 0;
}

.gx-gc-redeem__list li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.45rem 0;
	border-top: 1px solid #e2dad2;
}

.gx-gc-redeem__list code {
	font-size: 0.85rem;
}

.gx-gc-remove {
	margin-left: auto;
	border: 0;
	background: transparent;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	color: #625d58;
}

.gx-gc-thankyou {
	margin: 2rem 0;
	padding: 1.25rem 1.4rem;
	background: #f7f4f0;
	border: 1px solid #e2dad2;
}

.gx-gc-thankyou__hint {
	color: #625d58;
	font-size: 0.9rem;
}

.gx-gc-order-codes {
	margin-top: 0.4rem;
}
