/**
 * STK Rezervace - Wizard styly
 * Dle design-system01.md: primární červená #b9331e/#bf2e1a, olivová
 * #9fa615, fonty Rubik (nadpisy/UI) a Karla (běžný text), zaoblené
 * rohy 10-16px, tučná písma, žádné dekorativní ozdoby navíc.
 *
 * Mobile-first: cílová skupina (muži 20-50, STK = věcná služba)
 * očekává rychlé, jasné CTA bez přehnaně velkých tlačítek na mobilu
 * (dle zadání klienta - tlačítka mají být přiměřená, ne "aplikačně" obří).
 */

:root {
	--fxrs-red: #b9331e;
	--fxrs-red-alt: #bf2e1a;
	--fxrs-olive: #9fa615;
	--fxrs-olive-alt: #9caa18;
	--fxrs-white: #ffffff;
	--fxrs-text: #1f1f1f;
	--fxrs-muted: #6b6b6b;
	--fxrs-bg-panel: #f5efef;
	--fxrs-bg-section: #f5f5f5;
	--fxrs-border: #dcdcdc;
	--fxrs-radius-sm: 8px;
	--fxrs-radius-md: 12px;
	--fxrs-radius-lg: 15px;
	--fxrs-font-heading: 'Rubik', sans-serif;
	--fxrs-font-body: 'Karla', sans-serif;
	--fxrs-shadow-underline: 0px 10px 0px -6px var(--fxrs-red);
}

.fxrs-wizard {
	max-width: 1100px;
	width: 100%;
	margin: 0 auto;
	font-family: var(--fxrs-font-body);
	color: var(--fxrs-text);
	box-sizing: border-box;
}
.fxrs-wizard * {
	box-sizing: border-box;
}

/* --- Testovací banner (bod 5 zadání - nepřehlédnutelné) --- */
.fxrs-test-banner {
	background: #d32f2f;
	color: #fff;
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
	text-align: center;
	padding: 10px 14px;
	border-radius: var(--fxrs-radius-sm);
	margin-bottom: 16px;
	font-size: 13px;
	letter-spacing: 0.02em;
}

.fxrs-noscript-warning {
	background: #fff3f0;
	border: 1px solid var(--fxrs-red);
	border-radius: var(--fxrs-radius-sm);
	padding: 12px;
	color: var(--fxrs-red);
	font-weight: 700;
}

/* --- Progress dots --- */
.fxrs-progress {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-bottom: 20px;
}
.fxrs-progress-step {
	width: 40px;
	height: 40px;
	background: var(--fxrs-bg-section);
	color: var(--fxrs-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
	font-size: 18px;
	margin-top: -10px;
	border-radius: 50%;
	border: 1px solid var(--fxrs-border);
}
.fxrs-progress-step.is-active {
	background: var(--fxrs-red);
	color: var(--fxrs-white);
	border-color: var(--fxrs-red);
}
.fxrs-progress-step.is-done {
	background: var(--fxrs-olive);
	color: var(--fxrs-white);
	border-color: var(--fxrs-olive);
}

/* --- Panel kroku --- */
.fxrs-step-panel {
	max-width: 640px;
	margin: 0 auto;
	background: var(--fxrs-bg-panel);
	border-radius: var(--fxrs-radius-lg);
	padding: 20px;
	box-shadow: var(--fxrs-shadow-underline);
}
.fxrs-step-panel-wide {
	max-width: 1100px;
}
.fxrs-step-panel h2 {
	font-family: var(--fxrs-font-heading);
	color: var(--fxrs-red);
	font-size: 20px;
	font-weight: 800;
	margin: 0 0 16px;
}
.fxrs-loading {
	text-align: center;
	padding: 40px 0;
	color: var(--fxrs-muted);
	font-family: var(--fxrs-font-heading);
	font-weight: 600;
}

/* --- Krok 1: typ vozu / úkon --- */
.fxrs-choice-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-bottom: 18px;
}
.fxrs-choice-card {
	background: var(--fxrs-white);
	border: 1px solid var(--fxrs-border);
	border-radius: var(--fxrs-radius-md);
	padding: 14px 10px;
	text-align: center;
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.fxrs-choice-card:hover {
	border-color: var(--fxrs-red-alt);
}
.fxrs-choice-card.is-selected {
	border: 2px solid var(--fxrs-red-alt);
	background: #fff6f4;
}
.fxrs-task-card {
	background: var(--fxrs-white);
	border: 2px solid var(--fxrs-olive);
	border-radius: var(--fxrs-radius-md);
	padding: 14px;
	margin-bottom: 18px;
}
.fxrs-task-card strong {
	font-family: var(--fxrs-font-heading);
	color: var(--fxrs-olive-alt);
	display: block;
	margin-bottom: 4px;
	font-size: 15px;
}
.fxrs-task-card p {
	margin: 0;
	font-size: 13px;
	color: var(--fxrs-muted);
}

/* --- Krok 2: kalendář a sloty --- */
.fxrs-calendar-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
}
.fxrs-calendar-nav button {
	background: none;
	border: none;
	color: var(--fxrs-red);
	font-size: 18px;
	cursor: pointer;
	padding: 4px 10px;
}
.fxrs-calendar-pair {
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.fxrs-calendar-slot {
	flex: 1 1 320px;
	min-width: 280px;
	min-height: 320px; /* Stabilizace výšky (bod b. z konzultace) - loading i hotový grid mají podobnou výšku, žádné poskakování stránky. */
}
.fxrs-calendar-month-title {
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
	color: var(--fxrs-red);
	font-size: 14px;
	margin-bottom: 8px;
	text-align: center;
	text-transform: capitalize;
}
.fxrs-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
	margin-bottom: 18px;
}
.fxrs-calendar-dow {
	text-align: center;
	font-size: 11px;
	color: var(--fxrs-muted);
	font-weight: 700;
	padding-bottom: 4px;
}
.fxrs-calendar-day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--fxrs-radius-sm);
	font-size: 13px;
	font-family: var(--fxrs-font-heading);
	background: var(--fxrs-white);
	border: 1px solid var(--fxrs-border);
	cursor: pointer;
}
.fxrs-calendar-day.is-empty {
	background: transparent;
	border: none;
	cursor: default;
}
.fxrs-calendar-day.is-closed {
	background: var(--fxrs-bg-section);
	color: #b3b3b3;
	cursor: not-allowed;
	border-color: var(--fxrs-bg-section);
}
.fxrs-calendar-day.is-selected {
	background: var(--fxrs-red-alt);
	color: var(--fxrs-white);
	border-color: var(--fxrs-red-alt);
}

.fxrs-slots-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	margin-bottom: 18px;
}
#fxrs-slots-holder {
	min-height: 120px; /* Stabilizace výšky (bod b. z konzultace). */
}
.fxrs-slot-btn {
	background: var(--fxrs-white);
	border: 1px solid var(--fxrs-olive);
	color: var(--fxrs-text);
	border-radius: var(--fxrs-radius-sm);
	padding: 9px 6px;
	font-family: var(--fxrs-font-heading);
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
}
.fxrs-slot-btn.is-selected {
	background: var(--fxrs-red-alt);
	border-color: var(--fxrs-red-alt);
	color: var(--fxrs-white);
}
.fxrs-slot-btn.is-taken {
	background: var(--fxrs-bg-section);
	border-color: var(--fxrs-border);
	color: #a8a8a8;
	cursor: not-allowed;
	text-decoration: line-through;
}
.fxrs-slot-btn:disabled {
	pointer-events: none;
}

.fxrs-selection-summary {
	background: var(--fxrs-white);
	border: 1px solid var(--fxrs-olive);
	border-radius: var(--fxrs-radius-sm);
	padding: 10px 14px;
	margin-bottom: 16px;
}
.fxrs-selection-summary-label {
	font-size: 11px;
	color: var(--fxrs-muted);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin-bottom: 3px;
}
.fxrs-selection-summary-value {
	font-size: 14px;
	font-weight: 700;
	color: var(--fxrs-text);
}

.fxrs-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.fxrs-field-row .fxrs-field {
	margin-bottom: 14px;
}
@media (max-width: 544px) {
	.fxrs-field-row {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

/* --- Formulářová pole (Krok 3) - dle design systému: lehce šedé pozadí, tenký rámeček --- */
.fxrs-field {
	margin-bottom: 14px;
}
.fxrs-field label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 4px;
	color: var(--fxrs-text);
}
.fxrs-field input[type="text"],
.fxrs-field input[type="email"],
.fxrs-field input[type="tel"],
.fxrs-field select,
.fxrs-field textarea {
	width: 100%;
	background: var(--fxrs-white);
	border: 1px solid var(--fxrs-border);
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: var(--fxrs-font-body);
}
.fxrs-field input:focus,
.fxrs-field select:focus,
.fxrs-field textarea:focus {
	outline: none;
	border-color: var(--fxrs-red-alt);
}
.fxrs-field .fxrs-error {
	color: var(--fxrs-red-alt);
	font-size: 12px;
	margin-top: 4px;
	font-weight: 600;
}
.fxrs-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	background: var(--fxrs-white);
	border-radius: var(--fxrs-radius-sm);
	padding: 12px;
	margin-bottom: 18px;
	font-size: 14px;
	line-height: 140%;
}
.fxrs-consent-error {
	border: 1px solid var(--fxrs-red-alt);
}
.fxrs-consent-checkbox {
	width: 33px;
	height: 33px;
	margin: 5px 3px 0 3px;
	flex-shrink: 0;
	cursor: pointer;
}
.fxrs-consent a {
	color: var(--fxrs-red-alt);
	font-weight: 700;
	text-decoration: underline;
}
.fxrs-spz-input {
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.05em;
}

/* --- Rekapitulace (Krok 4) --- */
.fxrs-recap-table {
	width: 100%;
	background: var(--fxrs-white);
	border-radius: var(--fxrs-radius-md);
	overflow: hidden;
	margin-bottom: 18px;
	font-size: 13px;
}
.fxrs-recap-table tr td {
	padding: 8px 12px;
	border-bottom: 1px solid var(--fxrs-bg-section);
}
.fxrs-recap-table tr td:first-child {
	color: var(--fxrs-muted);
	font-weight: 600;
	width: 40%;
}
.fxrs-recap-table tr:last-child td {
	border-bottom: none;
}

/* --- Tlačítka - PŘIMĚŘENÁ velikost i na mobilu (ne přehnaně velká) --- */
.fxrs-actions {
	display: flex;
	gap: 10px;
	justify-content: space-between;
}
.fxrs-btn {
	font-family: var(--fxrs-font-heading);
	font-weight: 700;
	font-size: 14px;
	border-radius: var(--fxrs-radius-md);
	padding: 11px 18px;
	border: 0 none;
	cursor: pointer;
	text-align: center;
	flex: 1;
	max-width: 240px;
}
.fxrs-btn-primary {
	background: var(--fxrs-red-alt);
	color: var(--fxrs-white);
}
.fxrs-btn-primary:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.fxrs-btn-secondary {
	background: var(--fxrs-white);
	color: var(--fxrs-text);
	border: 1px solid var(--fxrs-border);
	flex: 0 0 auto;
	max-width: 120px;
}

/* --- Stavové zprávy --- */
.fxrs-alert {
	border-radius: var(--fxrs-radius-sm);
	padding: 10px 12px;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 14px;
}
.fxrs-alert-error {
	background: #fdeceb;
	color: var(--fxrs-red-alt);
	border: 1px solid var(--fxrs-red-alt);
}
.fxrs-alert-success {
	background: #f3f6e3;
	color: var(--fxrs-olive-alt);
	border: 1px solid var(--fxrs-olive);
}

/* --- Success screen (Krok 5) --- */
.fxrs-success-icon {
	text-align: center;
	font-size: 40px;
	margin-bottom: 8px;
}
.fxrs-success h2 {
	text-align: center;
}
.fxrs-success p {
	text-align: center;
	font-size: 14px;
}

/* --- Honeypot: skryté z UI, ale technicky přítomné v DOM --- */
.fxrs-hp-wrap {
	position: absolute;
	left: -9999px;
	top: -9999px;
	height: 0;
	overflow: hidden;
}

/* --- Responzivita: breakpointy sladěné s webem (design-system01.md bod 9) --- */
@media (max-width: 544px) {
	.fxrs-choice-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.fxrs-slots-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.fxrs-actions {
		flex-direction: column-reverse;
	}
	.fxrs-btn,
	.fxrs-btn-secondary {
		max-width: none;
		width: 100%;
	}
}

@media (min-width: 768px) {
	.fxrs-slots-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
