/* Audienced Booking — frontend stili (Audienced barvna shema) */
.ab-booking {
	--ab-primary: #742FFF;
	--ab-secondary: #FF4F81;
	--ab-dark: #101b33;
	--ab-font: #09031D;
	--ab-font-light: #5B5B5B;
	--ab-light-bg: #F9F7FC;
	--ab-border: #EADEED;
	--ab-radius: 18px;

	max-width: 940px;
	margin: 0 auto 48px;
	font-family: Rubik, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	color: var(--ab-font);
}

.ab-head { text-align: center; margin-bottom: 28px; }
.ab-title { font-size: 20px; font-weight: 600; margin: 0 0 8px; color: var(--ab-font); line-height: 1.35; }
.ab-subtitle { font-size: 16px; line-height: 1.6; color: var(--ab-font-light); margin: 0 0 12px; max-width: 680px; margin-left: auto; margin-right: auto; }
.ab-subtitle a { color: var(--ab-primary); text-decoration: underline; }
.ab-subtitle a:hover { text-decoration: none; }
.ab-meta { font-size: 14px; color: var(--ab-font-light); display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.ab-meta-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ab-secondary); display: inline-block; }

.ab-grid {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 24px;
	background: #fff;
	border: 1px solid var(--ab-border);
	border-radius: var(--ab-radius);
	padding: 28px;
	box-shadow: 0 10px 40px rgba(16, 27, 51, 0.06);
	align-items: start;
}

/* ---- Koledar ---- */
.ab-cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.ab-cal-month { font-size: 18px; font-weight: 600; text-transform: capitalize; }
.ab-cal-nav {
	width: 38px; height: 38px; border-radius: 50%;
	border: 1px solid var(--ab-border); background: #fff; cursor: pointer;
	font-size: 20px; line-height: 1; color: var(--ab-dark);
	transition: background .25s, color .25s, border-color .25s;
}
.ab-cal-nav:hover { background: var(--ab-primary); color: #fff; border-color: var(--ab-primary); }

.ab-cal-weekdays, .ab-cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.ab-cal-weekdays { margin-bottom: 8px; }
.ab-cal-weekdays span { text-align: center; font-size: 12px; font-weight: 600; color: var(--ab-font-light); text-transform: uppercase; }

.ab-day {
	aspect-ratio: 1 / 1;
	display: flex; align-items: center; justify-content: center;
	border: none; background: transparent; border-radius: 12px;
	font-size: 15px; font-weight: 500; color: var(--ab-font);
	font-family: inherit;
}
.ab-day-empty { background: transparent; }
.ab-day-off { color: #C9C9CE; cursor: not-allowed; }
.ab-day-on { cursor: pointer; background: var(--ab-light-bg); color: var(--ab-primary); font-weight: 600; transition: background .2s, color .2s, transform .1s; }
.ab-day-on:hover { background: var(--ab-primary); color: #fff; }
.ab-day-today { box-shadow: inset 0 0 0 2px var(--ab-secondary); }
.ab-day-selected.ab-day-on { background: var(--ab-dark); color: #fff; }
.ab-cal-hint { font-size: 13px; color: var(--ab-font-light); margin: 16px 0 0; text-align: center; }

/* ---- Ure ---- */
.ab-pane-times .ab-times-head { margin-bottom: 16px; }
.ab-selected-date { font-size: 17px; font-weight: 600; text-transform: capitalize; }
.ab-times-list { display: flex; flex-direction: column; gap: 10px; max-height: 360px; overflow-y: auto; padding-right: 4px; }
.ab-slot {
	width: 100%; padding: 13px 16px; border-radius: 12px;
	border: 1px solid var(--ab-border); background: #fff; cursor: pointer;
	font-size: 15px; font-weight: 600; color: var(--ab-dark); font-family: inherit;
	transition: all .2s;
}
.ab-slot:hover { border-color: var(--ab-primary); color: var(--ab-primary); transform: translateY(-1px); }
.ab-times-empty { color: var(--ab-font-light); font-size: 14px; text-align: center; padding: 24px 0; }
.ab-loading { text-align: center; color: var(--ab-font-light); padding: 20px; font-size: 24px; }

/* ---- Obrazec ---- */
.ab-back {
	background: none; border: none; color: var(--ab-primary); cursor: pointer;
	font-size: 14px; font-weight: 600; padding: 0; margin-bottom: 16px; font-family: inherit;
}
.ab-form-summary {
	background: var(--ab-light-bg); border-radius: 12px; padding: 14px 18px; margin-bottom: 20px;
	display: flex; flex-direction: column; gap: 2px;
}
.ab-form-summary strong { font-size: 15px; text-transform: capitalize; }
.ab-form-summary span { font-size: 14px; color: var(--ab-font-light); }

.ab-field { margin-bottom: 14px; }
.ab-field label { display: block; font-size: 13px; font-weight: 600; color: var(--ab-font); margin-bottom: 6px; }
.ab-field input, .ab-field textarea {
	width: 100%; box-sizing: border-box; padding: 12px 14px; font-size: 15px;
	border: 1px solid var(--ab-border); border-radius: 12px; font-family: inherit; color: var(--ab-font);
	background: #fff; transition: border-color .2s, box-shadow .2s;
}
.ab-field input:focus, .ab-field textarea:focus {
	outline: none; border-color: var(--ab-primary); box-shadow: 0 0 0 3px rgba(116, 47, 255, .12);
}

/* Gumb v Audienced slogu (.ctaButton ekvivalent) */
.ab-submit, .ab-booking .ctaButton.ab-submit {
	width: 100%; height: 56px; border: none; cursor: pointer; margin-top: 6px;
	border-radius: 30px; background: var(--ab-dark); color: var(--ab-secondary);
	font-family: Rubik, sans-serif; font-size: 16px; font-weight: 600;
	transition: background .45s ease-in-out, color .45s ease-in-out;
}
.ab-submit:hover { color: #fff; background: linear-gradient(90deg, var(--ab-primary) 0%, var(--ab-secondary) 100%); }
.ab-submit:disabled { opacity: .6; cursor: default; }

/* Honeypot — skrito pred uporabniki (boti ga pogosto izpolnijo) */
.ab-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }

.ab-form-msg { margin: 14px 0 0; font-size: 14px; min-height: 18px; }
.ab-msg-err { color: #DA191C; }
.ab-msg-ok { color: #0D983B; }

/* ---- Responsive ---- */
@media (max-width: 860px) {
	.ab-grid { grid-template-columns: 1fr; padding: 20px; }
	.ab-booking[data-step="times"] .ab-pane-calendar,
	.ab-booking[data-step="form"] .ab-pane-calendar { display: none; }
}
