/**
 * Homepage booking: cztery kolumny naraz jak na mockupie.
 */

.fp-booking--home {
	max-width: none;
	padding: 2rem 0 4.5rem;
}

.fp-booking--home > .fp-wrap {
	inline-size: min(110rem, calc(100% - 0.75rem));
}

.fp-booking--home .fp-booking__shell {
	overflow: hidden;
	align-items: stretch;
	grid-template-columns: minmax(18rem, 22rem) minmax(0, 1fr);
	min-block-size: 36rem;
	background:
		radial-gradient(circle at 1px 1px, rgb(255 255 255 / 0.14) 1px, transparent 0) 0 0 / 14px 14px,
		linear-gradient(165deg, #30c7b5 0%, #0f766e 100%);
	border: 0;
	box-shadow: 0 18px 50px rgb(15 23 42 / 0.12);
}

.fp-booking--home .fp-booking__aside {
	background: transparent;
	padding: 2.25rem 1.75rem;
	border-radius: 24px 0 0 24px;
}

.fp-booking--home .fp-booking__brand {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0 0 12px;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: #fff;
}

.fp-booking--home .fp-booking__mark {
	display: block;
	width: 3.1rem;
	height: 3.1rem;
	flex-shrink: 0;
	object-fit: contain;
	object-position: center;
}

.fp-booking--home .fp-booking__title {
	font-size: clamp(1.85rem, 3.6cqi, 2.35rem) !important;
	font-weight: 700 !important;
	letter-spacing: -0.035em;
	line-height: 1.1 !important;
	white-space: nowrap;
}

.fp-booking--home .fp-booking__lead {
	font-size: 1.02rem;
	font-weight: 300;
	line-height: 1.5;
	opacity: 0.95;
}

.fp-booking--home .fp-booking__points {
	margin-top: 2.6rem;
}

.fp-booking--home .fp-booking__points li {
	padding-inline-start: 2.1rem;
	padding-bottom: 1rem;
	font-weight: 300;
}

.fp-booking--home .fp-booking__points li strong,
.fp-booking--home .fp-booking__points li span {
	display: block;
	color: #fff;
}

.fp-booking--home .fp-booking__points li strong {
	font-weight: 400;
}

.fp-booking--home .fp-booking__points li span {
	font-size: 0.86rem;
	font-weight: 300;
	opacity: 0.84;
}

.fp-booking--home .fp-booking__point::before {
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 0;
	background: #fff;
}

.fp-booking--home .fp-booking__point--cal::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='3' width='12' height='11' rx='1.5' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M2 7h12M5 1v3M11 1v3' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='2' y='3' width='12' height='11' rx='1.5' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M2 7h12M5 1v3M11 1v3' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fp-booking--home .fp-booking__point--time::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M8 5v3.5L10 10' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M8 5v3.5L10 10' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fp-booking--home .fp-booking__point--bell::before {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 7a4 4 0 1 1 8 0c0 2.2 1 3.5 1 3.5H3S4 9.2 4 7zM6.5 12.5a1.5 1.5 0 0 0 3 0' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 7a4 4 0 1 1 8 0c0 2.2 1 3.5 1 3.5H3S4 9.2 4 7zM6.5 12.5a1.5 1.5 0 0 0 3 0' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fp-booking--home .fp-booking__main {
	display: grid;
	grid-template-rows: 1fr auto;
	min-inline-size: 0;
	margin: 0.7rem 0.7rem 0.7rem 0;
	background: #fff;
	border-radius: 1.15rem;
	overflow: clip;
	box-shadow: 0 10px 28px rgb(15 23 42 / 0.08);
}

@media (min-width: 1200px) and (max-width: 1479px) {
	.fp-booking--home .fp-booking__shell {
		grid-template-columns: minmax(13.5rem, 15.5rem) minmax(0, 1fr);
	}

	.fp-booking--home .fp-booking__aside {
		padding: 1.5rem 1.15rem;
	}

	.fp-booking--home .fp-booking__title {
		white-space: normal;
		font-size: clamp(1.45rem, 3.2cqi, 1.9rem) !important;
	}
}

@media (min-width: 1480px) and (max-width: 1679px) {
	.fp-booking--home .fp-booking__shell {
		grid-template-columns: minmax(16rem, 19rem) minmax(0, 1fr);
	}
}

.fp-booking--home .fp-booking__bar {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 1.1rem 1.5rem;
	padding: 1.1rem 1.5rem 1.35rem;
	color: #64748b;
	font-size: 0.8rem;
	font-weight: 300;
}

.fp-booking--home .fp-booking__bar p {
	margin: 0;
	flex: 1 1 0;
	min-inline-size: 0;
	min-block-size: 2.4rem;
	display: grid;
	align-content: center;
	padding-inline-start: 1.7rem;
	color: #64748b;
	font-weight: 300;
	font-size: 0.8rem;
	letter-spacing: 0.01em;
	line-height: 1.4;
	background: no-repeat 0 50% / 1.15rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%230f766e' stroke-width='1.4' d='M8 2a6 6 0 1 1 0 12A6 6 0 0 1 8 2zM6.2 8.1 7.4 9.4 10 6.4'/%3E%3C/svg%3E");
}

.fp-booking--home .fp-booking__bar p:nth-of-type(2) {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='4' y='7' width='8' height='7' rx='1.2' fill='none' stroke='%230f766e' stroke-width='1.5'/%3E%3Cpath d='M6 7V5.2a2 2 0 0 1 4 0V7' fill='none' stroke='%230f766e' stroke-width='1.5'/%3E%3C/svg%3E");
}

.fp-booking--home .fp-booking__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	margin: 0;
	margin-inline-start: auto;
	min-height: 3.75rem;
	padding: 1.05rem 2.35rem;
	border: 0;
	border-radius: 999px;
	background: #0f766e;
	color: #fff;
	font: 700 1.35rem/1 inherit;
	letter-spacing: -0.015em;
	cursor: pointer;
	white-space: nowrap;
	order: 3;
	box-shadow: 0 10px 24px rgb(15 118 110 / 0.22);
}

.fp-booking--home .fp-booking__cta:focus-visible {
	outline: 3px solid #30c7b5;
	outline-offset: 2px;
}

.fp-booking--home .fp-booking__cta .fp-btn__icon {
	inline-size: 1.15rem;
	block-size: 1.15rem;
	color: #fff;
}

.fp-booking--home .fp-booking__cta .fp-btn__icon svg {
	inline-size: 1.15rem;
	block-size: 1.15rem;
}

@media (max-width: 820px) {
	.fp-booking--home {
		padding: 1rem 0 1.25rem;
	}

	.fp-booking--home > .fp-wrap {
		inline-size: min(110rem, calc(100% - 0.5rem));
	}

	.fp-booking--home .fp-booking__shell {
		grid-template-columns: 1fr;
		min-block-size: 0;
	}

	.fp-booking--home .fp-booking__aside {
		padding: 1.1rem 1.15rem 0.9rem;
		border-radius: 20px 20px 0 0;
	}

	.fp-booking--home .fp-booking__lead,
	.fp-booking--home .fp-booking__points,
	.fp-booking--home .fp-board__desc,
	.fp-booking--home .fp-booking__bar p {
		display: none;
	}

	.fp-booking--home .fp-booking__title {
		margin: 0 !important;
		font-size: 1.45rem !important;
		white-space: normal;
	}

	.fp-booking--home .fp-booking__main {
		margin: 0 0.55rem 0.55rem;
		border-radius: 1rem;
	}

	.fp-booking--home .fp-board {
		padding: 0.75rem 0.8rem 0.35rem;
	}

	.fp-booking--home .fp-board__cols {
		gap: 0.7rem;
	}

	.fp-booking--home .fp-board__col {
		padding: 0.85rem 0.9rem;
		border: 1px solid #e6eef3;
		border-radius: 16px;
		background: #f7fbfb;
	}

	.fp-booking--home .fp-board__h,
	.fp-booking--home .fp-board legend.fp-board__h {
		white-space: normal;
		font-size: 0.95rem;
		margin-bottom: 0.7rem;
	}

	.fp-booking--home .fp-board__service,
	.fp-booking--home .fp-board__slot,
	.fp-booking--home .fp-board__person {
		min-height: 3rem;
		font-size: 1rem;
	}

	.fp-booking--home .fp-board__dow,
	.fp-booking--home .fp-board__day {
		min-height: 2.55rem;
		font-size: 0.9rem;
		line-height: 2.55;
	}

	.fp-booking--home .fp-board__nav {
		width: 2.65rem;
		height: 2.65rem;
	}

	.fp-booking--home .fp-board__month {
		font-size: 1.08rem;
	}

	.fp-booking--home .fp-booking__bar {
		position: sticky;
		bottom: 0;
		z-index: 3;
		flex-wrap: wrap;
		padding: 0.85rem 0.8rem 1rem;
		background: #fff;
		box-shadow: 0 -10px 24px rgb(15 23 42 / 0.08);
	}

	.fp-booking--home .fp-booking__cta {
		width: 100%;
		min-height: 3.75rem;
		font-size: 1.28rem;
		order: 0;
		margin-inline-start: 0;
	}

	.fp-booking--home .fp-board__services {
		max-block-size: none;
	}
}
