:root {
	--gl-black: #050505;
	--gl-charcoal: #101010;
	--gl-panel: #171717;
	--gl-red: #ff1f1f;
	--gl-red-dark: #c90000;
	--gl-text: #f4f4f4;
	--gl-muted: rgba(255,255,255,0.72);
}

body, input, select, textarea { color: var(--gl-text); }
body { background: var(--gl-black); }
a { color: var(--gl-red); }
a:hover { color: #ff6262 !important; }

#header {
	background: rgba(0,0,0,0.88);
	border-bottom: 1px solid rgba(255,31,31,0.24);
	box-shadow: 0 0 30px rgba(255,31,31,0.08);
}
#header h1#logo { top: 0.35em; }
#header h1#logo img { height: 2.5em; width: auto; vertical-align: middle; }
#header nav ul li a { color: rgba(255,255,255,0.86); }
#header nav ul li a:hover { color: #fff !important; }

.button.primary, input[type="submit"].primary, input[type="reset"].primary, input[type="button"].primary {
	background: var(--gl-red);
	box-shadow: none;
}
.button.primary:hover, input[type="submit"].primary:hover, input[type="reset"].primary:hover, input[type="button"].primary:hover {
	background: #ff3d3d;
}
.button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover {
	border-color: var(--gl-red) !important;
	color: #fff !important;
	box-shadow: inset 0 0 0 1px var(--gl-red);
}

#banner:after { background: linear-gradient(120deg, rgba(0,0,0,0.95), rgba(20,0,0,0.85)); }
#banner .content header { text-align: left; }
#banner h2 { font-size: 3.2em; line-height: 1.05; }
#banner p { color: var(--gl-muted); }
.eyebrow {
	color: var(--gl-red) !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 0.78em;
	margin-bottom: 1em;
}
.logo-card {
	background: rgba(255,255,255,0.98) !important;
	border: 1px solid rgba(255,31,31,0.5);
	box-shadow: 0 0 0 8px rgba(255,31,31,0.08), 0 30px 80px rgba(0,0,0,0.6);
}
.logo-card img { object-fit: contain; padding: 1.8em; }

.spotlight .content { background: rgba(0,0,0,0.88); border-color: rgba(255,31,31,0.22); }
.spotlight h2, .wrapper h2 { color: #fff; }
.spotlight p, .wrapper p { color: var(--gl-muted); }
.style1, .style2, .style3, .wrapper.style1, .wrapper.style2 { background: var(--gl-charcoal); }
.wrapper.style1 { border-top: 1px solid rgba(255,31,31,0.18); }
.wrapper.style2 { background: linear-gradient(135deg, #0a0a0a, #240000); }
header.major:after { background: var(--gl-red); }

.icon.alt.major {
	background: var(--gl-red);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,0.1), 0 0 25px rgba(255,31,31,0.18);
}
.box.alt section {
	background: rgba(255,255,255,0.035);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: 10px;
	padding: 2em 1.5em;
	transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.box.alt section:hover {
	transform: translateY(-5px);
	border-color: rgba(255,31,31,0.45);
	background: rgba(255,31,31,0.06);
}
.process-row section {
	padding: 1.5em;
	text-align: left;
}
.process-row strong {
	color: var(--gl-red);
	font-size: 2em;
	display: block;
	margin-bottom: 0.35em;
}
.compact { margin-bottom: 2em !important; }
.contact-form {
	max-width: 840px;
	margin: 0 auto;
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,31,31,0.22);
	border-radius: 14px;
	padding: 2em;
}
input[type="text"], input[type="password"], input[type="email"], select, textarea {
	background: rgba(255,255,255,0.07);
	border-color: rgba(255,255,255,0.08);
}
input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, select:focus, textarea:focus {
	border-color: var(--gl-red);
	box-shadow: 0 0 0 1px var(--gl-red);
}
#footer { background: #000; border-top: 1px solid rgba(255,31,31,0.24); }
.footer-logo { width: 190px; max-width: 80%; background: white; border-radius: 6px; padding: 0.5em; margin-bottom: 1em; }
#footer .icons .icon.alt:before { box-shadow: inset 0 0 0 1px rgba(255,31,31,0.45); color: rgba(255,255,255,0.7); }
#footer .icons .icon.alt:hover:before { background: var(--gl-red); color: #fff !important; }

@media screen and (max-width: 736px) {
	#banner h2 { font-size: 2.1em; }
	#header h1#logo img { height: 2em; }
	.logo-card img { padding: 1em; }
	.contact-form { padding: 1.25em; }
}

.value-grid section {
	background: rgba(255,255,255,0.035);
	border: 1px solid rgba(255,31,31,0.16);
	border-radius: 10px;
	padding: 1.75em 1.25em;
	text-align: left;
}
.value-grid h3 { color: #fff; }

body.quote-open { overflow: hidden; }
.quote-modal {
	position: fixed;
	inset: 0;
	z-index: 10002;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 2em;
}
.quote-modal.is-visible { display: flex; }
.quote-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.78);
	backdrop-filter: blur(2px);
}
.quote-modal__panel {
	position: relative;
	width: min(720px, 100%);
	max-height: 92vh;
	overflow: auto;
	background: #fff;
	color: #191919;
	border-radius: 28px;
	padding: 3.25em 3em 3em;
	box-shadow: 0 30px 90px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,31,31,0.18);
}
.quote-modal__panel h2 {
	color: #252525;
	font-size: 2.05em;
	margin: 0 2em 1.5em 0;
}
.quote-modal__close {
	appearance: none;
	border: 0;
	background: transparent;
	color: #000;
	font-size: 3em;
	font-weight: 800;
	line-height: 1;
	position: absolute;
	top: 0.7em;
	right: 0.85em;
	cursor: pointer;
}
.quote-form input[type="text"],
.quote-form input[type="email"],
.quote-form input[type="tel"],
.quote-form input[type="url"],
.quote-form select,
.quote-form textarea {
	background: #fff;
	border: 1px solid #d9d9d9;
	border-radius: 6px;
	color: #111;
	box-shadow: none;
}
.quote-form input::placeholder,
.quote-form textarea::placeholder { color: #9a9a9a; opacity: 1; }
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus {
	border-color: var(--gl-red);
	box-shadow: 0 0 0 1px var(--gl-red);
}
.quote-form input[type="submit"].primary {
	background: #000;
	border-radius: 999px;
	font-weight: 700;
}
.quote-form input[type="submit"].primary:hover { background: var(--gl-red); }

@media screen and (max-width: 736px) {
	.quote-modal { padding: 1em; }
	.quote-modal__panel { border-radius: 18px; padding: 2.25em 1.25em 1.5em; }
	.quote-modal__panel h2 { font-size: 1.55em; }
	.quote-modal__close { top: 0.45em; right: 0.5em; }
}
