/* Refined site header */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	display: block;
	height: 78px;
	border-bottom: 1px solid rgba(75, 55, 47, 0.1);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 30px rgba(57, 42, 35, 0.08);
	color: #302925;
	backdrop-filter: blur(16px);
	transition:
		box-shadow 0.25s ease,
		background-color 0.25s ease;
}
.site-header .top-inner {
	width: min(100% - 48px, 1320px);
	height: 100%;
	margin: 0 auto;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.site-header .brand {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	height: 100%;
	padding-right: 34px;
}
.site-header .logo,
.site-header .top-inner .logo {

	max-height: 50px;
	object-fit: contain;
}
.site-header .nav {
	position: static;
	z-index: auto;
	flex: 1;
	height: 100%;
	border: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
}
.site-header .nav-inner {
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 2px;
	overflow: visible;
}
.site-header .nav-inner > a:first-child {
	margin-left: clamp(100px, 12vw, 170px);
}
.site-header .nav a {
	position: relative;
	display: flex;
	height: 44px;
	padding: 0 16px;
	border-radius: 7px;
	align-items: center;
	justify-content: center;
	color: #625a55;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.06em;
	white-space: nowrap;
	box-shadow: none;
	transition:
		color 0.2s ease,
		background-color 0.2s ease,
		transform 0.2s ease;
}
.site-header .nav a:not(.booking):not(.cta):after {
	position: absolute;
	bottom: 4px;
	left: 50%;
	width: 16px;
	height: 1px;
	border-radius: 1px;
	background: #b85d64;
	content: "";
	opacity: 0;
	transform: translateX(-50%) scaleX(0.45);
	transform-origin: center;
	transition:
		opacity 0.2s ease,
		transform 0.24s ease;
}
.site-header .nav a:not(.booking):not(.cta):hover,
.site-header .nav a:not(.booking):not(.cta):focus-visible {
	background: #f7f4f2;
	color: #302925;
}
.site-header .nav a.active {
	background: transparent;
	color: #a94850;
	font-weight: 600;
}
.site-header .nav a.active:hover {
	background: #faf7f5;
}
.site-header .nav a:not(.booking):not(.cta):hover:after,
.site-header .nav a:not(.booking):not(.cta):focus-visible:after {
	opacity: 0.45;
	transform: translateX(-50%) scaleX(0.75);
}
.site-header .nav a.active:not(.booking):not(.cta):after,
.site-header .nav a.active:not(.booking):not(.cta):hover:after {
	opacity: 1;
	transform: translateX(-50%) scaleX(1);
}
.site-header .nav a:focus-visible {
	outline: 1px solid rgba(184, 93, 100, 0.55);
	outline-offset: -3px;
}
.site-header .nav a.booking,
.site-header .nav a.cta {
	align-self: center;
	height: 42px;
	border-radius: 8px;
}
.site-header .nav a.booking {
	margin-left: auto;
	padding: 0 20px;
	border: 1px solid rgba(229, 31, 42, 0.25);
	background: #fff5f5;
    color: #b85d64;
	font-weight: 600;
	    cursor: pointer;
}
.site-header .nav a.booking:hover {
	border-color: rgba(184, 93, 100, 0.5);
	background: #fbeeee;
	color: #a94850;
	transform: translateY(-1px);
}
.site-header .nav a.cta {
	height: 42px;
	margin-left: 8px;
	padding: 0 20px;
	background: #302925;
	color: #fff;
	font-weight: 600;
	letter-spacing: 0.02em;
	box-shadow: none;
}
.site-header .nav a.cta:before {
    width: 17px;
    height: 17px;
    margin-right: 9px;
    border-radius: 50%;
    background: url("data:image/svg+xml,%3Csvg t='1790129467547' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4999' width='32' height='32'%3E%3Cpath d='M733.76 960 733.76 960l-4.352 0c-102.4-5.376-240.704-106.752-370.112-270.976L311.552 628.736C182.144 464.512 114.368 304.064 130.304 199.744 141.44 126.144 245.696 64 305.28 64c29.312 0 40 15.296 43.84 24.512C382.592 151.552 424.32 260.928 424.64 300.16l0 2.752L423.68 305.536C416.192 326.144 399.616 336 384.896 344.768 365.504 356.288 354.56 363.776 353.152 385.472 352.832 392 358.208 422.016 443.52 532.352L480 578.624c85.632 106.112 112.512 117.504 118.72 118.4 20.672 3.136 30.528-6.144 45.312-23.36 11.264-13.248 24.064-27.904 45.12-31.104l2.816-0.512 2.56 0.896c37.376 8 132.48 72.512 186.88 120.512 7.68 5.376 21.312 21.632 10.56 57.28C875.072 876.736 801.28 960 733.76 960L733.76 960z' fill='%23ffffff' p-id='5000'%3E%3C/path%3E%3C/svg%3E") center / contain no-repeat;

    content: "";
}

.site-header .nav a.cta:hover {
	background: #443936;
	transform: translateY(-1px);
}
.nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	margin-left: auto;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #f8f5f3;
	color: #302925;
	cursor: pointer;
}
.nav-toggle span {
	display: block;
	width: 19px;
	height: 2px;
	margin: 4px auto;
	border-radius: 2px;
	background: currentColor;
	transition:
		transform 0.24s ease,
		opacity 0.2s ease;
}
.site-header.is-open .nav-toggle span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}
.site-header.is-open .nav-toggle span:nth-child(2) {
	opacity: 0;
}
.site-header.is-open .nav-toggle span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}
@media (max-width: 1180px) and (min-width: 1025px) {
	.site-header .top-inner {
		width: min(100% - 28px, 1320px);
	}
	.site-header .brand {
		padding-right: 16px;
	}
	.site-header .logo,
	.site-header .top-inner .logo {
		width: 164px;
	}
	.site-header .nav-inner > a:first-child {
		margin-left: clamp(64px, 9vw, 108px);
	}
	.site-header .nav a {
		padding-right: 11px;
		padding-left: 11px;
	}
	.site-header .nav a.booking {
		margin-left: auto;
		padding-right: 15px;
		padding-left: 15px;
	}
	.site-header .nav a.cta {
		padding-right: 15px;
		padding-left: 15px;
	}
}
@media (max-width: 1024px) {
	.site-header {
		height: 68px;
	}
	.site-header .top-inner {
		position: relative;
		width: 100%;
		padding: 0 18px;
	}
	.site-header .brand {
		padding: 0;
	}
	.site-header .logo,
	.site-header .top-inner .logo {
		width: 172px;
		height: 46px;
	}
	.nav-toggle {
		display: block;
	}
	.site-header .nav {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		height: auto;
		border-top: 1px solid #f0e9e6;
		background: rgba(255, 255, 255, 0.98);
		box-shadow: 0 18px 30px rgba(57, 42, 35, 0.14);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-10px);
		transition:
			opacity 0.22s ease,
			transform 0.22s ease,
			visibility 0.22s ease;
	}
	.site-header.is-open .nav {
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-header .nav-inner {
		display: grid;
		height: auto;
		margin: 0;
		padding: 10px 18px 18px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		overflow: visible;
	}
	.site-header .nav-inner > a:first-child {
		margin-left: 0;
	}
	.site-header .nav a {
		height: 48px;
		padding: 0 14px;
		border-radius: 7px;
		justify-content: flex-start;
		font-size: 15px;
	}
	.site-header .nav a:not(.booking):not(.cta):after {
		top: 50%;
		bottom: auto;
		left: 3px;
		width: 2px;
		height: 18px;
		opacity: 0;
		transform: translateY(-50%) scaleY(0.45);
	}
	.site-header .nav a:not(.booking):not(.cta):hover,
	.site-header .nav a:not(.booking):not(.cta):focus-visible {
		background: #f8f6f4;
	}
	.site-header .nav a.active,
	.site-header .nav a.active:hover {
		background: #f7f4f2;
		color: #8f4248;
	}
	.site-header .nav a:not(.booking):not(.cta):hover:after,
	.site-header .nav a:not(.booking):not(.cta):focus-visible:after {
		opacity: 0.35;
		transform: translateY(-50%) scaleY(0.75);
	}
	.site-header .nav a.active:not(.booking):not(.cta):after,
	.site-header .nav a.active:not(.booking):not(.cta):hover:after {
		opacity: 0.8;
		transform: translateY(-50%) scaleY(1);
	}
	.site-header .nav a.booking,
	.site-header .nav a.cta {
		width: 100%;
		height: 44px;
		margin: 4px 0 0;
		padding: 0 14px;
		border-radius: 7px;
		justify-content: center;
	}
	.site-header .nav a.cta {
		margin-left: 0;
	}
	.site-header .nav a:focus-visible {
		outline-offset: -3px;
	}
}
@media (max-width: 520px) {
	.site-header .top-inner {
		padding: 0 14px;
	}
	.site-header .logo,
	.site-header .top-inner .logo {
		width: 154px;
	}
	.site-header .nav-inner {
		grid-template-columns: 1fr;
		padding: 8px 14px 14px;
	}
	.site-header .nav a {
		height: 43px;
	}
	.site-header .nav a.booking,
	.site-header .nav a.cta {
		height: 43px;
	}
	.site-header .nav a:not(.booking):not(.cta):after {
		top: 11px;
		bottom: 11px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.site-header,
	.site-header .nav,
	.site-header .nav a,
	.nav-toggle span {
		transition: none;
	}
}
