/**
 * Saját Mesém Checkout - Frontend CSS
 * Magicstory-stílusú modal popup, brand színekkel.
 */

/* ============================================================ */
/* DESIGN TOKENS                                                */
/* ============================================================ */
.sm-modal-overlay {
	--sm-primary: #7B4FBF;
	--sm-primary-dark: #5C3A93;
	--sm-accent: #FF7E67;
	--sm-gold: #F4C95D;

	--sm-bg-base: #1A0E2E;
	--sm-bg-modal: #251638;
	--sm-bg-card: #2E1B47;
	--sm-bg-card-hover: #3A2255;
	--sm-bg-input: #1F1130;
	--sm-bg-input-focus: #2A1840;

	--sm-bubble-bg: linear-gradient(135deg, #2E1B47 0%, #3A2255 100%);
	--sm-bubble-border: rgba(244, 201, 93, 0.2);

	--sm-cta-gradient: linear-gradient(135deg, #B85FE8 0%, #FF6B9D 100%);
	--sm-cta-gradient-hover: linear-gradient(135deg, #A040D5 0%, #F0508A 100%);
	--sm-progress-gradient: linear-gradient(90deg, #FFA947 0%, #FF6B9D 100%);

	--sm-text-light: #FFFFFF;
	--sm-text-secondary: rgba(255, 255, 255, 0.75);
	--sm-text-muted: rgba(255, 255, 255, 0.5);
	--sm-text-faint: rgba(255, 255, 255, 0.35);

	--sm-border: rgba(255, 255, 255, 0.08);
	--sm-border-strong: rgba(255, 255, 255, 0.15);

	--sm-font-heading: 'Fraunces', Georgia, serif;
	--sm-font-body: 'Quicksand', -apple-system, sans-serif;

	--sm-radius-sm: 10px;
	--sm-radius-md: 16px;
	--sm-radius-lg: 24px;
	--sm-radius-pill: 100px;

	--sm-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--sm-transition-fast: all 0.2s ease;
}

/* ============================================================ */
/* OVERLAY + MODAL CONTAINER                                    */
/* ============================================================ */
.sm-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(10, 5, 20, 0.85);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: 999999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	overflow-y: auto;
	font-family: var(--sm-font-body);
}

.sm-modal-overlay.sm-active {
	display: flex;
	animation: smOverlayFadeIn 0.3s ease;
}

@keyframes smOverlayFadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.sm-modal {
	background: var(--sm-bg-modal);
	border-radius: var(--sm-radius-lg);
	width: 100%;
	max-width: 920px;
	max-height: calc(100vh - 48px);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.5);
	color: var(--sm-text-light);
	font-family: var(--sm-font-body);
	font-size: 15px;
	line-height: 1.5;
	animation: smModalSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes smModalSlideUp {
	from { opacity: 0; transform: translateY(40px) scale(0.95); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* (A mobil modal méretezést a lenti "MOBIL UX REWRITE" blokk kezeli) */

/* Reset belső elemekre (hogy a téma stílusok ne zavarjanak) */
.sm-modal *,
.sm-modal *::before,
.sm-modal *::after {
	box-sizing: border-box;
}
.sm-modal h1, .sm-modal h2, .sm-modal h3, .sm-modal p, .sm-modal ul, .sm-modal li, .sm-modal label, .sm-modal input, .sm-modal button {
	margin: 0;
	padding: 0;
}
/* AGRESSZÍV button reset — sok téma globálisan override-olja a button-öket */
.sm-modal-overlay button,
.sm-modal-overlay input[type="button"],
.sm-modal-overlay input[type="submit"] {
	background: none;
	background-color: transparent;
	border: none;
	border-radius: 0;
	font-family: var(--sm-font-body);
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	cursor: pointer;
	color: inherit;
	text-decoration: none;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	min-height: 0;
	min-width: 0;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.sm-modal-overlay button:hover,
.sm-modal-overlay button:focus,
.sm-modal-overlay button:active {
	background: none;
	background-color: transparent;
	color: inherit;
	box-shadow: none;
	transform: none;
}

.sm-modal-overlay input[type="text"],
.sm-modal-overlay input[type="number"],
.sm-modal-overlay input[type="email"] {
	background: var(--sm-bg-input);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	color: var(--sm-text-light);
	font-family: var(--sm-font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	height: auto;
	min-height: 0;
	box-shadow: none;
	letter-spacing: normal;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

.sm-modal-overlay input[type="range"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: var(--sm-bg-card);
	border: none;
	box-shadow: none;
	height: 8px;
	padding: 0;
}

.sm-modal-overlay ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sm-modal-overlay ul li::before {
	content: none;
}

.sm-modal-overlay a {
	text-decoration: none;
	color: inherit;
	background: none;
}

/* ============================================================ */
/* PROGRESS BAR                                                 */
/* ============================================================ */
.sm-progress {
	height: 4px;
	background: var(--sm-bg-card);
	overflow: hidden;
	flex-shrink: 0;
}

.sm-progress-fill {
	height: 100%;
	width: 14%;
	background: var(--sm-progress-gradient);
	transition: width 0.4s ease;
	border-radius: 0 4px 4px 0;
}

/* ============================================================ */
/* HEADER                                                       */
/* ============================================================ */
.sm-modal-header {
	padding: 24px 32px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-shrink: 0;
}

.sm-modal-title {
	font-family: var(--sm-font-heading);
	font-size: 24px;
	font-weight: 600;
	color: var(--sm-text-light);
	flex: 1;
	text-align: center;
	line-height: 1.2;
}

.sm-modal-overlay .sm-modal-close {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	color: var(--sm-text-secondary);
	font-size: 16px;
	transition: var(--sm-transition-fast);
	background: rgba(255, 255, 255, 0.05);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	min-width: 0;
	padding: 0;
}

.sm-modal-overlay .sm-modal-close:hover {
	background: rgba(255, 255, 255, 0.1);
	color: var(--sm-text-light);
}

@media (max-width: 540px) {
	.sm-modal-header { padding: 20px 20px 12px; }
	.sm-modal-title { font-size: 20px; }
}

/* ============================================================ */
/* MASCOT ROW                                                   */
/* ============================================================ */
.sm-mascot-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 0 32px 20px;
	flex-shrink: 0;
}

.sm-mascot {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, #5BD4C9 0%, #2DC4B0 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 18px rgba(45, 196, 176, 0.4);
}

.sm-mascot-icon {
	font-family: var(--sm-font-heading);
	font-size: 28px;
	font-weight: 700;
	color: var(--sm-text-light);
	font-style: italic;
}

.sm-mascot-bubble {
	flex: 1;
	background: var(--sm-bubble-bg);
	border: 1px solid var(--sm-bubble-border);
	border-radius: var(--sm-radius-md);
	padding: 14px 18px;
	font-size: 14px;
	color: var(--sm-text-light);
	line-height: 1.5;
	position: relative;
}

.sm-mascot-bubble::before {
	content: '';
	position: absolute;
	left: -7px;
	top: 18px;
	width: 14px;
	height: 14px;
	background: var(--sm-bg-card);
	border-left: 1px solid var(--sm-bubble-border);
	border-bottom: 1px solid var(--sm-bubble-border);
	transform: rotate(45deg);
}

@media (max-width: 540px) {
	.sm-mascot-row { padding: 0 20px 16px; }
	.sm-mascot { width: 44px; height: 44px; }
	.sm-mascot-icon { font-size: 22px; }
	.sm-mascot-bubble { font-size: 13px; padding: 12px 14px; }
}

/* ============================================================ */
/* CONTENT                                                      */
/* ============================================================ */
.sm-modal-content {
	flex: 1;
	overflow-y: auto;
	padding: 8px 32px 24px;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 540px) {
	.sm-modal-content { padding: 8px 20px 20px; }
}

.sm-step {
	display: none;
	animation: smStepFadeIn 0.4s ease;
}

.sm-step.sm-step-active {
	display: block;
}

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

/* ============================================================ */
/* FORMS                                                        */
/* ============================================================ */
.sm-form-group { margin-bottom: 20px; }
.sm-form-row { display: flex; gap: 16px; flex-wrap: wrap; }
.sm-form-row.sm-cols-2 .sm-form-group { flex: 1; min-width: 200px; margin-bottom: 0; }

.sm-form-label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: var(--sm-text-secondary);
	margin-bottom: 8px;
}

.sm-optional {
	color: var(--sm-text-muted);
	font-weight: 500;
}

.sm-form-input {
	width: 100%;
	padding: 14px 16px;
	background: var(--sm-bg-input);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	color: var(--sm-text-light);
	font-size: 15px;
	font-weight: 500;
	transition: var(--sm-transition-fast);
	outline: none;
}

.sm-form-input:focus {
	border-color: var(--sm-gold);
	background: var(--sm-bg-input-focus);
}

.sm-form-input::placeholder { color: var(--sm-text-faint); }

/* Name preview */
.sm-name-preview {
	margin-top: 20px;
	padding: 18px 24px;
	background: var(--sm-bg-card);
	border-radius: var(--sm-radius-md);
	border: 1px dashed var(--sm-border-strong);
	text-align: center;
}

.sm-name-preview-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sm-text-muted);
	margin-bottom: 8px;
}

.sm-name-preview-value {
	font-family: var(--sm-font-heading);
	font-size: 22px;
	font-weight: 600;
	color: var(--sm-gold);
}

/* ============================================================ */
/* STEP 1: UPLOAD                                               */
/* ============================================================ */
.sm-photo-input { display: none; }

.sm-upload-magic {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin: 16px 0 32px;
	padding: 12px 0;
}

@media (max-width: 540px) {
	.sm-upload-magic { gap: 12px; }
}

.sm-upload-card {
	width: 180px;
}

.sm-upload-card-frame {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: var(--sm-radius-md);
	background: linear-gradient(135deg, #4F3580 0%, #7B4FBF 100%);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35), 0 0 0 4px rgba(255, 255, 255, 0.06) inset;
	overflow: hidden;
}

.sm-upload-card-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sm-upload-card-label {
	margin-top: 16px;
	text-align: center;
	font-family: var(--sm-font-heading);
	font-size: 17px;
	font-weight: 600;
	color: var(--sm-text-light);
	line-height: 1.3;
}

@media (max-width: 540px) {
	.sm-upload-card { width: 130px; }
	.sm-upload-card-label { font-size: 13px; margin-top: 12px; }
}

.sm-upload-middle {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding-bottom: 30px;
	position: relative;
}

.sm-upload-wand {
	font-size: 32px;
	animation: smWandFloat 2.4s ease-in-out infinite;
}

@keyframes smWandFloat {
	0%, 100% { transform: translateY(0) rotate(-8deg); }
	50% { transform: translateY(-6px) rotate(8deg); }
}

.sm-upload-arrow {
	color: var(--sm-text-light);
	font-size: 28px;
	font-weight: 300;
	line-height: 1;
	opacity: 0.85;
}

.sm-upload-sparkles {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.sm-sparkle {
	position: absolute;
	color: var(--sm-gold);
	font-size: 10px;
	opacity: 0;
	animation: smSparkle 3s ease-in-out infinite;
}
.sm-sparkle:nth-child(1) { top: 10%; left: 20%; animation-delay: 0s; }
.sm-sparkle:nth-child(2) { top: 40%; left: 80%; animation-delay: 0.6s; font-size: 8px; }
.sm-sparkle:nth-child(3) { top: 65%; left: 15%; animation-delay: 1.2s; font-size: 12px; }
.sm-sparkle:nth-child(4) { top: 25%; left: 70%; animation-delay: 1.8s; }
.sm-sparkle:nth-child(5) { top: 75%; left: 75%; animation-delay: 2.4s; font-size: 9px; }

@keyframes smSparkle {
	0%, 100% { opacity: 0; transform: scale(0.5); }
	50% { opacity: 1; transform: scale(1.2); }
}

.sm-privacy-info {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: rgba(45, 212, 191, 0.08);
	border: 1px solid rgba(45, 212, 191, 0.2);
	border-radius: var(--sm-radius-sm);
	font-size: 13px;
	color: var(--sm-text-secondary);
	line-height: 1.5;
}

.sm-privacy-info strong { color: var(--sm-text-light); }
.sm-privacy-icon { font-size: 18px; flex-shrink: 0; }

/* Upload CTA gomb */
.sm-modal-overlay .sm-upload-cta-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	margin-top: 20px;
	padding: 18px 32px;
	background: var(--sm-cta-gradient);
	color: var(--sm-text-light);
	font-family: var(--sm-font-body);
	font-size: 17px;
	font-weight: 700;
	border: none;
	border-radius: var(--sm-radius-pill);
	transition: var(--sm-transition);
	box-shadow: 0 8px 24px rgba(184, 95, 232, 0.4);
	text-decoration: none;
	min-height: 56px;
	height: auto;
}

.sm-modal-overlay .sm-upload-cta-btn:hover:not(:disabled) {
	background: var(--sm-cta-gradient-hover);
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(184, 95, 232, 0.5);
	color: var(--sm-text-light);
}

.sm-modal-overlay .sm-upload-cta-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

.sm-upload-cta-icon { font-size: 20px; }

.sm-upload-thumbs-info {
	text-align: center;
	margin-top: 16px;
	margin-bottom: 8px;
	font-size: 13px;
	color: var(--sm-text-secondary);
}

.sm-upload-thumbs-info strong { color: var(--sm-gold); font-weight: 600; }
.sm-text-muted { color: var(--sm-text-muted); }

.sm-upload-thumbs {
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}

.sm-upload-thumb {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	overflow: hidden;
	position: relative;
	border: 2px solid var(--sm-gold);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

.sm-upload-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sm-upload-thumb.sm-uploading {
	opacity: 0.6;
}

.sm-upload-thumb.sm-uploading::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F4C95D'%3E%3Cpath d='M12 2v4m0 12v4M2 12h4m12 0h4M5 5l3 3m8 8l3 3M5 19l3-3m8-8l3-3'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='1s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E") center/24px no-repeat;
}

.sm-upload-thumb-remove {
	position: absolute;
	top: -8px;
	right: -8px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--sm-bg-base);
	color: var(--sm-text-light);
	border: 1px solid var(--sm-border-strong);
	font-size: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

/* Drag & drop highlight */
.sm-step[data-step="upload"].sm-dragover .sm-upload-card-frame {
	box-shadow: 0 12px 32px rgba(244, 201, 93, 0.5), 0 0 0 4px var(--sm-gold) inset;
}

/* ============================================================ */
/* STEP 2: SZEMSZÍN                                             */
/* ============================================================ */
.sm-eye-layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 28px;
	align-items: start;
}

@media (max-width: 600px) {
	.sm-eye-layout { grid-template-columns: 1fr; gap: 20px; }
}

.sm-eye-photo {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: var(--sm-radius-md);
	background: var(--sm-bg-card);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--sm-border-strong);
}

@media (max-width: 600px) {
	.sm-eye-photo { max-width: 200px; margin: 0 auto; }
}

.sm-eye-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sm-eye-photo-empty {
	color: var(--sm-text-muted);
	font-size: 13px;
	text-align: center;
	padding: 20px;
}

.sm-eye-content {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.sm-eye-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.sm-eye-label-left {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--sm-text-light);
}

.sm-eye-status {
	font-size: 13px;
	color: var(--sm-text-muted);
	font-weight: 500;
}

.sm-eye-status.sm-selected { color: var(--sm-gold); }

.sm-eye-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
}

.sm-eye-swatch {
	aspect-ratio: 1 / 1;
	border-radius: var(--sm-radius-md);
	cursor: pointer;
	border: 3px solid transparent;
	transition: var(--sm-transition-fast);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.sm-eye-swatch:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
}

.sm-eye-swatch.sm-selected {
	border-color: var(--sm-gold);
	box-shadow: 0 0 0 4px rgba(244, 201, 93, 0.25);
	position: relative;
}

.sm-eye-swatch.sm-selected::after {
	content: '✓';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 24px;
	font-weight: 700;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}

.sm-eye-hint {
	font-size: 13px;
	color: var(--sm-text-muted);
	line-height: 1.5;
}

/* ============================================================ */
/* STEP 4: KOR + NEM                                            */
/* ============================================================ */
.sm-age-display {
	text-align: center;
	font-family: var(--sm-font-heading);
	margin-bottom: 16px;
}

.sm-age-value {
	font-size: 60px;
	font-weight: 700;
	color: var(--sm-gold);
	line-height: 1;
}

.sm-age-unit {
	font-size: 18px;
	color: var(--sm-text-secondary);
	margin-left: 8px;
}

.sm-age-slider {
	width: 100%;
	height: 8px;
	-webkit-appearance: none;
	appearance: none;
	background: var(--sm-bg-card);
	border-radius: var(--sm-radius-pill);
	outline: none;
}

.sm-age-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 28px;
	height: 28px;
	background: var(--sm-gold);
	border-radius: 50%;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(244, 201, 93, 0.4);
}

.sm-age-slider::-moz-range-thumb {
	width: 28px;
	height: 28px;
	background: var(--sm-gold);
	border-radius: 50%;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(244, 201, 93, 0.4);
}

.sm-age-range {
	display: flex;
	justify-content: space-between;
	margin-top: 8px;
	font-size: 12px;
	color: var(--sm-text-muted);
}

.sm-gender-toggle {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.sm-modal-overlay .sm-gender-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px 20px;
	background: var(--sm-bg-card);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	color: var(--sm-text-secondary);
	font-family: var(--sm-font-body);
	font-size: 15px;
	font-weight: 600;
	transition: var(--sm-transition);
	min-height: 56px;
	height: auto;
	width: auto;
}

.sm-modal-overlay .sm-gender-btn:hover {
	background: var(--sm-bg-card-hover);
	color: var(--sm-text-secondary);
}

.sm-modal-overlay .sm-gender-btn.sm-girl.sm-selected {
	background: linear-gradient(135deg, #C77DBA 0%, #FF6B9D 100%);
	border-color: transparent;
	color: white;
}

.sm-modal-overlay .sm-gender-btn.sm-boy.sm-selected {
	background: linear-gradient(135deg, #4A7CCF 0%, #5BA1F7 100%);
	border-color: transparent;
	color: white;
}

.sm-gender-icon { font-size: 20px; }

/* ============================================================ */
/* STEP 5: TÉMA                                                 */
/* ============================================================ */
.sm-theme-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px;
}

@media (min-width: 600px) {
	.sm-theme-grid { grid-template-columns: repeat(3, 1fr); }
}

.sm-theme-card {
	background: var(--sm-bg-card);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	cursor: pointer;
	transition: var(--sm-transition);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.sm-theme-card:hover {
	background: var(--sm-bg-card-hover);
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

.sm-theme-card.sm-selected {
	border-color: var(--sm-gold);
	box-shadow: 0 0 0 4px rgba(244, 201, 93, 0.2);
}

.sm-theme-card-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

/* Téma-specifikus gradient placeholderek */
.sm-theme-card-image[data-theme="dino"]     { background: linear-gradient(135deg, #2D5F3F 0%, #5BA174 50%, #8FCFA8 100%); }
.sm-theme-card-image[data-theme="princess"] { background: linear-gradient(135deg, #C77DBA 0%, #F4A6CD 50%, #FFD3E0 100%); }
.sm-theme-card-image[data-theme="space"]    { background: linear-gradient(135deg, #1A1F4E 0%, #4A2F88 50%, #7B4FBF 100%); }
.sm-theme-card-image[data-theme="forest"]   { background: linear-gradient(135deg, #3D5A3D 0%, #6B8E5A 50%, #A8C290 100%); }
.sm-theme-card-image[data-theme="pirate"]   { background: linear-gradient(135deg, #1A3A52 0%, #3D7099 50%, #6BAFD2 100%); }
.sm-theme-card-image[data-theme="hero"]     { background: linear-gradient(135deg, #C44545 0%, #E97B5C 50%, #F4C95D 100%); }

.sm-theme-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.sm-theme-card-image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.55) 100%);
	pointer-events: none;
}

.sm-theme-card-emoji {
	font-size: 56px;
	position: relative;
	z-index: 1;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
}

.sm-theme-card-check {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--sm-gold);
	color: var(--sm-bg-base);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	opacity: 0;
	transform: scale(0.5);
	transition: var(--sm-transition);
	z-index: 2;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.sm-theme-card.sm-selected .sm-theme-card-check {
	opacity: 1;
	transform: scale(1);
}

.sm-theme-card-body {
	padding: 12px 14px 14px;
	text-align: center;
}

.sm-theme-card-name {
	font-family: var(--sm-font-heading);
	font-size: 15px;
	font-weight: 600;
	color: var(--sm-text-light);
	margin-bottom: 3px;
}

.sm-theme-card-desc {
	font-size: 12px;
	color: var(--sm-text-muted);
	line-height: 1.35;
}

@media (max-width: 540px) {
	.sm-theme-card-emoji { font-size: 44px; }
	.sm-theme-card-name { font-size: 14px; }
	.sm-theme-card-desc { font-size: 11px; }
}

/* ============================================================ */
/* STEP 6: ÉRDEKLŐDÉS + TANULSÁG                                */
/* ============================================================ */
.sm-tag-input {
	background: var(--sm-bg-input);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	padding: 14px;
	min-height: 60px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.sm-tag-input:focus-within { border-color: var(--sm-gold); }

.sm-tag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	background: var(--sm-cta-gradient);
	border-radius: var(--sm-radius-pill);
	font-size: 13px;
	font-weight: 600;
	color: white;
}

.sm-tag-remove {
	cursor: pointer;
	opacity: 0.8;
	font-size: 11px;
}

.sm-tag-input-field {
	flex: 1;
	min-width: 120px;
	background: transparent;
	border: none;
	outline: none;
	font-size: 14px;
}

.sm-tag-suggestions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
	align-items: center;
}

.sm-suggestion-label {
	font-size: 12px;
	color: var(--sm-text-muted);
	margin-right: 4px;
}

.sm-tag-suggestion {
	font-size: 13px;
	padding: 6px 12px;
	background: var(--sm-bg-card);
	border: 1px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-pill);
	color: var(--sm-text-secondary);
	cursor: pointer;
	transition: var(--sm-transition-fast);
}

.sm-tag-suggestion:hover {
	background: var(--sm-bg-card-hover);
	color: var(--sm-text-light);
	border-color: var(--sm-gold);
}

.sm-moral-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

@media (min-width: 600px) {
	.sm-moral-grid { grid-template-columns: repeat(3, 1fr); }
}

.sm-modal-overlay .sm-moral-btn {
	padding: 12px 14px;
	background: var(--sm-bg-card);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	color: var(--sm-text-secondary);
	font-family: var(--sm-font-body);
	font-size: 14px;
	font-weight: 600;
	transition: var(--sm-transition-fast);
	text-align: center;
	min-height: 0;
	height: auto;
	width: auto;
}

.sm-modal-overlay .sm-moral-btn:hover {
	background: var(--sm-bg-card-hover);
	color: var(--sm-text-secondary);
}

.sm-modal-overlay .sm-moral-btn.sm-selected {
	background: linear-gradient(135deg, rgba(244, 201, 93, 0.15) 0%, rgba(244, 201, 93, 0.05) 100%);
	border-color: var(--sm-gold);
	color: var(--sm-text-light);
}

/* ============================================================ */
/* STEP 7: CSOMAG                                               */
/* ============================================================ */
.sm-package-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
}

@media (max-width: 720px) {
	.sm-package-layout { grid-template-columns: 1fr; gap: 20px; }
}

.sm-package-preview {
	aspect-ratio: 1 / 1;
	background: linear-gradient(135deg, var(--sm-bg-card) 0%, var(--sm-bg-card-hover) 100%);
	border: 1px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px;
	text-align: center;
	overflow: hidden;
	position: relative;
}

.sm-package-preview.sm-has-image {
	padding: 0;
}

.sm-package-preview.sm-has-image .sm-package-preview-emoji {
	width: 100%;
	height: 100%;
	margin: 0;
	font-size: 0;
	flex: 1;
}

.sm-package-preview.sm-has-image .sm-package-preview-label {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 14px 16px;
	background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.85) 100%);
	color: white;
	font-family: var(--sm-font-heading);
	font-weight: 600;
}

@media (max-width: 720px) {
	.sm-package-preview { aspect-ratio: 16 / 9; max-height: 200px; }
}

.sm-package-preview-emoji {
	font-size: 72px;
	margin-bottom: 16px;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
}

.sm-package-preview-label {
	font-family: var(--sm-font-heading);
	font-size: 16px;
	color: var(--sm-text-light);
	font-weight: 600;
}

.sm-package-preview-label::before { content: '✨ '; color: var(--sm-gold); }

.sm-package-options {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding-top: 12px;
}

.sm-package-option {
	background: var(--sm-bg-card);
	border: 2px solid var(--sm-border-strong);
	border-radius: var(--sm-radius-md);
	padding: 20px;
	cursor: pointer;
	transition: var(--sm-transition);
	position: relative;
}

.sm-package-option:hover { background: var(--sm-bg-card-hover); }

.sm-package-option.sm-recommended { border-color: var(--sm-gold); }

.sm-package-option.sm-selected {
	border-color: var(--sm-gold);
	background: linear-gradient(135deg, rgba(244, 201, 93, 0.1) 0%, rgba(244, 201, 93, 0.02) 100%);
	box-shadow: 0 0 0 4px rgba(244, 201, 93, 0.15);
}

.sm-package-best-value {
	position: absolute;
	top: -12px;
	right: 16px;
	background: var(--sm-cta-gradient);
	color: white;
	padding: 5px 14px;
	border-radius: var(--sm-radius-pill);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	box-shadow: 0 4px 14px rgba(184, 95, 232, 0.45);
	white-space: nowrap;
	z-index: 2;
}

.sm-package-option-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.sm-package-option-title {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sm-package-radio {
	width: 22px;
	height: 22px;
	border: 2px solid var(--sm-text-muted);
	border-radius: 50%;
	flex-shrink: 0;
	position: relative;
	transition: var(--sm-transition-fast);
}

.sm-package-option.sm-selected .sm-package-radio { border-color: var(--sm-gold); }

.sm-package-option.sm-selected .sm-package-radio::after {
	content: '';
	position: absolute;
	inset: 4px;
	background: var(--sm-gold);
	border-radius: 50%;
}

.sm-package-name {
	font-family: var(--sm-font-heading);
	font-size: 17px;
	font-weight: 600;
	color: var(--sm-text-light);
}

.sm-package-price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-family: var(--sm-font-heading);
}

.sm-price-old {
	font-size: 13px;
	color: var(--sm-text-muted);
	text-decoration: line-through;
	font-weight: 500;
}

.sm-price-current {
	font-size: 22px;
	font-weight: 700;
	color: var(--sm-text-light);
}

.sm-package-features {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.sm-package-features li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 13px;
	color: var(--sm-text-secondary);
	line-height: 1.4;
}

.sm-package-features li::before {
	content: '✓';
	color: #2DD4BF;
	font-weight: 700;
	flex-shrink: 0;
}

/* ============================================================ */
/* FOOTER                                                       */
/* ============================================================ */
.sm-modal-footer {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 20px 32px 28px;
	flex-shrink: 0;
	background: var(--sm-bg-modal);
}

@media (max-width: 540px) {
	.sm-modal-footer { padding: 16px 20px 20px; }
}

.sm-modal-overlay .sm-btn-back {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--sm-bg-card);
	color: var(--sm-text-secondary);
	font-size: 20px;
	transition: var(--sm-transition-fast);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	padding: 0;
}

.sm-modal-overlay .sm-btn-back:hover {
	background: var(--sm-bg-card-hover);
	color: var(--sm-text-light);
}

.sm-btn-back[hidden],
.sm-btn-back.sm-hidden { visibility: hidden; }
.sm-btn-cta.sm-hidden { display: none; }

.sm-modal-overlay .sm-btn-cta {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px 32px;
	background: var(--sm-cta-gradient);
	color: white;
	font-size: 17px;
	font-weight: 700;
	border: none;
	border-radius: var(--sm-radius-pill);
	transition: var(--sm-transition);
	box-shadow: 0 8px 24px rgba(184, 95, 232, 0.4);
	text-decoration: none;
	min-height: 56px;
	height: auto;
	width: auto;
}

.sm-modal-overlay .sm-btn-cta:hover:not(:disabled) {
	background: var(--sm-cta-gradient-hover);
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(184, 95, 232, 0.5);
	color: white;
}

.sm-modal-overlay .sm-btn-cta:disabled {
	background: var(--sm-bg-card);
	color: var(--sm-text-muted);
	box-shadow: none;
	cursor: not-allowed;
}

.sm-btn-cta-arrow { font-size: 18px; }

/* Loading állapot */
.sm-btn-cta.sm-loading {
	pointer-events: none;
	opacity: 0.8;
}

.sm-btn-cta.sm-loading .sm-btn-cta-arrow {
	display: inline-block;
	animation: smSpin 1s linear infinite;
}

@keyframes smSpin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* ============================================================ */
/* CART ITEM (cart oldalon a karakter neve)                     */
/* ============================================================ */
.sm-cart-item-character {
	color: var(--sm-primary);
	font-style: italic;
	margin-left: 4px;
}

/* ============================================================ */
/* SHORTCODE BUTTON DEFAULT                                     */
/* ============================================================ */
.sm-checkout-trigger.sm-checkout-trigger-default {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 32px;
	background: linear-gradient(135deg, #B85FE8 0%, #FF6B9D 100%);
	color: white;
	font-family: 'Quicksand', sans-serif;
	font-size: 16px;
	font-weight: 700;
	border: none;
	border-radius: 100px;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(184, 95, 232, 0.35);
	transition: all 0.3s ease;
}

.sm-checkout-trigger.sm-checkout-trigger-default:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(184, 95, 232, 0.5);
}

/* ============================================================
   SUMMARY + EMAIL LÉPÉS - alap stílusok (minden viewport)
   ============================================================ */
.sm-summary-layout {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 480px;
	margin: 0 auto;
	width: 100%;
}

.sm-summary-character {
	display: flex;
	align-items: center;
	gap: 14px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 18px;
	padding: 14px;
}

.sm-summary-character-image {
	width: 76px;
	height: 76px;
	border-radius: 14px;
	background-size: cover;
	background-position: center;
	background-color: rgba(255, 255, 255, 0.08);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.sm-summary-character-emoji {
	font-size: 36px;
}

.sm-summary-character-image.sm-has-image .sm-summary-character-emoji {
	display: none;
}

.sm-summary-character-info {
	flex: 1;
	min-width: 0;
}

.sm-summary-character-name {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 20px;
	font-weight: 600;
	color: #fff;
	line-height: 1.2;
	margin-bottom: 3px;
}

.sm-summary-character-meta {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 5px;
}

.sm-summary-character-theme {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.4;
}

/* Demó videó blokk */
.sm-summary-video {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.sm-summary-video-label {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.75);
	text-align: center;
	font-style: italic;
}

.sm-summary-video-wrap {
	border-radius: 14px;
	overflow: hidden;
	background: #000;
}

.sm-summary-video-wrap video {
	width: 100%;
	display: block;
	max-height: 260px;
}

/* Trust signals - kompakt */
.sm-summary-trust {
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: rgba(255, 255, 255, 0.04);
	border-radius: 14px;
	padding: 12px 16px;
}

.sm-summary-trust-item {
	display: flex;
	align-items: center;
	gap: 9px;
	color: rgba(255, 255, 255, 0.95);
	font-size: 13px;
	font-weight: 500;
}

.sm-summary-trust-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #5BA174;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
}

/* Email lépés */
.sm-email-layout {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 420px;
	margin: 0 auto;
	width: 100%;
}

.sm-email-label {
	font-size: 17px;
	font-weight: 600;
	color: #fff;
	font-family: 'Fraunces', Georgia, serif;
	text-align: center;
}

.sm-email-layout input[type="email"] {
	width: 100%;
	padding: 15px 16px;
	border-radius: 12px;
	border: 2px solid rgba(255, 255, 255, 0.15);
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-size: 16px;
	text-align: center;
}

.sm-email-layout input[type="email"]:focus {
	border-color: #FF7E67;
	outline: none;
	background: rgba(255, 255, 255, 0.12);
}

.sm-email-layout input[type="email"]::placeholder {
	color: rgba(255, 255, 255, 0.4);
}

.sm-email-error {
	font-size: 13px;
	color: #FF7E67;
	font-weight: 500;
	text-align: center;
}

.sm-email-hint {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
	text-align: center;
	line-height: 1.4;
}

/* ============================================================
   MOBIL UX REWRITE — v1.3.0
   ============================================================
   Cél: minden lépés EGY képernyőre fér, SEMMI görgetés.
   Módszertan: a modal magassága JS-ből beállított valódi
   viewport magasság (--smc-vh), az overlay/modal/content
   egyike sem görget. A footer fixen az aljához tapad.
   PC (>768px) teljesen változatlan marad.
   ============================================================ */
@media (max-width: 768px) {

	/* Body teljes lefagyasztása amíg a modal nyitva van */
	body.smc-modal-open {
		position: fixed;
		width: 100%;
		height: 100%;
		overflow: hidden;
		touch-action: none;
	}

	/* Az overlay teljes képernyő, NEM görget */
	.sm-modal-overlay {
		padding: 0;
		margin: 0;
		align-items: stretch;
		justify-content: stretch;
		overflow: hidden;
		overscroll-behavior: none;
	}

	/* A modal: a JS által beállított valódi magasságot kapja.
	   Fallback: 100dvh → 100vh ha a JS valamiért nem futott le.
	   A modal maga NEM görget. */
	.sm-modal {
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		height: var(--smc-vh, 100dvh);
		max-width: 100vw;
		max-height: var(--smc-vh, 100dvh);
		min-height: 0;
		border-radius: 0;
		margin: 0;
		display: flex;
		flex-direction: column;
		overflow: hidden;
		overscroll-behavior: none;
	}

	/* ---- HEADER: vékony, fix ---- */
	.sm-modal-header {
		flex-shrink: 0;
		padding: 14px 16px 10px;
		position: relative;
		z-index: 5;
	}

	.sm-modal-title {
		font-size: 19px;
		padding: 0 44px;
		text-align: center;
		line-height: 1.2;
	}

	/* Progress bar vékonyabb */
	.sm-progress {
		height: 3px;
	}

	/* X gomb: mindig látható, nagy touch target */
	.sm-modal-overlay .sm-modal-close {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 38px;
		height: 38px;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.16);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
		color: #fff;
		border: 1px solid rgba(255, 255, 255, 0.28);
		font-size: 19px;
		line-height: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		z-index: 10;
		padding: 0;
	}
	.sm-modal-overlay .sm-modal-close:active {
		background: rgba(255, 255, 255, 0.3);
	}

	/* ---- MASCOT: kompakt, fix a header alatt ---- */
	.sm-mascot-row {
		flex-shrink: 0;
		margin: 0;
		padding: 0 16px 8px;
		gap: 8px;
		align-items: flex-start;
	}
	.sm-mascot-icon {
		width: 34px;
		height: 34px;
		font-size: 16px;
		flex-shrink: 0;
	}
	.sm-mascot-bubble {
		font-size: 13px;
		padding: 9px 12px;
		line-height: 1.35;
		border-radius: 12px;
	}
	.sm-mascot-bubble::before {
		top: 12px;
	}

	/* ---- CONTENT: a maradék helyet kitölti, a step-eket középre rendezi.
	   FONTOS: overflow: hidden — a content NEM görget. Ha egy step
	   nem fér ki, azt komponens-szinten kell kompaktabbra venni. ---- */
	.sm-modal-content {
		flex: 1 1 auto;
		overflow: hidden;
		padding: 8px 16px 12px;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	/* Minden step kitölti a content-et és vertikálisan középre igazít.
	   A step önmagában görgethet VÉGSŐ esetben (ha egy nagyon kicsi
	   eszközön mégsem fér ki minden) — de mivel a footer a MODAL
	   flex-gyereke (nem a step-é), a footer akkor is fixen marad alul.
	   A cél az, hogy a kompakt méretezés miatt ez sose legyen szükséges. */
	.sm-step {
		flex: 1 1 auto;
		display: none;
		flex-direction: column;
		justify-content: center;
		gap: 12px;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	.sm-step.sm-step-active {
		display: flex;
	}

	/* ---- FOOTER: fixen az aljához tapad ---- */
	.sm-modal-footer {
		flex-shrink: 0;
		padding: 10px 16px;
		padding-bottom: calc(10px + env(safe-area-inset-bottom));
		display: flex;
		gap: 10px;
		align-items: center;
		box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.3);
		position: relative;
		z-index: 5;
	}

	.sm-modal-footer .sm-btn-cta,
	.sm-modal-footer button[type="submit"],
	.sm-btn-cta {
		flex: 1;
		min-height: 54px;
		font-size: 16px;
		border-radius: 100px;
	}
	.sm-modal-footer .sm-btn-back {
		flex: 0 0 auto;
		width: 54px;
		min-height: 54px;
		border-radius: 16px;
	}

	/* iOS auto-zoom megakadályozás: minden input min 16px */
	.sm-modal-overlay input[type="text"],
	.sm-modal-overlay input[type="email"],
	.sm-modal-overlay input[type="number"],
	.sm-modal-overlay input[type="tel"] {
		font-size: 16px !important;
	}

	/* ============================================================
	   STEP 1: FOTÓ FELTÖLTÉS — kompakt
	   ============================================================ */
	.sm-upload-magic {
		gap: 8px;
		align-items: center;
	}
	.sm-upload-card {
		padding: 0;
	}
	/* A két fotó kisebb */
	.sm-upload-card-frame {
		width: 116px !important;
		height: 116px !important;
	}
	.sm-upload-card-label {
		font-size: 12px;
		margin-top: 6px;
	}
	/* A varázs-nyíl kisebb */
	.sm-upload-arrow {
		font-size: 20px;
	}
	/* Privacy box: 1 soros, kompakt */
	.sm-privacy-info {
		font-size: 11px;
		padding: 9px 12px;
		gap: 8px;
		line-height: 1.35;
	}
	.sm-privacy-info .sm-privacy-icon {
		font-size: 16px;
	}

	/* ============================================================
	   STEP 2: SZEMSZÍN — kompakt
	   ============================================================ */
	.sm-eye-layout {
		gap: 14px;
	}
	.sm-eye-photo {
		width: 120px !important;
		height: 120px !important;
	}
	.sm-eye-grid {
		gap: 10px;
	}
	.sm-eye-swatch {
		width: 52px;
		height: 52px;
	}

	/* ============================================================
	   STEP 3: NÉV — kompakt
	   ============================================================ */
	.sm-form-row.sm-cols-2 {
		gap: 10px;
	}
	.sm-name-preview {
		font-size: 15px;
		padding: 10px;
	}

	/* ============================================================
	   STEP 4: KOR + NEM — kompakt
	   ============================================================ */
	.sm-gender-toggle {
		gap: 10px;
	}
	.sm-gender-btn {
		font-size: 15px;
		padding: 13px 12px;
		min-height: 52px;
	}
	.sm-age-value {
		font-size: 46px;
	}
	.sm-age-range {
		font-size: 14px;
	}
	/* Slider thumb nagyobb */
	.sm-modal-overlay input[type="range"]::-webkit-slider-thumb {
		width: 28px;
		height: 28px;
	}
	.sm-modal-overlay input[type="range"]::-moz-range-thumb {
		width: 28px;
		height: 28px;
	}

	/* ============================================================
	   STEP 5: TÉMA — kontínuus carousel (NEM snap)
	   ============================================================ */
	.sm-theme-grid {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 12px;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: none;
		padding-bottom: 6px;
		padding-right: 16px;
		margin-right: -16px;
		scrollbar-width: thin;
	}
	.sm-theme-grid::-webkit-scrollbar {
		height: 4px;
	}
	.sm-theme-grid::-webkit-scrollbar-thumb {
		background: rgba(255, 255, 255, 0.2);
		border-radius: 4px;
	}
	.sm-theme-card {
		flex: 0 0 auto;
		width: 70vw;
		max-width: 260px;
		min-width: 200px;
		scroll-snap-align: none;
	}
	.sm-theme-card-image {
		height: 150px;
	}

	/* ============================================================
	   STEP 6: ÉRDEKLŐDÉS — kompakt
	   ============================================================ */
	.sm-form-group {
		margin-bottom: 12px;
	}
	.sm-form-label {
		font-size: 14px;
		margin-bottom: 8px;
	}
	.sm-tag-suggestions {
		gap: 6px;
	}
	.sm-tag-suggestion {
		font-size: 12px;
		padding: 7px 11px;
	}
	.sm-tag-input {
		gap: 6px;
	}
	/* Tanulság gombok: 2 oszlopos rács */
	.sm-moral-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}
	.sm-moral-btn {
		font-size: 13px;
		padding: 10px 8px;
		min-height: 46px;
	}

	/* ============================================================
	   STEP 7: SUMMARY — kompakt
	   ============================================================ */
	.sm-summary-layout {
		gap: 12px;
	}
	.sm-summary-character {
		padding: 12px;
		gap: 12px;
	}
	.sm-summary-character-image {
		width: 66px;
		height: 66px;
	}
	.sm-summary-character-name {
		font-size: 18px;
	}
	.sm-summary-video-wrap video {
		max-height: 200px;
	}
	.sm-summary-trust {
		padding: 10px 14px;
		gap: 7px;
	}
	.sm-summary-trust-item {
		font-size: 12px;
	}

	/* ============================================================
	   STEP 8: EMAIL — kompakt
	   ============================================================ */
	.sm-email-label {
		font-size: 16px;
	}

	/* ============================================================
	   STEP 9: CSOMAG — kompakt
	   ============================================================ */
	.sm-package-preview {
		height: 130px;
	}
	.sm-package-preview-emoji {
		font-size: 48px;
	}
	.sm-package-option {
		padding: 12px 14px;
	}
	.sm-package-label {
		font-size: 13px;
	}
}

/* Kisebb mobilok (<380px) — még szorosabb */
@media (max-width: 380px) {
	.sm-upload-card-frame {
		width: 100px !important;
		height: 100px !important;
	}
	.sm-eye-photo {
		width: 100px !important;
		height: 100px !important;
	}
	.sm-summary-video-wrap video {
		max-height: 160px;
	}
	.sm-age-value {
		font-size: 40px;
	}
}
