/* ===== LatePoint Gift Cards – Front-end ===== */

.lpgc-lightbox__dialog,
.lpgc-gift-card-wrapper {
	--lpgc-accent: #171717;
	--lpgc-accent-strong: #050505;
	--lpgc-accent-soft: #efefef;
	--lpgc-border: #d4d4d4;
	--lpgc-border-strong: #bdbdbd;
	--lpgc-text: #141414;
	--lpgc-muted: #6b6b6b;
	--lpgc-surface: #ffffff;
	--lpgc-surface-soft: #f5f5f5;
	--lpgc-shadow-soft: rgba(17, 17, 17, 0.08);
	--lpgc-shadow-strong: rgba(17, 17, 17, 0.14);
}

.lpgc-gift-card-wrapper {
	max-width: 780px;
	margin: 0 auto;
	font-family: "latepoint", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	box-sizing: border-box;
	color: var(--lpgc-text);
}
.lpgc-gift-card-wrapper *, .lpgc-gift-card-wrapper *::before, .lpgc-gift-card-wrapper *::after {
	box-sizing: border-box;
}

.lpgc-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ---------- Step visibility ---------- */
.lpgc-step { display: none; }
.lpgc-step-active { display: block; animation: lpgcFadeIn .3s ease; }
.lpgc-step-content {
	display: block;
}

@keyframes lpgcFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.lpgc-step-active,
	.lpgc-lightbox__dialog,
	.lpgc-btn,
	.lpgc-product-card,
	.lpgc-skeleton-bar {
		animation: none !important;
		transition: none !important;
	}
}

/* ---------- Titles ---------- */
.lpgc-step-title {
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.15;
	margin: 0 0 22px;
	padding: 0 44px 18px 0;
	color: var(--lpgc-text);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.lpgc-step-title--plain {
	padding-right: 0;
	padding-bottom: 0;
	margin-bottom: 12px;
	border-bottom: none;
}

.lpgc-info-hero {
	margin-bottom: 22px;
	padding: 26px 24px;
	border-radius: var(--latepoint-border-radius-md, 12px);
	background: linear-gradient(145deg, color-mix(in srgb, var(--lpgc-accent) 14%, white), #fff 70%);
	border: 1px solid color-mix(in srgb, var(--lpgc-accent) 16%, white);
}
.lpgc-info-eyebrow {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--lpgc-accent);
	margin-bottom: 10px;
}
.lpgc-info-intro {
	margin: 0;
	font-size: .98rem;
	line-height: 1.6;
	color: var(--lpgc-muted);
}
.lpgc-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}
.lpgc-info-card {
	padding: 18px 16px;
	border-radius: var(--latepoint-border-radius-md, 12px);
	background: var(--lpgc-surface-soft);
	border: 1px solid rgba(0, 0, 0, 0.06);
}
.lpgc-info-card-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-bottom: 12px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--lpgc-accent) 14%, white);
	color: var(--lpgc-accent);
	font-size: .88rem;
	font-weight: 700;
}
.lpgc-info-card h4 {
	margin: 0 0 8px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--lpgc-text);
}
.lpgc-info-card p {
	margin: 0;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--lpgc-muted);
}
.lpgc-info-note {
	padding: 14px 16px;
	border-radius: var(--latepoint-border-radius, 8px);
	background: color-mix(in srgb, var(--lpgc-accent) 8%, white);
	border: 1px solid color-mix(in srgb, var(--lpgc-accent) 14%, white);
	font-size: .92rem;
	line-height: 1.5;
	color: var(--lpgc-text);
}

/* ===== Inline Service Header ===== */
.lpgc-inline-header {
	text-align: left;
	padding: 24px 24px 22px;
	margin: 0 0 24px;
	background: linear-gradient(180deg, color-mix(in srgb, var(--lpgc-accent) 10%, white), #fff);
	border: 1px solid color-mix(in srgb, var(--lpgc-accent) 16%, white);
	border-radius: var(--latepoint-border-radius-md, 12px);
	color: var(--lpgc-text);
}
.lpgc-inline-icon {
	font-size: 2.4rem;
	margin-bottom: 10px;
	line-height: 1;
}
.lpgc-inline-title {
	font-size: 1.25rem;
	font-weight: 600;
	margin: 0 0 10px;
	color: var(--lpgc-text);
	line-height: 1.4;
}
.lpgc-service-highlight {
	display: inline;
	border-bottom: 2px solid color-mix(in srgb, var(--lpgc-accent) 45%, transparent);
}
.lpgc-inline-meta {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--lpgc-muted);
}
.lpgc-inline-sep { opacity: .5; }
.lpgc-inline-price {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--lpgc-text);
}

.lpgc-section-label {
	font-size: 1rem;
	font-weight: 600;
	color: var(--lpgc-text);
	margin: 0 0 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

/* ---------- Product Grid ---------- */
.lpgc-products-grid {
	display: grid;
	gap: 16px;
}
.lpgc-cols-1 { grid-template-columns: 1fr; }
.lpgc-cols-2 { grid-template-columns: repeat(2, 1fr); }
.lpgc-cols-3 { grid-template-columns: repeat(3, 1fr); }
.lpgc-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 640px) {
	.lpgc-products-grid { grid-template-columns: 1fr !important; }
	.lpgc-info-grid { grid-template-columns: 1fr; }
}

/* ---------- Product Card ---------- */
.lpgc-product-card {
	position: relative;
	display: block;
	background: linear-gradient(180deg, #fff 0%, #f7f7f7 100%);
	border: 1px solid var(--lpgc-border);
	border-bottom-color: var(--lpgc-border-strong);
	border-radius: var(--latepoint-border-radius-md, 12px);
	padding: 24px 20px;
	cursor: pointer;
	box-shadow: 0 10px 30px 0 var(--lpgc-shadow-soft), 0 1px 2px 0 rgba(17, 17, 17, 0.08);
	transition: border-color .2s, box-shadow .2s, transform .15s, background .2s;
	text-align: center;
}
.lpgc-product-card:hover {
	border-color: color-mix(in srgb, var(--lpgc-accent) 35%, white);
	box-shadow: 0 14px 34px var(--lpgc-shadow-strong), 0 1px 2px rgba(20, 22, 29, 0.1);
	transform: translateY(-2px);
}
.lpgc-product-radio { position: absolute; opacity: 0; pointer-events: none; }
.lpgc-product-radio:checked + .lpgc-product-inner { color: var(--lpgc-accent); }
.lpgc-product-radio:checked ~ .lpgc-check-mark { opacity: 1; transform: scale(1); }
.lpgc-product-card:has(.lpgc-product-radio:checked) {
	border-color: var(--lpgc-accent);
	background: linear-gradient(180deg, color-mix(in srgb, var(--lpgc-accent) 8%, white), #fff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--lpgc-accent) 18%, transparent), 0 14px 34px var(--lpgc-shadow-strong);
}

.lpgc-check-mark {
	position: absolute;
	top: 10px; right: 12px;
	width: 26px; height: 26px;
	background: var(--lpgc-accent);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 14px;
	opacity: 0;
	transform: scale(.6);
	transition: opacity .2s, transform .2s;
}

.lpgc-product-price {
	font-size: 2rem;
	font-weight: 600;
	color: var(--lpgc-text);
	margin-bottom: 6px;
}
.lpgc-product-name {
	font-size: .95rem;
	font-weight: 600;
	color: var(--lpgc-text);
	margin-bottom: 4px;
}
.lpgc-product-desc {
	font-size: .82rem;
	color: var(--lpgc-muted);
	margin-top: 8px;
	line-height: 1.4;
}

/* ---------- Custom Amount ---------- */
.lpgc-custom-amount-wrapper { margin-top: 16px; }
.lpgc-custom-card .lpgc-custom-input-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	justify-content: center;
	margin-top: 10px;
}
.lpgc-currency-symbol {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--lpgc-text);
}
.lpgc-custom-amount-input {
	width: 140px;
	padding: 11px 12px;
	border: 1px solid var(--lpgc-border);
	border-radius: var(--latepoint-border-radius, 8px);
	font-size: 1rem;
	text-align: center;
	box-shadow: none;
}
.lpgc-custom-amount-input:focus {
	outline: none;
	border-color: var(--lpgc-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--lpgc-accent) 14%, transparent);
}
.lpgc-custom-card .lpgc-field-msg {
	display: none;
	margin-top: 8px;
	text-align: center;
}
.lpgc-custom-card .lpgc-field-msg.is-visible {
	display: block;
}

/* ---------- Form Fields ---------- */
.lpgc-form-row {
	display: flex;
	gap: 16px;
	margin-bottom: 16px;
}
.lpgc-form-col { flex: 1; min-width: 0; }
.lpgc-form-row-full { flex-direction: column; }

.lpgc-form-row label,
.lpgc-form-col label {
	display: block;
	font-size: .8rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	color: var(--lpgc-muted);
	margin-bottom: 8px;
}

.lpgc-form-row input[type="text"],
.lpgc-form-row input[type="email"],
.lpgc-form-row textarea {
	width: 100%;
	padding: 13px 14px;
	border: 1px solid var(--lpgc-border);
	border-radius: var(--latepoint-border-radius, 8px);
	font-size: .95rem;
	line-height: 1.35;
	background: var(--lpgc-surface);
	color: #32373c;
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s, background .2s;
	box-sizing: border-box;
	font-family: inherit;
}
.lpgc-form-row textarea {
	min-height: 110px;
	resize: vertical;
}
.lpgc-form-row input:focus,
.lpgc-form-row textarea:focus {
	outline: none;
	border-color: var(--lpgc-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--lpgc-accent) 14%, transparent);
}

@media (max-width: 540px) {
	.lpgc-form-row { flex-direction: column; gap: 12px; }
	.lpgc-inline-meta { flex-direction: column; gap: 6px; }
	.lpgc-step-nav { gap: 10px; }
	.lpgc-step-nav .lpgc-btn {
		flex: 1 1 0;
		min-width: 0;
		padding-left: 14px;
		padding-right: 14px;
		justify-content: center;
		text-align: center;
	}
	.lpgc-check-input-row { flex-direction: column; }
	.lpgc-check-input { width: 100%; }
	.lpgc-btn-check { width: 100%; }
	.lpgc-check-actions { flex-direction: column; align-items: stretch; }
	.lpgc-btn-copy-code, .lpgc-btn-book-now { justify-content: center; }
	.lpgc-success-actions { flex-direction: column; align-items: center; }
	.lpgc-btn-buy-another { width: 100%; text-align: center; box-sizing: border-box; }
}

/* ---------- Buttons ---------- */
.lpgc-step-nav {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	margin-top: 24px;
	justify-content: flex-end;
}
.lpgc-step-nav .lpgc-btn {
	min-width: 0;
}
.lpgc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 24px;
	border: none;
	border-radius: var(--latepoint-border-radius, 8px);
	font-size: .95rem;
	font-weight: 600;
	cursor: pointer;
	line-height: 1.2;
	box-shadow: none;
	transition: background .2s, border-color .2s, color .2s, transform .1s;
	font-family: inherit;
}
.lpgc-btn:active { transform: scale(.98); }

.lpgc-btn-next,
.lpgc-btn-submit {
	background: var(--lpgc-accent);
	color: #fff;
}
.lpgc-btn-next:hover,
.lpgc-btn-submit:hover { background: var(--lpgc-accent-strong); }

.lpgc-btn-back {
	background: #ededed;
	color: #232323;
}
.lpgc-btn-back:hover { background: #dddddd; }

.lpgc-btn[disabled] {
	opacity: .6;
	cursor: not-allowed;
}

/* ---------- Error ---------- */
.lpgc-form-error {
	margin-top: 16px;
	padding: 12px 16px;
	background: #fef2f2;
	color: #b91c1c;
	border-radius: var(--latepoint-border-radius, 8px);
	font-size: .9rem;
}

/* ---------- Messages ---------- */
.lpgc-message {
	padding: 16px 20px;
	border-radius: 8px;
	font-size: .95rem;
}
.lpgc-message-error { background: #fef2f2; color: #b91c1c; }
.lpgc-message-warning { background: #fffbeb; color: #92400e; }

/* ---------- Gift Card Check ---------- */
.lpgc-check-wrapper { max-width: 500px; margin: 0 auto; }
.lpgc-check-title { font-size: 1.2rem; font-weight: 600; margin-bottom: 16px; color: var(--lpgc-text); }

.lpgc-check-input-row {
	display: flex;
	gap: 8px;
}
.lpgc-check-input {
	flex: 1;
	padding: 12px 14px;
	border: 1px solid var(--lpgc-border);
	border-radius: var(--latepoint-border-radius, 8px);
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-family: inherit;
}
.lpgc-check-input:focus {
	outline: none;
	border-color: var(--lpgc-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--lpgc-accent) 14%, transparent);
}

.lpgc-btn-check {
	background: var(--lpgc-accent);
	color: #fff;
	white-space: nowrap;
}
.lpgc-btn-check:hover { background: var(--lpgc-accent-strong); }

.lpgc-check-result { margin-top: 20px; }
.lpgc-check-card {
	background: #fff;
	border: 2px solid #e5e7eb;
	border-radius: 12px;
	overflow: hidden;
}
.lpgc-check-row {
	display: flex;
	justify-content: space-between;
	padding: 12px 20px;
	border-bottom: 1px solid #f3f4f6;
}
.lpgc-check-row:last-child { border-bottom: none; }
.lpgc-check-label { font-size: .85rem; color: #6b7280; font-weight: 500; }
.lpgc-check-value { font-size: .9rem; font-weight: 600; color: #111827; }

/* ---------- Status badges ---------- */
.lpgc-status { padding: 2px 8px; border-radius: 4px; font-size: .8rem; font-weight: 600; }
.lpgc-status-active  { background: #ecfdf5; color: #065f46; }
.lpgc-status-disabled { background: #fef2f2; color: #991b1b; }
.lpgc-status-pending  { background: #fffbeb; color: #92400e; }
.lpgc-status-paid     { background: #efefef; color: #222222; }
.lpgc-status-sent     { background: #ecfdf5; color: #065f46; }
.lpgc-status-refunded { background: #fef2f2; color: #991b1b; }

.lpgc-no-products { text-align: center; color: #6b7280; padding: 40px 0; }

/* ===== Lightbox ===== */
body.lpgc-lightbox-open { overflow: hidden; }

.lpgc-lightbox-trigger {
	display: inline-block;
	margin: 0;
	cursor: pointer;
	font-family: inherit;
}

.lpgc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	box-sizing: border-box;
	isolation: isolate;
}

.lpgc-lightbox--is-hidden {
	display: none !important;
	visibility: hidden;
	pointer-events: none;
}

.lpgc-lightbox--open {
	display: flex !important;
	visibility: visible;
	pointer-events: auto;
}

.lpgc-lightbox__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(0, 0, 0, 0.4);
}

.lpgc-lightbox__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 640px;
	max-height: 94vh;
	background: #fff;
	border-radius: var(--latepoint-border-radius-md, 8px);
	box-shadow: 0px 2px 4px rgba(0,0,0,0.2), 0px 20px 50px rgba(0,0,0,0.4);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.lpgc-lightbox__dialog--narrow { max-width: 480px; }

.lpgc-lightbox__close {
	position: absolute;
	top: 17px;
	right: 19px;
	z-index: 3;
	padding: 5px;
	border: none;
	background: transparent;
	font-size: 20px;
	line-height: 1;
	color: #333;
	cursor: pointer;
	border-radius: var(--latepoint-border-radius, 4px);
	display: block;
	outline: none;
	box-shadow: none;
}

.lpgc-lightbox__close svg {
	display: block;
}


.lpgc-lightbox__body {
	overflow-y: auto;
	overflow-x: hidden;
	padding: 30px;
	-webkit-overflow-scrolling: touch;
	background: #fff;
}
.lpgc-mobile-footer-host {
	display: none;
}

.lpgc-gift-card-wrapper--modal {
	max-width: none;
	margin: 0;
}

/* ===== Success (after Stripe return) ===== */
.lpgc-success-inline {
	max-width: 600px;
	margin: 40px auto;
	padding: 40px 24px;
	text-align: center;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.lpgc-success-icon { font-size: 3.5rem; margin-bottom: 12px; }
.lpgc-success-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #111827;
	margin: 0 0 12px;
}
.lpgc-success-message { font-size: 1.05rem; color: #374151; margin: 0 0 8px; }
.lpgc-success-note { font-size: 0.9rem; color: #6b7280; margin: 0; }

/* ===== Payment flow (form → embedded Stripe → success, all in lightbox) ===== */
.lpgc-payment-flow .lpgc-payment-panel {
	display: none !important;
}
.lpgc-payment-flow .lpgc-payment-panel.is-active {
	display: block !important;
}

.lpgc-payment-panel--stripe .lpgc-stripe-mount {
	min-height: 420px;
	width: 100%;
}

.lpgc-stripe-hint {
	font-size: 0.85rem;
	color: #64748b;
	margin: 12px 0 0;
}

.lpgc-btn-back-stripe {
	margin-top: 16px;
	background: color-mix(in srgb, var(--lpgc-accent) 10%, white);
	color: var(--lpgc-accent-strong);
	border: 1px solid color-mix(in srgb, var(--lpgc-accent) 24%, white);
	box-shadow: none;
}
.lpgc-btn-back-stripe:hover {
	background: color-mix(in srgb, var(--lpgc-accent) 16%, white);
	border-color: color-mix(in srgb, var(--lpgc-accent) 34%, white);
	color: var(--lpgc-accent-strong);
}

.lpgc-payment-panel--success .lpgc-success-inline {
	max-width: none;
	margin: 0;
	padding: 8px 0 20px;
	text-align: center;
}

/* ===== Item 1: Per-field Inline Validation ===== */
.lpgc-form-row input.lpgc-field-error,
.lpgc-custom-amount-input.lpgc-field-error,
.lpgc-form-row textarea.lpgc-field-error {
	border-color: #ef4444;
	background: #fef2f2;
}
.lpgc-form-row input.lpgc-field-error:focus,
.lpgc-custom-amount-input.lpgc-field-error:focus,
.lpgc-form-row textarea.lpgc-field-error:focus {
	border-color: #dc2626;
}
.lpgc-field-msg {
	display: none;
	font-size: .78rem;
	color: #dc2626;
	margin-top: 4px;
	line-height: 1.3;
}
.lpgc-field-msg.is-visible { display: block; }

/* ===== Item 2: Step Progress Indicator ===== */
.lpgc-progress {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin-top: 12px;
	margin-bottom: 28px;
}
.lpgc-progress-step {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .85rem;
	font-weight: 700;
	border: 2px solid #d6d6d6;
	color: var(--lpgc-muted);
	background: #fff;
	transition: all .25s ease;
	flex-shrink: 0;
}
.lpgc-progress-step.is-active {
	border-color: color-mix(in srgb, var(--lpgc-accent) 30%, white);
	color: var(--lpgc-accent);
	background: color-mix(in srgb, var(--lpgc-accent) 10%, white);
}
.lpgc-progress-step.is-completed {
	border-color: var(--lpgc-accent);
	color: #fff;
	background: var(--lpgc-accent);
}
.lpgc-progress-line {
	flex: 0 0 60px;
	height: 2px;
	background: #d6d6d6;
	transition: background .25s ease;
}
.lpgc-progress-line.is-completed { background: var(--lpgc-accent); }

/* ===== Item 3: Order Summary ===== */
.lpgc-order-summary {
	background: var(--lpgc-surface-soft);
	border: 1px solid color-mix(in srgb, var(--lpgc-accent) 18%, white);
	border-radius: var(--latepoint-border-radius-md, 10px);
	padding: 16px 20px;
	margin-bottom: 20px;
	box-shadow: none;
}
.lpgc-order-summary-title {
	font-size: .8rem;
	font-weight: 700;
	color: var(--lpgc-accent);
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: .8px;
}
.lpgc-summary-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 5px 0;
	font-size: .9rem;
}
.lpgc-summary-label { color: var(--lpgc-muted); font-weight: 500; }
.lpgc-summary-value { color: var(--lpgc-text); font-weight: 600; text-align: right; max-width: 60%; word-break: break-word; }
.lpgc-summary-divider {
	border: none;
	border-top: 1px solid color-mix(in srgb, var(--lpgc-accent) 12%, white);
	margin: 10px 0;
}
.lpgc-summary-total .lpgc-summary-label { color: var(--lpgc-text); font-weight: 700; font-size: .95rem; }
.lpgc-summary-total .lpgc-summary-value { font-size: 1.1rem; color: var(--lpgc-accent); font-weight: 700; }

/* ===== Item 4: Character Counter ===== */
.lpgc-char-count {
	display: block;
	text-align: right;
	font-size: .75rem;
	color: #9ca3af;
	margin-top: 4px;
	transition: color .2s;
}
.lpgc-char-count.is-near-limit { color: #f59e0b; }
.lpgc-char-count.is-at-limit { color: #ef4444; font-weight: 600; }

/* ===== Item 5: Send to Myself Toggle ===== */
.lpgc-self-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .85rem;
	font-weight: 500;
	color: var(--lpgc-text);
	cursor: pointer;
	margin-bottom: 16px;
	user-select: none;
}
.lpgc-self-toggle input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--lpgc-accent);
	cursor: pointer;
}
.lpgc-form-row input:disabled,
.lpgc-form-row input.lpgc-disabled {
	background: #f1f1f1;
	color: var(--lpgc-muted);
	cursor: not-allowed;
}

/* ===== Item 7: Check Form Copy Button + CTA ===== */
.lpgc-check-actions {
	display: flex;
	gap: 8px;
	padding: 12px 20px;
	justify-content: center;
}
.lpgc-btn-copy-code {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border: 2px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	color: #374151;
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	transition: all .2s;
}
.lpgc-btn-copy-code:hover { border-color: var(--lpgc-accent); color: var(--lpgc-accent); }
.lpgc-btn-copy-code.is-copied {
	border-color: #22c55e;
	color: #22c55e;
}
.lpgc-btn-book-now {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border: none;
	border-radius: 8px;
	background: var(--lpgc-accent);
	color: #fff;
	font-size: .85rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background .2s;
}
.lpgc-btn-book-now:hover { background: var(--lpgc-accent-strong); }

/* ===== Item 8: Mobile Full-Screen ===== */
@keyframes lpgcOsLightboxMobileAnimation {
	0%   { transform: translate3d(0%, 10%, 0px) scale(0.9); opacity: 0; }
	100% { transform: translate3d(0%, 0%, 0px) scale(1);   opacity: 1; }
}

@media (max-width: 600px) {
	.lpgc-lightbox {
		align-items: center;
		padding: 0;
	}
	.lpgc-lightbox__dialog {
		max-width: 100%;
		max-height: 100vh;
		max-height: 100dvh;
		height: 100vh;
		height: 100dvh;
		border-radius: 0;
		animation: lpgcOsLightboxMobileAnimation 0.4s cubic-bezier(0, 1, 0.51, 1) both;
	}
	.lpgc-lightbox__dialog--narrow {
		max-width: 100%;
	}
	.lpgc-lightbox__body {
		display: flex;
		flex-direction: column;
		padding: 0;
		overflow: hidden;
		flex: 1 1 auto;
		min-height: 0;
	}
	.lpgc-mobile-footer-host {
		display: block;
		flex: 0 0 auto;
		position: relative;
		z-index: 4;
		background: rgba(255, 255, 255, 0.97);
		border-top: 1px solid rgba(0, 0, 0, 0.06);
		box-shadow: 0 -10px 24px rgba(15, 23, 42, 0.08);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
	}
	.lpgc-mobile-footer-host:empty {
		display: none;
	}
	.lpgc-mobile-footer-host.is-hidden {
		display: none !important;
	}
	.lpgc-mobile-footer-host .lpgc-step-nav {
		display: flex !important;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: stretch;
		gap: 12px;
		margin: 0;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
	}
	.lpgc-mobile-footer-host .lpgc-btn,
	.lpgc-mobile-footer-host .lpgc-btn-submit,
	.lpgc-mobile-footer-host .lpgc-btn-next,
	.lpgc-mobile-footer-host .lpgc-btn-back {
		display: inline-flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		flex: 1 1 0;
		min-width: 0;
		min-height: 48px;
		padding-left: 14px;
		padding-right: 14px;
		text-align: center;
	}
	.lpgc-mobile-footer-host .lpgc-btn-submit,
	.lpgc-mobile-footer-host .lpgc-btn-next {
		background: var(--lpgc-accent) !important;
		color: #fff !important;
		border: none !important;
	}
	.lpgc-mobile-footer-host .lpgc-btn-submit .lpgc-btn-text,
	.lpgc-mobile-footer-host .lpgc-btn-next .lpgc-btn-text,
	.lpgc-mobile-footer-host .lpgc-btn-submit span,
	.lpgc-mobile-footer-host .lpgc-btn-next span {
		display: inline-block !important;
		color: inherit !important;
		visibility: visible !important;
		opacity: 1 !important;
	}
	.lpgc-lightbox--open .lpgc-mobile-footer-host .lpgc-btn-submit:not([disabled]) .lpgc-btn-text {
		display: inline-block !important;
		visibility: visible !important;
		opacity: 1 !important;
	}
	.lpgc-lightbox--open .lpgc-mobile-footer-host .lpgc-btn-submit:not([disabled]) .lpgc-btn-loading {
		display: none !important;
	}
	.lpgc-mobile-footer-host .lpgc-btn-back {
		background: #ededed !important;
		color: #232323 !important;
	}
	.lpgc-lightbox__close {
		top: 5px;
		right: 5px;
	}
	.lpgc-gift-card-wrapper--modal,
	.lpgc-gift-card-wrapper--modal .lpgc-payment-flow,
	.lpgc-gift-card-wrapper--modal .lpgc-payment-panel,
	.lpgc-gift-card-wrapper--modal .lpgc-gift-form {
		height: 100%;
		min-height: 0;
	}
	.lpgc-gift-card-wrapper--modal,
	.lpgc-gift-card-wrapper--modal .lpgc-payment-flow,
	.lpgc-gift-card-wrapper--modal .lpgc-payment-panel--form.is-active,
	.lpgc-gift-card-wrapper--modal .lpgc-gift-form {
		display: flex !important;
		flex-direction: column;
		flex: 1 1 auto;
	}
	.lpgc-gift-card-wrapper--modal .lpgc-step {
		display: none;
	}
	.lpgc-gift-card-wrapper--modal .lpgc-step-active {
		display: flex !important;
		flex-direction: column;
		flex: 1 1 auto;
		height: 100%;
		min-height: 0;
		overflow: hidden;
	}
	.lpgc-gift-card-wrapper--modal .lpgc-step-content {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		padding: 16px 16px calc(120px + env(safe-area-inset-bottom, 0px));
		-webkit-overflow-scrolling: touch;
	}
	.lpgc-gift-card-wrapper--modal .lpgc-payment-panel--stripe.is-active,
	.lpgc-gift-card-wrapper--modal .lpgc-payment-panel--success.is-active {
		display: block !important;
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		padding: 16px 16px calc(24px + env(safe-area-inset-bottom, 0px));
		-webkit-overflow-scrolling: touch;
	}
	.lpgc-gift-card-wrapper--modal .lpgc-payment-panel--stripe.is-active .lpgc-stripe-mount {
		min-height: 520px;
	}
	.lpgc-lightbox--open .lpgc-mobile-footer-host .lpgc-step-nav {
		position: fixed !important;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 1000002;
		margin: 0 !important;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
		background: rgba(255, 255, 255, 0.98);
		border: none;
		border-top: 1px solid rgba(0, 0, 0, 0.06);
		border-radius: 0;
		box-shadow: 0 -10px 24px rgba(15, 23, 42, 0.08);
	}
	.lpgc-lightbox--open .lpgc-mobile-footer-host .lpgc-step-nav .lpgc-btn {
		width: auto;
		flex: 1;
	}
	.lpgc-payment-panel--success .lpgc-success-inline {
		padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	}
}

@media (max-width: 640px) {
	.lpgc-progress {
		margin-top: 10px;
		margin-bottom: 20px;
	}
	.lpgc-progress-line { flex: 0 0 40px; }
	.lpgc-product-card { padding: 16px 14px; }
	.lpgc-product-price { font-size: 1.6rem; }
	.lpgc-order-summary { padding: 14px 16px; }
	.lpgc-success-card { padding: 20px 16px; }
	.lpgc-success-card-code { font-size: 1.1rem; letter-spacing: 1px; }
	.lpgc-success-inline { padding: 24px 16px; }
	.lpgc-inline-header { padding: 20px 16px 18px; }
}

/* ===== Item 9: Enhanced Success Page ===== */
.lpgc-success-card {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.16), transparent 28%),
		radial-gradient(circle at 82% 0%, rgba(255, 255, 255, 0.08), transparent 26%),
		linear-gradient(145deg, #0f0f0f 0%, #1a1a1a 34%, #2a2a2a 72%, #3a3a3a 100%);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 14px;
	padding: 28px 24px;
	margin: 16px 0;
	color: #fff;
	text-align: center;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.lpgc-success-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 34%),
		linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.05) 52%, transparent 68%);
	pointer-events: none;
}
.lpgc-success-card > * {
	position: relative;
	z-index: 1;
}
.lpgc-success-card-label {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: rgba(255, 255, 255, 0.72);
	margin-bottom: 10px;
}
.lpgc-success-card-code {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	padding: 12px 22px;
	border: 1px solid rgba(255, 255, 255, 0.32);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	color: #141414;
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
	margin: 4px 0 12px;
}
.lpgc-success-card-meta {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 24px;
	font-size: .85rem;
	color: rgba(255, 255, 255, 0.82);
	margin-top: 4px;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.lpgc-success-card-meta span { font-weight: 600; color: #ffffff; }
.lpgc-success-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin-top: 20px;
}
.lpgc-btn-buy-another {
	display: inline-block;
	padding: 10px 24px;
	border: 2px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	color: #374151;
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: all .2s;
}
.lpgc-btn-buy-another:hover { border-color: var(--lpgc-accent); color: var(--lpgc-accent); }

/* ===== Item 16: Skeleton Loading for Stripe Mount ===== */
.lpgc-skeleton {
	padding: 20px;
}
.lpgc-skeleton-bar {
	height: 16px;
	background: #e5e7eb;
	border-radius: 4px;
	margin-bottom: 14px;
	animation: lpgcPulse 1.5s ease-in-out infinite;
}
.lpgc-skeleton-bar:nth-child(1) { width: 60%; }
.lpgc-skeleton-bar:nth-child(2) { width: 100%; height: 44px; border-radius: 8px; }
.lpgc-skeleton-bar:nth-child(3) { width: 100%; height: 44px; border-radius: 8px; }
.lpgc-skeleton-bar:nth-child(4) { width: 40%; }
.lpgc-skeleton-bar:nth-child(5) { width: 100%; height: 44px; border-radius: 8px; }
.lpgc-skeleton-bar:last-child { margin-bottom: 0; }
@keyframes lpgcPulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .4; }
}
