/* ==========================================================================
   Real Estate Accelerator — page template stylesheet
   --------------------------------------------------------------------------
   - Tokens are scoped to .re-accelerator (no global custom-property leakage).
   - BEM under .re-accelerator__*.
   - Mobile-first; desktop breakpoint at 768px.
   - Open Sans 400 / 600 / 700 / 800 must be loaded by the theme.
   ========================================================================== */

.re-accelerator {
	/* ---- Colors ------------------------------------------------------ */
	--re-accelerator-navy:          #002f5f;
	--re-accelerator-blue:          #0c4d80;
	--re-accelerator-text:          #3d3d3d;
	--re-accelerator-text-muted:    #4e5056;
	--re-accelerator-text-subtle:   #747678;
	--re-accelerator-text-soft:     #717171;
	--re-accelerator-cta:           #f06d1a;
	--re-accelerator-cta-hover:     #d85f12;
	--re-accelerator-white:         #ffffff;

	/* ---- Backgrounds ------------------------------------------------- */
	--re-accelerator-bg-page:       #f0f0f0;
	--re-accelerator-bg-alt:        #f4f4f4;
	--re-accelerator-bg-card:       #ffffff;
	--re-accelerator-bg-banner-overlay: rgba(0, 47, 95, 0.55);

	/* ---- Type -------------------------------------------------------- */
	--re-accelerator-font:          "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	--re-accelerator-fs-h1:         clamp(2rem, 4vw, 2.75rem);   /* 32–44 */
	--re-accelerator-lh-h1:         1.27;
	--re-accelerator-fs-h2:         clamp(1.5rem, 2.6vw, 2rem);  /* 24–32 */
	--re-accelerator-lh-h2:         1.25;
	--re-accelerator-fs-h3:         1.5rem;                       /* 24 */
	--re-accelerator-lh-h3:         1.33;
	--re-accelerator-fs-h4:         1.25rem;                      /* 20 */
	--re-accelerator-lh-h4:         1.4;
	--re-accelerator-fs-body:       1rem;                         /* 16 */
	--re-accelerator-lh-body:       1.5;
	--re-accelerator-fs-lead:       1.125rem;                     /* 18 */
	--re-accelerator-lh-lead:       1.55;
	--re-accelerator-fs-small:      0.75rem;                      /* 12 */
	--re-accelerator-lh-small:      1.4;
	--re-accelerator-fs-stat:       1.375rem;                     /* 22 */
	--re-accelerator-fs-pill:       0.5rem;                       /* 8 */
	--re-accelerator-lh-pill:       1.25;

	/* ---- Spacing scale ----------------------------------------------- */
	--re-accelerator-space-1:       0.5rem;    /* 8 */
	--re-accelerator-space-2:       0.75rem;   /* 12 */
	--re-accelerator-space-3:       1rem;      /* 16 */
	--re-accelerator-space-4:       1.5rem;    /* 24 */
	--re-accelerator-space-5:       2rem;      /* 32 */
	--re-accelerator-space-6:       3rem;      /* 48 */
	--re-accelerator-space-7:       4rem;      /* 64 */

	/* ---- Radii ------------------------------------------------------- */
	--re-accelerator-radius-button: 8px;
	--re-accelerator-radius-inner:  12px;
	--re-accelerator-radius-card:   24px;
	--re-accelerator-radius-pill:   999px;

	/* ---- Layout ------------------------------------------------------ */
	--re-accelerator-container:     1312px;
	--re-accelerator-gutter:        clamp(1rem, 4vw, 2.75rem);

	/* ---- Reset on wrapper -------------------------------------------- */
	font-family: var(--re-accelerator-font);
	color: var(--re-accelerator-text);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

/* ---- Container ---------------------------------------------------------- */

.re-accelerator__container {
	width: 100%;
	max-width: var(--re-accelerator-container);
	margin: 0 auto;
	padding-inline: var(--re-accelerator-gutter);
}

section {
	border-top: none;
	margin-top: 0;
	padding-top: 0;
}

/* ---- Section titles (shared) ------------------------------------------- */

.re-accelerator__section-title {
	margin: 0 0 var(--re-accelerator-space-2);
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-h2);
	line-height: var(--re-accelerator-lh-h2);
	font-weight: 700;
}

/* ---- Buttons (shared) -------------------------------------------------- */

.re-accelerator__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.875rem 2rem;
	border: 1px solid transparent;          /* prevent hover layout shift */
	border-radius: var(--re-accelerator-radius-button);
	font-family: inherit;
	font-size: 0.875rem;                     /* 14 */
	line-height: 1.5;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.re-accelerator__button:focus-visible {
	outline: 2px solid var(--re-accelerator-cta);
	outline-offset: 2px;
}

.re-accelerator__button--primary {
	background-color: var(--re-accelerator-cta);
	color: var(--re-accelerator-white);
}

.re-accelerator__button--primary:hover,
.re-accelerator__button--primary:focus {
	background-color: var(--re-accelerator-cta-hover);
	color: var(--re-accelerator-white);
}

.re-accelerator__button--secondary {
	background-color: var(--re-accelerator-navy);
	color: var(--re-accelerator-white);
	font-weight: 600;
	border-radius: var(--re-accelerator-radius-inner);
}

.re-accelerator__button--secondary:hover,
.re-accelerator__button--secondary:focus {
	background-color: var(--re-accelerator-blue);
	color: var(--re-accelerator-white);
}

/* ==========================================================================
   1. HERO
   ========================================================================== */

.re-accelerator__hero {
/* 	background-color: var(--re-accelerator-bg-page); */
	padding-block: var(--re-accelerator-space-7);
}

.re-accelerator__hero-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--re-accelerator-space-6);
	align-items: center;
}

/* Mobile: illustration above content */
.re-accelerator__hero-illustration {
	order: -1;
}

.re-accelerator__hero-title {
	margin: 0 0 var(--re-accelerator-space-4);
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-h1);
	line-height: var(--re-accelerator-lh-h1);
	font-weight: 700;
}

.re-accelerator__hero-body {
	margin: 0 0 var(--re-accelerator-space-5);
	color: var(--re-accelerator-text-soft);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
	max-width: 60ch;
}

.re-accelerator__stat-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--re-accelerator-space-4);
	margin: 0 0 var(--re-accelerator-space-5);
	padding: 0;
	list-style: none;
}

.re-accelerator__stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-right: var(--re-accelerator-space-4);
	border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.re-accelerator__stat:last-child {
	border-right: 0;
	padding-right: 0;
}

.re-accelerator__stat-value {
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-stat);
	font-weight: 700;
	line-height: 1.27;
}

.re-accelerator__stat-label {
	color: var(--re-accelerator-text-subtle);
	font-size: var(--re-accelerator-fs-small);
	line-height: 1.5;
}

.re-accelerator__hero-illustration img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 709px;
	margin-inline: auto;
}

@media (min-width: 768px) {
	.re-accelerator__hero {
		padding-block: 5rem;
	}

	.re-accelerator__hero-grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		gap: var(--re-accelerator-space-7);
	}

	/* Desktop: restore DOM order — content left, illustration right */
	.re-accelerator__hero-illustration {
		order: 0;
	}
}

/* ==========================================================================
   2. WHAT'S INCLUDED
   ========================================================================== */

.re-accelerator__included {
	background-color: var(--re-accelerator-bg-page);
	padding-block: var(--re-accelerator-space-7);
}

.re-accelerator__included .re-accelerator__section-title {
	margin-bottom: var(--re-accelerator-space-6);
	max-width: 60ch;
}

.re-accelerator__suite {
	display: flex;
	flex-direction: column;
	gap: var(--re-accelerator-space-6);
}

.re-accelerator__suite-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--re-accelerator-space-5);
	padding: var(--re-accelerator-space-5);
	background-color: var(--re-accelerator-bg-card);
	border-radius: var(--re-accelerator-radius-card);
}

/* Mobile: image leads on every card when stacked */
.re-accelerator__suite-media {
	order: -1;
}

@media (min-width: 768px) {
	.re-accelerator__suite-card {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
		gap: var(--re-accelerator-space-6);
	}

	/* Desktop: image-right cards return to content-left, image-right */
	.re-accelerator__suite-card--image-right .re-accelerator__suite-media {
		order: 0;
	}

	/* Desktop: image-left cards keep the media on the left */
	.re-accelerator__suite-card--image-left .re-accelerator__suite-media {
		order: -1;
	}
}

/* Badge (pill) */

.re-accelerator__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--re-accelerator-space-1);
	padding: 4px 8px 4px 4px;
	border-radius: var(--re-accelerator-radius-pill);
	background-color: rgba(12, 77, 128, 0.08);
	color: var(--re-accelerator-blue);
	margin-bottom: var(--re-accelerator-space-3);
}

.re-accelerator__badge-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-color: var(--re-accelerator-blue);
	color: var(--re-accelerator-white);
}

.re-accelerator__badge-icon img {
	display: block;
	width: 8px;
	height: 8px;
}

.re-accelerator__badge-text {
	font-size: var(--re-accelerator-fs-pill);
	line-height: var(--re-accelerator-lh-pill);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.re-accelerator__suite-title {
	margin: 0 0 var(--re-accelerator-space-3);
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-h3);
	line-height: var(--re-accelerator-lh-h3);
	font-weight: 700;
}

.re-accelerator__suite-lead {
	margin: 0 0 var(--re-accelerator-space-3);
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-lead);
	line-height: var(--re-accelerator-lh-lead);
}

.re-accelerator__suite-media img,
.re-accelerator__suite-media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 240px;
	object-fit: cover;
	border-radius: var(--re-accelerator-radius-inner);
}

.re-accelerator__suite-media-placeholder {
	background: linear-gradient(135deg, var(--re-accelerator-bg-alt) 0%, var(--re-accelerator-bg-page) 100%);
}

/* Check list (rounded blue check icons) */

.re-accelerator__check-list {
	display: flex;
	flex-direction: column;
	gap: var(--re-accelerator-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.re-accelerator__check-list-item {
	display: flex;
	align-items: flex-start;
	gap: var(--re-accelerator-space-1);
	color: var(--re-accelerator-text);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

.re-accelerator__check-icon {
	flex: 0 0 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	border-radius: 50%;
	background-color: var(--re-accelerator-blue);
	color: var(--re-accelerator-white);
}

.re-accelerator__check-icon svg {
	width: 11px;
	height: 11px;
}

/* ==========================================================================
   3. CTA BANNER
   ========================================================================== */

.re-accelerator__banner {
	position: relative;
	background-color: var(--re-accelerator-navy);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--re-accelerator-white);
	padding-block: var(--re-accelerator-space-7);
	overflow: hidden;
}

.re-accelerator__banner-overlay {
	position: absolute;
	inset: 0;
	background-color: var(--re-accelerator-bg-banner-overlay);
}

.re-accelerator__banner .re-accelerator__container {
	position: relative;
}

.re-accelerator__banner-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--re-accelerator-space-5);
	align-items: center;
}

.re-accelerator__banner-title {
	margin: 0 0 var(--re-accelerator-space-3);
	color: var(--re-accelerator-white);
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1.27;
	font-weight: 800;
	white-space: pre-line;
}

.re-accelerator__banner-body {
	margin: 0;
	color: var(--re-accelerator-white);
	font-size: 0.875rem;
	line-height: 1.5;
	max-width: 60ch;
}

.re-accelerator__banner-cta {
	display: flex;
}

@media (min-width: 768px) {
	.re-accelerator__banner-inner {
		grid-template-columns: minmax(0, 1.5fr) auto;
		gap: var(--re-accelerator-space-7);
	}
}

/* ==========================================================================
   4. ADDITIONAL TOOLS
   ========================================================================== */

.re-accelerator__tools {
	background-color: var(--re-accelerator-bg-card);
	padding-block: var(--re-accelerator-space-7);
}

.re-accelerator__tools-header {
	margin-bottom: var(--re-accelerator-space-6);
	max-width: 70ch;
}

.re-accelerator__tools-body {
	margin: 0;
	color: var(--re-accelerator-text-muted);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

.re-accelerator__tools-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--re-accelerator-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.re-accelerator__tools-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 960px) {
	.re-accelerator__tools-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.re-accelerator__tools-item {
	display: flex;
}

.re-accelerator__tools-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: var(--re-accelerator-space-2);
	background-color: var(--re-accelerator-bg-card);
	border: 0.7px solid rgba(0, 0, 0, 0.15);
	border-radius: var(--re-accelerator-radius-card);
	box-shadow: 0 4px 16px 0 rgba(116, 116, 116, 0.08);
}

.re-accelerator__tools-media {
	position: relative;
	overflow: hidden;
	border-radius: var(--re-accelerator-radius-inner);
	aspect-ratio: 386 / 150;
}

.re-accelerator__tools-media img,
.re-accelerator__tools-media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.re-accelerator__tools-media-placeholder {
	background: linear-gradient(135deg, var(--re-accelerator-bg-alt) 0%, var(--re-accelerator-bg-page) 100%);
}

.re-accelerator__tools-logo {
	position: absolute;
	left: var(--re-accelerator-space-2);
	bottom: var(--re-accelerator-space-2);
	max-width: 120px;
	max-height: 36px;
	width: auto;
	height: auto;
	background-color: rgba(255, 255, 255, 0.92);
	padding: 4px 8px;
	border-radius: 4px;
}

.re-accelerator__tools-content {
	flex: 1;
	padding: var(--re-accelerator-space-3) var(--re-accelerator-space-1) var(--re-accelerator-space-3);
}

.re-accelerator__tools-title {
	margin: 0 0 4px;
	color: var(--re-accelerator-navy);
	font-size: var(--re-accelerator-fs-h4);
	line-height: var(--re-accelerator-lh-h4);
	font-weight: 700;
}

.re-accelerator__tools-subtitle {
	margin: 0 0 var(--re-accelerator-space-3);
	color: var(--re-accelerator-text-subtle);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

/* Dot list (small navy dot bullets) */

.re-accelerator__dot-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.re-accelerator__dot-list-item {
	position: relative;
	padding-left: 1.25rem;
	color: var(--re-accelerator-text-muted);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

.re-accelerator__dot-list-item::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 0.7em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: var(--re-accelerator-navy);
}

.re-accelerator__tools-cta {
	padding: var(--re-accelerator-space-1) 0 0;
}

.re-accelerator__tools-cta .re-accelerator__button {
	width: 100%;
}

/* ==========================================================================
   5. FORM SECTION
   ========================================================================== */

.re-accelerator__form-section {
	background-color: var(--re-accelerator-bg-alt);
	padding-block: var(--re-accelerator-space-7);
}

.re-accelerator__form-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--re-accelerator-space-6);
	padding: var(--re-accelerator-space-5);
	background-color: var(--re-accelerator-bg-card);
	border-radius: var(--re-accelerator-radius-card);
}

.re-accelerator__form-header {
	margin-bottom: var(--re-accelerator-space-5);
}

.re-accelerator__form-intro {
	margin: var(--re-accelerator-space-2) 0 0;
	color: var(--re-accelerator-text-muted);
	font-size: var(--re-accelerator-fs-body);
	line-height: var(--re-accelerator-lh-body);
}

.re-accelerator__form-aside img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 20px;
}

/* Gravity Forms tweaks — minimal, additive only */

.re-accelerator__form-wrapper .gform_wrapper {
	margin: 0;
}

.re-accelerator__form-wrapper .gfield_label {
	color: var(--re-accelerator-text-muted);
	font-size: 0.875rem;
	line-height: 1.57;
	font-weight: 400;
}

.re-accelerator__form-wrapper input[type="text"],
.re-accelerator__form-wrapper input[type="email"],
.re-accelerator__form-wrapper input[type="tel"],
.re-accelerator__form-wrapper input[type="url"],
.re-accelerator__form-wrapper textarea {
	background-color: #fafafa;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: var(--re-accelerator-radius-button);
	padding: var(--re-accelerator-space-2);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.5;
}

.re-accelerator__form-wrapper .gform_button {
	background-color: var(--re-accelerator-cta);
	color: var(--re-accelerator-white);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	border: 1px solid transparent;
	border-radius: var(--re-accelerator-radius-button);
	padding: var(--re-accelerator-space-2) var(--re-accelerator-space-6);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.re-accelerator__form-wrapper .gform_button:hover,
.re-accelerator__form-wrapper .gform_button:focus {
	background-color: var(--re-accelerator-cta-hover);
}

@media (min-width: 768px) {
	.re-accelerator__form-card {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--re-accelerator-space-7);
		padding: var(--re-accelerator-space-5);
		align-items: stretch;
	}
}

/* ==========================================================================
   6. LEGAL
   ========================================================================== */

.re-accelerator__legal {
	background-color: var(--re-accelerator-bg-alt);
	padding-block: 0 var(--re-accelerator-space-7);
}

.re-accelerator__legal-consent,
.re-accelerator__legal-disclaimer {
	color: var(--re-accelerator-text);
	font-size: var(--re-accelerator-fs-small);
	line-height: var(--re-accelerator-lh-small);
}

.re-accelerator__legal-consent p,
.re-accelerator__legal-disclaimer p {
	margin: 0 0 var(--re-accelerator-space-2);
}

.re-accelerator__legal-consent p:last-child,
.re-accelerator__legal-disclaimer p:last-child {
	margin-bottom: 0;
}

.re-accelerator__legal-divider {
	margin: var(--re-accelerator-space-3) 0;
	border: 0;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}
