.tf-booking {
	--tf-accent: #CB7752;
	--tf-secondary: #ECD6C9;
	--tf-page: #000000;
	--tf-text: #FFFFFF;
	--tf-card: #242424;
	--tf-muted: rgba(236, 214, 201, .78);
	--tf-line: rgba(203, 119, 82, .42);
	width: min(100%, 1080px);
	height: auto;
	min-height: 680px;
	margin: 24px auto;
	padding: 22px;
	color: var(--tf-text);
	background: var(--tf-page);
	border: 1px solid var(--tf-line);
	border-radius: 10px;
	box-shadow: 0 22px 60px rgba(0, 0, 0, .35);
	display: flex;
	flex-direction: column;
	transition: min-height .22s ease, padding .22s ease;
}

.tf-booking * { box-sizing: border-box; }
.tf-booking__brand { display: flex; align-items: center; gap: 18px; padding: 8px 4px 22px; border-bottom: 1px solid rgba(236, 214, 201, .16); margin-bottom: 20px; }
.tf-booking.is-final-step .tf-booking__brand,
.tf-booking.is-final-step .tf-booking__steps,
.tf-booking.is-final-step .tf-booking__mobile-step,
.tf-booking.is-final-step .tf-booking__status { display: none !important; }
.tf-booking__brand img { width: auto; max-width: 150px; max-height: 74px; object-fit: contain; }
.tf-booking__brand h1 { margin: 0 0 6px; font-size: clamp(28px, 4vw, 48px); line-height: 1.05; letter-spacing: 0; color: var(--tf-text); }
.tf-booking__brand p, .tf-booking__copy p { margin: 0; color: var(--tf-muted); font-size: 16px; line-height: 1.55; }
.tf-booking__steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.tf-booking__steps span { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 8px; border: 1px solid rgba(236, 214, 201, .18); border-radius: 8px; color: rgba(255, 255, 255, .56); background: rgba(255, 255, 255, .035); font-size: 13px; white-space: nowrap; }
.tf-booking__steps strong { color: inherit; font-weight: 700; }
.tf-booking__steps .is-active { background: var(--tf-accent); border-color: var(--tf-accent); color: #fff; }
.tf-booking__steps .is-done { border-color: var(--tf-accent); color: var(--tf-secondary); }
.tf-booking__mobile-step { display: none; margin-bottom: 14px; color: var(--tf-secondary); font-weight: 700; }
.tf-booking__status { min-height: 38px; margin-bottom: 12px; color: var(--tf-secondary); display: flex; align-items: center; }
.tf-booking__status.is-error { color: #ffd0c4; }
.tf-booking__panel { display: none; }
.tf-booking__panel.is-active { display: block; height: auto; min-height: 0; background: var(--tf-card); border: 1px solid var(--tf-line); border-radius: 10px; padding: 24px; }
.tf-booking__panel[data-step="5"].is-active { margin-top: auto; margin-bottom: auto; }
.tf-booking__copy { margin-bottom: 18px; }
.tf-booking h2 { font-size: 24px; line-height: 1.2; margin: 0 0 8px; letter-spacing: 0; color: var(--tf-text); }
.tf-booking__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.tf-booking__toolbar h2 { margin: 0; text-align: center; color: var(--tf-secondary); }
.tf-booking .tf-booking__toolbar .tf-booking__icon {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 42px;
	width: 42px !important;
	min-width: 42px !important;
	max-width: 42px !important;
	height: 42px !important;
	min-height: 42px !important;
	padding: 0 !important;
	border-radius: 6px !important;
	border: 1px solid #CB7752 !important;
	background: #CB7752 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none !important;
	text-shadow: none !important;
}
.tf-booking .tf-booking__toolbar .tf-booking__icon:hover,
.tf-booking .tf-booking__toolbar .tf-booking__icon:focus { background: #B86443 !important; background-image: none !important; color: #FFFFFF !important; border-color: #B86443 !important; }
.tf-booking__calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.tf-booking__weekday { color: var(--tf-muted); font-size: 13px; text-align: center; }
.tf-booking__day, .tf-booking__slot, .tf-booking button:not(.tf-booking__icon) { border: 1px solid rgba(236, 214, 201, .18); background: rgba(255, 255, 255, .055); color: var(--tf-text); border-radius: 8px; cursor: pointer; min-height: 46px; padding: 11px 14px; font: inherit; }
.tf-booking__day:disabled { opacity: .35; cursor: not-allowed; background: rgba(0, 0, 0, .2); }
.tf-booking__day:not(:disabled):hover, .tf-booking__slot:hover, .tf-booking button:not(.tf-booking__icon):hover { border-color: var(--tf-accent); color: #fff; }
.tf-booking button:focus, .tf-booking input:focus, .tf-booking textarea:focus, .tf-booking a:focus { outline: 3px solid rgba(203, 119, 82, .42); outline-offset: 2px; }
.tf-booking input:focus,
.tf-booking textarea:focus,
.tf-booking__phone:focus-within { border-color: var(--tf-accent) !important; }
.tf-booking__slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); gap: 10px; }
.tf-booking__form label { display: grid; gap: 8px; color: var(--tf-secondary); font-weight: 700; }
.tf-booking__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.tf-booking input, .tf-booking textarea { width: 100%; border: 1px solid rgba(203, 119, 82, .48) !important; border-radius: 8px; padding: 13px 14px; font: inherit; color: #fff !important; background: #181818 !important; }
.tf-booking input::placeholder,
.tf-booking textarea::placeholder { color: rgba(236, 214, 201, .68) !important; opacity: 1; }
.tf-booking textarea { resize: vertical; min-height: 150px; }
.tf-booking__phone { display: flex; align-items: center; border: 1px solid rgba(203, 119, 82, .48) !important; border-radius: 8px; overflow: hidden; background: #181818 !important; }
.tf-booking__phone span { padding: 0 13px; color: var(--tf-secondary); border-right: 1px solid rgba(236, 214, 201, .16); }
.tf-booking__phone input { border: 0; border-radius: 0; background: transparent; }
.tf-booking__hp { position: absolute; left: -9999px; opacity: 0; }
.tf-booking__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; }
.tf-booking__nav button:last-child, .tf-booking [data-submit], .tf-booking__home { background: var(--tf-accent); color: #fff; border-color: var(--tf-accent); text-decoration: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; min-height: 46px; padding: 11px 16px; font-weight: 700; }
.tf-booking__secondary { background: transparent !important; color: var(--tf-secondary) !important; border-color: rgba(236, 214, 201, .28) !important; }
.tf-booking__summary { display: grid; grid-template-columns: minmax(110px, max-content) 1fr; gap: 10px 16px; margin: 0; }
.tf-booking__summary dt { color: var(--tf-secondary); font-weight: 700; }
.tf-booking__summary dd { margin: 0; color: var(--tf-text); overflow-wrap: anywhere; }
.tf-booking__privacy { display: flex !important; align-items: flex-start; gap: 10px; margin-top: 20px; color: var(--tf-secondary); font-weight: 400 !important; }
.tf-booking__privacy input { width: auto; margin-top: 4px; accent-color: var(--tf-accent); }
.tf-booking__privacy a,
.tf-booking__privacy a:visited { color: var(--tf-secondary) !important; text-decoration: underline; text-decoration-color: var(--tf-secondary) !important; }
.tf-booking__privacy a:hover,
.tf-booking__privacy a:focus,
.tf-booking__privacy a:active { color: var(--tf-accent) !important; text-decoration-color: var(--tf-accent) !important; }
.tf-booking__confirmation p { margin: 0 0 8px; color: var(--tf-secondary); }
.tf-booking__loading { grid-column: 1 / -1; color: var(--tf-muted); }
.tf-booking-cancel-page { background: #000 !important; color: #fff !important; }
.tf-booking-cancel-result { max-width: 680px; margin: 10vh auto; padding: 32px; background: #242424; border: 1px solid #CB7752; border-radius: 10px; color: #fff; text-align: center; }
.tf-booking-cancel-result h1 { margin: 0 0 14px; color: #fff; letter-spacing: 0; text-transform: uppercase; }
.tf-booking-cancel-result p { color: #ECD6C9; font-size: 16px; line-height: 1.55; }
.tf-booking-cancel-result a { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; margin-top: 14px; padding: 12px 18px; border-radius: 8px; background: #CB7752; color: #fff !important; text-decoration: none; font-weight: 700; }

@media (max-width: 1024px) {
	.tf-booking { min-height: 600px; }
}

@media (max-width: 760px) {
	.tf-booking { width: 100%; min-height: auto; margin: 0 auto; padding: 16px; border-radius: 0; }
	.tf-booking__brand { align-items: flex-start; flex-direction: column; gap: 12px; }
	.tf-booking__brand img { max-width: 132px; max-height: 64px; }
	.tf-booking__steps { display: none; }
	.tf-booking__mobile-step { display: block; }
	.tf-booking__panel { padding: 18px; }
	.tf-booking__panel[data-step="5"].is-active { margin-top: 0; margin-bottom: 0; }
	.tf-booking .tf-booking__toolbar .tf-booking__icon { flex-basis: 38px; width: 38px !important; min-width: 38px !important; max-width: 38px !important; height: 38px !important; min-height: 38px !important; font-size: 24px; }
	.tf-booking__grid { grid-template-columns: 1fr; }
	.tf-booking__calendar { gap: 5px; }
	.tf-booking__day { min-height: 42px; padding: 8px 4px; }
	.tf-booking__summary { grid-template-columns: 1fr; gap: 4px; }
	.tf-booking__summary dd { margin-bottom: 8px; }
	.tf-booking__nav { flex-direction: column-reverse; }
	.tf-booking__nav button, .tf-booking__home { width: 100%; }
}
