/*
Theme Name: LuxLifeExp Custom
Text Domain: luxlifeexp-custom
Description: Custom luxury event entertainment theme for LuxLifeExp.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
WPVibe: yes
*/

/* This file holds the WordPress theme header (above) plus truly global
 * rules only. Tailwind handles everything else.
 *
 * - Design tokens live in theme.css's @theme block.
 * - Prose + form styles live in presets.css.
 * - Layout, color, typography utilities come from Tailwind v4.
 *
 * Do NOT add component classes here (.btn-primary, .card, etc.). Use
 * Tailwind utilities in templates instead.
 */

html {
	scroll-behavior: smooth;
}

/* WordPress-managed primary navigation. */
.lx-primary-menu,
.lx-primary-menu .sub-menu,
.lx-mobile-menu,
.lx-mobile-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lx-primary-menu {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.lx-primary-menu > li {
	position: relative;
}

.lx-primary-menu a {
	display: block;
	color: #f6f0e6;
	text-decoration: none;
	transition: color .2s ease, background-color .2s ease;
	white-space: nowrap;
}

.lx-primary-menu > li > a {
	padding: 1.75rem 0;
}

.lx-primary-menu a:hover,
.lx-primary-menu .current-menu-item > a,
.lx-primary-menu .current-menu-ancestor > a {
	color: #d3ad5a;
}

.lx-primary-menu > li.menu-item-has-children > a::after {
	content: "▾";
	margin-left: .35rem;
	color: #d3ad5a;
	font-size: 9px;
}

.lx-primary-menu .sub-menu {
	display: none;
	position: absolute;
	left: 0;
	top: 100%;
	min-width: 250px;
	padding: .5rem;
	background: #0a0908;
	border: 1px solid rgba(211,173,90,.25);
	box-shadow: 0 18px 40px rgba(0,0,0,.45);
	z-index: 60;
}

.lx-primary-menu li:hover > .sub-menu,
.lx-primary-menu li:focus-within > .sub-menu {
	display: block;
}

.lx-primary-menu .sub-menu a {
	padding: .75rem 1rem;
}

.lx-primary-menu .sub-menu a:hover {
	background: rgba(255,255,255,.05);
}

.lx-mobile-menu > li > a {
	display: block;
	padding: .8rem 0;
	border-bottom: 1px solid rgba(255,255,255,.1);
	color: #fff;
	text-decoration: none;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.lx-mobile-menu > li.menu-item-has-children > a::after {
	content: "+";
	float: right;
	color: #d3ad5a;
	font-size: 16px;
	line-height: 1;
}

.lx-mobile-menu > li.menu-item-has-children.is-open > a::after {
	content: "−";
}

.lx-mobile-menu .sub-menu {
	display: none;
	padding: .25rem 0 .65rem 1rem;
	border-bottom: 1px solid rgba(255,255,255,.1);
}

.lx-mobile-menu > li.menu-item-has-children.is-open > .sub-menu {
	display: block;
}

.lx-mobile-menu .sub-menu a {
	display: block;
	padding: .5rem 0;
	color: rgba(255,255,255,.78);
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}

.lx-mobile-menu a:hover,
.lx-mobile-menu .current-menu-item > a {
	color: #d3ad5a;
}

/* Gallery page: WordPress-managed galleries with theme styling. */
.lx-gallery-page .lx-gallery-intro {
	max-width: 760px;
	margin: 0 auto 3rem;
	color: #655c4e;
	font-size: 1rem;
	line-height: 1.8;
}

.lx-gallery-page h2 {
	margin: 4rem 0 1.5rem;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: clamp(2.2rem, 5vw, 4rem);
	line-height: 1;
	text-align: center;
}

.lx-gallery-page .wp-block-gallery {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
}

.lx-gallery-page .wp-block-gallery .wp-block-image {
	width: 100% !important;
	margin: 0 !important;
	overflow: hidden;
	background: #111;
	aspect-ratio: 4 / 3;
}

.lx-gallery-page .wp-block-gallery .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease, opacity .35s ease;
}

.lx-gallery-page .wp-block-gallery .wp-block-image:hover img {
	transform: scale(1.035);
	opacity: .94;
}

@media (max-width: 900px) {
	.lx-gallery-page .wp-block-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.lx-gallery-page .wp-block-gallery {
		grid-template-columns: 1fr;
	}

	.lx-gallery-page .wp-block-gallery .wp-block-image {
		aspect-ratio: 5 / 4;
	}
}
