/* =========================================================
   FallZone 2026 — main stylesheet
   Re-skin of the legacy Divi-based design. Palette and layout
   pulled from reference/theme/style.css and reference screenshots.
   ========================================================= */

:root {
	--fz-blue: #1d00d0;
	--fz-blue-alt: #0000ff;
	--fz-red: #fa0000;
	--fz-red-alt: #e02b20;
	--fz-text: #333333;
	--fz-footer-bg: #d3d3d3;
	--fz-border: rgba(0, 0, 0, 0.2);
	--fz-max-width: 1240px;
	--fz-font: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

* {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	font-family: var(--fz-font);
	font-size: 16px;
	font-weight: 400;
	color: var(--fz-text);
	line-height: 1.65;
	background: #ffffff;
}

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

a {
	color: var(--fz-blue);
	text-decoration: none;
}

a:hover {
	color: var(--fz-red);
}

.container {
	max-width: var(--fz-max-width);
	margin: 0 auto;
	padding: 0 20px;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 20px;
	color: var(--fz-blue);
}

h1 {
	font-size: 28px;
}

h2 {
	font-size: 22px;
}

h4 {
	font-size: 18px;
}

p {
	margin: 0 0 24px;
}

.entry-content > :last-child {
	margin-bottom: 0;
}

ul, ol {
	margin: 0 0 24px;
	padding-left: 24px;
}

li {
	margin-bottom: 4px;
}

blockquote {
	margin: 20px 0 30px;
	padding-left: 20px;
	border-left: 5px solid var(--fz-blue);
	font-size: 14px;
	font-weight: 500;
	color: #666666;
}

blockquote p {
	margin: 0;
}

blockquote strong {
	font-size: 24px;
	font-weight: 700;
	color: var(--fz-blue-alt);
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: #fff;
	color: var(--fz-blue);
	padding: 10px 16px;
	z-index: 10000;
}

.skip-link:focus {
	left: 10px;
	top: 10px;
}

/* =Header
------------------------------------------------------- */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: #ffffff;
	border-bottom: 1px solid var(--fz-border);
	padding: 12px 0 10px;
}

/* Push page content down by the fixed header's actual height (set via JS,
   see main.js) so nothing sits underneath it — avoids a hardcoded value
   that would drift if header content/wrapping changes. */
#page-content {
	padding-top: var( --fz-header-height, 164px );
}

.site-header__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
}

.site-header__contact {
	text-align: right;
	margin-left: auto;
}

.site-header__contact h2 {
	font-size: 22px;
	margin: 0 0 8px;
	color: var(--fz-text);
}

.site-header__contact a {
	color: var(--fz-red);
	font-weight: 700;
}

.site-header__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}

.site-header__social li {
	line-height: 0;
}

.site-header__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 3px;
	color: #fff;
}

.site-header__social a.icon-facebook { background: #3b5998; }
.site-header__social a.icon-twitter { background: #00aced; }
.site-header__social a.icon-youtube { background: #a82400; }
.site-header__social a.icon-instagram { background: #ffc838; }

.site-branding__logo img {
	max-height: 70px;
	max-width: 100%;
	height: auto;
	display: block;
}

.site-branding__logo {
	font-size: 22px;
	font-weight: 700;
	color: var(--fz-blue);
}

/* =Primary Nav
------------------------------------------------------- */
.primary-navigation {
	width: 100%;
	margin-top: 14px;
	padding-top: 8px;
}

.primary-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	justify-content: center;
}

.primary-navigation li {
	position: relative;
}

.primary-navigation a {
	display: block;
	padding: 8px 6px;
	color: var(--fz-red);
	font-weight: 700;
	font-size: 15px;
	white-space: nowrap;
}

.primary-navigation a:hover,
.primary-navigation .current-menu-item > a {
	color: var(--fz-blue);
}

.menu-toggle {
	display: none;
	margin-left: auto;
	background: var(--fz-blue);
	color: #fff;
	border: none;
	padding: 10px 14px;
	font-size: 16px;
	cursor: pointer;
	border-radius: 3px;
}

@media (max-width: 782px) {
	.menu-toggle {
		display: block;
	}

	.primary-navigation {
		display: none;
	}

	.primary-navigation.is-open {
		display: block;
	}

	.primary-navigation ul {
		flex-direction: column;
		text-align: center;
	}

	.site-header__row {
		justify-content: center;
		text-align: center;
	}

	.site-header__contact {
		width: 100%;
		text-align: center;
	}

	.site-header__social {
		justify-content: center;
	}

	.site-branding__logo img {
		max-height: 56px;
	}

	.entry-content .alignleft,
	.entry-content .alignright {
		float: none;
		display: block;
		max-width: 100%;
		margin: 0 auto 20px;
	}
}

/* =Layout
------------------------------------------------------- */
.site-main {
	padding: 30px 0 50px;
	min-height: 40vh;
}

.home .site-main {
	padding-top: 25px;
}

.content-area-with-sidebar {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 40px;
	align-items: start;
}

@media (max-width: 782px) {
	.content-area-with-sidebar {
		grid-template-columns: 1fr;
	}
}

.entry-title {
	color: var(--fz-blue);
	margin-bottom: 6px;
}

/* Single blog posts only — matches live's title/meta spacing there
   (30px below title, 21px below the author/date/category meta line). */
.single-post .entry-title {
	margin-bottom: 30px;
}

.single-post .post-meta {
	margin-bottom: 21px;
}

.entry-content h1:first-child,
.entry-content > h1:first-of-type {
	margin-top: 0;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	margin-top: 26px;
	margin-bottom: 14px;
}

.entry-content > h1:first-child,
.entry-content > h2:first-child,
.entry-content > h3:first-child,
.entry-content > h4:first-child {
	margin-top: 0;
}

.entry-content h2,
.entry-content h3 {
	clear: both;
}

.page-template-page-location .entry-content > h2:first-child {
	font-size: 18px;
	margin-bottom: 10px;
}

.page-template-page-location .entry-content h2:not(.gform_title),
.page-template-page-location .entry-content h3 {
	font-size: 16px;
	line-height: 1.35;
	margin: 18px 0 8px;
}

.page-template-page-location .entry-content h3 {
	color: var(--fz-text);
}

.entry-content img {
	border-radius: 3px;
}

.entry-content figure {
	margin-top: 0;
	margin-bottom: 24px;
}

/* The legacy [caption] shortcode wraps images in <figure class="wp-caption">
   with an inline `style="width: <img width>px"` on the figure itself. That
   fixed pixel width doesn't shrink at narrow viewports, so it overflows and
   forces the whole image out past the viewport edge even though the image's
   own max-width:100% is technically being honored (100% of an oversized,
   unconstrained parent). Affects the large majority of migrated content —
   61 of 75 pages. */
.wp-caption {
	max-width: 100%;
	margin-bottom: 24px;
	text-align: center;
	background: #f7f7f7;
	border: 1px solid #dddddd;
	padding: 0;
}

.wp-caption img {
	display: block;
	width: 100%;
	height: auto;
}

.wp-caption-text,
.entry-content figcaption {
	font-size: 12px;
	line-height: 1.4;
	color: #666666;
	margin: 0;
	padding: 8px 10px;
	text-align: center;
	background: #f7f7f7;
}

.entry-content figure.wp-block-image img {
	display: block;
}

.entry-content figure.wp-block-image figcaption {
	border: 1px solid #dddddd;
	border-top: 0;
	width: 100%;
}

/* Legacy [embed] shortcode output has no wrapper div/class to hang
   add_theme_support('responsive-embeds') styling on (that only covers the
   Gutenberg wp:embed block), so make any raw YouTube/Vimeo iframe in
   content responsive directly. */
.entry-content iframe[src*="youtube"],
.entry-content iframe[src*="youtu.be"],
.entry-content iframe[src*="vimeo"] {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 0 auto 24px;
}

.entry-content .alignleft {
	float: left;
	margin: 0 28px 24px 0;
}

.entry-content .alignright {
	float: right;
	margin: 0 0 24px 28px;
}

.entry-content .aligncenter {
	display: block;
	margin: 0 auto 24px;
}

.entry-content > .wp-block-image > figure.aligncenter.is-resized {
	display: table;
	width: auto;
	max-width: 100%;
	margin: 0 auto 24px;
}

.entry-content > .wp-block-image > figure.aligncenter.is-resized img {
	display: block;
}

.entry-content .alignleft,
.entry-content .alignright {
	max-width: 48%;
}

/* =Buttons
------------------------------------------------------- */
.btn,
.wp-block-button__link,
.entry-content .wp-block-button__link {
	display: inline-block;
	background: var(--fz-blue-alt);
	color: #fff !important;
	font-weight: 600;
	padding: 12px 24px;
	border-radius: 4px;
	border: none;
}

.btn:hover,
.wp-block-button__link:hover {
	background: var(--fz-red);
	color: #fff !important;
}

/* =Hero slider (reusable — see fallzone_hero_slider() in template-tags.php)
------------------------------------------------------- */
.home-native-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.65fr);
	gap: 22px;
	align-items: stretch;
	margin-bottom: 28px;
}

.home-native-hero__visual {
	position: relative;
	min-height: 100%;
}

.home-native-hero__visual::after {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.16), rgba(0, 0, 0, 0.1) 36%, rgba(0, 0, 0, 0.62) 68%, rgba(0, 0, 0, 0.88));
	content: "";
}

.home-native-hero__visual .fz-hero-slider {
	height: 100%;
	min-height: 390px;
	margin-bottom: 0;
}

.home-native-hero__copy {
	position: absolute;
	left: 18px;
	right: 18px;
	top: auto;
	bottom: 22px;
	z-index: 3;
	max-width: 680px;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

.home-native-hero__copy h1 {
	margin: 0 0 8px;
	font-size: 34px;
	line-height: 1.12;
	color: #fff;
}

.home-native-hero__copy p {
	margin-bottom: 10px;
	font-size: 18px;
	line-height: 1.45;
}

.home-native-hero__trust {
	margin: 0 0 12px;
	padding-left: 19px;
	font-size: 14px;
	line-height: 1.45;
}

.home-native-hero__services {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.home-native-hero__services a {
	display: inline-block;
	background: rgba(255, 255, 255, 0.94);
	color: var(--fz-blue-alt);
	border: 1px solid rgba(0, 68, 204, 0.25);
	border-radius: 3px;
	padding: 5px 8px;
	font-size: 13px;
	font-weight: 700;
	text-shadow: none;
}

.home-native-hero__form {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(0, 0, 255, 0.22);
	border-top: 6px solid var(--fz-red);
	border-radius: 4px;
	padding: 20px 20px 18px;
	background: linear-gradient(180deg, #ffffff, #f6f8ff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.home-native-hero__form .gform_wrapper .gform_title {
	margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(0, 0, 255, 0.14);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.22;
}

.home-native-hero__form .gform_fields {
	display: grid !important;
	grid-template-columns: 1fr !important;
	column-gap: 10px;
	row-gap: 12px;
}

.home-native-hero__form .gfield {
	grid-column: 1 / -1 !important;
	margin-bottom: 0;
}

.home-native-hero__form .gform_wrapper label {
	margin-bottom: 5px;
	font-size: 14px;
	line-height: 1.25;
	color: var(--fz-text);
}

.home-native-hero__form .gform_wrapper input,
.home-native-hero__form .ginput_recaptcha {
	min-height: 40px;
	border-color: rgba(0, 0, 0, 0.16);
	border-radius: 2px;
	background: #fff;
}

.home-native-hero__form .gform_wrapper .gform_button {
	width: 100%;
	margin-top: 8px;
	padding: 12px 18px;
	background: var(--fz-blue-alt);
	border-radius: 3px;
	box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.18);
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
}

.home-native-hero__form .gform_wrapper .gform_button:hover {
	background: var(--fz-red);
}

@media (max-width: 960px) {
	.home-native-hero {
		grid-template-columns: 1fr;
	}

	.home-native-hero__visual .fz-hero-slider {
		min-height: 330px;
	}
}

@media (max-width: 600px) {
	.site-header__row {
		justify-content: center;
		text-align: center;
	}

	.site-branding,
	.site-header__contact {
		width: 100%;
	}

	.site-branding__logo img {
		width: calc(100vw - 40px);
		max-width: 320px;
		margin: 0 auto;
	}

	.site-header__contact {
		text-align: center;
	}

	.primary-navigation a {
		font-size: 13px;
		white-space: normal;
	}

	.home-native-hero {
		overflow: hidden;
	}

	.home-native-hero,
	.home-native-hero__visual,
	.home-native-hero__form {
		box-sizing: border-box;
		min-width: 0;
		max-width: 100%;
	}

	.home-native-hero__visual .fz-hero-slider {
		max-width: 100%;
		min-height: 430px;
	}

	.home-native-hero__copy {
		left: 12px;
		right: auto;
		top: auto;
		bottom: 18px;
		width: calc(100vw - 64px);
		max-width: calc(100% - 24px);
	}

	.home-native-hero__copy h1 {
		max-width: 300px;
		font-size: 22px;
		overflow-wrap: anywhere;
	}

	.home-native-hero__copy p {
		max-width: 300px;
		font-size: 14px;
	}

	.home-native-hero__trust {
		max-width: 300px;
		font-size: 12px;
	}

	.home-native-hero__services {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		width: min(300px, 100%);
	}

	.home-native-hero__services a {
		padding: 5px 6px;
		font-size: 12px;
		line-height: 1.2;
		text-align: center;
		white-space: normal;
	}

	.home-native-hero__form {
		overflow: hidden;
		width: 100%;
		padding: 16px 14px;
	}

	.home-native-hero__form * {
		max-width: 100%;
	}

	.home-native-hero__form .gform_wrapper .gform_title {
		width: auto;
		max-width: 290px;
		font-size: 16px;
		overflow-wrap: anywhere;
		white-space: normal;
	}

	.home-native-hero__form .gform_fields {
		grid-template-columns: 1fr !important;
	}

	.home-native-hero__form .gfield {
		grid-column: 1 / -1 !important;
	}
}

.fz-hero-slider {
	position: relative;
	width: 100%;
	aspect-ratio: 2.37 / 1;
	overflow: hidden;
	border-radius: 4px;
	margin-bottom: 30px;
}

.fz-hero-slider__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.8s ease;
}

.fz-hero-slider__slide.is-active {
	opacity: 1;
}

.fz-hero-slider__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Single-image hero (no JS rotation needed) just needs normal flow. */
.fz-hero-slider:not(.fz-hero-slider--multi) .fz-hero-slider__slide {
	position: relative;
	opacity: 1;
}

.fz-hero-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 64px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	color: #fff;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
	transition: opacity 0.2s ease;
}

.fz-hero-slider__arrow svg {
	width: 40px;
	height: 40px;
}

.fz-hero-slider:hover .fz-hero-slider__arrow {
	opacity: 0.85;
}

.fz-hero-slider__arrow:hover {
	opacity: 1 !important;
}

.fz-hero-slider__arrow--prev {
	left: 8px;
}

/* Touch devices have no :hover — show arrows at reduced opacity by default
   so they're actually usable, not permanently invisible. */
@media (hover: none) {
	.fz-hero-slider__arrow {
		opacity: 0.7;
	}
}

@media (max-width: 600px) {
	.fz-hero-slider__arrow {
		width: 40px;
		height: 40px;
	}

	.fz-hero-slider__arrow svg {
		width: 26px;
		height: 26px;
	}
}

.fz-hero-slider__arrow--next {
	right: 8px;
}

.feature-grid > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 30px 0 45px;
}

@media (max-width: 900px) {
	.feature-grid > .wp-block-group__inner-container {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 500px) {
	.feature-grid > .wp-block-group__inner-container {
		grid-template-columns: 1fr;
	}
}

.feature-grid__item {
	display: flex;
	flex-direction: column;
}

.feature-grid__item img {
	width: 100%;
	height: 170px;
	object-fit: cover;
	border-radius: 4px;
	margin-bottom: 10px;
}

.feature-grid__item h4 {
	margin-bottom: 8px;
}

.feature-grid__item p {
	line-height: 1.6;
}

/* Reusable text-formatting utilities — the live site's original Divi content
   used inline red/blue spans throughout for brand emphasis and lead-in
   statements. These classes replace that inline styling. */
.fz-brand {
	color: var(--fz-red);
}

.fz-lead {
	color: var(--fz-blue-alt);
}

.feature-grid__item .wp-block-buttons {
	margin-top: auto;
	padding-top: 12px;
}

/* =Partner logo strip
------------------------------------------------------- */
figure.logo-links.wp-block-gallery {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px;
	margin: 30px 0;
}

figure.logo-links .wp-block-image,
figure.logo-links.wp-block-gallery > figure {
	margin: 0;
	width: auto !important;
	flex-grow: 0 !important;
	flex-basis: auto !important;
}

figure.logo-links img {
	width: 110px !important;
	height: auto !important;
	max-width: 110px;
	object-fit: contain;
}

/* =States list
------------------------------------------------------- */
.states-list {
	text-align: left;
}

.states-list a {
	
}

/* =Sidebar
------------------------------------------------------- */
.widget-area .widget {
	margin-bottom: 30px;
}

.widget-area .widget-title,
.widget-area h4.widgettitle {
	font-size: 18px;
	margin-bottom: 12px;
	color: var(--fz-blue);
}

.widget-area .menu {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--fz-border);
}

.widget-area .menu li {
	border-bottom: 1px solid var(--fz-border);
}

.widget-area .menu a {
	display: block;
	padding: 6px 0;
	font-size: 14px;
	color: var(--fz-text);
}

.widget-area .menu a:hover {
	color: var(--fz-blue);
}

/* =Gravity Forms tweaks
------------------------------------------------------- */
.gform_required_legend {
	display: none;
}

.gform_wrapper .gform_title {
	font-size: 26px;
	font-weight: 600;
	color: var(--fz-text);
}

.gform_wrapper input,
.gform_wrapper select,
.gform_wrapper textarea {
	background: #fff;
	border: 1px solid #ddd;
	font-family: var(--fz-font);
	font-size: 14px;
	font-weight: 300;
	color: #000;
}

.gform_wrapper label {
	font-weight: 700;
}

.gform_wrapper .gform_button,
.gform-theme-button {
	background: var(--fz-blue-alt);
	color: #fff;
	border: none;
	border-radius: 3px;
	padding: 12px 30px;
	font-weight: 600;
	cursor: pointer;
}

.gform_wrapper .gform_button:hover {
	background: var(--fz-red);
}

.side-form .gform_wrapper input,
.side-form .gform_wrapper select,
.side-form .gform_wrapper textarea {
	width: 100%;
}

.side-form .gform_wrapper .gform_button {
	width: 100%;
	text-align: center;
}

/* =Blog / archive
------------------------------------------------------- */
.post-list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
}

.post-summary {
    margin-bottom: 30px;
    border: 1px solid var(--fz-border);
    width: calc(33.333% - 20px);
    padding: 20px;
}

@media (max-width: 900px) {
	.post-summary {
		width: calc(50% - 15px);
	}
}

@media (max-width: 600px) {
	.post-summary {
		width: 100%;
	}
}

.post-summary__thumb img {
	width: 100%;
	border-radius: 4px;
	margin-bottom: 15px;
}

.post-summary__meta {
	font-size: 13px;
	color: #777;
	margin-bottom: 10px;
}

.post-summary h2 {
	margin-bottom: 10px;
}

.read-more {
	font-weight: 700;
}

.pagination {
	display: flex;
	gap: 10px;
	justify-content: center;
	margin-top: 30px;
	flex-wrap: wrap;
}

.pagination a,
.pagination span {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--fz-border);
	border-radius: 3px;
}

.pagination .current {
	background: var(--fz-blue);
	color: #fff;
	border-color: var(--fz-blue);
}

/* =Footer
------------------------------------------------------- */
.site-footer {
	background: var(--fz-footer-bg);
	padding: 28px 0 10px;
	margin-top: 40px;
	font-size: 13px;
}

.site-footer__nav ul {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	justify-content: center;
}

.site-footer__nav a {
	color: var(--fz-text);
}

.site-footer__bottom {
	text-align: center;
}

.site-footer__bottom .site-header__social {
	margin: 0 0 15px;
	justify-content: center;
}

/* =404
------------------------------------------------------- */
.error-404 {
	text-align: center;
	padding: 60px 0;
}

/* =Utility
------------------------------------------------------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
