/* ==========================================================================
   Laura Baldini Performer — Custom Styles & Modern Artistic Elements
   ========================================================================== */

html, body, .body {
	max-width: 100vw;
	overflow-x: hidden !important;
}

/* Header & Logo Sizing */
.header-logo img {
	max-height: 52px;
	width: auto !important;
	object-fit: contain;
	transition: all 0.3s ease;
}

.sticky-header-active .header-logo img {
	max-height: 46px;
	width: auto !important;
}

#header .header-body {
	background: rgba(255, 255, 255, 0.95) !important;
	backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	box-shadow: 0 2px 15px rgba(0, 0, 0, 0.04);
}

@media (max-width: 991px) {
	.header-logo img {
		max-height: 42px;
	}
	#header {
		position: sticky;
		top: 0;
		background: rgba(255, 255, 255, 0.98);
	}
	.custom-section-svg .custom-section-svg-background {
		display: none;
	}
	/* Hide stray floating circles on mobile to prevent text collision */
	[data-plugin-float-element-svg] circle {
		display: none;
	}
}

/* Header & Navigation Enhancements */
#header.sticky-header-active .header-body {
	background: rgba(255, 255, 255, 0.96) !important;
	backdrop-filter: blur(12px);
	box-shadow: 0 4px 25px rgba(0, 0, 0, 0.08) !important;
}

#header .header-nav-main nav > ul.nav-pills {
	flex-wrap: nowrap !important;
	gap: 4px;
}

#header .header-nav-main nav > ul > li > a {
	font-weight: 600;
	font-size: 0.88rem !important;
	padding: 8px 10px !important;
	letter-spacing: 0.2px;
	white-space: nowrap !important;
	transition: color 0.2s ease;
}

#header .header-nav-main nav > ul > li > a:hover,
#header .header-nav-main nav > ul > li > a.active {
	color: #e65100 !important;
}

/* Smooth Scroll Offsets */
section[id], div[id] {
	scroll-margin-top: 85px;
}

.admin-nav-link {
	border-radius: 4px;
	padding: 4px 10px !important;
	font-size: 0.74rem !important;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	font-weight: 600;
	background: transparent;
	color: #78716c !important;
	border: 1px solid #d6d3d1;
	transition: all 0.2s ease;
}
.admin-nav-link:hover {
	background: #1c1917 !important;
	color: #ffffff !important;
	border-color: #1c1917 !important;
}

/* Artist Badges & Typographic Labels */
.badge-artist-pill {
	display: inline-flex;
	align-items: center;
	padding: 5px 14px;
	border-radius: 3px;
	background: rgba(194, 65, 12, 0.06);
	color: #c2410c;
	font-weight: 600;
	font-size: 0.74rem;
	letter-spacing: 2px;
	text-transform: uppercase;
	border: 1px solid rgba(194, 65, 12, 0.28);
}

.badge-artist-pill-light {
	background: rgba(255, 255, 255, 0.08);
	color: #fafaf9;
	border: 1px solid rgba(255, 255, 255, 0.25);
	backdrop-filter: blur(8px);
}

/* Serif Theatrical Typography */
.section-title-serif,
#aboutus h2,
.show-card-title {
	font-family: 'Playfair Display', Georgia, "Times New Roman", serif !important;
	letter-spacing: -0.2px;
}

/* Fire Accents & Glow */
.fire-gradient-text {
	font-family: 'Playfair Display', Georgia, "Times New Roman", serif !important;
	background: linear-gradient(135deg, #ea580c 0%, #9a3412 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 700;
}

.fire-glow {
	filter: drop-shadow(0 0 10px rgba(234, 88, 12, 0.25));
}

/* Buttons — Refined Theatrical & Editorial Style (No bulk, no icons) */
.btn-fire {
	background-color: #1c1917 !important;
	background-image: none !important;
	color: #fafaf9 !important;
	border: 1px solid #1c1917 !important;
	border-radius: 4px !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
}

.btn-fire:hover, .btn-fire:focus {
	background-color: #c2410c !important;
	border-color: #c2410c !important;
	color: #ffffff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(194, 65, 12, 0.25) !important;
}

.btn-bubble {
	background-color: #0369a1 !important;
	background-image: none !important;
	color: #ffffff !important;
	border: 1px solid #0369a1 !important;
	border-radius: 4px !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
	transition: all 0.25s ease !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
}

.btn-bubble:hover, .btn-bubble:focus {
	background-color: #0284c7 !important;
	border-color: #0284c7 !important;
	color: #ffffff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 14px rgba(2, 132, 199, 0.25) !important;
}

.btn-outline-dark {
	background-color: transparent !important;
	color: #292524 !important;
	border: 1px solid #78716c !important;
	border-radius: 4px !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	transition: all 0.25s ease !important;
}

.btn-outline-dark:hover {
	background-color: #1c1917 !important;
	color: #ffffff !important;
	border-color: #1c1917 !important;
}

/* Category Badges — Subtle Art Gallery Frames */
.show-card-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 4px 10px;
	border-radius: 3px;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	z-index: 2;
	backdrop-filter: blur(8px);
}

.badge-cat-fire {
	background: rgba(28, 25, 23, 0.85);
	color: #fed7aa;
	border: 1px solid rgba(254, 215, 170, 0.4);
}

.badge-cat-bubble {
	background: rgba(12, 74, 110, 0.85);
	color: #bae6fd;
	border: 1px solid rgba(186, 230, 253, 0.4);
}

.badge-cat-comico {
	background: rgba(69, 26, 3, 0.85);
	color: #fde68a;
	border: 1px solid rgba(253, 230, 138, 0.4);
}

.badge-cat-animazione {
	background: rgba(6, 78, 59, 0.85);
	color: #a7f3d0;
	border: 1px solid rgba(167, 243, 208, 0.4);
}

.badge-cat-wip {
	background: rgba(88, 28, 135, 0.85);
	color: #e9d5ff;
	border: 1px solid rgba(233, 213, 255, 0.4);
}

/* Category Filter Bar */
.shows-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 2.5rem;
}

.show-filter-btn {
	border: 1px solid #d6d3d1;
	background: #ffffff;
	color: #57534e;
	padding: 7px 18px;
	border-radius: 3px;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	cursor: pointer;
	transition: all 0.2s ease;
}

.show-filter-btn:hover {
	border-color: #1c1917;
	color: #1c1917;
	background: #fafaf9;
}

.show-filter-btn.active {
	background: #1c1917;
	color: #ffffff;
	border-color: #1c1917;
	box-shadow: none;
}

/* Show Cards Design — Refined Art Exhibition Framing */
.show-card {
	border: 1px solid #e7e5e4;
	border-radius: 6px;
	background: #ffffff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
}

.show-card:hover {
	border-color: #d6d3d1;
	transform: translateY(-4px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

.show-card-img-wrap {
	position: relative;
	height: 240px;
	overflow: hidden;
	border-bottom: 1px solid #f5f5f4;
}

/* Delicate gallery inner frame */
.show-card-img-wrap::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	pointer-events: none;
	transition: inset 0.3s ease, border-color 0.3s ease;
}

.show-card:hover .show-card-img-wrap::after {
	inset: 14px;
	border-color: rgba(255, 255, 255, 0.65);
}

.show-card-img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.show-card:hover .show-card-img-wrap img {
	transform: scale(1.04);
}

.show-duration-badge {
	position: absolute;
	bottom: 12px;
	right: 12px;
	background: rgba(28, 25, 23, 0.85);
	color: #fafaf9;
	padding: 3px 9px;
	border-radius: 3px;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	backdrop-filter: blur(4px);
	z-index: 2;
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.show-card-body {
	padding: 1.5rem;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	background: #ffffff;
}

.show-card-title {
	font-size: 1.4rem;
	font-weight: 700;
	color: #1c1917;
	margin-bottom: 0.35rem;
	line-height: 1.25;
}

.show-card-subtitle {
	font-size: 0.84rem;
	color: #c2410c;
	font-weight: 600;
	letter-spacing: 0.3px;
	margin-bottom: 0.85rem;
}

.show-card-desc {
	font-size: 0.92rem;
	line-height: 1.65;
	color: #57534e;
	margin-bottom: 1.25rem;
	flex-grow: 1;
}

.show-tech-info {
	background: #fafaf9;
	border: 1px solid #e7e5e4;
	border-left: 3px solid #78716c;
	border-radius: 3px;
	padding: 8px 12px;
	font-size: 0.78rem;
	color: #57534e;
	margin-bottom: 1.25rem;
}

.tech-info-label {
	font-weight: 600;
	color: #1c1917;
}

.show-card-footer {
	display: flex;
	gap: 10px;
	align-items: center;
	padding-top: 1rem;
	border-top: 1px solid #f5f5f4;
}

/* Fire Theme specifics */
.theme-fuoco {
	border-top: 2px solid #c2410c;
}

/* Bubble Theme specifics */
.theme-bolle {
	border-top: 2px solid #0284c7;
}

/* WIP Teaser Card */
.theme-wip {
	background: #181825;
	color: #cdd6f4;
	border: 1px dashed rgba(203, 166, 247, 0.45);
	border-top: 2px solid #cba6f7;
}
.theme-wip .show-card-body {
	background: #181825;
}
.theme-wip .show-card-title {
	color: #ffffff;
}
.theme-wip .show-card-subtitle {
	color: #cba6f7;
}
.theme-wip .show-card-desc {
	color: #a6adc8;
}
.theme-wip .show-tech-info {
	background: rgba(255, 255, 255, 0.05);
	color: #cdd6f4;
	border-color: #313244;
	border-left-color: #cba6f7;
}

/* Tour Calendar Section — Editorial Layout */
.tour-date-card {
	background: #ffffff;
	border-radius: 6px;
	padding: 1.25rem 1.5rem;
	border: 1px solid #e7e5e4;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
	transition: all 0.25s ease;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: 1rem;
}

.tour-date-card:hover {
	transform: translateX(4px);
	border-color: #c2410c;
	box-shadow: 0 4px 16px rgba(194, 65, 12, 0.08);
}

.date-badge-box {
	background: #fafaf9;
	color: #1c1917;
	border: 1px solid #d6d3d1;
	border-radius: 4px;
	padding: 0.6rem 0.8rem;
	text-align: center;
	min-width: 85px;
	box-shadow: none;
}

.date-badge-box .day-text {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 700;
	font-size: 1.35rem;
	color: #c2410c;
	line-height: 1;
}

.date-badge-box .month-text {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #78716c;
	font-weight: 600;
	margin-top: 3px;
}

.tour-info-box {
	flex-grow: 1;
}

.tour-city-title {
	font-family: 'Playfair Display', Georgia, serif;
	font-weight: 700;
	font-size: 1.2rem;
	color: #1c1917;
	margin-bottom: 2px;
}

.tour-location-text {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 0.85rem;
	color: #78716c;
	font-weight: 400;
}

.tour-event-sub {
	color: #57534e;
	font-size: 0.88rem;
	font-weight: 500;
}

.tour-show-pill {
	display: inline-block;
	background: #fafaf9;
	color: #57534e;
	font-weight: 500;
	padding: 3px 10px;
	border-radius: 3px;
	font-size: 0.8rem;
	border: 1px solid #e7e5e4;
}

/* Gallery Section */
.section-gallery-modern {
	background: #111827 !important;
}

/* Callout Box for Booking Dates — Framed Theater Box */
.booking-callout {
	background: #1c1917;
	border: 1px solid #292524;
	border-radius: 6px;
	color: #fafaf9;
	padding: 2.5rem;
	position: relative;
	overflow: hidden;
}

.booking-callout::before {
	content: "";
	position: absolute;
	inset: 8px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	pointer-events: none;
	border-radius: 4px;
}

/* Artistic Highlights in Bio */
.bio-highlights-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	padding: 16px 0;
	border-top: 1px solid #e7e5e4;
	border-bottom: 1px solid #e7e5e4;
}

.bio-stat-item {
	text-align: left;
	border-left: 2px solid #c2410c;
	padding-left: 12px;
}

.bio-stat-num {
	display: block;
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 1.6rem;
	font-weight: 700;
	color: #1c1917;
	line-height: 1.1;
}

.bio-stat-txt {
	font-size: 0.72rem;
	letter-spacing: 0.5px;
	color: #78716c;
	text-transform: uppercase;
	font-weight: 600;
}

/* Hero Highlight Disciplines */
.artist-discipline-tag {
	display: inline-block;
	padding: 5px 12px;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.8px;
	color: #44403c;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid #d6d3d1;
	border-radius: 3px;
}

/* Hero Content & Text Layout */
.custom-section-svg {
	position: relative;
	background: #EFF1F3;
	min-height: 740px;
}

@media (min-width: 992px) {
	.custom-section-svg > .container {
		position: absolute;
		top: 130px;
		left: 50%;
		transform: translate3d(-50%, 0, 0);
		z-index: 5;
	}
}

.hero-content-container {
	position: relative;
	z-index: 5;
}

.hero-text-col {
	max-width: 620px;
}

/* Bio Content Contrast & Readability */
.custom-bio-body {
	font-size: 1rem !important;
	line-height: 1.8 !important;
	color: #334155 !important;
}

/* Mobile Responsive Refinements */
@media (max-width: 991px) {
	.custom-section-svg {
		display: flex !important;
		flex-direction: column !important;
		padding-top: 85px !important;
		min-height: auto !important;
	}
	.custom-section-svg > .container {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		transform: none !important;
		padding-top: 0.5rem !important;
		padding-bottom: 2rem !important;
		width: 100% !important;
	}
	.custom-section-svg > svg {
		position: relative !important;
		width: 100% !important;
		height: auto !important;
		max-height: 320px !important;
		left: 0 !important;
		transform: none !important;
	}
	/* Ensure all content is immediately visible on mobile */
	.appear-animation {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}
	/* Hide floating circles on mobile */
	svg [data-plugin-float-element],
	svg [data-plugin-float-element-svg],
	[data-plugin-float-element-svg] circle {
		display: none !important;
	}
	#home h1 {
		font-size: 2.1rem !important;
		line-height: 1.25 !important;
		margin-top: 0.5rem !important;
		margin-bottom: 0.5rem !important;
	}
	#home h2 {
		font-size: 1.3rem !important;
	}
	#home .btn {
		width: 100% !important;
		margin-bottom: 0.5rem !important;
	}
}

@media (max-width: 767px) {
	.tour-date-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
		padding: 1.25rem;
	}
	.date-badge-box {
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 8px;
		padding: 0.5rem;
	}
	.tour-action-box {
		width: 100%;
	}
	.tour-action-box .btn {
		width: 100%;
	}
	.booking-callout {
		padding: 1.75rem;
		text-align: center;
	}
	.booking-callout .btn {
		width: 100%;
	}
}
