:root{
	--bg: #0b0f14;
	--surface: rgba(255,255,255,0.08);
	--surfaceStrong: rgba(255,255,255,0.12);
	--text: rgba(255,255,255,0.92);
	--muted: rgba(255,255,255,0.68);
	--stroke: rgba(255,255,255,0.14);
	--shadow: 0 18px 50px rgba(0,0,0,0.35);
	--radius: 16px;
	--radiusLg: 22px;
	--max: 1200px;
}

*{
	box-sizing: border-box;
}

HTML, BODY{
	height: 100%;
}

BODY{
	margin: 0;
	font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", roboto, arial, "Noto Sans", "Helvetica Neue", sans-serif;
	color: var(--text);
	background: var(--bg);
}

A{
	color: inherit;
	text-decoration: none;
}

.page{
	min-height: 100%;
	display: flex;
	flex-direction: column;
}

.siteHeader{
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: linear-gradient(to bottom, rgba(0,0,0,0.55), rgba(0,0,0,0));
}

.headerInner{
	max-width: var(--max);
	margin: 0 auto;
	padding: 18px 18px;
	display: flex;
	align-items: center;
	gap: 18px;
}

.brand{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.brandMark{
	width: 14px;
	height: 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.9);
	box-shadow: 0 0 0 6px rgba(255,255,255,0.12);
}

.brandName{
	font-size: 16px;
	text-transform: uppercase;
}

.topNav{
	margin-left: auto;
}

.navList{
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 18px;
	align-items: center;
}

.navLink{
	display: inline-block;
	padding: 10px 10px;
	border-radius: 999px;
	color: var(--muted);
	font-size: 14px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	transition: background 140ms ease, color 140ms ease;
}

.navLink:hover{
	background: rgba(255,255,255,0.10);
	color: var(--text);
}

.headerCta{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.14);
	border: 1px solid rgba(255,255,255,0.18);
	color: var(--text);
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.05em;
	transition: transform 140ms ease, background 140ms ease;
}

.headerCta:hover{
	transform: translateY(-1px);
	background: rgba(255,255,255,0.18);
}

.mainContent{
	flex: 1;
}

/* IMPORTANT FIXES:
	1) hero overflow must be visible so the guest panel can extend outside the hero area
	2) hero gets a stacking order above the content section
	3) reservation bar must not clip children
*/
.hero{
	position: relative;
	min-height: 100vh;
	display: flex;
	justify-content: center;
	align-items: stretch;
	overflow: visible;
	z-index: 5;
}

.heroImage{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.02);
}

.heroOverlay{
	position: absolute;
	inset: 0;
    /*
        background: radial-gradient(900px 450px at 20% 15%, rgba(0,0,0,0.05), rgba(0,0,0,0.6)),
            linear-gradient(to bottom, rgba(0,0,0,0.55), rgba(0,0,0,0.3) 35%, rgba(0,0,0,0.75));
    */
}

.heroContent{
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--max);
	margin: 0 auto;
	padding: 110px 18px 44px 18px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
	align-content: end;
}

.heroText{
	max-width: 720px;
}

.heroTitle{
	margin: 0;
	font-size: clamp(40px, 6vw, 72px);
	letter-spacing: -0.03em;
	line-height: 1.02;
	text-transform: uppercase;
}

.heroSubtitle{
	margin: 10px 0 0 0;
	color: var(--muted);
	font-size: clamp(15px, 2.1vw, 18px);
	line-height: 1.6;
	max-width: 56ch;
}

.content{
	background: #0b0f14;
	/* padding: 36px 18px 80px 18px; */
	position: relative;
	z-index: 1;
}

.siteFooter{
	background: rgba(255,255,255,0.04);
	border-top: 1px solid rgba(255,255,255,0.10);
}

.footerInner{
	max-width: var(--max);
	margin: 0 auto;
	padding: 26px 18px;
}

.footerTop{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 18px;
	align-items: start;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(255,255,255,0.10);
}

.footerBrand{
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.footerLogo{
	width: 12px;
	height: 12px;
	border-radius: 999px;
	background: rgba(255,255,255,0.9);
	box-shadow: 0 0 0 6px rgba(255,255,255,0.10);
}

.footerName{
	font-weight: 750;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 13px;
}

.footerNavList{
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.footerLink{
	color: rgba(255,255,255,0.72);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 12px;
}

.footerLink:hover{
	color: rgba(255,255,255,0.92);
}

.footerSocial{
	display: grid;
	gap: 10px;
	justify-items: start;
}

.socialLink{
	color: rgba(255,255,255,0.72);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 12px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.socialLink:hover{
	color: rgba(255,255,255,0.92);
}

.socialDot{
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: rgba(255,255,255,0.55);
}

.footerBottom{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	flex-wrap: wrap;
}

.copyright{
	margin: 0;
	color: rgba(255,255,255,0.62);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.privacyLink{
	margin-left: auto;
}

@media (max-width: 980px){
	.footerTop{
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px){
	.navList{
		gap: 8px;
	}

	.navLink{
		padding: 8px 8px;
		font-size: 12px;
	}

	.heroContent{
		padding-top: 96px;
	}
}
