/*
 * Megosztott callback-modal — a mezők/rádiók/hiba stílusait a globálisan betöltött
 * callback.css adja (osztálynevek megegyeznek); ez a fájl csak a modal-keretet
 * (overlay, dialógus, siker-nézet) és a body-scroll-zárolást adja hozzá.
 */

body.callback-modal-open { overflow: hidden; }

.callback-modal[hidden] { display: none; }

.callback-modal {
	position: fixed;
	inset: 0;
	z-index: 1100; /* a kvíz-popup (.aq-modal, z1000) FÖLÉ — a kvíz eredménygombjai ezt a modált nyitják (kliens 2026-10-02) */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.callback-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 22, 0.55);
}

.callback-modal-dialog {
	position: relative;
	width: 100%;
	max-width: 520px;
	max-height: min(90vh, 820px);
	overflow-y: auto;
	background: var(--paper);
	border-radius: var(--radius);
	/* Nagyobb alsó térköz, hogy a submit gomb ne érjen a doboz aljához. */
	padding: clamp(1.75rem, 5vw, 2.75rem) clamp(1.75rem, 5vw, 2.75rem) clamp(2.5rem, 7vw, 3.25rem);
}

.callback-modal-close {
	position: absolute;
	top: 0.9rem;
	right: 0.9rem;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--mist);
	color: var(--ink-soft);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}
.callback-modal-close:hover { color: var(--ink); }

.callback-modal-title {
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 4vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1.15;
	padding-right: 2.5rem;
}
.callback-modal-promise {
	margin-top: 0.6rem;
	color: var(--ink-soft);
	white-space: pre-line; /* kliens 2026-09-28: a törzsszöveg \n-jei külön sorként jelennek meg */
}
.callback-modal-form-view .callback-form { margin-top: 1.5rem; }

.callback-modal-success-view {
	text-align: center;
	padding-block: clamp(0.5rem, 2vw, 1.5rem);
}
.callback-modal-success-title {
	margin-top: 0; /* a pipa (.callback-check) margin-bottomja már adja a térközt — különben kétszeres */
	font-size: clamp(1.7rem, 4vw, 2.2rem);
	font-weight: 800;
}
.callback-modal-success-text {
	margin-top: 0.6rem;
	color: var(--ink-soft);
	white-space: pre-line;
}
.callback-modal-bookings {
	display: inline-block;
	margin-top: 1.25rem;
}
/* A class-szelektor display-je azonos fajlagosságú, mint a böngésző [hidden]
   alapstílusa, és a forrás-sorrendben később jön — enélkül a gomb a hidden
   attribútum ellenére is látszana, amikor nincs bookings_url. */
.callback-modal-bookings[hidden] {
	display: none;
}
.callback-modal-back {
	display: block;
	margin: 1rem auto 0;
	background: none;
	border: 0;
	color: var(--accent-deep);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
	padding: 0.6rem;
}

/* Alacsony laptop-kijelzőn (~768px) az üzenet-mezős űrlap belső görgetés nélkül férjen el. */
@media (min-width: 601px) and (max-height: 820px) {
	.callback-modal-dialog { max-height: 94vh; padding-block: 1.75rem 2rem; }
	.callback-modal-form-view .callback-form { margin-top: 1rem; gap: 0.85rem; }
	.callback-field textarea { min-height: 5rem; }
}

/* Mobilon lekerekített lap kis kerettel (nem szögletes, sötét csíkokkal lebegő doboz); ha nem fér ki, belül görget. */
@media (max-width: 600px) {
	.callback-modal { padding: 0.75rem; }
	.callback-modal-dialog { padding: 1.5rem 1.25rem 2.25rem; max-height: calc(100dvh - 1.5rem); }
}

/* Kliens (2026-09-18): E-MAIL-ONLY mód (kvíz végi „Egyedi állapotfelmérés") — csak e-mail + adatkezelési
   pipa látszik; a név/telefon/csatorna/hírlevél (.callback-extra) rejtve (a JS a required-et is leveszi). */
.callback-modal.is-email-only .callback-extra { display: none; }
