/*
Theme Name: Sunbelt Marketing
Theme URI: https://www.sunbeltmarketing.com
Author: Sunbelt Marketing Inc.
Author URI: https://www.sunbeltmarketing.com
Description: Custom WordPress theme for Sunbelt Marketing Inc. — a wholesale plumbing and HVAC/R marketing agency serving the Southeast and Midwest.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: sunbelt-marketing
*/

/* ============================================================
   RESET & BASE
============================================================ */
*, *::before, *::after { box-sizing: border-box; }

:root {
	--sb-blue:        #0168B3;
	--sb-blue-dark:   #014f8a;
	--sb-orange:      #FF9B22;
	--sb-orange-dark: #FF8C00;
	--sb-gold:        #f0b24e;
	--sb-cyan:        #00b4ff;
	--sb-cream:       #FEF6EA;
	--sb-gray-light:  #F7F5F4;
	--sb-text:        #333333;
	--sb-font:        'Open Sans', Helvetica, Arial, sans-serif;
	--navbar-height:  100px;
}

html { scroll-behavior: smooth; }

body {
	font-family: var(--sb-font);
	font-size: 16px;
	color: var(--sb-text);
	margin: 0;
	padding-top: var(--navbar-height);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--sb-font);
}

a { color: var(--sb-blue); text-decoration: none; }
a:hover { color: #aaa; }

img { max-width: 100%; height: auto; }

.container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 15px;
}

/* ============================================================
   NAVBAR
============================================================ */
#site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1030;
	background: var(--sb-blue);
	min-height: var(--navbar-height);
	border-bottom: 1px solid rgba(255,255,255,0.15);
	transition: min-height 0.3s ease-out, box-shadow 0.3s ease-out;
}

#site-header.headroom--scrolled {
	min-height: 62px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

.navbar-inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	min-height: var(--navbar-height);
	padding: 0 15px;
	transition: min-height 0.3s ease-out;
}

#site-header.headroom--scrolled .navbar-inner {
	min-height: 62px;
}

.navbar-brand {
	display: flex;
	align-items: center;
}

.navbar-brand img {
	height: 65px;
	width: auto;
	transition: height 0.3s ease-out;
}

#site-header.headroom--scrolled .navbar-brand img {
	height: 40px;
}

/* Primary nav */
.primary-nav {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 4px;
	align-items: stretch;
}

/* Each li stretches to full navbar height so dropdown top:100% = bottom of nav */
.primary-nav > li {
	display: flex;
	align-items: center;
	position: relative;
}

.primary-nav > li > a {
	color: rgba(255,255,255,0.75);
	padding: 0 12px;
	display: flex;
	align-items: center;
	height: 100%;
	font-size: 15px;
	font-weight: 600;
	transition: color 0.2s, background 0.2s;
	white-space: nowrap;
}
.primary-nav > li > a:hover,
.primary-nav > li.current-menu-item > a,
.primary-nav > li.current-page-ancestor > a {
	color: #fff;
	background: rgba(255,255,255,0.1);
}

/* Dropdown */
.primary-nav .has-dropdown { position: relative; }

.primary-nav .has-dropdown > a::after {
	content: ' ▾';
	font-size: 11px;
}

.dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--sb-blue-dark);
	min-width: 220px;
	list-style: none;
	margin: 0;
	padding: 6px 0;
	z-index: 1000;
	box-shadow: 0 6px 16px rgba(0,0,0,0.35);
	border-top: 2px solid rgba(255,255,255,0.15);
}

.has-dropdown:hover > .dropdown-menu,
.has-dropdown:focus-within > .dropdown-menu { display: block; }

.dropdown-menu li a {
	color: rgba(255,255,255,0.75);
	padding: 7px 20px;
	display: block;
	font-size: 13px;
	white-space: nowrap;
}
.dropdown-menu li a:hover { color: #fff; background: rgba(255,255,255,0.1); }

.dropdown-menu .plumbing-label  { color: var(--sb-gold) !important; font-weight: 700; }
.dropdown-menu .hvac-label      { color: var(--sb-cyan) !important; font-weight: 700; }
.dropdown-menu .highlighted     { color: var(--sb-gold) !important; font-weight: 700; }
.dropdown-menu .highlighted-blue{ color: #00A7F6 !important; font-weight: 700; }

.dropdown-divider { border-top: 1px solid rgba(255,255,255,0.2); margin: 6px 10%; }

/* Sub-menu (fly-out) */
.has-submenu { position: relative; }
.has-submenu > a::after {
	content: ' ›';
	float: right;
	margin-right: -5px;
}
.submenu {
	display: none;
	position: absolute;
	top: 0;
	left: 100%;
	background: rgba(0,0,0,0.85);
	min-width: 220px;
	list-style: none;
	padding: 6px 0;
	margin: 0;
	z-index: 1001;
}
.has-submenu:hover > .submenu { display: block; }

/* Right-align dropdowns that would overflow off the right edge of the viewport */
.primary-nav > li:nth-last-child(-n+2) > .dropdown-menu {
	left: auto;
	right: 0;
}
.primary-nav > li:nth-last-child(-n+2) .submenu {
	left: auto;
	right: 100%;
}

/* Hamburger */
.nav-toggle {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	align-self: center;
	gap: 5px;
	cursor: pointer;
	background: none;
	border: none;
	padding: 8px;
}
.nav-toggle span {
	display: block;
	width: 26px;
	height: 2px;
	background: #fff;
	transform-origin: center;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

@media (max-width: 1000px) and (min-width: 768px) {
	.primary-nav > li > a { font-size: 11px; padding: 0 7px; }
}

@media (max-width: 767px) {
	body { padding-top: 70px; }
	:root { --navbar-height: 70px; }
	.nav-toggle { display: flex; }
	.primary-nav { display: none !important; } /* overlay handles mobile */
}

/* Hamburger → X animation */
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Prevent page scroll when overlay open */
body.mobile-nav-open { overflow: hidden; }

/* ── Full-screen mobile nav overlay ─────────────────────── */
.mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 1031;
	background: var(--sb-blue);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	visibility: hidden;
	transition: transform 0.35s ease, visibility 0.35s;
}
.mobile-nav.is-open {
	transform: translateX(0);
	visibility: visible;
}

.mobile-nav__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 20px;
	min-height: var(--navbar-height);
	flex-shrink: 0;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
.mobile-nav__logo img { height: 50px; width: auto; }

.mobile-nav__close {
	position: relative;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
}
.mobile-nav__close span {
	display: block;
	position: absolute;
	width: 24px;
	height: 2px;
	background: #fff;
	top: 50%;
	left: 50%;
}
.mobile-nav__close span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.mobile-nav__close span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }

.mobile-nav__body {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 40px;
}

/* ── Mobile menu list ────────────────────────────────────── */
.mobile-nav__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Top-level leaf links */
.mobile-nav__menu > li > a {
	display: block;
	color: rgba(255,255,255,0.85);
	font-size: 17px;
	font-weight: 600;
	padding: 16px 24px;
	border-bottom: 1px solid rgba(255,255,255,0.08);
	text-decoration: none;
}
.mobile-nav__menu > li > a:hover { color: #fff; }

/* Parent row: link + chevron button side-by-side */
.mobile-nav__menu .submenu-row {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid rgba(255,255,255,0.08);
}
.mobile-nav__menu .submenu-row > a {
	flex: 1;
	color: rgba(255,255,255,0.85);
	font-size: 17px;
	font-weight: 600;
	padding: 16px 24px;
	text-decoration: none;
	border-bottom: none;
}
.mobile-nav__menu .submenu-row > a:hover { color: #fff; }

.mobile-nav__menu .submenu-toggle {
	background: none;
	border: none;
	border-left: 1px solid rgba(255,255,255,0.12);
	color: rgba(255,255,255,0.6);
	padding: 0 20px;
	cursor: pointer;
	display: flex;
	align-items: center;
	flex-shrink: 0;
	transition: color 0.2s;
}
.mobile-nav__menu .submenu-toggle:hover { color: #fff; }
.mobile-nav__menu .submenu-toggle svg { transition: transform 0.25s ease; }
.mobile-nav__menu .submenu-toggle.is-open svg { transform: rotate(180deg); }

/* Override desktop hover/focus-within inside overlay — :not(.is-open) lets JS state win */
.mobile-nav__menu .has-dropdown:hover > .dropdown-menu:not(.is-open),
.mobile-nav__menu .has-dropdown:focus-within > .dropdown-menu:not(.is-open) { display: none; }
.mobile-nav__menu .has-submenu:hover > .submenu:not(.is-open) { display: none; }
.mobile-nav__menu .has-dropdown > a::after,
.mobile-nav__menu .has-submenu > a::after { content: none !important; }

/* Depth-1 dropdown */
.mobile-nav__menu .dropdown-menu {
	display: none;
	position: static;
	background: var(--sb-blue-dark);
	box-shadow: none;
	border-top: none;
	list-style: none;
	margin: 0;
	padding: 4px 0;
	min-width: 100%;
}
.mobile-nav__menu .dropdown-menu.is-open { display: block; }

.mobile-nav__menu .dropdown-menu > li > a,
.mobile-nav__menu .dropdown-menu > li > .submenu-row > a {
	color: rgba(255,255,255,0.75);
	font-size: 14px;
	padding: 11px 24px 11px 36px;
	display: block;
	border-bottom: 1px solid rgba(255,255,255,0.05);
	text-decoration: none;
}
.mobile-nav__menu .dropdown-menu > li > a:hover { color: #fff; }

/* Depth-1 parent row inside dropdown */
.mobile-nav__menu .dropdown-menu .submenu-row {
	border-bottom: 1px solid rgba(255,255,255,0.05);
}
.mobile-nav__menu .dropdown-menu .submenu-row > a {
	font-size: 14px;
	padding: 11px 24px 11px 36px;
	border-bottom: none;
}
.mobile-nav__menu .dropdown-menu .submenu-toggle {
	padding: 0 16px;
}

/* Depth-2 submenu */
.mobile-nav__menu .submenu {
	display: none;
	position: static;
	background: rgba(0,0,0,0.25);
	list-style: none;
	margin: 0;
	padding: 4px 0;
	min-width: 100%;
}
.mobile-nav__menu .submenu.is-open { display: block; }
.mobile-nav__menu .submenu li a {
	color: rgba(255,255,255,0.65);
	font-size: 13px;
	padding: 9px 24px 9px 52px;
	display: block;
	text-decoration: none;
}
.mobile-nav__menu .submenu li a:hover { color: #fff; }

/* Colored labels + dividers carry through */
.mobile-nav__menu .plumbing-label   { color: var(--sb-gold) !important; font-weight: 700; }
.mobile-nav__menu .hvac-label       { color: var(--sb-cyan) !important; font-weight: 700; }
.mobile-nav__menu .highlighted      { color: var(--sb-gold) !important; font-weight: 700; }
.mobile-nav__menu .highlighted-blue { color: #00A7F6 !important; font-weight: 700; }
.mobile-nav__menu .dropdown-divider { border-top: 1px solid rgba(255,255,255,0.15); margin: 6px 0; }

/* ============================================================
   PAGE HEADERS (parallax banners)
============================================================ */
.page-header-banner {
	background-size: cover;
	background-attachment: fixed;
	background-repeat: no-repeat;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0 15px;
}

.page-header-banner h1 {
	font-size: 55px;
	font-weight: 700;
	margin: 0;
	line-height: 1.1;
}

.page-header-banner--blue h1   { color: var(--sb-blue); }
.page-header-banner--white h1  { color: #fff; }
.page-header-banner--orange h1 { color: var(--sb-orange); }
.page-header-banner--tall { height: auto; padding: 48px 15px; }
.page-header-banner__subtitle {
	color: #fff;
	font-size: 46px;
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 0;
	text-transform: uppercase;
}
.page-header-banner__hr {
	border: 0;
	border-top: 1px solid rgba(255,255,255,0.35);
	margin: 20px auto;
	width: 85%;
}
.page-header-banner__note {
	color: rgba(255,255,255,0.85);
	font-size: 16px;
	margin: 0;
}

/* Per-page background positions */
.phb-aboutus       { background-image: url(assets/images/front-building.png); background-position: 0% -271px; }
.phb-locations     { background-image: url(assets/images/DSC_1057.jpg);       background-position: 0% -138px; }
.phb-spec          { background-image: url(assets/images/spec_sheet_header.jpg); background-position: 0% -250px; }
.phb-opportunities { background-image: url(assets/images/dsc02340-u669725-fr.png); background-position: 50% 40%; }
.phb-pricesheets   { background-image: url(assets/images/price-sheets.png);   background-position: 50% 60%; background-size: auto; }
.phb-specsheets    { background-image: url(assets/images/spec-sheets.png);    background-position: 50% 145%; background-size: auto; }
.phb-working       { background-image: url(assets/images/group.png);          background-position: 50% 50%; }
.phb-trainee       { background-image: url(assets/images/sam.png);            background-position: 50% 10%; }
.phb-hvac          { background-image: url(assets/images/walking.png);        background-position: 0% -271px; }
.phb-contact       { background-image: url(assets/images/pipe.png);           background-position: center; }

@media (max-width: 767px) {
	.page-header-banner {
		background-attachment: scroll;
		background-position: center !important;
		height: 200px;
		padding: 0 15px;
	}
	.page-header-banner--tall { height: auto; padding: 36px 15px; }
	.page-header-banner h1 { font-size: 28px; }
	.page-header-banner__subtitle { font-size: 24px; }
	.page-header-banner__note { font-size: 14px; }
	.spec-sheet-section__heading--large { font-size: 36px; }
}

/* ============================================================
   HERO CAROUSEL
============================================================ */
#hero-carousel {
	width: 100%;
	height: calc(100vh - var(--navbar-height));
	min-height: 400px;
	max-height: 760px;
	margin: 0;
	overflow: hidden;
	position: relative;
	background: #000;
}

.carousel-track {
	display: flex;
	height: 100%;
	transition: transform 0.6s ease-in-out;
}

/* Each slide is exactly one viewport width — no showing neighbours */
.carousel-slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.carousel-slide a {
	display: block;
	height: 100%;
}

.carousel-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.carousel-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(0,0,0,0.4);
	color: #fff;
	border: none;
	padding: 14px 20px;
	font-size: 26px;
	cursor: pointer;
	z-index: 10;
	transition: background 0.2s;
}
.carousel-btn:hover { background: rgba(0,0,0,0.7); }
.carousel-btn--prev { left: 16px; }
.carousel-btn--next { right: 16px; }

.carousel-indicators {
	position: absolute;
	bottom: 18px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.carousel-indicators li {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: rgba(255,255,255,0.5);
	cursor: pointer;
	transition: background 0.2s;
}
.carousel-indicators li.active { background: #fff; }

@media (max-width: 767px) {
	#hero-carousel {
		height: calc(55vw + 0px);
		min-height: 220px;
	}
}

/* ============================================================
   JUMBOTRON / FEATURE SECTIONS
============================================================ */
.jumbotron {
	background: var(--sb-gray-light);
	padding: 30px 40px;
	border-radius: 3px;
	margin-top: 60px;
	line-height: 2em;
}

.jumbotron h3 { font-weight: 700; }
.jumbotron p  { font-size: inherit; }

/* CTA Card block */
.cta-card {
	background: var(--sb-gray-light);
	border-radius: 3px;
	padding: 30px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 20px;
}
.cta-card__text h3 {
	font-weight: 700;
	font-size: 22px;
	margin: 0 0 6px;
	color: #222;
}
.cta-card__text p {
	margin: 0;
	font-size: 15px;
	color: #444;
	line-height: 1.6;
}
.cta-card__btn {
	white-space: nowrap;
	flex-shrink: 0;
}
@media (max-width: 767px) {
	.cta-card {
		flex-direction: column;
		align-items: stretch;
		padding: 24px 20px;
	}
	.cta-card__btn {
		align-self: flex-start;
		white-space: normal;
	}
}

.highlights-section {
	background: var(--sb-gray-light);
	padding: 30px 0;
	margin-top: 0;
}

.highlights-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	padding: 20px 0;
}

.highlight-card {
	flex: 1 1 280px;
	max-width: 360px;
	text-align: center;
	padding: 20px;
}

.highlight-card .icon-wrap {
	font-size: 54px;
	color: #382526;
	display: block;
	margin-bottom: 20px;
}

.highlight-card h4 {
	color: #382526;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 16px;
}

/* ============================================================
   PARALLAX SECTION
============================================================ */
.parallax-section {
	background-attachment: fixed;
	background-size: cover;
	background-repeat: no-repeat;
	min-height: 370px;
	display: flex;
	align-items: center;
}

.parallax-section--group-photo { background-image: url(assets/images/group-photo.png); background-position: 10% 48%; }
.parallax-section--warehouse   { background-image: url(assets/images/warehouse2.png);  background-position: center; }

.parallax-section .container { padding: 50px 15px; }

.parallax-content { color: #fff; }
.parallax-content h2 { font-size: 28px; font-weight: 700; color: #fff; }

.parallax-logos {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: center;
	justify-content: center;
	padding: 40px 0;
}

.logo-strip-section {
	padding: 5em 0 10em;
}
.logo-strip {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.logo-strip__heading {
	flex: 0 0 50%;
	text-align: center;
	padding-left: 60px;
	padding-right: 60px;
	box-sizing: border-box;
}
.logo-strip__heading h2 {
	font-weight: normal;
	font-size: 32px;
	line-height: 1.4;
	color: #555;
	margin: 0;
}
.logo-strip__logos {
	flex: 0 0 50%;
	display: flex;
	flex-wrap: wrap;
	gap: 20px 30px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
.logo-strip__logos img {
	max-width: 100%;
	height: auto;
}
@media (max-width: 767px) {
	.logo-strip__heading,
	.logo-strip__logos { flex: 0 0 100%; }
	.logo-strip__heading { padding-left: 0; padding-right: 0; margin-bottom: 2em; }
}


@media (max-width: 767px) {
	.parallax-section { background-attachment: scroll; }
}

/* ============================================================
   BUTTONS
============================================================ */
.btn {
	display: inline-block;
	padding: 10px 40px;
	font-weight: 700;
	border-radius: 3px;
	border: none;
	cursor: pointer;
	font-size: 14px;
	transition: background 0.2s, color 0.2s;
	text-decoration: none;
}

/* ============================================================
   TERRITORY MAP BLOCK
============================================================ */
.territory-map-section {
	padding: 48px 0 60px;
	text-align: center;
}
.territory-map__heading {
	font-size: 48px;
	font-weight: 600;
	margin: 0 0 8px;
	letter-spacing: 0.03em;
	color: var(--sb-text);
}
.territory-map__subheading {
	font-size: 40px;
	font-weight: 800;
	margin: 0 0 12px;
}
.territory-map__instruction {
	font-size: 14px;
	margin-bottom: 24px;
}
.territory-map__logo {
	text-align: center;
	margin: 16px 0;
}
.territory-map__logo img {
	max-width: 280px;
	width: 30%;
	height: auto;
}
.territory-map__embed {
	position: relative;
	z-index: 0;
	margin-top: 24px;
}
.territory-map__embed #map {
	position: relative;
	width: 100%;
	min-height: 400px;
}
/* Force legend below popup within the embed's stacking context */
#map_legend { z-index: 1 !important; }
/* SimpleMaps popup — absolutely contained within the map, scrolls internally */
#tt_sm_map {
	position: absolute !important;
	top: 0 !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	right: auto !important;
	bottom: auto !important;
	width: min(560px, 92%) !important;
	max-height: 100% !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	z-index: 9999 !important;
	box-shadow: 0 8px 40px rgba(0,0,0,0.32) !important;
	border-radius: 0 0 8px 8px !important;
	background: #fff !important;
}
/* Injected close button — sticky at top of scroll container */
#sb-map-close {
	position: sticky;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 8px 12px;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	background: #fff;
	color: #555;
	border-bottom: 1px solid #eee;
	z-index: 2;
	user-select: none;
}
@media (max-width: 767px) {
	.territory-map__embed #map { min-height: 220px; }
	.territory-map__heading    { font-size: 30px; }
	.territory-map__subheading { font-size: 26px; }
}

/* ============================================================
   PDF GRID BLOCK
============================================================ */
.pdf-grid-section {
	position: relative;
	z-index: 1;
	padding: 48px 0 64px;
	background: #fafafa;
}
.pdf-grid__heading {
	text-align: center;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 36px;
	color: var(--sb-text);
}
.pdf-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.pdf-grid__card {
	display: flex;
	flex-direction: column;
	border: 1px solid #e8e8e8;
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
	transition: box-shadow 0.2s;
}
.pdf-grid__card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.1); }
.pdf-grid__thumb-link { display: block; }
.pdf-grid__thumb {
	width: 100%;
	height: auto;
	display: block;
}
.pdf-grid__thumb-placeholder {
	width: 100%;
	aspect-ratio: 1;
	background: #efefef;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 40px;
	color: #bbb;
}
.pdf-grid__info {
	padding: 16px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.pdf-grid__location {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 6px;
	color: #222;
}
.pdf-grid__terms {
	font-size: 12px;
	color: #666;
	margin: 0 0 4px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.pdf-grid__states {
	font-size: 12px;
	color: #444;
	margin: 0 0 12px;
	line-height: 1.6;
	flex: 1;
}
.pdf-grid__download {
	align-self: flex-start;
	font-size: 12px;
	padding: 6px 16px;
}
.pdf-grid__heading--large {
	font-size: 52px;
	font-weight: 300;
	color: #bbb;
	letter-spacing: 0.04em;
	text-align: left;
	margin-bottom: 16px;
}
.pdf-grid__intro {
	margin-bottom: 28px;
	color: #444;
	text-align: left;
}
@media (max-width: 1024px) { .pdf-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 599px)  { .pdf-grid { grid-template-columns: 1fr; } }
@media (max-width: 767px)  { .pdf-grid__heading--large { font-size: 36px; } }

/* ── Spec Sheet Grid ─────────────────────────────────────────────────── */
.spec-sheet-section { padding: 48px 0 64px; }
.spec-sheet-section__heading {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 10px;
	color: var(--sb-text);
	text-transform: uppercase;
}
.spec-sheet-section__intro { margin-bottom: 28px; color: #444; }
.spec-sheet-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.spec-sheet-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 12px;
	border: 1px solid #e8e8e8;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,0.06);
	transition: box-shadow 0.2s;
}
.spec-sheet-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.12); }
.spec-sheet-card__img-wrap {
	display: block;
	width: 100%;
	margin-bottom: 10px;
}
.spec-sheet-card__img-wrap img {
	width: 100%;
	max-width: 200px;
	height: 200px;
	object-fit: contain;
	border: 1px solid #ddd;
	border-radius: 3px;
}
.spec-sheet-card__title {
	font-size: 13px;
	margin: 0 0 4px;
	line-height: 1.3;
}
.spec-sheet-card__subtitle {
	font-size: 11px;
	color: #777;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0;
}
.spec-sheet-section__heading--large {
	font-size: 52px;
	font-weight: 300;
	color: #bbb;
	letter-spacing: 0.04em;
	margin-bottom: 30px;
}
.spec-sheet-section + .spec-sheet-section { padding-top: 0; }
@media (max-width: 1024px) { .spec-sheet-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .spec-sheet-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 400px)  { .spec-sheet-grid { grid-template-columns: 1fr; } }

.btn-primary,
.wp-block-button__link {
	color: #FFEFD7;
	background: linear-gradient(to bottom, #FF9B22 0%, #FF8C00 100%);
}
.btn-primary:hover,
.wp-block-button__link:hover { background: #FF9B22; color: #fff; text-decoration: none; }

.btn-default {
	background: transparent;
	color: rgba(50,50,50,0.5);
	box-shadow: inset 0 0 0 3px rgba(50,50,50,0.5);
}
.btn-default:hover { color: rgba(50,50,50,0.8); box-shadow: inset 0 0 0 3px rgba(50,50,50,0.8); background: transparent; }

.btn-large { padding: 15px 40px; font-size: 16px; }

.text-right { text-align: right; }
.text-center { text-align: center; }

/* ============================================================
   JOB LISTINGS
============================================================ */
.jobs-intro {
	font-size: 16px;
	margin-bottom: 30px;
}

.jobs-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
	margin: 30px 0;
}

.job-card {
	flex: 1 1 220px;
	max-width: 280px;
	text-align: center;
	padding: 20px;
	border-top: 3px solid var(--sb-blue);
	background: #fafafa;
}

.job-card h3 {
	font-size: 17px;
	font-weight: 700;
	margin-bottom: 5px;
}

.job-card .job-location {
	color: #555;
	font-size: 14px;
	margin-bottom: 16px;
}

.job-card .btn { margin-top: 10px; }

.jobs-empty {
	padding: 40px;
	text-align: center;
	background: var(--sb-gray-light);
	border-radius: 4px;
	color: #666;
	font-size: 16px;
}

.apply-section {
	margin: 40px 0;
	text-align: center;
}

.apply-section h3 { margin-bottom: 20px; }

/* Single job */
.job-single-content { max-width: 800px; margin: 40px auto; padding: 0 15px; }
.job-single-content .back-link { margin-bottom: 20px; display: inline-block; }

/* ============================================================
   VIDEO EMBED BLOCK
============================================================ */
.video-embed-section {
	padding: 48px 0 56px;
	background: #fff;
}
.video-embed__heading {
	text-align: center;
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 28px;
	color: var(--sb-blue);
}
.video-embed__wrapper {
	margin: 0 auto;
	width: 100%;
}
.video-embed__player {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 10px;
	box-shadow: 0 6px 32px rgba(0,0,0,0.14);
	background: #000;
}
.video-embed__caption {
	text-align: center;
	color: #666;
	font-size: 14px;
	margin-top: 14px;
}

/* ============================================================
   LOCATIONS PAGE
============================================================ */
.locations-section {
	padding: 48px 0 60px;
}
.locations-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
	margin-top: 36px;
}
.location-card {
	background: var(--sb-gray-light);
	border-radius: 6px;
	padding: 24px;
	border: 1px solid #e4e4e4;
}
.location-card__city {
	color: var(--sb-blue);
	font-size: 20px;
	margin-top: 0;
	margin-bottom: 4px;
}
.location-card__type  { margin: 0 0 10px; font-size: 14px; }
.location-card__address,
.location-card__contact { font-size: 14px; line-height: 1.6; margin-bottom: 8px; }
.location-card__contact a { color: var(--sb-blue); }
.location-card__divider { border: none; border-top: 1px solid #ccc; margin: 12px 0; }
.location-card__willcall { font-size: 14px; line-height: 1.6; margin: 0; }
.location-card__willcall-label { color: var(--sb-blue); }
.location-card__map { margin-top: 14px; border-radius: 4px; overflow: hidden; }
.location-card__map iframe { display: block; }

/* ── Truck Run Schedule Table ─────────────────────────────── */
.truck-run-section {
	padding: 64px 0 80px;
	background: #fff;
}
.truck-run__heading {
	text-align: center;
	margin: 0 0 48px;
	line-height: 1.15;
}
.truck-run__heading-main {
	display: block;
	font-size: 30px;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: var(--sb-blue);
	text-transform: uppercase;
}
.truck-run__heading-sub {
	display: block;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: #333;
	text-transform: uppercase;
}
.truck-run__table-wrap { overflow-x: auto; }
.truck-run__table {
	width: 100%;
	border-collapse: collapse;
	min-width: 600px;
	border: 1px solid #ccc;
}
.truck-run__corner-cell {
	background: #fff;
	border: 1px solid #ccc;
}
.truck-run__col-head {
	background: #fcaf17;
	color: #1a1a1a;
	font-weight: 700;
	text-align: center;
	padding: 14px 10px;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	border: 1px solid #e0c060;
}
.truck-run__row-label {
	background: var(--sb-blue);
	color: #fcaf17;
	font-weight: 700;
	padding: 14px 20px;
	white-space: nowrap;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	border: 1px solid #163d80;
}
.truck-run__cell {
	text-align: center;
	padding: 12px 10px;
	border: 1px solid #ddd;
	background: #fff;
}
.truck-run__row--primary .truck-run__cell { background: #fffbec; }
.truck-run__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: #f5f5f5;
	color: #222;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	border: 1px solid #c8c8c8;
	border-radius: 3px;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 0.2s, border-color 0.2s;
	white-space: nowrap;
}
.truck-run__pdf-icon {
	font-size: 22px;
	color: #cc0000;
	transition: color 0.2s;
	flex-shrink: 0;
}
.truck-run__btn:hover {
	background: #efefef;
	border-color: #aaa;
	color: #222;
}
.truck-run__btn:hover .truck-run__pdf-icon { color: #fcaf17; }
.truck-run__btn-text { line-height: 1; }
.truck-run__na { color: #bbb; font-size: 16px; }
@media (max-width: 767px) {
	.truck-run__heading-main { font-size: 22px; }
	.truck-run__heading-sub  { font-size: 16px; }
	.truck-run__row-label    { font-size: 11px; padding: 10px 8px; }
	.truck-run__col-head     { font-size: 11px; padding: 10px 4px; }
	.truck-run__btn          { padding: 6px 8px; font-size: 10px; gap: 4px; }
	.truck-run__pdf-icon     { font-size: 16px; }
}

/* ============================================================
   RESOURCES PAGES (price sheets / spec sheets)
============================================================ */
.resource-section { margin: 40px 0; }

.resource-section h3 {
	color: var(--sb-blue);
	border-bottom: 2px solid var(--sb-blue);
	padding-bottom: 8px;
	margin-bottom: 20px;
}

.resource-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.resource-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: var(--sb-gray-light);
	border-radius: 3px;
	font-size: 14px;
	font-weight: 600;
	color: var(--sb-blue);
	border: 1px solid #ddd;
	transition: background 0.2s;
}
.resource-link:hover { background: #e8e4e0; color: var(--sb-blue); }

/* ============================================================
   ABOUT PAGE
============================================================ */
.about-content { max-width: 900px; margin: 40px auto; }
.about-content .lead-text { font-size: 18px; line-height: 1.8; }

.about-content-section {
	max-width: 900px;
	margin: 0 auto;
	padding: 48px 20px 64px;
}
.about-content-section h2 { color: var(--sb-blue); margin-bottom: 8px; }
.about-content-section h3 { color: var(--sb-blue); margin-top: 36px; margin-bottom: 8px; }
.about-content-section h4 { margin-top: 24px; margin-bottom: 4px; }
.about-content-section p  { font-size: 15px; line-height: 1.75; margin-bottom: 12px; }
.about-content-section ul { font-size: 15px; line-height: 1.75; margin-bottom: 16px; padding-left: 22px; }
.about-content-section hr { border: none; border-top: 1px solid #ddd; margin: 28px 0; }
.about-content-section h4 { font-size: 17px; line-height: 1.7; font-weight: 400; color: #444; margin-bottom: 16px; }

/* RIGHH core values */
.righh-values {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin: 20px 0 28px;
}
.righh-item {
	background: var(--sb-blue);
	color: #fff;
	padding: 10px 22px;
	border-radius: 4px;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.righh-letter {
	color: #fcaf17;
	font-size: 22px;
	font-weight: 800;
}

/* ============================================================
   CONTACT PAGE
============================================================ */
.contact-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin: 40px 0;
}
.contact-info { flex: 1 1 300px; }
.contact-info h3 { color: var(--sb-blue); }
.contact-map { flex: 1 1 400px; }
.contact-map iframe { width: 100%; height: 350px; border: none; }

/* ============================================================
   FOOTER
============================================================ */
.footer-top {
	background: var(--sb-cream);
	padding: 40px 0 10px;
	font-size: 13px;
	color: #000;
}

.footer-top a { color: var(--sb-blue); }
.footer-top a:hover { color: #aaa; }

.footer-widgets {
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}

.footer-widget { flex: 1 1 200px; margin-bottom: 30px; }

.footer-widget-title {
	font-size: 17px;
	font-weight: 700;
	margin: 0 0 20px;
	color: #000;
}

.social-icons { font-size: 30px; display: flex; gap: 12px; flex-wrap: wrap; }
.social-icons a { color: var(--sb-blue); }
.social-icons a:hover { color: #aaa; }

.footer-bottom {
	background: var(--sb-blue);
	color: #fff;
	padding: 15px 0;
	font-size: 13px;
	text-align: center;
}

.footer-bottom a { color: #fff; }

/* ============================================================
   UTILITY
============================================================ */
.top-space { margin-top: 60px; }
.section-divider { border: none; border-top: 1px solid #ddd; margin: 30px 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

/* WordPress core block overrides */
.wp-block-group { margin-top: 0; margin-bottom: 0; }
.wp-block-group.top-space { margin-top: 60px; }
.wp-block-group.container { padding-left: 15px; padding-right: 15px; }

/* Scroll reveal animation placeholder */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

