/*
 * Gig Portal rock skin for the older Bootstrap template pages
 * (blog, performer calendar, signup). Load after the template CSS and
 * gigportal-chrome.css; it only restyles template classes, no markup changes.
 */
body {
	--gl-red: #e10600;
	--gl-red-dark: #b00500;
	--gl-red-soft: #fde6e5;
	--gl-oxblood: #8e0000;
	--gl-gold: #ffc21a;
	--gl-ink: #141414;
	--gl-body: #474747;
	--gl-muted: #737373;
	--gl-line: #e6e6e6;
	--gl-bg: #f5f5f4;
	--gl-night: #0b0b0b;
	--gl-grad: linear-gradient(120deg, #ff2a14 0%, #e10600 45%, #8e0000 100%);
	--gl-display: 'Big Shoulders Display', 'Oswald', Impact, 'Arial Narrow', sans-serif;
	--gl-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important;
	color: var(--gl-body);
	background: var(--gl-bg);
	-webkit-font-smoothing: antialiased;
}
main, main.bg_gray { background: var(--gl-bg) !important; }
main h1, main h2, main h3, main h4, main h5 { font-family: 'Inter', sans-serif; color: var(--gl-ink); letter-spacing: -.01em; }
main a { color: var(--gl-red-dark); }
main a:hover { color: var(--gl-red); }

/* ---------- Buttons ---------- */
a.btn_1, .btn_1, main .btn-primary {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: linear-gradient(120deg, #ff3a1f 0%, #e10600 55%, #c20500 100%) border-box !important; color: #fff !important; border: 0 !important;
	border-radius: 999px !important; padding: 12px 26px !important;
	font: 700 .95rem/1.2 'Inter', sans-serif !important; letter-spacing: .01em; text-transform: none;
	box-shadow: 0 10px 26px rgba(225, 6, 0, .3); transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
a.btn_1:hover, .btn_1:hover, main .btn-primary:hover { color: #fff !important; transform: translateY(-1px); filter: brightness(1.08); box-shadow: 0 14px 32px rgba(225, 6, 0, .4); }
a.btn_1.outline, .btn_1.outline {
	background: #fff !important; color: var(--gl-ink) !important; border: 1.5px solid #d4d4d4 !important; box-shadow: none;
}
a.btn_1.outline:hover, .btn_1.outline:hover { border-color: var(--gl-red) !important; color: var(--gl-red-dark) !important; filter: none; }

/* ---------- Page hero ---------- */
.hero_single.version_2, .hero_single.inner_pages {
	height: auto !important; min-height: 0;
	background:
		radial-gradient(620px 360px at 88% 0%, rgba(225, 6, 0, .45), transparent 62%),
		radial-gradient(520px 320px at 6% 110%, rgba(160, 0, 0, .4), transparent 62%),
		radial-gradient(280px 180px at 55% 0%, rgba(255, 194, 26, .14), transparent 70%),
		linear-gradient(170deg, #171717 0%, var(--gl-night) 100%) !important;
	position: relative; overflow: hidden;
}
.hero_single.version_2::after, .hero_single.inner_pages::after,
.call_section::after, .blog-post-cta::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: var(--gl-grain); background-size: 180px 180px; opacity: .16; mix-blend-mode: overlay;
}
.hero_single .opacity-mask { background: transparent !important; padding: 84px 0 76px; position: relative; z-index: 1; }
.hero_single .opacity-mask h1, .hero_single .opacity-mask h1.shadow {
	font-family: var(--gl-display) !important; font-weight: 900 !important; text-transform: uppercase;
	font-size: clamp(2.6rem, 6vw, 4.6rem) !important; line-height: .95 !important; letter-spacing: .005em;
	color: #fff !important; text-shadow: none !important; margin: 0 0 14px !important; padding-top: 0 !important;
}
.hero_single .opacity-mask p, .hero_single .opacity-mask p.shadow {
	font: 400 1.15rem/1.6 'Inter', sans-serif !important; color: #cfcfcf !important; text-shadow: none !important;
	max-width: 640px; margin: 0 auto;
}
.hero_single .opacity-mask .innertxt { margin-top: 0 !important; }
.hero_single .opacity-mask .innertxt::before {
	content: "Gig Portal"; display: inline-block; margin-bottom: 14px;
	font: 700 .78rem/1 'Inter', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--gl-gold);
}

/* ---------- Blog index ---------- */
.blog-breadcrumb { color: var(--gl-muted); font-size: .88rem; }
.blog-breadcrumb a { color: var(--gl-muted); text-decoration: none; }
.blog-breadcrumb a:hover { color: var(--gl-red); }
.blog-index-card {
	background: #fff; border: 1px solid var(--gl-line); border-radius: 20px !important; padding: 22px !important;
	box-shadow: 0 1px 2px rgba(20, 20, 20, .04), 0 12px 32px rgba(20, 20, 20, .06) !important;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.blog-index-card:hover { transform: translateY(-4px); border-color: rgba(225, 6, 0, .35); box-shadow: 0 22px 46px rgba(20, 20, 20, .12) !important; }
.blog-index-card h2, .blog-index-card h2.h3 { font-size: 1.35rem; font-weight: 800; line-height: 1.25; margin: 4px 0 8px; }
.blog-index-card h2 a { color: var(--gl-ink) !important; text-decoration: none; }
.blog-index-card h2 a:hover { color: var(--gl-red-dark) !important; }
.blog-index-card .excerpt { color: var(--gl-muted) !important; line-height: 1.6; }
.blog-pill {
	align-self: flex-start; background: var(--gl-red-soft); color: var(--gl-red-dark) !important;
	font-weight: 700; font-size: .7rem !important; letter-spacing: .1em !important;
	padding: 5px 11px; border-radius: 999px; margin-bottom: 14px !important;
}
.blog-16x9 { border-radius: 14px !important; background: #1a1a1a !important; }
.blog-16x9 img { transition: transform .4s ease; }
.blog-index-card:hover .blog-16x9 img { transform: scale(1.04); }

/* ---------- Blog article ---------- */
body.blog-no-hero main.bg_gray > .container.margin_60_40:first-of-type { padding-top: 56px !important; }
.blog-article { color: var(--gl-body); font-size: 1.06rem; line-height: 1.8; }
.blog-article header h1 {
	font-family: var(--gl-display) !important; font-weight: 900; text-transform: uppercase;
	font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: .98; letter-spacing: .005em; color: var(--gl-ink);
}
.blog-article .lead { color: var(--gl-muted) !important; font-size: 1.18rem; line-height: 1.65; }
.blog-article h2 { font-size: 1.65rem; font-weight: 800; margin-top: 2.6rem; padding-top: .2rem; }
.blog-article h2::before { content: ""; display: block; width: 44px; height: 4px; border-radius: 2px; background: var(--gl-grad); margin-bottom: 14px; }
.blog-article h3 { font-size: 1.25rem; font-weight: 700; }
.blog-article strong { color: var(--gl-ink); }
.blog-article ul li::marker, .blog-article ol li::marker { color: var(--gl-red); font-weight: 700; }
.blog-article a { color: var(--gl-red-dark); text-decoration: underline; text-decoration-color: rgba(225, 6, 0, .35); text-underline-offset: 3px; }
.blog-article a:hover { text-decoration-color: currentColor; }
.blog-article a.btn_1 { text-decoration: none; }
.blog-fig-caption { color: var(--gl-muted) !important; font-size: .88rem; text-align: center; }
.blog-aside {
	background: var(--gl-night) !important; color: #cfcfcf; border: 0 !important; border-left: 4px solid var(--gl-red) !important;
	border-radius: 0 16px 16px 0 !important; padding: 22px 24px !important; margin: 2rem 0 !important;
}
.blog-aside h3, .blog-aside h4 { color: var(--gl-gold) !important; font-size: 1.05rem; font-weight: 800; }
.blog-aside p { margin-bottom: 0; }
.blog-aside strong { color: #fff; }
.blog-sidebar-rail { border: 1px solid var(--gl-line); border-radius: 18px !important; padding: 18px 16px !important; box-shadow: 0 12px 30px rgba(20, 20, 20, .06) !important; }
.blog-sidebar-heading { color: var(--gl-muted) !important; letter-spacing: .14em !important; }
.blog-recent-list a { color: var(--gl-ink) !important; }
.blog-recent-list a:hover { color: var(--gl-red-dark) !important; }
.blog-post-cta {
	position: relative; overflow: hidden;
	background:
		radial-gradient(420px 240px at 100% 0%, rgba(225, 6, 0, .5), transparent 60%),
		radial-gradient(360px 220px at 0% 100%, rgba(255, 194, 26, .18), transparent 60%),
		var(--gl-night) !important;
	border-radius: 22px !important; color: #cfcfcf !important; padding: 2.4rem 1.6rem !important;
}
.blog-post-cta > * { position: relative; z-index: 1; }
.blog-post-cta-title { font-family: var(--gl-display) !important; text-transform: uppercase; font-weight: 900 !important; font-size: 2rem !important; line-height: 1 !important; color: #fff !important; }

/* ---------- Bottom call-to-action band ---------- */
.call_section {
	position: relative; overflow: hidden; padding: 0 !important; margin: 40px 0 0 !important; min-height: 0 !important;
	background:
		radial-gradient(600px 340px at 100% 0%, rgba(225, 6, 0, .45), transparent 60%),
		radial-gradient(520px 300px at 0% 100%, rgba(255, 194, 26, .2), transparent 60%),
		linear-gradient(170deg, #171717 0%, var(--gl-night) 100%) !important;
}
.call_section .container { position: relative; z-index: 1; padding: 80px 20px !important; }
.call_section .col-lg-5, .call_section .float-end { float: none !important; width: 100% !important; max-width: 760px !important; margin: 0 auto !important; text-align: center; }
.call_section .box_1 { background: transparent !important; box-shadow: none !important; padding: 0 !important; color: #cfcfcf; }
.call_section .box_1 h3 {
	font-family: var(--gl-display) !important; font-weight: 900; text-transform: uppercase;
	font-size: clamp(2rem, 4.4vw, 3.2rem) !important; line-height: 1 !important; color: #fff !important; margin-bottom: 14px;
}
.call_section .box_1 p { color: #cfcfcf; font-size: 1.08rem; }
.call_section .box_1 a:not(.btn_1) { color: var(--gl-gold); }
.call_section .box_1 .btn_1 { margin-top: 10px; padding: 15px 32px !important; font-size: 1.02rem !important; }
.call_section .noccw { color: #8e8e8e !important; font-size: .74rem; letter-spacing: .16em; margin-top: 14px; }

/* ---------- Performer calendar ---------- */
.gp-live-cal {
	--gp-live-accent: #e10600;
	--gp-live-ink: #141414;
	--gp-live-muted: #737373;
	--gp-live-line: #e6e6e6;
}
.gp-live-cal .gp-live-tabs { background: #141414 !important; border: 0 !important; padding: 5px !important; }
.gp-live-cal .gp-live-tab { color: #bdbdbd !important; font-weight: 700 !important; padding: 9px 20px !important; }
.gp-live-cal .gp-live-tab:hover { color: #fff !important; }
.gp-live-cal .gp-live-tab.is-active { background: var(--gl-grad) !important; color: #fff !important; box-shadow: 0 6px 16px rgba(225, 6, 0, .35); }
.gp-live-cal .gp-live-date-btn { border-color: #dadada !important; color: var(--gl-body) !important; padding: 7px 14px !important; }
.gp-live-cal .gp-live-date-btn:hover { border-color: var(--gl-ink) !important; color: var(--gl-ink) !important; }
.gp-live-cal .gp-live-date-btn.is-active { background: var(--gl-ink) !important; border-color: var(--gl-ink) !important; color: #fff !important; }
.gp-live-cal .gp-live-filters input[type="search"],
.gp-live-cal .gp-live-filters select { border: 1px solid #dadada !important; border-radius: 12px !important; padding: 10px 14px !important; min-height: 44px; }
.gp-live-cal .gp-live-filters input:focus, .gp-live-cal .gp-live-filters select:focus { outline: none; border-color: var(--gl-red) !important; box-shadow: 0 0 0 3px rgba(225, 6, 0, .15); }
.gp-live-cal .gp-live-card { border-radius: 18px !important; padding: 18px !important; box-shadow: 0 1px 2px rgba(20, 20, 20, .04), 0 10px 28px rgba(20, 20, 20, .06) !important; }
.gp-live-cal .gp-live-card:hover { border-color: rgba(225, 6, 0, .35) !important; box-shadow: 0 18px 40px rgba(20, 20, 20, .1) !important; }
.gp-live-cal .gp-live-date { background: var(--gl-night) !important; border-radius: 14px !important; }
.gp-live-cal .gp-live-date .dow { color: var(--gl-gold) !important; letter-spacing: .12em !important; }
.gp-live-cal .gp-live-date .dom { color: #fff !important; font-family: var(--gl-display); font-weight: 900 !important; font-size: 2rem !important; line-height: 1; }
.gp-live-cal .gp-live-date .moy { color: #a3a3a3 !important; text-transform: uppercase; letter-spacing: .08em; }
.gp-live-cal .gp-live-body h3 { font-weight: 800 !important; }
.gp-live-cal .gp-live-performer a { color: var(--gl-red-dark) !important; }
.gp-live-cal .gp-live-status { color: var(--gl-muted); }
.gp-live-cal .gp-live-map { background: #1a1a1a !important; border-radius: 18px !important; }
.gp-live-cal .gp-live-map .leaflet-tile-pane { filter: grayscale(1) contrast(1.08) brightness(.98) !important; }
.gp-live-cal .gp-live-map .leaflet-control-zoom a:hover { background: var(--gl-red-soft) !important; }
.gp-live-cal .gp-map-pin-mic { background: var(--gl-grad) !important; box-shadow: 0 4px 12px rgba(225, 6, 0, .45) !important; }
.gp-live-cal .gp-map-you-dot { box-shadow: 0 0 0 4px rgba(225, 6, 0, .2) !important; }
.gp-live-cal .gp-live-map .leaflet-popup-content-wrapper,
.gp-live-cal .gp-live-map .leaflet-control-attribution { font-family: 'Inter', sans-serif !important; }

/* FullCalendar 3 */
.gp-live-cal #gp-live-calendar .fc { border-radius: 20px !important; padding: 18px !important; box-shadow: 0 1px 2px rgba(20, 20, 20, .04), 0 12px 32px rgba(20, 20, 20, .06); font-family: 'Inter', sans-serif; }
.gp-live-cal #gp-live-calendar .fc-toolbar h2 { font-family: var(--gl-display); font-weight: 900; text-transform: uppercase; font-size: 2rem; letter-spacing: .01em; color: var(--gl-ink); }
.gp-live-cal #gp-live-calendar .fc-button {
	background: #fff !important; background-image: none !important; color: var(--gl-ink) !important; text-shadow: none !important;
	border: 1px solid #dadada !important; box-shadow: none !important; border-radius: 10px !important;
	height: auto !important; padding: 7px 14px !important; font-weight: 600; text-transform: capitalize; margin-left: 4px;
}
.gp-live-cal #gp-live-calendar .fc-button:hover { border-color: var(--gl-ink) !important; }
.gp-live-cal #gp-live-calendar .fc-state-active, .gp-live-cal #gp-live-calendar .fc-button.fc-state-down { background: var(--gl-ink) !important; border-color: var(--gl-ink) !important; color: #fff !important; }
.gp-live-cal #gp-live-calendar .fc-state-disabled { opacity: .45; }
.gp-live-cal #gp-live-calendar th.fc-day-header { background: #f5f5f4; color: var(--gl-muted); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 10px 0; }
.gp-live-cal #gp-live-calendar td, .gp-live-cal #gp-live-calendar th { border-color: #ececec !important; }
.gp-live-cal #gp-live-calendar .fc-day-number { color: var(--gl-ink); font-weight: 600; padding: 6px 8px !important; }
.gp-live-cal #gp-live-calendar .fc-other-month .fc-day-number { color: #c2c2c2; }
.gp-live-cal #gp-live-calendar .fc-today { background: var(--gl-red-soft) !important; }
.gp-live-cal #gp-live-calendar .fc-today .fc-day-number { color: var(--gl-red-dark); font-weight: 800; }
.gp-live-cal #gp-live-calendar .fc-event { background: var(--gl-ink) !important; border: 0 !important; border-left: 3px solid var(--gl-red) !important; border-radius: 6px !important; color: #fff !important; padding: 2px 6px; font-size: .78rem; }
.gp-live-cal #gp-live-calendar .fc-event:hover { background: var(--gl-red-dark) !important; }
.gp-live-cal #gp-live-calendar .fc-more { color: var(--gl-red-dark); font-weight: 700; }

/* Upcoming shows (SEO list) */
.gp-live-cal .gp-live-seo h2 { font-family: var(--gl-display) !important; font-weight: 900 !important; text-transform: uppercase; font-size: 2.2rem !important; line-height: 1; }
.gp-live-cal .gp-live-seo-list { counter-reset: none; }
.gp-live-cal .gp-live-seo-list article { background: #fff; border: 1px solid var(--gl-line) !important; border-radius: 16px; padding: 16px 20px !important; }
.gp-live-cal .gp-live-seo-list h3 a:hover { color: var(--gl-red-dark) !important; }
.gp-live-cal .gp-live-seo-list .gp-seo-when { color: var(--gl-red-dark) !important; font-weight: 700 !important; }

/* Event modal */
.gp-live-modal .gp-live-modal-panel { border-radius: 22px !important; padding: 26px 52px 26px 26px !important; box-shadow: 0 30px 70px rgba(0, 0, 0, .4) !important; }
.gp-live-modal .gp-live-modal-backdrop { background: rgba(8, 8, 8, .7) !important; }
.gp-live-modal .gp-live-modal-title { font-family: var(--gl-display) !important; font-weight: 900; text-transform: uppercase; font-size: 1.9rem !important; line-height: 1; }
.gp-live-modal .gp-live-modal-performer { color: var(--gl-red-dark) !important; font-weight: 700; }
.gp-live-modal .gp-live-modal-img { border-radius: 14px !important; }

/* ---------- Signup pages ---------- */
.signup-container {
	margin: 56px auto 70px !important; border: 1px solid var(--gl-line); border-radius: 24px !important;
	padding: 38px 36px !important; box-shadow: 0 30px 70px rgba(20, 20, 20, .12) !important;
}
.signup-container h2 { font-family: var(--gl-display) !important; font-weight: 900; text-transform: uppercase; font-size: 2.4rem; line-height: 1; color: var(--gl-ink); }
.signup-container label { font-weight: 600; color: var(--gl-ink); font-size: .9rem; }
.signup-container .form-control { border: 1px solid #dadada; border-radius: 12px; min-height: 48px; padding: 10px 14px; }
.signup-container .form-control:focus { border-color: var(--gl-red); box-shadow: 0 0 0 3px rgba(225, 6, 0, .15); }
.signup-container .bg-light { background: #f8f8f7 !important; border-radius: 16px !important; }
.signup-container .alert-danger { border-radius: 12px; }
.signup-container input[type="checkbox"] { accent-color: var(--gl-red); }

@media (max-width: 767px) {
	.hero_single .opacity-mask { padding: 60px 0 54px; }
	.call_section .container { padding: 60px 20px !important; }
	.signup-container { margin: 32px 14px 50px !important; padding: 26px 20px !important; }
}
