/*
Theme Name: Las Vegas Jam Band Society
Theme URI: https://lvjbs.org
Author: LVJBS Team
Author URI: https://lvjbs.org
Description: A WordPress block theme for the Las Vegas Jam Band Society, focused on nonprofit membership, events, community news, and merchandise. Features Full Site Editing with locked patterns for non-technical editors.
Version: 1.5.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lvjbs
Tags: block-theme, full-site-editing, nonprofit, events, membership, woocommerce

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.
*/

/* Additional custom styles */

/* Focus states for accessibility */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
	outline: 2px solid var(--wp--preset--color--magenta);
	outline-offset: 2px;
}

/* Skip to content link for accessibility */
.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	background: var(--wp--preset--color--magenta);
	color: var(--wp--preset--color--white);
	padding: 8px 16px;
	text-decoration: none;
	z-index: 100000;
}

.skip-link:focus {
	top: 0;
}

/* Ensure images are responsive */
img {
	height: auto;
	max-width: 100%;
}

/* WooCommerce compatibility */
.woocommerce-page .woocommerce,
.woocommerce {
	font-family: var(--wp--preset--font-family--nunito);
}

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	background-color: var(--wp--preset--color--magenta);
	color: var(--wp--preset--color--white);
	border-radius: 8px;
	padding: 0.75rem 1.5rem;
	font-weight: 700;
	border: none;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background-color: var(--wp--preset--color--orange);
}

.woocommerce .price,
.woocommerce .amount {
	color: var(--wp--preset--color--magenta);
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--magenta);
}

.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--wp--preset--color--magenta);
	color: var(--wp--preset--color--white);
}

/* Event meta styling */
.event-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 1.5rem 0;
	padding: 1rem;
	background: var(--wp--preset--color--cream);
	border-left: 4px solid var(--wp--preset--color--magenta);
}

.event-meta-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.event-meta-label {
	font-weight: 700;
	color: var(--wp--preset--color--magenta);
}

/* Venue card styling */
.venue-card {
	border: 2px solid var(--wp--preset--color--cream);
	border-radius: 8px;
	padding: 1.5rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.venue-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 16px rgba(196, 20, 122, 0.15);
	border-color: var(--wp--preset--color--magenta);
}

/* Sponsor grid styling */
.sponsor-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 2rem;
	align-items: center;
	justify-items: center;
}

.sponsor-logo {
	max-width: 200px;
	filter: grayscale(100%);
	opacity: 0.7;
	transition: filter 0.3s ease, opacity 0.3s ease;
}

.sponsor-logo:hover {
	filter: grayscale(0%);
	opacity: 1;
}

/* Donation CTA styling */
.donation-cta {
	background: linear-gradient(135deg, var(--wp--preset--color--magenta) 0%, var(--wp--preset--color--orange) 100%);
	color: var(--wp--preset--color--white);
	padding: 3rem 2rem;
	border-radius: 12px;
	text-align: center;
}

.donation-cta h2,
.donation-cta h3,
.donation-cta p {
	color: var(--wp--preset--color--white);
}

/* Mobile navigation toggle */
.mobile-nav-toggle {
	display: none;
}

@media (max-width: 768px) {
	.mobile-nav-toggle {
		display: block;
	}
	
	.desktop-nav {
		display: none;
	}
}

/* Print styles */
@media print {
	.no-print,
	header,
	footer,
	.wp-block-navigation {
		display: none;
	}
}

/* ===== Artist Page: Upcoming Events Section ===== */
.lvjbs-artist-upcoming-events {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 2px solid var(--wp--preset--color--orange, #E65100);
}

.lvjbs-artist-upcoming-heading {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--wp--preset--color--orange, #E65100);
	margin-bottom: 1.25rem;
}

.lvjbs-artist-event-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.lvjbs-artist-event-item {
	background: #fff;
	border: 1px solid #e8e0d8;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	transition: box-shadow 0.2s ease;
}

.lvjbs-artist-event-item:hover {
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.lvjbs-artist-event-date {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--magenta, #FF1493);
	margin-bottom: 0.3rem;
}

.lvjbs-artist-event-title {
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 0.2rem;
}

.lvjbs-artist-event-title a {
	color: var(--wp--preset--color--charcoal, #2d2d2d);
	text-decoration: none;
}

.lvjbs-artist-event-title a:hover {
	color: var(--wp--preset--color--magenta, #FF1493);
	text-decoration: underline;
}

.lvjbs-artist-event-venue {
	font-size: 0.875rem;
	color: #666;
}

@media (max-width: 600px) {
	.lvjbs-artist-event-item {
		padding: 0.875rem 1rem;
	}
}

/* ============================================================
   LVJBS SINGLE EVENT PAGE (tribe-events/single-event.php)
   ============================================================ */

.lvjbs-single-event-page {
	padding: 0 0 3rem;
}

.lvjbs-event-container {
	max-width: 860px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* Title */
.lvjbs-event-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	color: var(--wp--preset--color--magenta, #C4147A);
	text-align: center;
	margin: 2rem 0 0.75rem;
}

.lvjbs-event-badge-wrapper {
	text-align: center;
	margin-bottom: 1.25rem;
}

/* Summary card */
.lvjbs-event-summary-card {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.75rem 2rem;
	margin-bottom: 2rem;
}

.lvjbs-event-meta-row {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin: 0 0 0.75rem;
}

.lvjbs-meta-icon {
	flex-shrink: 0;
	font-size: 1.1rem;
}

.lvjbs-event-cost .lvjbs-meta-text {
	color: var(--wp--preset--color--orange, #E65100);
	font-size: 1.2rem;
}

.lvjbs-ticket-btn-wrapper {
	margin-top: 1.25rem;
	text-align: center;
}

.lvjbs-ticket-btn {
	display: inline-block;
	background: var(--wp--preset--color--orange, #E65100);
	color: #fff;
	font-size: 1.1rem;
	font-weight: 700;
	padding: 0.75rem 2rem;
	border-radius: 50px;
	text-decoration: none;
	transition: background 0.2s;
}

.lvjbs-ticket-btn:hover {
	background: #bf4500;
	color: #fff;
}

/* Featured image */
.lvjbs-event-featured-image {
	margin-bottom: 2rem;
}

.lvjbs-event-featured-image img {
	border-radius: 12px;
	width: 100%;
	height: auto;
}

/* Section headings */
.lvjbs-section-heading {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin: 0 0 1rem;
}

.lvjbs-section-heading--magenta {
	color: var(--wp--preset--color--magenta, #C4147A);
}

/* About event */
.lvjbs-event-about {
	margin-bottom: 2rem;
}

.lvjbs-event-content {
	font-size: 1rem;
	line-height: 1.7;
}

/* Artist card */
.lvjbs-artist-section {
	margin-bottom: 2rem;
}

.lvjbs-artist-card {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.5rem;
}

.lvjbs-artist-card-name {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
}

.lvjbs-artist-bio {
	font-size: 1rem;
	line-height: 1.7;
	margin: 0.75rem 0;
}

.lvjbs-artist-photo {
	margin-bottom: 1rem;
}

/* Divider */
.lvjbs-divider {
	border: none;
	border-top: 2px solid var(--wp--preset--color--orange, #E65100);
	margin: 2rem 0;
}

/* Venue card */
.lvjbs-venue-section {
	margin-bottom: 2rem;
}

.lvjbs-venue-card {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.5rem;
}

.lvjbs-venue-card-name {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 1rem;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
}

.lvjbs-venue-detail {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	font-size: 1rem;
	margin: 0 0 0.6rem;
}

.lvjbs-venue-detail a {
	color: var(--wp--preset--color--magenta, #C4147A);
	word-break: break-all;
}

.lvjbs-venue-map {
	margin-top: 1.25rem;
	border-radius: 8px;
	overflow: hidden;
}

/* Share section */
.lvjbs-share-section {
	margin-bottom: 2rem;
}

.lvjbs-share-icons {
	display: flex;
	gap: 0.75rem;
}

.lvjbs-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--wp--preset--color--magenta, #C4147A);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s, transform 0.2s;
}

.lvjbs-share-btn:hover {
	background: #a0105f;
	transform: scale(1.08);
	color: #fff;
}

/* Back button */
.lvjbs-back-btn-wrapper {
	text-align: center;
	margin-top: 1rem;
}

.lvjbs-back-btn {
	display: inline-block;
	background: var(--wp--preset--color--charcoal, #2D2D2D);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	padding: 0.65rem 1.75rem;
	border-radius: 50px;
	text-decoration: none;
	transition: background 0.2s;
}

.lvjbs-back-btn:hover {
	background: #111;
	color: #fff;
}

/* Hide TEC's default output wrappers that may still render */
.tribe-events-pg-template .tribe-events-single:not(.lvjbs-single-event-page) {
	display: none;
}

/* ============================================================
   SHORTCODE-BASED SINGLE EVENT PAGE STYLES
   ============================================================ */

/* Summary bar */
.lvjbs-event-summary-bar {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	margin-bottom: 1.5rem;
}

.lvjbs-event-summary-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1rem;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
}

.lvjbs-event-summary-item a {
	color: var(--wp--preset--color--magenta, #C4147A);
	text-decoration: none;
	font-weight: 600;
}

.lvjbs-event-summary-item a:hover {
	text-decoration: underline;
}

.lvjbs-summary-icon {
	font-size: 1.1rem;
	flex-shrink: 0;
}

.lvjbs-event-free {
	color: var(--wp--preset--color--orange, #E65100);
	font-weight: 700;
}

/* Tickets button */
.lvjbs-event-tickets-wrap {
	text-align: center;
	margin: 1rem 0 1.5rem;
}

.lvjbs-btn-tickets {
	display: inline-block;
	background: var(--wp--preset--color--orange, #E65100);
	color: #fff !important;
	font-size: 1.1rem;
	font-weight: 700;
	padding: 0.75rem 2rem;
	border-radius: 50px;
	text-decoration: none !important;
	transition: background 0.2s;
}

.lvjbs-btn-tickets:hover {
	background: #bf4500;
}

/* LVJBS Event banner */
.lvjbs-event-banner {
	background: var(--wp--preset--color--magenta, #C4147A);
	color: #fff;
	text-align: center;
	padding: 0.5rem 1rem;
	border-radius: 50px;
	display: inline-block;
	margin-bottom: 1rem;
}

.lvjbs-event-banner-text {
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Artist section */
.lvjbs-event-artist-section {
	margin: 2rem 0;
}

.lvjbs-artist-card {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.5rem;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
}

.lvjbs-artist-card-photo {
	flex-shrink: 0;
	width: 140px;
}

.lvjbs-artist-card-photo img {
	width: 140px;
	height: 140px;
	object-fit: cover;
	border-radius: 8px;
}

.lvjbs-artist-card-info {
	flex: 1;
	min-width: 0;
}

.lvjbs-artist-card-name {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 0.75rem;
}

.lvjbs-artist-card-name a {
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	text-decoration: none;
}

.lvjbs-artist-card-name a:hover {
	color: var(--wp--preset--color--magenta, #C4147A);
}

.lvjbs-artist-card-bio {
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin: 0.75rem 0;
}

.lvjbs-artist-card-bio p {
	margin: 0 0 0.75rem;
}

@media (max-width: 600px) {
	.lvjbs-artist-card {
		flex-direction: column;
	}
	.lvjbs-artist-card-photo {
		width: 100%;
	}
	.lvjbs-artist-card-photo img {
		width: 100%;
		height: auto;
	}
}

/* Event divider */
.lvjbs-event-divider {
	border: none;
	border-top: 2px solid var(--wp--preset--color--orange, #E65100);
	margin: 2rem 0;
}

/* Venue section */
.lvjbs-event-venue-section {
	margin: 2rem 0;
}

.lvjbs-venue-card {
	background: var(--wp--preset--color--cream, #F9F6F2);
	border-radius: 8px;
	padding: 1.5rem;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	flex-wrap: wrap;
}

.lvjbs-venue-card-info {
	flex: 1;
	min-width: 200px;
}

.lvjbs-venue-name {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin-bottom: 0.5rem;
}

.lvjbs-venue-address {
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin-bottom: 0.75rem;
}

.lvjbs-venue-map-link {
	color: var(--wp--preset--color--magenta, #C4147A);
	font-weight: 600;
	text-decoration: none;
}

.lvjbs-venue-map-link:hover {
	text-decoration: underline;
}

.lvjbs-venue-phone,
.lvjbs-venue-website {
	font-size: 0.95rem;
	margin-bottom: 0.5rem;
}

.lvjbs-venue-phone a,
.lvjbs-venue-website a {
	color: var(--wp--preset--color--magenta, #C4147A);
	text-decoration: none;
}

.lvjbs-venue-phone a:hover,
.lvjbs-venue-website a:hover {
	text-decoration: underline;
}

.lvjbs-venue-map {
	flex: 1;
	min-width: 240px;
	border-radius: 8px;
	overflow: hidden;
}

.lvjbs-venue-map iframe {
	display: block;
	width: 100%;
	min-height: 220px;
	border-radius: 8px;
}

@media (max-width: 600px) {
	.lvjbs-venue-card {
		flex-direction: column;
	}
	.lvjbs-venue-map {
		width: 100%;
	}
}

/* Artist upcoming events section */
.lvjbs-artist-upcoming-events {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 3px solid var(--wp--preset--color--orange, #E65100);
}

.lvjbs-artist-upcoming-heading {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	margin: 0 0 1rem;
}

.lvjbs-artist-event-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.lvjbs-artist-event-item {
	padding: 0.75rem 0;
	border-bottom: 1px solid rgba(0,0,0,0.08);
}

.lvjbs-artist-event-item:last-child {
	border-bottom: none;
}

.lvjbs-artist-event-date {
	font-size: 0.85rem;
	color: var(--wp--preset--color--magenta, #C4147A);
	font-weight: 600;
	margin-bottom: 0.2rem;
}

.lvjbs-artist-event-title a {
	font-size: 1rem;
	font-weight: 700;
	color: var(--wp--preset--color--charcoal, #2D2D2D);
	text-decoration: none;
}

.lvjbs-artist-event-title a:hover {
	color: var(--wp--preset--color--magenta, #C4147A);
}

.lvjbs-artist-event-venue {
	font-size: 0.9rem;
	color: #666;
}

/* Reduce gap between "About This Event" heading and artist card */
.wp-block-post-content h2.wp-block-heading + .lvjbs-event-artist-section,
.wp-block-post-content h2.wp-block-heading + [class*="lvjbs-event-artist"],
.entry-content h2 + .lvjbs-event-artist-section {
	margin-top: 0.5rem;
}

/* Tighten the spacer block that sits between the heading and the shortcode */
.wp-block-post-content .wp-block-spacer {
	height: 0.5rem !important;
}

/* Target the specific gap: heading margin-bottom when followed by artist section */
.lvjbs-event-artist-section {
	margin-top: 0.5rem;
}

/* ============================================================
   TEC EVENTS LIST VIEW — BRAND OVERRIDES
   ============================================================ */

/* Inherit site fonts throughout TEC views */
.tribe-common,
.tribe-events,
.tribe-common *,
.tribe-events * {
	font-family: var(--wp--preset--font-family--body, inherit) !important;
}

/* "Find Events" primary button → orange pill */
.tribe-common-c-btn.tribe-events-c-search__button,
.tribe-events-c-search__button {
	background-color: var(--wp--preset--color--orange, #E65100) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 50px !important;
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	font-weight: 700 !important;
	padding: 0.65rem 1.5rem !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: background 0.2s !important;
}
.tribe-common-c-btn.tribe-events-c-search__button:hover,
.tribe-events-c-search__button:hover {
	background-color: #bf4500 !important;
}

/* "Subscribe to calendar" border button → magenta outline */
.tribe-common-c-btn-border.tribe-events-c-subscribe-dropdown__button,
.tribe-events-c-subscribe-dropdown__button {
	border-color: var(--wp--preset--color--magenta, #C4147A) !important;
	color: var(--wp--preset--color--magenta, #C4147A) !important;
	border-radius: 50px !important;
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.tribe-common-c-btn-border.tribe-events-c-subscribe-dropdown__button:hover,
.tribe-events-c-subscribe-dropdown__button:hover {
	background-color: var(--wp--preset--color--magenta, #C4147A) !important;
	color: #fff !important;
}

/* "Today" nav link → match site link style */
.tribe-events-c-nav__today {
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
	border: 1px solid #ccc !important;
	border-radius: 50px !important;
	padding: 0.35rem 1rem !important;
	font-weight: 600 !important;
	text-decoration: none !important;
}
.tribe-events-c-nav__today:hover {
	border-color: var(--wp--preset--color--magenta, #C4147A) !important;
	color: var(--wp--preset--color--magenta, #C4147A) !important;
}

/* Prev/Next nav buttons → magenta */
.tribe-events-c-nav__prev,
.tribe-events-c-nav__next {
	color: var(--wp--preset--color--magenta, #C4147A) !important;
}
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover {
	color: #a0105f !important;
}

/* "Previous Events" / "Next Events" pagination links */
.tribe-events-c-nav__list-nav-link,
.tribe-events-c-nav__list-nav-link-label {
	color: var(--wp--preset--color--magenta, #C4147A) !important;
	font-weight: 600 !important;
}

/* List / Month view selector tabs */
.tribe-events-c-view-selector__button {
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
	font-weight: 600 !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__button,
.tribe-events-c-view-selector__button[aria-selected="true"] {
	color: var(--wp--preset--color--magenta, #C4147A) !important;
	border-bottom-color: var(--wp--preset--color--magenta, #C4147A) !important;
}

/* Event title link → magenta on hover */
.tribe-events-calendar-list__event-title-link {
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}
.tribe-events-calendar-list__event-title-link:hover {
	color: var(--wp--preset--color--magenta, #C4147A) !important;
}

/* Date/time text */
.tribe-events-calendar-list__event-datetime {
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
}

/* "Featured" label → orange */
.tribe-event-featured-image-link,
.tribe-events-calendar-list__event-featured-image-link,
abbr.tribe-events-abbr.tribe-events-start-datetime,
.tribe-events-calendar-list__event-featured-label {
	color: var(--wp--preset--color--orange, #E65100) !important;
}

/* Month name / date heading */
.tribe-events-calendar-list__month-separator-text,
.tribe-events-calendar-list__month-separator {
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
	font-weight: 700 !important;
}

/* Search input */
.tribe-events-c-search__input-control-input,
#tribe-events-events-bar-keyword {
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	border-radius: 4px !important;
}

/* "Upcoming" dropdown button */
.tribe-events-c-top-bar__datepicker-button,
.tribe-events-c-top-bar__datepicker {
	font-family: var(--wp--preset--font-family--body, inherit) !important;
	font-weight: 600 !important;
	color: var(--wp--preset--color--charcoal, #2D2D2D) !important;
}

/* ============================================================
   HEADER LOGO SIZE FIX
   ============================================================ */

.wp-block-site-logo {
	line-height: 0;
}
