:root {
	/* Colors */
	--color-1: #080808; /* Black */
	--color-2: #1F1F1F; /* Coal */
	--color-3: #414141; /* Grey 2 */
	--color-4: #757575; /* Grey 1 */
	--color-5: #A8A8A8; /* Grey 0 */
	--color-6: #FFFFFF; /* White */
	--color-7: #AD1A24; /* Engine Red */
	--color-8: #FE372C; /* Tomato */
	--color-9: #F9F2E8; /* Cream */
	--color-10: #FFFBF5; /* Light Cream */

	/* Font Weights */
	--fw-regular: 400;
	--fw-medium: 500;
	--fw-bold: 700;

	/* Line Heights */
	--lh-tight: 1.0;
	--lh-snug: 1.2;
	--lh-normal: 1.3;
	--lh-relaxed: 1.5;

	/* Font Families - Single Unified Font: Barlow (font-primary-1) */
	--font-primary-1: 'font-primary-1', 'Barlow', sans-serif;
	--font-family-1: var(--font-primary-1);
	--font-primary-2: var(--font-primary-1);
	--font-family-2: var(--font-primary-1);
	--bs-body-font-family: var(--font-primary-1, 'Barlow', sans-serif);

	/* Spacing */
	--sp-3xl: 112px;
	--sp-2xl: 96px;
	--sp-xl:  80px;
	--sp-lg:  64px;
	--sp-md:  48px;
	--sp-base: 32px;
	--sp-sm:  24px;
	--sp-xs:  16px;
	--sp-2xs: 12px;
	--sp-3xs: 8px;
	--sp-4xs: 4px;

	/* Border Radius */
	--radius-none: 0;
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 16px;
	--radius-pill: 9999px;

	/* Z-Index */
	--z-behind: -1;
	--z-base: 0;
	--z-content: 1;
	--z-overlay: 10;
	--z-sticky: 50;
	--z-header: 100;
	--z-modal: 1000;
	--z-toast: 2000;

	/* Container */
	--container-max: 1300px;
	--container-px: 24px;

	/* Fluid Typography (Responsive scaling from 390px to 1200px) */
	--fs-h1: clamp(2.5rem, 1.7rem + 2.5vw, 3.625rem);       /* 40px -> 58px */
	--fs-h2: clamp(2.25rem, 1.625rem + 1.95vw, 3.125rem);   /* 36px -> 50px */
	--fs-h3: clamp(1.875rem, 1.35rem + 1.66vw, 2.625rem);   /* 30px -> 42px */
	--fs-h4: clamp(1.5rem, 1.15rem + 1.11vw, 2rem);         /* 24px -> 32px */
	--fs-h5: clamp(1.25rem, 1.07rem + 0.55vw, 1.5rem);      /* 20px -> 24px */
	--fs-h6: clamp(1.125rem, 1.04rem + 0.28vw, 1.25rem);    /* 18px -> 20px */
	--fs-eyebrow: clamp(0.875rem, 0.79rem + 0.28vw, 1rem);  /* 14px -> 16px */
	--fs-body: clamp(0.875rem, 0.79rem + 0.28vw, 1rem);     /* 14px -> 16px */
	--fs-body-light: clamp(0.875rem, 0.79rem + 0.28vw, 1rem); /* 14px -> 16px */
	--fs-button: 14px;                                       /* 14px static */
	--fs-small: clamp(0.625rem, 0.54rem + 0.28vw, 0.75rem); /* 10px -> 12px */

	/* Link Defaults */
	--bs-link-color: var(--color-7);
	--bs-link-hover-color: var(--color-8);
	--bs-link-decoration: none;
	--bs-link-hover-decoration: none;
}

/* Global Typography */
html, body {
	font-family: var(--font-primary-1, 'Barlow', sans-serif);
}

h1, h2, h3, h4, h5, h6, .heading-text {
	font-family: var(--font-primary-1, 'Barlow', sans-serif);
}

/* Global Links Reset */
a,
a:hover,
a:focus,
a:active {
	text-decoration: none;
}

/* Colors Utilities */
.text-color-1 { color: var(--color-1); }
.text-color-2 { color: var(--color-2); }
.text-color-3 { color: var(--color-3); }
.text-color-4 { color: var(--color-4); }
.text-color-5 { color: var(--color-5); }
.text-color-6 { color: var(--color-6); }
.text-color-7 { color: var(--color-7); }
.text-color-8 { color: var(--color-8); }
.text-color-9 { color: var(--color-9); }
.text-color-10 { color: var(--color-10); }

.bg-color-1 { background-color: var(--color-1); }
.bg-color-2 { background-color: var(--color-2); }
.bg-color-3 { background-color: var(--color-3); }
.bg-color-4 { background-color: var(--color-4); }
.bg-color-5 { background-color: var(--color-5); }
.bg-color-6 { background-color: var(--color-6); }
.bg-color-7 { background-color: var(--color-7); }
.bg-color-8 { background-color: var(--color-8); }
.bg-color-9 { background-color: var(--color-9); }
.bg-color-10 { background-color: var(--color-10); }

/* Typography Utilities */
.fs-h1 { font-size: var(--fs-h1); }
.fs-h2 { font-size: var(--fs-h2); }
.fs-h3 { font-size: var(--fs-h3); }
.fs-h4 { font-size: var(--fs-h4); }
.fs-h5 { font-size: var(--fs-h5); }
.fs-h6 { font-size: var(--fs-h6); }
.fs-eyebrow { font-size: var(--fs-eyebrow); }
.fs-body { font-size: var(--fs-body); }
.fs-body-light { font-size: var(--fs-body-light); }
.fs-button { font-size: var(--fs-button); }
.fs-small { font-size: var(--fs-small); }

.fw-regular { font-weight: var(--fw-regular); }
.fw-medium { font-weight: var(--fw-medium); }
.fw-bold { font-weight: var(--fw-bold); }

.lh-tight { line-height: var(--lh-tight); }
.lh-snug { line-height: var(--lh-snug); }
.lh-normal { line-height: var(--lh-normal); }
.lh-relaxed { line-height: var(--lh-relaxed); }

.ff-1,
.ff-2,
.font-primary-1,
.font-primary-2 {
	font-family: var(--font-primary-1, 'Barlow', sans-serif);
}

/* Spacing Utilities */
/* Padding */
.sp-p-3xl { padding: var(--sp-3xl); }
.sp-pt-3xl { padding-top: var(--sp-3xl); }
.sp-pb-3xl { padding-bottom: var(--sp-3xl); }
.sp-px-3xl { padding-left: var(--sp-3xl); padding-right: var(--sp-3xl); }
.sp-py-3xl { padding-top: var(--sp-3xl); padding-bottom: var(--sp-3xl); }

.sp-p-2xl { padding: var(--sp-2xl); }
.sp-pt-2xl { padding-top: var(--sp-2xl); }
.sp-pb-2xl { padding-bottom: var(--sp-2xl); }
.sp-px-2xl { padding-left: var(--sp-2xl); padding-right: var(--sp-2xl); }
.sp-py-2xl { padding-top: var(--sp-2xl); padding-bottom: var(--sp-2xl); }

.sp-p-xl { padding: var(--sp-xl); }
.sp-pt-xl { padding-top: var(--sp-xl); }
.sp-pb-xl { padding-bottom: var(--sp-xl); }
.sp-px-xl { padding-left: var(--sp-xl); padding-right: var(--sp-xl); }
.sp-py-xl { padding-top: var(--sp-xl); padding-bottom: var(--sp-xl); }

.sp-p-lg { padding: var(--sp-lg); }
.sp-pt-lg { padding-top: var(--sp-lg); }
.sp-pb-lg { padding-bottom: var(--sp-lg); }
.sp-px-lg { padding-left: var(--sp-lg); padding-right: var(--sp-lg); }
.sp-py-lg { padding-top: var(--sp-lg); padding-bottom: var(--sp-lg); }

.sp-p-md { padding: var(--sp-md); }
.sp-pt-md { padding-top: var(--sp-md); }
.sp-pb-md { padding-bottom: var(--sp-md); }
.sp-px-md { padding-left: var(--sp-md); padding-right: var(--sp-md); }
.sp-py-md { padding-top: var(--sp-md); padding-bottom: var(--sp-md); }

.sp-p-base { padding: var(--sp-base); }
.sp-pt-base { padding-top: var(--sp-base); }
.sp-pb-base { padding-bottom: var(--sp-base); }
.sp-px-base { padding-left: var(--sp-base); padding-right: var(--sp-base); }
.sp-py-base { padding-top: var(--sp-base); padding-bottom: var(--sp-base); }

.sp-p-sm { padding: var(--sp-sm); }
.sp-pt-sm { padding-top: var(--sp-sm); }
.sp-pb-sm { padding-bottom: var(--sp-sm); }
.sp-px-sm { padding-left: var(--sp-sm); padding-right: var(--sp-sm); }
.sp-py-sm { padding-top: var(--sp-sm); padding-bottom: var(--sp-sm); }

.sp-p-xs { padding: var(--sp-xs); }
.sp-pt-xs { padding-top: var(--sp-xs); }
.sp-pb-xs { padding-bottom: var(--sp-xs); }
.sp-px-xs { padding-left: var(--sp-xs); padding-right: var(--sp-xs); }
.sp-py-xs { padding-top: var(--sp-xs); padding-bottom: var(--sp-xs); }

/* Margin */
.sp-mt-3xl { margin-top: var(--sp-3xl); }
.sp-mb-3xl { margin-bottom: var(--sp-3xl); }
.sp-mt-2xl { margin-top: var(--sp-2xl); }
.sp-mb-2xl { margin-bottom: var(--sp-2xl); }
.sp-mt-xl { margin-top: var(--sp-xl); }
.sp-mb-xl { margin-bottom: var(--sp-xl); }
.sp-mt-lg { margin-top: var(--sp-lg); }
.sp-mb-lg { margin-bottom: var(--sp-lg); }
.sp-mt-md { margin-top: var(--sp-md); }
.sp-mb-md { margin-bottom: var(--sp-md); }
.sp-mt-base { margin-top: var(--sp-base); }
.sp-mb-base { margin-bottom: var(--sp-base); }
.sp-mt-sm { margin-top: var(--sp-sm); }
.sp-mb-sm { margin-bottom: var(--sp-sm); }
.sp-mt-xs { margin-top: var(--sp-xs); }
.sp-mb-xs { margin-bottom: var(--sp-xs); }

/* Gap */
.sp-gap-3xl { gap: var(--sp-3xl); }
.sp-gap-2xl { gap: var(--sp-2xl); }
.sp-gap-xl { gap: var(--sp-xl); }
.sp-gap-lg { gap: var(--sp-lg); }
.sp-gap-md { gap: var(--sp-md); }
.sp-gap-base { gap: var(--sp-base); }
.sp-gap-sm { gap: var(--sp-sm); }
.sp-gap-xs { gap: var(--sp-xs); }
.sp-gap-2xs { gap: var(--sp-2xs); }
.sp-gap-3xs { gap: var(--sp-3xs); }
.sp-gap-4xs { gap: var(--sp-4xs); }

/* Container Breakpoints for Horizontal Padding */
@media screen and (max-width: 1340px) {
	:root {
		--container-px: 20px;
	}
}

@media screen and (max-width: 576px) {
	:root {
		--container-px: 16px;
	}
}

/* Reset & Helpers */
.list-unstyled {
	padding-left: 0 !important;
	list-style: none !important;
}

/* Container */
.container-1440 {
	max-width: var(--container-max);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	padding-left: var(--container-px) !important;
	padding-right: var(--container-px) !important;
	box-sizing: border-box;
}

/* Prevent double padding when containers are nested */
.container-1440 .container-1440 {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.spacing-top-bottom {
	padding-top: 80px;
	padding-bottom: 80px;
}

figure,
picture,
img {
	width: 100%;
	height: 100%;
}

@media screen and (max-width: 992px) {
	.spacing-top-bottom {
		padding-top: 40px;
		padding-bottom: 40px;
	}
}


/* ==========================================
   GLOBAL BUTTONS & COMPONENT ACTIONS
   ========================================== */
.btn-primary-custom,
.btn-custom-quote {
	background-color: var(--color-7) !important;
	color: #FFFBF5 !important;
	border: 1px solid var(--color-7) !important;
	padding: var(--sp-xs) var(--sp-sm) !important;
	border-radius: var(--radius-pill, 9999px) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	line-height: var(--lh-normal);
	font-family: var(--font-primary-1, 'Barlow', sans-serif);
	font-size: var(--fs-button, 14px);
	font-weight: var(--fw-bold, 700);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.btn-primary-custom .btn-text,
.btn-custom-quote .btn-text {
	color: inherit;
	transition: color 0.2s ease;
}

.btn-outline-custom {
	background-color: transparent !important;
	border: 1px solid rgba(255, 255, 255, 0.4) !important;
	color: #FFFBF5 !important;
	padding: var(--sp-xs) var(--sp-sm) !important;
	border-radius: var(--radius-pill, 9999px) !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	line-height: var(--lh-normal);
	font-family: var(--font-primary-1, 'Barlow', sans-serif);
	font-size: var(--fs-button, 14px);
	font-weight: var(--fw-bold, 700);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none !important;
	cursor: pointer;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.btn-outline-custom .btn-text {
	color: inherit;
	transition: color 0.2s ease;
}

.btn-icon,
.btn-primary-custom svg,
.btn-custom-quote svg,
.btn-outline-custom svg {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	transition: transform 0.2s ease, stroke 0.2s ease, color 0.2s ease;
	flex-shrink: 0;
}

@media (hover: hover) {
	.btn-primary-custom:hover,
	.btn-custom-quote:hover {
		background-color: #FFFBF5 !important;
		color: var(--color-7) !important;
		border-color: var(--color-7) !important;
	}

	.btn-primary-custom:hover .btn-icon,
	.btn-primary-custom:hover svg,
	.btn-custom-quote:hover .btn-icon,
	.btn-custom-quote:hover svg {
		transform: translateX(4px);
		stroke: var(--color-7) !important;
	}

	.btn-outline-custom:hover {
		background-color: rgba(255, 255, 255, 0.25) !important;
		border-color: rgba(255, 255, 255, 0.6) !important;
		color: #FFFBF5 !important;
	}

	.btn-outline-custom:hover .btn-icon,
	.btn-outline-custom:hover svg {
		transform: translateX(4px);
	}
}

.btn-primary-custom:active,
.btn-custom-quote:active,
.btn-outline-custom:active {
	transform: scale(0.97);
}

@media (max-width: 576px) {
	.button-group .btn-primary-custom,
	.button-group .btn-custom-quote,
	.button-group .btn-outline-custom {
		width: 100%;
		justify-content: center;
		text-align: center;
	}
}

/* Banner, CTA, and Newsletter styles have been moved to dedicated files:
   - banner.css     (Reuse Block ID: 27)
   - cta.css        (Reuse Block ID: 32)
   - newsletter.css (Reuse Block ID: 34)
   They are enqueued conditionally via render_block hook in functions.php */
