/*
 * Gift Cards · sistema visual claro.
 * Comparte estructura y estados con la variante premium oscura sin forzarla
 * cuando el restaurante usa el preset original, minimal o intenso.
 */

html,
body {
	background: #0d171f;
}

.gift-page {
	--gc-light-page: #f3f6f8;
	--gc-light-surface: #ffffff;
	--gc-light-section: #f8fafc;
	--gc-light-control: #ffffff;
	--gc-light-border: #dce5eb;
	--gc-light-border-soft: #e8eef2;
	--gc-light-text: #1f2d3a;
	--gc-light-muted: #687889;
	--gc-light-subtle: #8492a1;
	--gift-form-accent: var(--restaurant-button-color, #15ad96);
	--gift-accent-rgb: 21, 173, 150;
	--gift-accent-contrast: #ffffff;
	background: #0d171f !important;
	color: var(--gc-light-text);
	padding: 30px 0 54px !important;
}

.gift-page::before {
	filter: saturate(.9) contrast(1.05) brightness(.68);
	opacity: 1;
}

.gift-page > .container {
	position: relative;
	z-index: 2;
}

.gift-page .gift-shell {
	max-width: 860px;
}

.gift-page .gift-head {
	padding: 8px 20px 28px !important;
}

.gift-page .gift-head-inner {
	max-width: 600px;
}

.gift-page .gift-back {
	background: rgba(255, 255, 255, .9) !important;
	border: 1px solid rgba(31, 45, 58, .14) !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 22px rgba(15, 31, 45, .12);
	color: #273747 !important;
	font-size: 13px !important;
	font-weight:500 !important;
	gap: 8px !important;
	margin-bottom: 20px !important;
	padding: 9px 14px !important;
}

.gift-page .gift-logo {
	background: #fff;
	border: 2px solid rgba(255, 255, 255, .9) !important;
	box-shadow: 0 14px 34px rgba(13, 28, 42, .2) !important;
	height: 96px !important;
	width: 96px !important;
}

.gift-page .gift-head h1 {
	color: #fff !important;
	font-size: 32px !important;
	font-weight:500 !important;
	letter-spacing: -.025em;
}

.gift-page .gift-head p {
	color: rgba(255, 255, 255, .82) !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
}

.gift-page .gift-card {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.gift-page .gift-body {
	background: transparent !important;
	padding: 0 !important;
}

.gift-page .gift-intro {
	border: 0 !important;
	margin: 0 !important;
	padding: 2px 4px 16px !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .34);
}

.gift-page .gift-intro h2 {
	color: #fff !important;
	font-size: 27px !important;
	font-weight:500 !important;
	letter-spacing: -.025em;
}

.gift-page .gift-intro p {
	color: rgba(255, 255, 255, .82) !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
}

.gift-page .gift-progress {
	background: rgba(255, 255, 255, .95);
	border: 1px solid rgba(255, 255, 255, .72);
	border-radius: 16px;
	box-shadow: 0 14px 34px rgba(13, 28, 42, .13);
	margin-bottom: 16px;
	padding: 15px 17px;
}

.gift-page .gift-progress-copy {
	align-items: flex-end;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	margin-bottom: 11px;
}

.gift-page .gift-progress-copy span {
	color: var(--gift-form-accent);
	font-size: 11px;
	font-weight:500;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.gift-page .gift-progress-copy strong {
	color: var(--gc-light-text);
	font-size: 14px;
	font-weight:500;
}

.gift-page .gift-progress-track {
	background: #e6edf1;
	border-radius: 999px;
	height: 7px;
	overflow: hidden;
}

.gift-page .gift-progress-track span {
	background: var(--gift-form-accent);
	border-radius: inherit;
	display: block;
	height: 100%;
	transition: width .32s ease;
	width: 25%;
}

.gift-page .gift-progress-steps {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 10px;
}

.gift-page .gift-progress-steps span {
	align-items: center;
	background: #eef3f6;
	border: 1px solid #dfe7ec;
	border-radius: 50%;
	color: #8492a1;
	display: flex;
	font-size: 10px;
	font-weight:500;
	height: 23px;
	justify-content: center;
	justify-self: center;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
	width: 23px;
}

.gift-page .gift-progress-steps span.is-active,
.gift-page .gift-progress-steps span.is-complete {
	background: var(--gift-form-accent);
	border-color: var(--gift-form-accent);
	color: var(--gift-accent-contrast);
}

.gift-page .gift-progress-steps span.is-active {
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--gift-form-accent) 15%, transparent);
	transform: scale(1.06);
}

.gift-page .gift-flow-section {
	background: var(--gc-light-section) !important;
	border: 1px solid var(--gc-light-border-soft) !important;
	border-radius: 18px !important;
	box-shadow: 0 10px 26px rgba(29, 50, 67, .045);
	margin-top: 16px;
	min-width: 0;
	padding: 22px;
}

.gift-page .gift-form.is-progressive .gift-step-panel:not(.is-unlocked),
.gift-page .gift-form.is-progressive .gift-checkout:not(.is-unlocked) {
	display: none !important;
}

.gift-page .gift-step-panel.is-unlocked,
.gift-page .gift-checkout.is-unlocked {
	animation: giftStepReveal .3s ease both;
}

.gift-page .gift-step-panel.is-current {
	border-color: color-mix(in srgb, var(--gift-form-accent) 38%, var(--gc-light-border-soft)) !important;
	box-shadow: 0 14px 34px color-mix(in srgb, var(--gift-form-accent) 8%, rgba(29, 50, 67, .08));
}

.gift-page .gift-step-panel.is-complete .gift-section-step {
	background: var(--gift-form-accent);
	border-color: var(--gift-form-accent);
	color: var(--gift-accent-contrast);
}

.gift-page .gift-step-panel.is-complete .gift-step-next {
	display: none;
}

@keyframes giftStepReveal {
	from { opacity: 0; transform: translateY(9px); }
	to { opacity: 1; transform: translateY(0); }
}

.gift-page .gift-section-head {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	margin-bottom: 18px;
}

.gift-page .gift-section-title {
	align-items: center;
	display: flex;
	gap: 11px;
	min-width: 0;
}

.gift-page .gift-section-step {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 10%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 28%, #dce5eb);
	border-radius: 50%;
	color: var(--gift-form-accent);
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 12px;
	font-weight:500;
	height: 30px;
	justify-content: center;
	width: 30px;
}

.gift-page .gift-section-title h3 {
	color: var(--gc-light-text) !important;
	font-size: 16px !important;
	font-weight:500 !important;
	line-height: 1.25;
	margin: 0 !important;
}

.gift-page .gift-section-title small {
	color: var(--gc-light-muted) !important;
	display: block;
	font-size: 12px;
	line-height: 1.4;
	margin-top: 3px;
}

.gift-page .gift-live-badge {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 9%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 24%, #e2e8ed);
	border-radius: 999px;
	color: var(--gift-form-accent);
	display: inline-flex;
	font-size: 11px;
	font-weight:500;
	gap: 6px;
	padding: 6px 10px;
	white-space: nowrap;
}

.gift-page .gift-live-badge i {
	font-size: 7px;
}

.gift-page .gift-preview-section {
	background: #f5f8fa !important;
	padding: 16px !important;
}

.gift-page .gift-preview-section .gift-section-head {
	margin: 2px 4px 14px;
}

.gift-page .gift-preview-wrap {
	background: #edf3f6 !important;
	border: 1px solid #dfe8ed !important;
	border-radius: 16px !important;
	box-shadow: none !important;
	margin: 0 !important;
	padding: 10px !important;
}

.gift-page .virtual-gift {
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 18px !important;
	box-shadow: 0 18px 38px rgba(27, 44, 58, .18) !important;
	min-height: 410px !important;
}

.gift-page .virtual-gift.has-image::before {
	opacity: .28 !important;
}

.gift-page .gift-visual-inner {
	gap: 22px;
	inset: auto !important;
	min-height: 410px;
	padding: 24px !important;
	position: relative !important;
}

.gift-page .gift-preview-copy {
	background: rgba(7, 14, 22, .32);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 16px;
	box-shadow: 0 12px 24px rgba(0, 0, 0, .09);
	margin-top: 18px;
	max-width: 72%;
	padding: 18px;
}

.gift-page .gift-main-message {
	margin-top: 0 !important;
}

.gift-page .gift-main-message h2 {
	font-size: 25px !important;
	letter-spacing: -.025em;
	line-height: 1.14 !important;
	text-shadow: 0 2px 9px rgba(0, 0, 0, .24);
}

.gift-page .gift-main-message p {
	font-size: 13px !important;
	line-height: 1.5 !important;
}

.gift-page .gift-amount {
	font-size: 43px !important;
	letter-spacing: -.04em !important;
	margin-top: 20px !important;
}

.gift-page .gift-ticket {
	background: rgba(255, 255, 255, .96) !important;
	border: 1px solid rgba(24, 43, 58, .1);
	box-shadow: 0 14px 28px rgba(13, 27, 39, .16) !important;
	color: #243443 !important;
	margin-top: 0 !important;
}

.gift-page .gift-ticket-mark {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 10%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 22%, #e2e8ed);
	border-radius: 12px;
	color: var(--gift-form-accent);
	display: flex;
	font-size: 20px;
	height: 48px;
	justify-content: center;
	width: 48px;
}

.gift-page .gift-options {
	display: grid !important;
	gap: 10px !important;
	grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
	margin: 0 !important;
	overflow: visible !important;
	padding: 0 !important;
}

.gift-page .gift-option {
	min-width: 0;
}

.gift-page .gift-option label {
	align-items: center;
	background: #fff !important;
	border: 1px solid var(--gc-light-border) !important;
	border-radius: 12px !important;
	color: #536474 !important;
	display: flex !important;
	font-size: 14px !important;
	font-weight:500 !important;
	justify-content: center;
	min-height: 48px;
	min-width: 0 !important;
	padding: 10px 13px !important;
}

.gift-page .gift-option input:checked + label {
	background: color-mix(in srgb, var(--gift-form-accent) 9%, #fff) !important;
	border-color: var(--gift-form-accent) !important;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gift-form-accent) 44%, transparent) !important;
	color: var(--gift-form-accent) !important;
}

.gift-page .gift-custom-amount {
	background: #fff !important;
	border-color: var(--gc-light-border-soft) !important;
	margin-top: 12px;
}

.gift-page .gift-form-grid {
	gap: 14px !important;
}

.gift-page .gift-form .form-group {
	margin-bottom: 0;
}

.gift-page .gift-form label,
.gift-page .gift-delivery-title {
	color: #344555 !important;
	font-size: 13px !important;
	font-weight:500 !important;
}

.gift-page .gift-form .form-control,
.gift-page .gift-form input.form-control,
.gift-page .gift-form textarea.form-control {
	background: var(--gc-light-control) !important;
	border: 1px solid var(--gc-light-border) !important;
	border-radius: 11px !important;
	box-shadow: inset 0 1px 0 rgba(16, 36, 51, .015) !important;
	color: var(--gc-light-text) !important;
	font-size: 15px !important;
	min-height: 50px !important;
	padding: 12px 14px !important;
}

.gift-page .gift-form .iti--separate-dial-code input.form-control,
.gift-page .gift-form .iti--separate-dial-code input[type="tel"] {
	padding-left: 112px !important;
}

.gift-page .gift-form textarea.form-control {
	line-height: 1.5;
	min-height: 112px !important;
}

.gift-page .gift-form .form-control::placeholder {
	color: #8997a5 !important;
	opacity: 1;
}

.gift-page .gift-form .form-control:focus {
	border-color: var(--gift-form-accent) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 17%, transparent) !important;
}

.gift-page .gift-delivery-options {
	background: #eef3f6 !important;
	border: 1px solid var(--gc-light-border) !important;
	border-radius: 12px !important;
	gap: 5px !important;
	padding: 5px !important;
}

.gift-page .gift-delivery-option label {
	background: transparent !important;
	border: 1px solid transparent !important;
	border-radius: 9px !important;
	color: #627282 !important;
	min-height: 42px !important;
}

.gift-page .gift-delivery-option input:checked + label {
	background: #fff !important;
	border-color: color-mix(in srgb, var(--gift-form-accent) 48%, #dce5eb) !important;
	box-shadow: 0 4px 13px rgba(31, 50, 66, .07) !important;
	color: var(--gift-form-accent) !important;
}

.gift-page .gift-delivery-recipient.is-visible {
	margin-top: 14px;
}

.gift-page .gift-auth-block {
	margin-bottom: 16px;
}

.gift-page .cpp-customer-google-link {
	background: #fff !important;
	border: 1px solid var(--gc-light-border) !important;
	border-radius: 12px !important;
	box-shadow: 0 5px 16px rgba(31, 50, 66, .045) !important;
	color: #263747 !important;
	min-height: 50px !important;
}

.gift-page .gift-checkout {
	border-top: 1px solid var(--gc-light-border-soft);
	margin-top: 22px;
	padding-top: 22px;
}

.gift-page .gift-submit {
	background: var(--gift-form-accent) !important;
	border: 0 !important;
	border-radius: 12px !important;
	box-shadow: 0 12px 26px color-mix(in srgb, var(--gift-form-accent) 24%, transparent) !important;
	color: var(--gift-accent-contrast) !important;
	font-size: 15px !important;
	font-weight:500 !important;
	min-height: 54px !important;
}

.gift-page .gift-note {
	align-items: flex-start;
	background: #f7fafb !important;
	border: 1px solid var(--gc-light-border-soft) !important;
	border-radius: 11px !important;
	color: #6f7f8f !important;
	display: flex;
	font-size: 12px !important;
	gap: 9px;
	line-height: 1.5 !important;
	margin: 12px 0 0 !important;
	padding: 12px 13px !important;
	text-align: left !important;
}

.gift-page .gift-note i {
	color: var(--gift-form-accent);
	margin-top: 2px;
}

.gift-page .gift-step-action {
	display: flex;
	justify-content: flex-end;
	margin-top: 18px;
}

.gift-page .gift-step-next {
	align-items: center;
	background: var(--gift-form-accent);
	border: 0;
	border-radius: 11px;
	box-shadow: 0 9px 20px color-mix(in srgb, var(--gift-form-accent) 21%, transparent);
	color: var(--gift-accent-contrast);
	display: inline-flex;
	font-size: 14px;
	font-weight:500;
	gap: 9px;
	justify-content: center;
	min-height: 46px;
	padding: 10px 18px;
	transition: filter .16s ease, transform .16s ease, box-shadow .16s ease;
}

.gift-page .gift-step-next:hover,
.gift-page .gift-step-next:focus {
	box-shadow: 0 12px 25px color-mix(in srgb, var(--gift-form-accent) 27%, transparent);
	filter: brightness(1.03);
	outline: none;
	transform: translateY(-1px);
}

.gift-page .gift-step-next:focus-visible {
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--gift-form-accent) 19%, transparent), 0 12px 25px color-mix(in srgb, var(--gift-form-accent) 27%, transparent);
}

@media (min-width: 768px) {
	.gift-page .gift-form-grid--buyer {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.gift-page {
		padding: 18px 0 32px !important;
	}

	.gift-page > .container {
		padding-left: 14px;
		padding-right: 14px;
	}

	.gift-page .gift-head {
		padding: 4px 10px 22px !important;
	}

	.gift-page .gift-logo {
		height: 82px !important;
		width: 82px !important;
	}

	.gift-page .gift-head h1 {
		font-size: 27px !important;
	}

	.gift-page .gift-progress {
		background: rgba(255, 255, 255, .94);
		border-color: rgba(255, 255, 255, .62);
		padding: 14px 15px;
	}

	.gift-page .gift-progress-copy {
		align-items: flex-start;
		flex-direction: column;
		gap: 3px;
	}

	.gift-page .gift-card {
		border-radius: 0 !important;
		min-height: 0 !important;
	}

	.gift-page .gift-body {
		padding: 0 !important;
	}

	.gift-page .gift-flow-section {
		border-radius: 15px !important;
		padding: 17px !important;
	}

	.gift-page .gift-preview-section {
		padding: 10px !important;
	}

	.gift-page .gift-preview-section .gift-section-head {
		margin: 6px 7px 13px;
	}

	.gift-page .gift-section-head {
		align-items: flex-start;
	}

	.gift-page .gift-live-badge {
		font-size: 10px;
		padding: 5px 8px;
	}

	.gift-page .virtual-gift,
	.gift-page .gift-visual-inner {
		min-height: 430px !important;
	}

	.gift-page .gift-visual-inner {
		padding: 18px !important;
	}

	.gift-page .gift-preview-copy {
		max-width: 100%;
		padding: 15px;
	}

	.gift-page .gift-main-message h2 {
		font-size: 22px !important;
	}

	.gift-page .gift-amount {
		font-size: 38px !important;
	}

	.gift-page .gift-options {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gift-page .gift-delivery-options {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.gift-page .gift-step-action {
		margin-top: 16px;
	}

	.gift-page .gift-step-next {
		width: 100%;
	}
}

/* Fase 3: progreso satisfactorio sin perder sobriedad. */
.gift-page .gift-progress {
	position: relative;
}

.gift-page .gift-progress-copy small {
	color: var(--gc-light-muted);
	display: block;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.35;
	margin-top: 3px;
}

.gift-page .gift-milestone {
	align-items: center;
	background: #ffffff;
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 30%, var(--gc-light-border));
	border-radius: 999px;
	box-shadow: 0 10px 25px rgba(29, 50, 67, .13);
	color: var(--gc-light-text);
	display: flex;
	font-size: 11px;
	gap: 7px;
	left: 50%;
	opacity: 0;
	padding: 7px 11px 7px 7px;
	pointer-events: none;
	position: fixed;
	top: calc(16px + env(safe-area-inset-top, 0px));
	transform: translate(-50%, 6px) scale(.98);
	transition: opacity .18s ease, transform .22s ease;
	white-space: nowrap;
	z-index: 100;
}

.gift-page .gift-milestone.is-visible {
	opacity: 1;
	transform: translate(-50%, 0) scale(1);
}

.gift-page .gift-milestone > span {
	align-items: center;
	background: var(--gift-form-accent);
	border-radius: 50%;
	color: var(--gift-accent-contrast);
	display: inline-flex;
	height: 22px;
	justify-content: center;
	width: 22px;
}

.gift-page .gift-milestone strong {
	font-weight: 500 !important;
}

.gift-page .gift-ready-badge {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 9%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 24%, var(--gc-light-border));
	border-radius: 999px;
	color: var(--gift-form-accent);
	display: inline-flex;
	font-size: 11px;
	font-weight: 500;
	gap: 6px;
	margin-bottom: 12px;
	padding: 6px 9px;
}

.gift-page .gift-checkout.is-unlocked .gift-ready-badge {
	animation: giftReadyReveal .5s ease both;
}

@keyframes giftReadyReveal {
	from { opacity: 0; transform: translateY(5px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Regla tipográfica de la experiencia pública: jerarquía por tamaño y color, no por negrita. */
.gift-page {
	font-weight: 400;
}

.gift-page :where(h1, h2, h3, h4, h5, h6, strong, b, label, button, .btn_1, .gift-back) {
	font-weight: 500 !important;
}

.gift-page .cpp-customer-google-link,
.gift-page .cpp-customer-google-link span,
.gift-page .cpp-customer-google-divider {
	font-weight: 500 !important;
}

@media (prefers-reduced-motion: reduce) {
	.gift-page .gift-milestone,
	.gift-page .gift-checkout.is-unlocked .gift-ready-badge {
		animation: none;
		transition: none;
	}
}

@media (max-width: 575px) {
	.gift-page .gift-milestone {
		max-width: calc(100% - 20px);
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 389.98px) {
	.gift-page > .container {
		padding-left: 10px;
		padding-right: 10px;
	}

	.gift-page .gift-body {
		padding: 0 !important;
	}

	.gift-page .gift-flow-section {
		padding: 14px !important;
	}

	.gift-page .gift-options {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gift-page .gift-step-panel.is-unlocked,
	.gift-page .gift-checkout.is-unlocked {
		animation: none;
	}

	.gift-page .gift-progress-track span,
	.gift-page .gift-progress-steps span,
	.gift-page .gift-step-next {
		transition: none;
	}
}

/* Fase 1: flujo compacto, revisión y preview responsive. */
.gift-page .gift-preview-actions {
	align-items: center;
	display: flex;
	gap: 8px;
}

.gift-page .gift-preview-mini,
.gift-page .gift-preview-toggle,
.gift-page .gift-step-summary {
	display: none;
}

.gift-page .gift-progress-steps span {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	color: var(--gc-light-subtle);
	flex-direction: column;
	gap: 5px;
	height: auto;
	transform: none !important;
	width: auto;
}

.gift-page .gift-progress-steps b {
	align-items: center;
	background: #eef3f6;
	border: 1px solid #dfe7ec;
	border-radius: 50%;
	color: #8492a1;
	display: flex;
	font-size: 10px;
	font-style: normal;
	height: 23px;
	justify-content: center;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
	width: 23px;
}

.gift-page .gift-progress-steps em {
	color: var(--gc-light-subtle);
	font-size: 10px;
	font-style: normal;
	font-weight:500;
}

.gift-page .gift-progress-steps span.is-active b,
.gift-page .gift-progress-steps span.is-complete b {
	background: var(--gift-form-accent);
	border-color: var(--gift-form-accent);
	color: var(--gift-accent-contrast);
}

.gift-page .gift-progress-steps span.is-active b {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 13%, transparent);
	transform: scale(1.06);
}

.gift-page .gift-step-panel.is-complete {
	padding: 16px 18px;
}

.gift-page .gift-step-panel.is-complete .gift-section-head {
	margin-bottom: 11px;
}

.gift-page .gift-step-panel.is-complete .gift-section-title small,
.gift-page .gift-step-panel.is-complete .gift-step-content {
	display: none;
}

.gift-page .gift-step-panel.is-complete .gift-step-summary {
	align-items: center;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding-left: 41px;
}

.gift-page .gift-step-summary > span {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.gift-page .gift-step-summary strong {
	color: var(--gc-light-text);
	font-size: 14px;
	font-weight:500;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gift-page .gift-step-summary small {
	color: var(--gc-light-subtle);
	font-size: 11px;
	margin-top: 2px;
}

.gift-page .gift-step-summary button,
.gift-page .gift-preview-toggle {
	background: color-mix(in srgb, var(--gift-form-accent) 9%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 28%, #dce5eb);
	border-radius: 999px;
	color: var(--gift-form-accent);
	cursor: pointer;
	font-size: 11px;
	font-weight:500;
	min-height: 34px;
	padding: 7px 12px;
}

.gift-page .gift-step-summary button:focus-visible,
.gift-page .gift-preview-toggle:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 22%, transparent);
	outline: none;
}

.gift-page .gift-delivery-option label {
	align-items: flex-start;
	flex-direction: column;
	justify-content: center;
	min-height: 72px;
	padding: 11px 13px;
	text-align: left;
	white-space: normal;
}

.gift-page .gift-delivery-option label span {
	font-size: 13px;
	font-weight:500;
}

.gift-page .gift-delivery-option label small {
	color: var(--gc-light-subtle);
	display: block;
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
	margin-top: 3px;
}

.gift-page .gift-delivery-option input:checked + label small {
	color: var(--gc-light-muted);
}

.gift-page .gift-review {
	background: rgba(255, 255, 255, .96);
	border: 1px solid var(--gc-light-border-soft);
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(29, 50, 67, .05);
	margin-bottom: 14px;
	padding: 18px;
}

.gift-page .gift-review-head {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 14px;
}

.gift-page .gift-review-head span {
	color: var(--gift-form-accent);
	font-size: 10px;
	font-weight:500;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.gift-page .gift-review-head h3 {
	color: var(--gc-light-text);
	font-size: 17px;
	font-weight:500;
	margin: 3px 0 0;
}

.gift-page .gift-review-head i {
	color: var(--gift-form-accent);
	font-size: 22px;
}

.gift-page .gift-review dl {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.gift-page .gift-review dl > div {
	border-top: 1px solid var(--gc-light-border-soft);
	min-width: 0;
	padding: 11px 12px 7px 0;
}

.gift-page .gift-review dt {
	color: var(--gc-light-subtle);
	font-size: 10px;
	font-weight:500;
	text-transform: uppercase;
}

.gift-page .gift-review dd {
	color: var(--gc-light-text);
	font-size: 13px;
	font-weight:500;
	margin: 3px 0 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.gift-page .gift-request-state strong {
	color: var(--gc-light-text);
}

@media (min-width: 992px) {
	.gift-page .gift-shell {
		max-width: 1180px;
	}

	.gift-page .gift-purchase-layout {
		align-items: start;
		display: grid;
		gap: 18px 22px;
		grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
	}

	.gift-page .gift-purchase-layout > .gift-progress,
	.gift-page .gift-purchase-layout > .gift-step-panel,
	.gift-page .gift-purchase-layout > .gift-checkout {
		grid-column: 2;
		margin: 0;
	}

	.gift-page .gift-purchase-layout > .gift-preview-section {
		align-self: start;
		grid-column: 1;
		grid-row: 1 / span 8;
		margin: 0;
		position: sticky;
		top: 22px;
	}

	.gift-page .gift-checkout {
		border-top: 0;
		padding-top: 0;
	}
}

@media (max-width: 767.98px) {
	.gift-page .gift-preview-actions {
		margin-left: auto;
	}

	.gift-page .gift-preview-toggle {
		align-items: center;
		display: inline-flex;
	}

	.gift-page .gift-preview-section.is-compact {
		padding: 13px 14px !important;
	}

	.gift-page .gift-preview-section.is-compact .gift-section-head {
		align-items: center;
		margin: 0;
	}

	.gift-page .gift-preview-section.is-compact .gift-section-title small,
	.gift-page .gift-preview-section.is-compact .gift-live-badge,
	.gift-page .gift-preview-section.is-compact .gift-preview-wrap {
		display: none;
	}

	.gift-page .gift-preview-section.is-compact .gift-preview-mini {
		color: var(--gc-light-muted);
		display: inline-block;
		font-size: 11px;
		font-weight:500;
		max-width: 145px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.gift-page .gift-progress-steps em {
		font-size: 9px;
	}

	.gift-page .gift-step-panel.is-complete .gift-step-summary {
		padding-left: 0;
	}

	.gift-page .gift-review dl {
		grid-template-columns: 1fr;
	}
}

/* Fase 2: personalización asistida. */
.gift-page [hidden] {
	display: none !important;
}

.gift-page .gift-optional-choice {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 5%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 16%, var(--gc-light-border-soft));
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	gap: 11px;
	margin: 10px 0 0 !important;
	padding: 10px 12px;
}

.gift-page .gift-optional-choice input {
	accent-color: var(--gift-form-accent);
	flex: 0 0 auto;
	height: 18px;
	margin: 0;
	width: 18px;
}

.gift-page .gift-optional-choice input:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 22%, transparent);
	outline: none;
}

.gift-page .gift-optional-choice span {
	display: flex;
	flex-direction: column;
}

.gift-page .gift-optional-choice strong {
	color: var(--gc-light-text);
	font-size: 12px;
	font-weight:500;
}

.gift-page .gift-optional-choice small {
	color: var(--gc-light-subtle);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.35;
	margin-top: 2px;
}

.gift-page .gift-message-assist {
	background: #f4f8fa;
	border: 1px solid var(--gc-light-border-soft);
	border-radius: 14px;
	margin-bottom: 16px;
	padding: 14px;
}

.gift-page .gift-message-assist-head {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-bottom: 10px;
}

.gift-page .gift-message-assist-head span {
	color: var(--gc-light-text);
	font-size: 12px;
	font-weight:500;
}

.gift-page .gift-message-assist-head small {
	color: var(--gc-light-subtle);
	font-size: 11px;
}

.gift-page .gift-message-suggestions {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.gift-page .gift-message-suggestions button {
	background: #fff;
	border: 1px solid var(--gc-light-border);
	border-radius: 999px;
	color: var(--gc-light-muted);
	cursor: pointer;
	font-size: 11px;
	font-weight:500;
	min-height: 34px;
	padding: 7px 11px;
	transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.gift-page .gift-message-suggestions button:hover {
	border-color: color-mix(in srgb, var(--gift-form-accent) 42%, var(--gc-light-border));
	color: var(--gc-light-text);
	transform: translateY(-1px);
}

.gift-page .gift-message-suggestions button[aria-pressed="true"] {
	background: color-mix(in srgb, var(--gift-form-accent) 10%, #fff);
	border-color: color-mix(in srgb, var(--gift-form-accent) 48%, var(--gc-light-border));
	color: var(--gift-form-accent);
}

.gift-page .gift-message-suggestions button:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 22%, transparent);
	outline: none;
}

.gift-page .gift-message-suggestions button.is-clear {
	border-style: dashed;
}

.gift-page .gift-message-meta {
	align-items: center;
	color: var(--gc-light-subtle);
	display: flex;
	font-size: 11px;
	justify-content: space-between;
	margin-top: 6px;
}

.gift-page .gift-message-meta span:last-child {
	font-variant-numeric: tabular-nums;
	font-weight:500;
}

.gift-page .virtual-gift {
	transition: border-color .22s ease, box-shadow .22s ease;
}

.gift-page .virtual-gift.is-personalized {
	border-color: color-mix(in srgb, var(--gift-form-accent) 56%, rgba(255, 255, 255, .28));
	box-shadow: 0 19px 45px color-mix(in srgb, var(--gift-form-accent) 17%, rgba(27, 44, 58, .18)) !important;
}

.gift-page .is-preview-updated {
	display: inline-block;
	animation: giftPreviewUpdated .62s ease;
}

.gift-page .gift-main-message p.is-preview-updated {
	display: block;
}

@keyframes giftPreviewUpdated {
	0% { opacity: .72; transform: translateY(2px); }
	42% { color: var(--gift-form-accent); transform: translateY(0) scale(1.015); }
	100% { opacity: 1; transform: scale(1); }
}

.gift-page .gift-sr-only {
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

@media (max-width: 767.98px) {
	.gift-page .gift-message-suggestions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gift-page .gift-message-suggestions button {
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gift-page .is-preview-updated {
		animation: none;
	}
}

/* Safari iPhone: zona segura y confirmación posterior a la solicitud. */
.gift-page .gift-logo-fallback {
	align-items: center;
	color: var(--gift-form-accent);
	display: inline-flex;
	font-size: 31px;
	justify-content: center;
}

.gift-page .gift-card--success {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	overflow: visible;
}

.gift-page .gift-card--success .gift-body {
	padding: 0 !important;
}

.gift-page .gift-success--request {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: 22px;
	box-shadow: 0 24px 62px rgba(13, 28, 42, .2);
	margin: 0 auto;
	max-width: 680px;
	padding: 32px;
	text-align: left;
}

.gift-page .gift-success-status {
	align-items: center;
	display: flex;
	gap: 10px;
	margin-bottom: 18px;
}

.gift-page .gift-success-status > span {
	align-items: center;
	background: var(--gift-form-accent);
	border-radius: 50%;
	color: var(--gift-accent-contrast);
	display: inline-flex;
	height: 34px;
	justify-content: center;
	width: 34px;
}

.gift-page .gift-success-status strong {
	color: var(--gift-form-accent);
	font-size: 12px;
	font-weight:500;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.gift-page .gift-success--request h2 {
	color: var(--gc-light-text) !important;
	font-size: 29px;
	font-weight:500;
	letter-spacing: -.03em;
	line-height: 1.12;
	margin: 0 0 9px;
}

.gift-page .gift-success--request .gift-success-lead {
	color: var(--gc-light-muted) !important;
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 22px;
	max-width: 560px;
}

.gift-page .gift-success-summary {
	background: #f5f8fa;
	border: 1px solid var(--gc-light-border-soft);
	border-radius: 14px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-bottom: 16px;
	overflow: hidden;
}

.gift-page .gift-success-summary > div {
	min-width: 0;
	padding: 14px 16px;
}

.gift-page .gift-success-summary > div + div {
	border-left: 1px solid var(--gc-light-border-soft);
}

.gift-page .gift-success-summary span,
.gift-page .gift-success-summary strong {
	display: block;
}

.gift-page .gift-success-summary span {
	color: var(--gc-light-subtle);
	font-size: 10px;
	font-weight:500;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.gift-page .gift-success-summary strong {
	color: var(--gc-light-text);
	font-size: 13px;
	font-weight:500;
	line-height: 1.35;
	margin-top: 4px;
}

.gift-page .gift-success-next-step {
	align-items: center;
	background: color-mix(in srgb, var(--gift-form-accent) 8%, #fff);
	border: 1px solid color-mix(in srgb, var(--gift-form-accent) 22%, var(--gc-light-border-soft));
	border-radius: 14px;
	display: flex;
	gap: 12px;
	margin-bottom: 18px;
	padding: 13px 14px;
}

.gift-page .gift-success-next-step > span {
	align-items: center;
	background: var(--gift-form-accent);
	border-radius: 50%;
	color: var(--gift-accent-contrast);
	display: flex;
	flex: 0 0 auto;
	font-size: 12px;
	font-weight:500;
	height: 28px;
	justify-content: center;
	width: 28px;
}

.gift-page .gift-success-next-step div {
	display: flex;
	flex-direction: column;
}

.gift-page .gift-success-next-step strong {
	color: var(--gc-light-text);
	font-size: 13px;
	font-weight:500;
}

.gift-page .gift-success-next-step small {
	color: var(--gc-light-muted);
	font-size: 11px;
	line-height: 1.4;
	margin-top: 2px;
}

.gift-page .gift-success--request .gift-actions {
	display: grid;
	gap: 9px;
	grid-template-columns: 1fr;
	margin: 0;
}

.gift-page .gift-success-whatsapp,
.gift-page .gift-success-back {
	align-items: center;
	border-radius: 12px;
	display: inline-flex;
	font-size: 15px;
	font-weight:500;
	gap: 9px;
	justify-content: center;
	min-height: 52px;
	padding: 11px 18px;
	text-align: center;
}

.gift-page .gift-success-whatsapp {
	background: var(--gift-form-accent);
	box-shadow: 0 12px 26px color-mix(in srgb, var(--gift-form-accent) 22%, transparent);
	color: var(--gift-accent-contrast) !important;
}

.gift-page .gift-success-back {
	background: #f6f9fa;
	border: 1px solid var(--gc-light-border);
	color: var(--gc-light-muted) !important;
}

.gift-page .gift-success-contact-error {
	align-items: flex-start;
	background: #fff8eb;
	border: 1px solid #efd39e;
	border-radius: 12px;
	color: #735922 !important;
	display: flex;
	font-size: 12px;
	gap: 9px;
	line-height: 1.45;
	margin: 0;
	padding: 12px 14px;
}

.gift-page .gift-success-contact-error i {
	color: #b77c12;
	margin-top: 2px;
}

.gift-page .gift-success-whatsapp:focus-visible,
.gift-page .gift-success-back:focus-visible {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gift-form-accent) 25%, transparent);
	outline: none;
}

.gift-page .gift-success-note {
	align-items: flex-start;
	color: var(--gc-light-subtle) !important;
	display: flex;
	font-size: 11px !important;
	gap: 8px;
	line-height: 1.45;
	margin: 13px 0 0 !important;
}

.gift-page .gift-success-note i {
	color: var(--gift-form-accent);
	margin-top: 2px;
}

@media (max-width: 767.98px) {
	html {
		scroll-padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
	}

	.gift-page {
		min-height: 100svh;
		min-height: 100dvh;
	}

	.gift-page .gift-purchase-layout {
		padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px));
	}

	.gift-page .gift-step-panel.is-current,
	.gift-page .gift-checkout {
		scroll-margin-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
	}

	.gift-page .gift-step-next,
	.gift-page .gift-submit {
		position: relative;
		z-index: 2;
	}

	.gift-page--success {
		padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px)) !important;
	}

	.gift-page--success .gift-head {
		padding-bottom: 16px !important;
	}

	.gift-page--success .gift-head p {
		display: none;
	}

	.gift-page--success .gift-logo {
		height: 70px !important;
		width: 70px !important;
	}

	.gift-page--success .gift-head h1 {
		font-size: 25px !important;
	}

	.gift-page .gift-success--request {
		border-radius: 18px;
		padding: 22px 18px;
	}

	.gift-page .gift-success--request h2 {
		font-size: 25px;
	}

	.gift-page .gift-success-summary {
		grid-template-columns: 1fr;
	}

	.gift-page .gift-success-summary > div + div {
		border-left: 0;
		border-top: 1px solid var(--gc-light-border-soft);
	}
}
