/* Event Rezervační Systém – veřejný formulář */
.ers-form-wrap { --ers-accent:#2563eb; --ers-accent-dark:#1d4ed8; --ers-err:#dc2626; --ers-ok:#16a34a; --ers-border:#d8dde6; --ers-bg:#ffffff; --ers-muted:#64748b; }
.ers-form { max-width:640px; margin:0 auto; background:var(--ers-bg); border:1px solid var(--ers-border); border-radius:14px; padding:26px 24px; box-sizing:border-box; font-size:16px; line-height:1.5; color:#1e293b; }
.ers-form * { box-sizing:border-box; }
.ers-form.ers-error { color:var(--ers-err); border-color:#f3c6c6; background:#fdf2f2; }

.ers-intro { margin-bottom:18px; color:#334155; }
.ers-event-meta { border-bottom:1px solid var(--ers-border); padding-bottom:16px; margin-bottom:18px; }
.ers-event-title { margin:0 0 10px; font-size:1.45em; line-height:1.2; }
.ers-event-facts { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 22px; }
.ers-fact { display:flex; flex-direction:column; }
.ers-fact-label { font-size:.72em; text-transform:uppercase; letter-spacing:.04em; color:var(--ers-muted); }
.ers-fact-value { font-weight:600; }

.ers-fields { display:flex; flex-wrap:wrap; gap:14px; }
.ers-field { display:flex; flex-direction:column; flex:1 1 100%; }
.ers-field-half { flex:1 1 calc(50% - 7px); }
.ers-field > label { font-weight:600; margin-bottom:6px; font-size:.95em; }
.ers-req { color:var(--ers-err); }

.ers-field input[type="text"],
.ers-field input[type="email"],
.ers-field input[type="tel"],
.ers-field input[type="number"],
.ers-field input[type="date"],
.ers-field textarea,
.ers-field select {
	width:100%; padding:12px 14px; border:1px solid var(--ers-border); border-radius:10px;
	font-size:16px; font-family:inherit; background:#fff; color:#1e293b; transition:border-color .15s, box-shadow .15s;
}
.ers-field textarea { resize:vertical; min-height:84px; }
.ers-field input:focus,
.ers-field textarea:focus,
.ers-field select:focus { outline:none; border-color:var(--ers-accent); box-shadow:0 0 0 3px rgba(37,99,235,.15); }

.ers-field-check label { display:flex; align-items:flex-start; gap:10px; font-weight:500; cursor:pointer; }
.ers-field-check input[type="checkbox"] { width:20px; height:20px; margin-top:1px; flex:0 0 auto; accent-color:var(--ers-accent); }
.ers-field-desc { margin:6px 0 0 30px; font-size:.85em; line-height:1.5; color:var(--ers-muted); }
.ers-field-desc a { color:var(--ers-accent); }

.ers-has-error input, .ers-has-error textarea, .ers-has-error select { border-color:var(--ers-err); }
.ers-error-msg { color:var(--ers-err); font-size:.82em; margin-top:5px; min-height:0; }
.ers-field-hint { color:var(--ers-muted); font-size:.82em; margin:5px 0 0; }
.ers-has-error .ers-error-msg { margin-top:5px; }

.ers-form-footer { margin-top:22px; }
.ers-submit-btn {
	position:relative; width:100%; padding:15px 20px; border:none; border-radius:10px;
	background:var(--ers-accent); color:#fff; font-size:1.05em; font-weight:700; cursor:pointer;
	transition:background .15s, transform .05s; font-family:inherit;
}
.ers-submit-btn:hover { background:var(--ers-accent-dark); }
.ers-submit-btn:active { transform:translateY(1px); }
.ers-submit-btn:disabled { opacity:.7; cursor:default; }
.ers-submit-btn.is-loading .ers-btn-label { visibility:hidden; }
.ers-btn-spinner { display:none; position:absolute; left:50%; top:50%; width:20px; height:20px; margin:-10px 0 0 -10px; border:3px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:ers-spin .7s linear infinite; }
.ers-submit-btn.is-loading .ers-btn-spinner { display:block; }
@keyframes ers-spin { to { transform:rotate(360deg); } }

.ers-form-message { margin-top:14px; padding:0; font-size:.95em; }
.ers-form-message.ers-msg-error { color:var(--ers-err); background:#fdf2f2; border:1px solid #f3c6c6; border-radius:8px; padding:10px 12px; }

.ers-notice { padding:16px; border-radius:10px; font-weight:600; text-align:center; }
.ers-soldout { background:#fef3f2; color:var(--ers-err); border:1px solid #f3c6c6; }

.ers-success { text-align:center; padding:14px 6px; }
.ers-success-icon { width:64px; height:64px; line-height:64px; margin:0 auto 14px; border-radius:50%; background:var(--ers-ok); color:#fff; font-size:34px; }
.ers-success-text { font-size:1.1em; color:#15803d; }
.ers-success-code { margin-top:10px; color:var(--ers-muted); }
.ers-success-tickets { margin-top:22px; }
.ers-success-emailnotice { margin-top:20px; padding:14px 16px; background:#f8f5ef; border:1px solid #ece5d8; border-radius:10px; font-size:.88em; color:#6b6255; line-height:1.6; text-align:left; }
.ers-success-tickets-lead { margin:0 0 12px; font-size:.92em; color:var(--ers-muted); }
.ers-success-tickets-list { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.ers-success-ticket-btn {
	display:inline-flex; align-items:center; gap:8px;
	padding:11px 20px; border-radius:980px;
	background:var(--ers-accent,#2563eb); color:#fff;
	font-weight:600; font-size:.95em; text-decoration:none;
	transition:filter .15s, transform .05s;
}
.ers-success-ticket-btn:hover { filter:brightness(1.08); }
.ers-success-ticket-btn:active { transform:scale(.98); }

@media (max-width:520px) {
	.ers-form { padding:20px 16px; border-radius:10px; }
	.ers-field-half { flex:1 1 100%; }
}

/* Výběr termínu (víc časů / dní) */
.ers-session-days { display:flex; flex-direction:column; gap:16px; }
.ers-session-day-title { font-weight:700; margin-bottom:8px; color:var(--ers-fg,#111827); text-transform:capitalize; }
.ers-session-options { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.ers-session-opt { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--ers-border,#e5e7eb); border-radius:10px; cursor:pointer; transition:border-color .15s, background .15s; }
.ers-session-opt:hover { border-color:var(--ers-accent,#2563eb); background:#f8fafc; }
.ers-session-opt input { margin:0; flex:0 0 auto; }
.ers-session-opt-main { display:flex; flex-direction:column; line-height:1.25; flex:1; }
.ers-session-time { font-weight:600; }
.ers-session-lbl { font-size:.85em; color:var(--ers-muted,#6b7280); }
.ers-session-cap { font-size:.8em; color:var(--ers-muted,#6b7280); white-space:nowrap; }
.ers-session-opt:has(input:checked) { border-color:var(--ers-accent,#2563eb); background:#eff6ff; box-shadow:0 0 0 1px var(--ers-accent,#2563eb) inset; }
.ers-session-opt.is-full { opacity:.55; cursor:not-allowed; background:#f9fafb; }
.ers-session-opt.is-full .ers-session-cap { color:var(--ers-err,#dc2626); font-weight:600; }
.ers-field-session .ers-error-msg { margin-top:6px; }
.ers-form-message.ers-msg-ok { color:#15803d; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:8px; padding:10px 12px; }
