.tpg-cb-booking-form,
.flatpickr-calendar.tpg-cb-flatpickr-calendar {
	--tpg-cb-border: #dfdfdf;
	--tpg-cb-border-strong: #d6d1cb;
	--tpg-cb-bg: #fffdf8;
	--tpg-cb-card-bg: #ffffff;
	--tpg-cb-text: #362725;
	--tpg-cb-muted: #696969;
	--tpg-cb-primary: #fb524f;
	--tpg-cb-primary-soft: rgba(251, 82, 79, 0.12);
	--tpg-cb-light-bg: #f5f5f1;
	--tpg-cb-error: #b42318;
	--tpg-cb-error-soft: #fdeaea;
	--tpg-cb-success: #166534;
	--tpg-cb-success-soft: #e7f7eb;
	--tpg-cb-selected: #2f9e44;
	--tpg-cb-selected-shadow: rgba(47, 158, 68, 0.24);
	--tpg-cb-shadow: 0 12px 35px rgba(54, 39, 37, 0.15);
}

.tpg-cb-booking-form {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	border: 1px solid var(--tpg-cb-border);
	border-radius: 16px;
	padding: 28px;
	background: var(--tpg-cb-bg);
	box-shadow: 0 8px 24px rgba(54, 39, 37, 0.08);
}

[data-tpg-cb-form-wrapper] {
	position: relative;
	width: 100%;
	max-width: 100%;
}

.tpg-cb-booking-form *,
.tpg-cb-booking-form *::before,
.tpg-cb-booking-form *::after {
	box-sizing: border-box;
}

.tpg-cb-booking-form__form {
	display: block;
}

.tpg-cb-booking-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.tpg-cb-booking-form__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.tpg-cb-booking-form__field--full {
	grid-column: 1 / -1;
}

.tpg-cb-booking-form__field--honeypot {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.tpg-cb-booking-form label,
.tpg-cb-booking-form legend {
	font-weight: 600;
	color: var(--tpg-cb-text);
}

.tpg-cb-booking-form input:not([type="radio"]):not([type="hidden"]),
.tpg-cb-booking-form select,
.tpg-cb-booking-form textarea,
.tpg-cb-booking-form .tpg-cb-flatpickr-input {
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	border: 1px solid var(--tpg-cb-border-strong);
	border-radius: 10px;
	background: #ffffff;
	color: var(--tpg-cb-text);
	box-sizing: border-box;
	font-size: 15px;
	line-height: 1.4;
}

.tpg-cb-booking-form input:not([type="radio"]):not([type="hidden"])::placeholder,
.tpg-cb-booking-form textarea::placeholder,
.tpg-cb-booking-form .tpg-cb-flatpickr-input::placeholder {
	color: #928581;
}

.tpg-cb-booking-form textarea {
	min-height: 140px;
	resize: vertical;
}

.tpg-cb-booking-form input:not([type="radio"]):not([type="hidden"]):focus,
.tpg-cb-booking-form select:focus,
.tpg-cb-booking-form textarea:focus,
.tpg-cb-booking-form .tpg-cb-flatpickr-input:focus {
	outline: 0;
	border-color: var(--tpg-cb-primary);
	box-shadow: 0 0 0 3px rgba(251, 82, 79, 0.14);
}

.tpg-cb-booking-form .is-invalid,
.tpg-cb-booking-form .is-invalid + .tpg-cb-flatpickr-input,
.tpg-cb-booking-form .tpg-cb-food-grid.is-invalid {
	border-color: var(--tpg-cb-error) !important;
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12);
}

.tpg-cb-picker-field {
	position: relative;
}

.tpg-cb-picker-field::before {
	content: "";
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 18px;
	height: 18px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px 18px;
	opacity: 0.72;
	pointer-events: none;
	z-index: 2;
}

.tpg-cb-picker-field--date::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23696969' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

.tpg-cb-picker-field--time::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23696969' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 15 15'/%3E%3C/svg%3E");
}

.tpg-cb-picker-field .flatpickr-input,
.tpg-cb-picker-field .tpg-cb-flatpickr-input {
	padding-right: 46px;
}

.tpg-cb-picker-field.is-loading::after {
	content: "";
	position: absolute;
	right: 46px;
	bottom: 18px;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(251, 82, 79, 0.2);
	border-top-color: var(--tpg-cb-primary);
	border-radius: 50%;
	animation: tpg-cb-spin 0.8s linear infinite;
	z-index: 2;
}

.tpg-cb-picker-field.is-disabled .flatpickr-input,
.tpg-cb-picker-field.is-disabled .tpg-cb-flatpickr-input {
	background: var(--tpg-cb-light-bg);
	color: #8d8d8d;
	cursor: not-allowed;
}

.tpg-cb-food-fieldset {
	margin: 0;
	padding: 0;
	border: 0;
}

.tpg-cb-food-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 12px;
	border-radius: 14px;
}

.tpg-cb-food-card {
	display: block;
	cursor: pointer;
	position: relative;
}

.tpg-cb-food-card input[type="radio"] {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 1px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 0;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.tpg-cb-food-card__inner {
	display: grid;
	grid-template-columns: 148px minmax(0, 1fr);
	height: 100%;
	border: 1px solid var(--tpg-cb-border);
	border-radius: 14px;
	background: var(--tpg-cb-card-bg);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.tpg-cb-food-card__media {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 148px;
	background: #f7f4ee;
}

.tpg-cb-food-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tpg-cb-food-card__content {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px;
}

.tpg-cb-food-card__title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--tpg-cb-primary);
}

.tpg-cb-food-card__subtitle {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.45;
	color: var(--tpg-cb-text);
}

.tpg-cb-food-card__description {
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--tpg-cb-muted);
	font-weight: 400;
}

.tpg-cb-food-card__select {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--tpg-cb-primary);
}

.tpg-cb-food-card:hover .tpg-cb-food-card__inner,
.tpg-cb-food-card input[type="radio"]:focus + .tpg-cb-food-card__inner,
.tpg-cb-food-card.is-selected .tpg-cb-food-card__inner {
	border-color: var(--tpg-cb-primary);
	box-shadow: 0 10px 24px rgba(251, 82, 79, 0.12);
	transform: translateY(-1px);
}

.tpg-cb-food-card.is-selected .tpg-cb-food-card__inner {
	background: var(--tpg-cb-primary-soft);
}

.tpg-cb-form-status {
	display: none;
	margin-bottom: 18px;
	padding: 14px 16px;
	border-radius: 12px;
	font-size: 0.95rem;
	line-height: 1.55;
}

.tpg-cb-form-status p,
.tpg-cb-form-status ul {
	margin: 0;
}

.tpg-cb-form-status ul {
	margin-top: 10px;
	padding-left: 18px;
}

.tpg-cb-form-status.is-success,
.tpg-cb-form-status.is-error,
.tpg-cb-form-status.is-loading {
	display: block;
}

.tpg-cb-form-status.is-success {
	background: var(--tpg-cb-success-soft);
	color: var(--tpg-cb-success);
}

.tpg-cb-form-status.is-error {
	background: var(--tpg-cb-error-soft);
	color: var(--tpg-cb-error);
}

.tpg-cb-form-status.is-loading {
	background: #f3f0ea;
	color: var(--tpg-cb-text);
}

.tpg-cb-booking-form__actions {
	margin-top: 22px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}

.tpg-cb-booking-form__actions .tpg-cb-form-status {
	width: 100%;
	margin-bottom: 0;
}

.tpg-cb-booking-form__field--turnstile {
	margin-top: 4px;
}

.tpg-cb-booking-form__field--turnstile .cf-turnstile {
	display: inline-flex;
	max-width: 100%;
}

.tpg-cb-booking-form__submit {
	padding: 13px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--tpg-cb-primary);
	color: #ffffff;
	font-weight: 700;
	cursor: pointer;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.tpg-cb-booking-form__submit:hover,
.tpg-cb-booking-form__submit:focus {
	opacity: 0.92;
	transform: translateY(-1px);
}

.tpg-cb-booking-form.is-submitting .tpg-cb-booking-form__submit {
	cursor: wait;
	opacity: 0.75;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar {
	border: 1px solid #efe7df;
	border-radius: 18px;
	box-shadow: 0 20px 45px rgba(54, 39, 37, 0.18);
	background: #ffffff;
	padding: 14px 14px 12px;
	width: 356px;
	max-width: calc(100vw - 24px);
	z-index: 999999;
	overflow: hidden;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.tpg-cb-flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.tpg-cb-flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.tpg-cb-flatpickr-calendar.arrowBottom::after {
	display: none;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-innerContainer,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-rContainer,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-days,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .dayContainer,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-weekdays {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 100% !important;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-months {
	align-items: center;
	margin-bottom: 10px;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-month {
	color: var(--tpg-cb-text);
	height: 44px;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-current-month {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-size: 17px;
	font-weight: 700;
	padding: 0 36px;
	height: 44px;
	color: var(--tpg-cb-text);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-current-month input.cur-year {
	font-size: 17px;
	font-weight: 700;
	color: var(--tpg-cb-text);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-current-month input.cur-year {
	pointer-events: none;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-prev-month,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-next-month {
	top: 14px;
	width: 34px;
	height: 34px;
	padding: 8px;
	border-radius: 999px;
	color: var(--tpg-cb-text);
	fill: var(--tpg-cb-text);
	background: #f7f2ee;
	transition: background-color 0.2s ease, color 0.2s ease, fill 0.2s ease, transform 0.2s ease;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-prev-month:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-next-month:hover {
	color: #ffffff;
	fill: #ffffff;
	background: var(--tpg-cb-primary);
	transform: translateY(-1px);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-weekdays {
	background: transparent;
	margin-bottom: 8px;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar span.flatpickr-weekday {
	color: #796b66;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .dayContainer {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	padding-bottom: 4px;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time input,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .flatpickr-am-pm {
	color: var(--tpg-cb-text);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day {
	position: relative;
	border-radius: 12px;
	border: 1px solid transparent;
	max-width: none;
	height: 42px;
	line-height: 40px;
	font-size: 14px;
	font-weight: 600;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day:focus {
	background: #ffe2dd;
	border-color: #ffd0ca;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange:focus,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange:focus {
	background: var(--tpg-cb-selected) !important;
	border-color: var(--tpg-cb-selected) !important;
	color: #ffffff !important;
	box-shadow: 0 10px 18px var(--tpg-cb-selected-shadow) !important;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected.today,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange.today,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange.today {
	background: var(--tpg-cb-selected) !important;
	border-color: var(--tpg-cb-selected) !important;
	color: #ffffff !important;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.today {
	border-color: rgba(54, 39, 37, 0.26);
	background: #faf7f3;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.nextMonthDay {
	color: #b9ada6;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.prevMonthDay.flatpickr-disabled,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.nextMonthDay.flatpickr-disabled {
	color: #b42318;
	background: #fdeaea;
	border-color: #f6c5c0;
	cursor: not-allowed;
	box-shadow: inset 0 0 0 1px rgba(180, 35, 24, 0.08);
	font-weight: 700;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.tpg-cb-day--unavailable,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.tpg-cb-day--unavailable:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.tpg-cb-day--unavailable.flatpickr-disabled,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.tpg-cb-day--unavailable.flatpickr-disabled:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.prevMonthDay.tpg-cb-day--unavailable,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.prevMonthDay.tpg-cb-day--unavailable:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.nextMonthDay.tpg-cb-day--unavailable,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.nextMonthDay.tpg-cb-day--unavailable:hover {
	color: #b42318;
	background: #fdeaea;
	border-color: #f6c5c0;
	box-shadow: inset 0 0 0 1px rgba(180, 35, 24, 0.08);
	text-decoration: none;
	font-weight: 700;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.tpg-cb-day--unavailable::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 6px;
	height: 6px;
	margin-left: -3px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0.8;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected::after,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange::after,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange::after {
	display: none;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.selected span,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.startRange span,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-day.endRange span {
	color: #ffffff !important;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time {
	border-top: 1px solid #efebe7;
	margin-top: 6px;
	padding-top: 8px;
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .numInputWrapper span.arrowUp::after,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .numInputWrapper span.arrowDown::after {
	border-bottom-color: var(--tpg-cb-text);
	border-top-color: var(--tpg-cb-text);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .numInputWrapper:hover,
.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .flatpickr-am-pm:hover {
	background: var(--tpg-cb-primary-soft);
}

.flatpickr-calendar.tpg-cb-flatpickr-calendar .flatpickr-time .flatpickr-am-pm {
	font-weight: 700;
}

@keyframes tpg-cb-spin {
	from {
		transform: rotate(0deg);
	}

	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 991px) {
	.tpg-cb-food-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.tpg-cb-booking-form {
		padding: 18px;
	}

	.tpg-cb-booking-form__grid {
		grid-template-columns: 1fr;
	}

	.tpg-cb-booking-form__field--full {
		grid-column: auto;
	}

	.tpg-cb-food-card__inner {
		grid-template-columns: 1fr;
	}

	.tpg-cb-food-card__media {
		width: 100%;
		height: auto;
		min-height: 200px;
	}

	.flatpickr-calendar {
		width: calc(100vw - 32px);
		max-width: 320px;
	}

	.flatpickr-calendar.tpg-cb-flatpickr-calendar {
		width: calc(100vw - 24px);
		max-width: calc(100vw - 24px);
		padding: 12px;
	}
}
