/* Raktar Booking – frontend styles (Raktar brand: gold + ink + warm off-white, Montserrat) */
/* The modal is appended to <body>, outside .raktar-booking, so the custom
   properties are declared for both scopes or the modal loses every colour. */
.raktar-booking,
.rk-modal-backdrop {
	--rk-gold: #c9a24b;
	--rk-gold-strong: #a87d2c;
	--rk-gold-light: #e8ce86;
	--rk-gold-soft: #f7f0dd;
	--rk-gold-border: #e6dcc2;
	--rk-gradient-gold: linear-gradient(135deg, #e8ce86 0%, #c9a24b 45%, #a87d2c 100%);

	--rk-ink: #141414;
	--rk-ink-soft: #4b4844;
	--rk-muted: #8a857a;

	--rk-bg: #ffffff;
	--rk-surface: #fcfcfa;
	--rk-border: #e6e3db;

	--rk-danger: #870000;
	--rk-success: #2f532e;

	--rk-radius: 16px;
	--rk-shadow: 0 1px 2px rgba(20, 20, 20, .05), 0 10px 30px rgba(20, 20, 20, .06);

	color: var(--rk-ink);
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.55;
	max-width: 1000px;
	margin: 0 auto;
	box-sizing: border-box;
}
.raktar-booking *, .raktar-booking *::before, .raktar-booking *::after { box-sizing: inherit; }

.rk-card {
	background: var(--rk-bg);
	border: 1px solid var(--rk-border);
	border-radius: var(--rk-radius);
	box-shadow: var(--rk-shadow);
	padding: 24px;
}

/* Service selector */
.rk-services {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--rk-border);
	padding-bottom: 18px;
}
.rk-service-tab {
	appearance: none;
	border: 1px solid var(--rk-border);
	background: #fff;
	color: var(--rk-ink);
	padding: 10px 18px;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
	cursor: pointer;
	transition: all .18s ease;
}
.rk-service-tab:hover { border-color: var(--rk-gold); color: var(--rk-gold-strong); }
.rk-service-tab.is-active {
	background: var(--rk-ink);
	border-color: var(--rk-ink);
	color: var(--rk-gold-light);
}
.rk-service-desc {
	color: var(--rk-ink-soft);
	font-size: 14.5px;
	margin: 0 0 18px;
}

/* Week navigation */
.rk-weeknav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}
.rk-weeknav .rk-week-label {
	font-weight: 700;
	font-size: 16px;
	text-transform: capitalize;
	letter-spacing: .01em;
}
.rk-btn {
	appearance: none;
	border: 1px solid var(--rk-border);
	background: #fff;
	color: var(--rk-ink);
	padding: 9px 16px;
	border-radius: 10px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all .16s ease;
}
/* Colours are pinned on hover/focus/active because themes commonly restyle
   button and anchor states, which previously made the label unreadable. */
.rk-btn:hover:not(:disabled),
.rk-btn:focus:not(:disabled),
.rk-btn:active:not(:disabled) {
	border-color: var(--rk-gold);
	background: #fff;
	color: var(--rk-gold-strong);
}
.rk-btn:disabled { opacity: .5; cursor: not-allowed; }
.rk-btn-primary {
	background: var(--rk-gradient-gold);
	border: none;
	color: var(--rk-ink);
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(168, 125, 44, .3);
}
.rk-btn-primary:hover:not(:disabled),
.rk-btn-primary:focus:not(:disabled),
.rk-btn-primary:active:not(:disabled) {
	filter: brightness(1.04);
	background: var(--rk-gradient-gold);
	color: var(--rk-ink);
}
.rk-nav-group { display: flex; gap: 8px; }

/* Week grid */
.rk-week {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 10px;
}
.rk-day { min-width: 0; }
.rk-day-head {
	text-align: center;
	padding: 8px 4px 10px;
	border-bottom: 2px solid var(--rk-border);
	margin-bottom: 12px;
}
.rk-day-head .rk-dow {
	text-transform: uppercase;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .06em;
	color: var(--rk-ink);
}
.rk-day-head .rk-date { color: var(--rk-muted); font-size: 12px; margin-top: 2px; }
.rk-day.is-today .rk-day-head { border-bottom-color: var(--rk-gold); }
.rk-day.is-today .rk-dow { color: var(--rk-gold-strong); }

.rk-slots { display: flex; flex-direction: column; gap: 7px; }
.rk-slot {
	appearance: none;
	border: 1px solid var(--rk-gold-border);
	background: #fff;
	color: var(--rk-ink);
	border-radius: 10px;
	padding: 10px 6px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	text-align: center;
	transition: all .14s ease;
}
.rk-slot:hover {
	background: var(--rk-gradient-gold);
	border-color: transparent;
	color: var(--rk-ink);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(168, 125, 44, .28);
}
.rk-slot.is-booked {
	background: var(--rk-surface);
	color: #c7c2b6;
	border-color: var(--rk-border);
	cursor: not-allowed;
}
.rk-slot.is-booked:hover { transform: none; box-shadow: none; }
.rk-empty, .rk-closed {
	text-align: center;
	color: var(--rk-muted);
	font-size: 12px;
	padding: 10px 0;
}

.rk-loading, .rk-message {
	text-align: center;
	padding: 34px 16px;
	color: var(--rk-muted);
}
.rk-error { color: var(--rk-danger); }

/* Modal */
.rk-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(20, 20, 20, .6);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	z-index: 100000;
}
.rk-modal {
	background: #fff;
	border-radius: 18px;
	max-width: 470px;
	width: 100%;
	max-height: 92vh;
	overflow: auto;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .35);
	padding: 26px;
	animation: rk-pop .18s ease;
	border-top: 4px solid transparent;
	border-image: var(--rk-gradient-gold) 1;
	font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	color: var(--rk-ink);
}
.rk-modal, .rk-modal *, .rk-modal *::before, .rk-modal *::after { box-sizing: border-box; }
@keyframes rk-pop { from { transform: translateY(8px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.rk-modal h3 { margin: 0 0 4px; font-size: 20px; font-weight: 700; letter-spacing: .01em; }
.rk-modal .rk-chosen {
	background: var(--rk-gold-soft);
	color: var(--rk-gold-strong);
	border: 1px solid var(--rk-gold-border);
	border-radius: 10px;
	padding: 11px 13px;
	font-weight: 700;
	margin: 14px 0 18px;
	text-transform: capitalize;
}
.rk-choice-grid { display: grid; gap: 12px; }
.rk-choice {
	display: flex;
	flex-direction: column;
	gap: 3px;
	text-align: left;
	border: 1px solid var(--rk-border);
	border-radius: 12px;
	padding: 15px 16px;
	cursor: pointer;
	background: #fff;
	color: var(--rk-ink);
	text-decoration: none;
	font-family: inherit;
	transition: all .16s ease;
}
.rk-choice:hover,
.rk-choice:focus,
.rk-choice:active {
	border-color: var(--rk-gold);
	background: var(--rk-gold-soft);
	color: var(--rk-ink);
	text-decoration: none;
}
.rk-choice strong { font-size: 15px; font-weight: 700; color: var(--rk-ink); }
.rk-choice span { color: var(--rk-muted); font-size: 13px; }
.rk-choice:hover strong, .rk-choice:focus strong { color: var(--rk-ink); }
.rk-choice:hover span, .rk-choice:focus span { color: var(--rk-ink-soft); }

.rk-field { margin-bottom: 14px; }
.rk-field label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.rk-field input, .rk-field textarea {
	width: 100%;
	border: 1px solid var(--rk-border);
	border-radius: 10px;
	padding: 11px 13px;
	font-size: 15px;
	font-family: inherit;
	color: var(--rk-ink);
	background: var(--rk-surface);
}
.rk-field input:focus, .rk-field textarea:focus {
	outline: none;
	border-color: var(--rk-gold);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(201, 162, 75, .2);
}
.rk-field .rk-hint { color: var(--rk-muted); font-size: 12px; margin-top: 4px; }
.rk-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }

.rk-actions { display: flex; gap: 10px; margin-top: 10px; }
.rk-actions .rk-btn { flex: 1; }
.rk-form-error { color: var(--rk-danger); font-size: 13px; margin-bottom: 10px; }

.rk-success { text-align: center; padding: 8px 0; }
.rk-success .rk-check {
	width: 60px; height: 60px; border-radius: 50%;
	background: var(--rk-gold-soft); color: var(--rk-gold-strong);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 16px; font-size: 32px; font-weight: 700;
	border: 1px solid var(--rk-gold-border);
}

@media (max-width: 720px) {
	.rk-week { grid-template-columns: 1fr; gap: 4px; }
	.rk-day { border-bottom: 1px solid var(--rk-border); padding-bottom: 12px; }
	.rk-day-head { display: flex; gap: 8px; justify-content: flex-start; text-align: left; border-bottom: none; margin-bottom: 8px; }
	.rk-slots { flex-direction: row; flex-wrap: wrap; }
	.rk-slot { flex: 0 0 auto; min-width: 74px; }
	.rk-day.is-empty { display: none; }
}
