:root {
	--gold: #D4AF37;
	--gold-light: #FFD700;
	--black: #09090b;
}

body {
	font-family: 'Montserrat', sans-serif;
	overflow-x: hidden;
}

h1,
h2,
h3 {
	font-family: 'Playfair Display', serif;
}

.shining-text {
	background: linear-gradient(to right, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	background-size: 200% auto;
	animation: shine 5s linear infinite;
}

.gold-shine {
	background: linear-gradient(90deg, #D4AF37 0%, #FFF8E1 25%, #FFDF00 50%, #FFF8E1 75%, #D4AF37 100%);
	background-size: 200% auto;
	color: transparent;
	-webkit-background-clip: text;
	background-clip: text;
	animation: shine 4s linear infinite;
}

@keyframes shine {
	to {
		background-position: 200% center;
	}
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animate-fade-in-up {
	animation: fadeInUp 0.8s ease-out forwards;
}

@keyframes slowZoom {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.1);
	}
}

.animate-slow-zoom {
	animation: slowZoom 20s linear infinite alternate;
}

::selection {
	background: var(--gold);
	color: #000;
}

.text-gold {
	color: var(--gold);
}

.bg-gold {
	background-color: var(--gold);
}

.border-gold {
	border-color: var(--gold);
}

.glass-nav {
	background: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(20px);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.glass-nav.scrolled {
	background: rgba(0, 0, 0, 0.95);
	padding-top: 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid #D4AF37;
}

.btn-3d {
	position: relative;
	padding: 12px 32px;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 2px;
	color: #000;
	background: linear-gradient(180deg, #FFD700 0%, #B8860B 100%);
	border-radius: 4px;
	text-transform: uppercase;
	overflow: hidden;
	transition: all 0.3s ease;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 4px 0 #8B6508, 0 10px 10px rgba(0, 0, 0, 0.5);
}

.btn-3d:active {
	transform: translateY(4px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 0 #8B6508, 0 2px 2px rgba(0, 0, 0, 0.5);
}

.btn-3d:hover {
	filter: brightness(1.1);
}

.btn-3d .glow {
	position: absolute;
	top: 0;
	left: -100%;
	width: 50%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
	transform: skewX(-20deg);
	animation: glow-sweep 3s infinite;
}

@keyframes glow-sweep {
	0% {
		left: -100%;
	}

	20% {
		left: 200%;
	}

	100% {
		left: 200%;
	}
}

.nav-item a {
	position: relative;
	transition: color 0.3s ease;
}

.nav-item a:hover {
	color: #D4AF37;
	text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}

.nav-item a::after {
	content: '';
	position: absolute;
	bottom: -5px;
	left: 0;
	width: 0%;
	height: 2px;
	background: #D4AF37;
	transition: width 0.3s ease;
	box-shadow: 0 0 10px #D4AF37;
}

.nav-item a:hover::after {
	width: 100%;
}

.glass-mobile {
	background: rgba(0, 0, 0, 0.95);
	backdrop-filter: blur(15px);
	height: 100vh;
}

.hero-title-3d {
	font-family: 'Oswald', sans-serif;
	color: #FFD700;
	background: linear-gradient(to bottom, #FFF 0%, #FFD700 20%, #B8860B 50%, #FFD700 80%, #8B6508 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-shadow: 0px 2px 0px #8B6508, 0px 4px 0px #a37f05, 0px 6px 0px #826504, 0px 8px 0px #614b03, 0px 10px 0px #403202, 0px 12px 20px rgba(0, 0, 0, 0.8);
	filter: drop-shadow(0 0 5px rgba(255, 215, 0, 0.5));
	transition: transform 0.3s ease;
}

.hero-title-3d:hover {
	transform: scale(1.02);
}

.btn-prime {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 20px 50px;
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #000;
	background: linear-gradient(180deg, #FFD700 0%, #FDB931 50%, #D4AF37 100%);
	border: 1px solid #FFE44D;
	border-radius: 4px;
	box-shadow: 0 8px 0 #8B6508, 0 15px 20px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.5);
	transition: all 0.1s ease;
	cursor: pointer;
}

.btn-prime:active {
	transform: translateY(8px);
	box-shadow: 0 0 0 #8B6508, inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.btn-prime:hover {
	filter: brightness(1.1);
}

.btn-glass {
	padding: 18px 50px;
	font-family: 'Oswald', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #FFF;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(10px);
	transition: all 0.3s ease;
}

.btn-glass:hover {
	background: rgba(255, 215, 0, 0.1);
	border-color: #FFD700;
	color: #FFD700;
	box-shadow: 0 0 20px rgba(255, 215, 0, 0.2);
}

.service-card-premium {
	position: relative;
	height: 500px;
	overflow: hidden;
	background: #09090b;
	box-shadow: 0 0 0 rgba(0, 0, 0, 0);
	transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.service-card-premium:hover {
	transform: translateY(-10px);
	box-shadow: 0 20px 40px -5px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(212, 175, 55, 0.3);
}

.service-card-premium h3 {
	font-family: 'Oswald', sans-serif;
	letter-spacing: 1px;
	line-height: 1;
}

.membership-card {
	position: relative;
	height: 500px;
	transition: transform 0.3s ease;
}

.membership-card:hover {
	transform: translateY(-5px);
}

.membership-card-gold {
	position: relative;
	height: 540px;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.9);
	transition: transform 0.3s ease;
}

.membership-card-gold:hover {
	transform: translateY(-10px) scale(1.02);
}

.font-oswald {
	font-family: 'Oswald', sans-serif;
}

.glass-card {
	background: rgba(9, 9, 11, 0.6);
	backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.05);
}

@media (max-width: 1200px) {
	.glass-nav {
		padding: 10px 20px;
	}

	.gold-shine,
	.hero-title-3d {
		font-size: 4rem;
	}
}

@media (max-width: 992px) {

	.membership-card,
	.service-card-premium {
		height: auto;
		min-height: 450px;
	}

	.membership-card-gold {
		height: auto;
		min-height: 500px;
	}
}

@media (max-width: 768px) {

	.service-card-premium.transform,
	.membership-card-gold.transform {
		transform: none !important;
		margin-top: 0 !important;
		margin-bottom: 24px;
	}

	.membership-card-gold {
		height: auto;
		box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
	}

	.gold-shine {
		font-size: 3rem;
		line-height: 1.1;
	}

	.hero-title-3d {
		font-size: 2.5rem;
	}

	.service-card-premium {
		height: 350px;
	}

	section {
		padding-top: 60px;
		padding-bottom: 60px;
	}

	#booking .glass-card {
		padding: 20px;
	}

	footer {
		text-align: center;
	}

	footer .grid {
		gap: 40px;
	}

	footer .flex.justify-start {
		justify-content: center;
	}
}

@media (max-width: 480px) {
	.gold-shine {
		font-size: 2.2rem;
	}

	#home .flex {
		flex-direction: column;
		width: 100%;
	}

	#home a {
		width: 100%;
		text-align: center;
		padding: 12px;
	}

	.glass-nav {
		padding: 8px 15px;
	}

	.btn-3d {
		padding: 10px 20px;
	}
}

@media (min-width: 1536px) {
	.max-w-7xl {
		max-width: 1400px;
	}

	.hero-title-3d {
		font-size: 8rem;
	}
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.overflow-x-auto {
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.overflow-x-auto::-webkit-scrollbar {
	display: none;
}

@media screen and (max-width: 1080px) {
	.max-w-7xl {
		padding-left: 20px;
		padding-right: 20px;
	}

	.grid.lg\:grid-cols-12 {
		gap: 30px;
	}

	h2.text-5xl {
		font-size: 2.5rem;
	}

	table td,
	table th {
		padding: 15px 10px;
		font-size: 0.85rem;
	}
}

@media screen and (max-width: 780px) {
	.grid.lg\:grid-cols-12 {
		display: flex;
		flex-direction: column;
	}

	.lg\:col-span-4 {
		width: 100%;
		margin-bottom: 40px;
		position: relative !important;
		top: 0 !important;
		text-align: center;
	}

	.lg\:col-span-4 .bg-gold {
		margin: 0 auto 20px auto;
	}

	thead {
		display: none;
	}

	tbody tr {
		display: flex;
		flex-direction: column;
		background: rgba(255, 255, 255, 0.03);
		border: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 12px;
		margin-bottom: 15px;
		padding: 20px;
		position: relative;
	}

	tbody td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 8px 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.05);
		width: 100%;
	}

	tbody td:last-child {
		border-bottom: none;
	}

	tbody td:nth-child(2)::before {
		content: "Time:";
		color: #aaa;
		font-size: 0.8rem;
	}

	tbody td:nth-child(3)::before {
		content: "Class:";
		color: #aaa;
		font-size: 0.8rem;
	}

	tbody td:nth-child(4)::before {
		content: "Room:";
		color: #aaa;
		font-size: 0.8rem;
	}

	tbody td:nth-child(1) {
		justify-content: center;
		font-size: 1.5rem;
		color: #D4AF37;
		border-bottom: 1px solid rgba(212, 175, 55, 0.2);
		padding-bottom: 15px !important;
		margin-bottom: 10px;
	}
}

@media screen and (max-width: 400px) {
	h2.text-5xl {
		font-size: 2rem;
	}

	h4.tracking-\[0\.5em\] {
		letter-spacing: 0.2em;
	}

	tbody td {
		font-size: 0.9rem;
	}

	tbody tr {
		padding: 15px;
	}

	.blur-\[120px\],
	.blur-\[100px\] {
		opacity: 0.3;
		width: 200px;
		height: 200px;
	}
}

@media screen and (max-width: 250px) {
	tbody td {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}

	tbody td::before {
		font-size: 0.65rem;
		opacity: 0.7;
	}

	h2 span.gold-shine {
		font-size: 1.5rem;
	}

	.lg\:col-span-4 img {
		display: none;
	}

	.lg\:col-span-4 .bg-black\/80 {
		position: relative;
		bottom: auto;
		left: auto;
		margin-top: 10px;
		text-align: center;
	}
}

@media screen and (min-width: 401px) and (max-width: 1100px) {

	.grid.lg\:grid-cols-12 {
		display: flex !important;
		flex-direction: column;
		gap: 40px;
	}

	.lg\:col-span-4 {
		width: 100%;
		text-align: center;
		position: relative !important;
		top: 0 !important;
	}

	.lg\:col-span-4 .relative.group.rounded-xl {
		max-width: 450px;
		width: 90%;
		margin: 0 auto;
	}

	.w-20.h-1.bg-gold {
		margin: 0 auto 2rem auto;
	}

	.border-l-2.border-white\/10 {
		border-left: none;
		padding-left: 0;
	}

	.lg\:col-span-8 {
		width: 100%;
		max-width: 100%;
	}

	.glass-card {
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
	}
}

@media screen and (max-width: 350px) {

	.membership-card .p-10,
	.membership-card-gold .p-10 {
		padding: 20px !important;
	}

	.text-4xl,
	.text-5xl {
		font-size: 1.8rem !important;
	}

	.membership-card-gold h3.text-4xl {
		font-size: 2rem !important;
	}

	button {
		padding-top: 12px !important;
		padding-bottom: 12px !important;
		font-size: 0.65rem !important;
	}

	.max-w-7xl.mx-auto.px-6 {
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
}

@media screen and (max-width: 1024px) {
	footer.pt-24 {
		padding-top: 4rem !important;
		padding-bottom: 2rem !important;
	}

	.blur-\[100px\] {
		width: 100% !important;
		height: 200px !important;
		filter: blur(80px);
	}
}

@media screen and (max-width: 768px) {

	footer .grid.md\:grid-cols-4 {
		display: flex;
		flex-direction: column;
		text-align: center;
		gap: 40px;
		margin-bottom: 30px;
	}

	.md\:col-span-1 .flex {
		justify-content: center;
		margin-top: 10px;
	}

	.md\:col-span-1 p {
		margin-left: auto;
		margin-right: auto;
	}

	footer ul {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 0;
	}

	footer .flex.gap-4 {
		justify-content: center;
		margin-top: 10px;
	}

	footer ul li.flex {
		justify-content: center;
		text-align: left;
	}

	.flex.flex-col.md\:flex-row {
		gap: 25px;
	}

	marquee {
		width: 100%;
		max-width: 300px;
	}
}

@media screen and (max-width: 400px) {

	.text-3xl.font-black {
		font-size: 1.5rem !important;
		letter-spacing: 0.1em;
	}

	.w-12.h-12 {
		width: 40px;
		height: 40px;
		font-size: 14px;
	}

	footer ul li {
		margin-bottom: 5px;
	}

	#backToTop {
		padding: 10px;
		background: rgba(255, 255, 255, 0.05);
		border-radius: 50px;
		width: 100%;
		justify-content: center;
	}
}

@media screen and (min-width: 250px) and (max-width: 750px) {

	footer .grid.md\:grid-cols-4 {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 30px 15px !important;
		text-align: left !important;
		margin-bottom: 20px;
	}

	footer ul,
	footer .flex.gap-4,
	footer ul li.flex,
	.md\:col-span-1 p {
		align-items: flex-start !important;
		justify-content: flex-start !important;
		text-align: left !important;
		margin-left: 0 !important;
	}

	.w-12.h-12 {
		width: 38px !important;
		height: 38px !important;
		font-size: 14px !important;
	}

	.flex.flex-col.md\:flex-row {
		flex-direction: column-reverse !important;
		gap: 20px;
		text-align: center;
	}
}

@media screen and (min-width: 250px) and (max-width: 350px) {

	footer .grid.md\:grid-cols-4 {
		display: flex !important;
		flex-direction: column !important;
		gap: 35px !important;
		text-align: center !important;
		padding-bottom: 20px !important;
		border-bottom: none !important;
	}

	footer ul,
	footer .flex.gap-4,
	footer ul li.flex {
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
	}

	.md\:col-span-1 p {
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: 90%;
	}

	.md\:col-span-1 .flex {
		justify-content: center !important;
	}

	footer ul li.flex.gap-3 {
		gap: 0.5rem !important;
		flex-direction: column;
	}

	.w-12.h-12 {
		width: 40px !important;
		height: 40px !important;
	}

	footer.pt-24 {
		padding-top: 3rem !important;
		padding-bottom: 1rem !important;
	}

	.max-w-7xl.mx-auto.px-6 {
		padding-left: 15px !important;
		padding-right: 15px !important;
	}
}

@media screen and (max-width: 350px) {

	#navbar a.text-3xl {
		font-size: 1.2rem !important;
		letter-spacing: 0.05em !important;
		white-space: nowrap;
	}

	#navbar .px-6 {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}
}