/* Contact page composition shared by Gutenberg and the front end. */
.forge-contact-page {
	--forge-contact-bg: #080808;
	--forge-contact-surface: #111;
	--forge-contact-ink: #f5f5f3;
	--forge-contact-muted: #aaa9a5;
	--forge-contact-line: #242424;
	box-sizing: border-box;
	background: var(--forge-contact-bg);
	color: var(--forge-contact-ink);
}

.forge-contact-page *,
.forge-contact-page *::before,
.forge-contact-page *::after { box-sizing: border-box; }

.forge-contact-page > .kt-row-column-wrap,
.editor-styles-wrapper .forge-contact-page > .innerblocks-wrap {
	width: 100%;
	max-width: 1240px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

.forge-contact-page .kt-inside-inner-col,
.editor-styles-wrapper .forge-contact-page .kadence-inner-column-inner { min-width: 0; }

.forge-contact-page .wp-block-kadence-advancedheading { margin-top: 0; }

.forge-contact-eyebrow {
	display: inline-flex !important;
	align-items: center;
	align-self: flex-start;
	width: auto !important;
	max-width: 100%;
	white-space: nowrap;
}

.forge-contact-section-intro .forge-contact-eyebrow,
.forge-contact-process-wrap .forge-contact-eyebrow,
.forge-contact-hero-inner .forge-contact-eyebrow {
	align-self: center;
}

.forge-contact-section-intro > .kt-inside-inner-col { align-items: center; }
.editor-styles-wrapper .forge-contact-section-intro > .kadence-inner-column-inner { align-items: center; }

.kt-adv-headingforge-contact-process-title {
	align-self: center;
	margin-right: auto !important;
	margin-left: auto !important;
}

.forge-contact-hero {
	position: relative;
	background-color: #111;
}

.forge-contact-hero::after {
	position: absolute;
	inset: 0;
	z-index: 0;
	content: "";
	background: linear-gradient(90deg, rgba(6,6,6,.18), rgba(6,6,6,.03) 45%, rgba(6,6,6,.08));
	pointer-events: none;
}

.forge-contact-hero > .kt-row-column-wrap {
	position: relative;
	z-index: 1;
}

.editor-styles-wrapper .forge-contact-hero > .innerblocks-wrap {
	position: relative;
	z-index: 1;
}

.forge-contact-hero-inner > .kt-inside-inner-col { align-items: center; }
.editor-styles-wrapper .forge-contact-hero-inner > .kadence-inner-column-inner { align-items: center; }

.forge-contact-hero .kb-buttons-wrap,
.forge-contact-form-section .kb-buttons-wrap,
.forge-contact-location .kb-buttons-wrap { gap: 12px; }

.forge-contact-form-grid > .kt-row-column-wrap,
.forge-contact-process-cards > .kt-row-column-wrap,
.forge-contact-location-top > .kt-row-column-wrap,
.forge-contact-location-grid > .kt-row-column-wrap { align-items: stretch; }

.editor-styles-wrapper .forge-contact-form-grid > .innerblocks-wrap,
.editor-styles-wrapper .forge-contact-process-cards > .innerblocks-wrap,
.editor-styles-wrapper .forge-contact-location-top > .innerblocks-wrap,
.editor-styles-wrapper .forge-contact-location-grid > .innerblocks-wrap { align-items: stretch; }

.forge-contact-sidebar-group > .kt-inside-inner-col,
.forge-contact-location-info > .kt-inside-inner-col,
.forge-contact-step-card > .kt-inside-inner-col { align-items: stretch; }

.editor-styles-wrapper .forge-contact-sidebar-group > .kadence-inner-column-inner,
.editor-styles-wrapper .forge-contact-location-info > .kadence-inner-column-inner,
.editor-styles-wrapper .forge-contact-step-card > .kadence-inner-column-inner { align-items: stretch; }

.forge-contact-link a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: #595957;
	text-underline-offset: 4px;
}

.forge-contact-link a:hover,
.forge-contact-link a:focus-visible { color: var(--forge-contact-ink); }

.forge-contact-hours-row > .kt-row-column-wrap { align-items: center; }
.forge-contact-hours-row:last-child { margin-bottom: 0 !important; }
.forge-contact-hours-row .kt-inside-inner-col { justify-content: center; }
.editor-styles-wrapper .forge-contact-hours-row > .innerblocks-wrap { align-items: center; }
.editor-styles-wrapper .forge-contact-hours-row .kadence-inner-column-inner { justify-content: center; }

/* Fluent Forms is intentionally scoped to this Contact form only. */
.forge-contact-form-section .fluentform,
.editor-styles-wrapper .forge-contact-form-section .fluentform {
	color: var(--forge-contact-muted);
	font-family: Inter, sans-serif;
}

.forge-contact-form-section .fluentform .ff-el-group { margin-bottom: 26px; }
.forge-contact-form-section .fluentform .ff-t-container { gap: 22px; }
.forge-contact-form-section .fluentform .ff-t-cell { padding: 0 !important; }

.forge-contact-form-section .fluentform .ff-el-input--label label {
	display: block;
	margin: 0 0 10px;
	color: #c3c3bf;
	font-family: Inter, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1.6px;
	line-height: 1.35;
	text-transform: uppercase;
}

.forge-contact-form-section .fluentform .ff-el-input--label.ff-el-is-required label::after { color: #c3c3bf; }

.forge-contact-form-section .fluentform :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea).ff-el-form-control {
	width: 100%;
	min-height: 52px;
	padding: 14px 16px;
	border: 1px solid #393939;
	border-radius: 5px;
	outline: none;
	background: #151515;
	box-shadow: none;
	color: #e7e7e3;
	font-family: Inter, sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	transition: border-color .2s ease, background-color .2s ease;
}

.forge-contact-form-section .fluentform textarea.ff-el-form-control {
	min-height: 146px;
	resize: vertical;
}

.forge-contact-form-section .fluentform select.ff-el-form-control {
	padding-right: 42px;
	color: #8d8d89;
}

.forge-contact-form-section .fluentform :is(input, textarea).ff-el-form-control::placeholder {
	color: #757571;
	opacity: 1;
}

.forge-contact-form-section .fluentform :is(input, select, textarea).ff-el-form-control:focus {
	border-color: #a5a5a0;
	background: #181818;
	box-shadow: 0 0 0 1px rgba(245,245,243,.12);
}

.forge-contact-form-section .fluentform .ff-el-is-error .ff-el-form-control { border-color: #aa6868; }
.forge-contact-form-section .fluentform .error.text-danger { margin-top: 7px; color: #d69b9b; font-size: 12px; }

.forge-contact-form-section .fluentform .ff-btn-submit {
	min-height: 48px;
	padding: 15px 25px;
	border: 1px solid var(--forge-contact-ink);
	border-radius: 999px;
	background: var(--forge-contact-ink);
	box-shadow: none;
	color: #111;
	font-family: Inter, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1.15px;
	line-height: 1;
	text-transform: uppercase;
	transition: background-color .2s ease, color .2s ease;
}

.forge-contact-form-section .fluentform .ff-btn-submit:hover,
.forge-contact-form-section .fluentform .ff-btn-submit:focus-visible {
	background: transparent;
	color: var(--forge-contact-ink);
}

.forge-contact-form-section .fluentform .ff-message-success {
	padding: 20px;
	border: 1px solid #3d4b40;
	border-radius: 6px;
	background: #111;
	color: #d7ddd6;
}

.forge-contact-step-card { min-height: 280px; }
.forge-contact-step-number { opacity: .76; }

.forge-contact-map {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-color: #101010 !important;
	background-image:
		linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
		linear-gradient(24deg, transparent 49.7%, rgba(255,255,255,.024) 50%, transparent 50.3%),
		linear-gradient(154deg, transparent 49.7%, rgba(255,255,255,.018) 50%, transparent 50.3%) !important;
	background-size: 88px 88px, 88px 88px, 310px 250px, 420px 340px !important;
}

.forge-contact-map > .kt-inside-inner-col { position: static; }
.editor-styles-wrapper .forge-contact-map > .kadence-inner-column-inner { position: static; }

.forge-contact-map-label,
.forge-contact-map-marker {
	position: absolute;
	z-index: 2;
}

.forge-contact-map-downtown { top: 38px; left: 40px; }
.forge-contact-map-east { top: 52%; left: 44px; }
.forge-contact-map-holly { right: 52px; bottom: 30px; }

.forge-contact-map-marker {
	top: 50%;
	left: 54%;
	width: max-content;
	max-width: 150px;
	padding: 8px 12px 7px;
	transform: translate(-50%, -23%);
	border: 1px solid #5a5a57;
	border-radius: 3px;
	background: #0b0b0b;
	box-shadow: 0 0 0 1px rgba(0,0,0,.5);
}

.forge-contact-map-marker::before {
	position: absolute;
	top: -24px;
	left: 50%;
	width: 18px;
	height: 18px;
	transform: translateX(-50%);
	border: 5px solid #f5f5f3;
	border-radius: 50%;
	background: #b7b7b2;
	box-shadow: 0 0 0 5px rgba(245,245,243,.08), 0 0 16px rgba(245,245,243,.22);
	content: "";
}

.forge-contact-map-marker > .kt-inside-inner-col { align-items: center; }
.editor-styles-wrapper .forge-contact-map-marker > .kadence-inner-column-inner { align-items: center; }
.forge-contact-map-marker-address { white-space: nowrap; }

.forge-contact-parking-title {
	padding-top: 30px;
	border-top: 1px solid var(--forge-contact-line);
}

@media (max-width: 1024px) {
	.forge-contact-step-card { min-height: 270px; }
	.forge-contact-form-section .fluentform .ff-t-container { gap: 16px; }
	.forge-contact-map-downtown { top: 30px; left: 30px; }
	.forge-contact-map-east { left: 30px; }
	.forge-contact-map-holly { right: 36px; bottom: 26px; }
}

@media (max-width: 767px) {
	.forge-contact-page > .kt-row-column-wrap,
	.editor-styles-wrapper .forge-contact-page > .innerblocks-wrap { max-width: 100% !important; }

	.forge-contact-eyebrow { align-self: flex-start; }
	.forge-contact-section-intro .forge-contact-eyebrow,
	.forge-contact-process-wrap .forge-contact-eyebrow,
	.forge-contact-hero-inner .forge-contact-eyebrow { align-self: center; }

	.forge-contact-sidebar { margin-top: 58px; }
	.forge-contact-sidebar-group > .kt-inside-inner-col { align-items: stretch; }
	.editor-styles-wrapper .forge-contact-sidebar-group > .kadence-inner-column-inner { align-items: stretch; }
	.forge-contact-step-card { min-height: 0; margin-bottom: 18px; }
	.forge-contact-step-card:last-child { margin-bottom: 0; }
	.forge-contact-location-address { margin-top: 34px; }
	.forge-contact-location-grid .forge-contact-location-info { margin-top: 38px; }

	.forge-contact-hours-row > .kt-row-column-wrap {
		display: grid !important;
		grid-template-columns: minmax(120px, 42%) minmax(0, 1fr) !important;
		gap: 12px !important;
	}

	.editor-styles-wrapper .forge-contact-hours-row > .innerblocks-wrap {
		display: grid !important;
		grid-template-columns: minmax(120px, 42%) minmax(0, 1fr) !important;
		gap: 12px !important;
	}

	.forge-contact-form-section .fluentform .ff-t-container {
		display: block;
		margin: 0;
	}

	.forge-contact-form-section .fluentform .ff-t-cell { width: 100% !important; }
	.forge-contact-form-section .fluentform .ff-t-cell + .ff-t-cell { margin-top: 26px; }
	.forge-contact-form-section .fluentform :is(input[type="text"], input[type="email"], input[type="tel"], select).ff-el-form-control { min-height: 50px; }
	.forge-contact-form-section .fluentform textarea.ff-el-form-control { min-height: 138px; }

	.forge-contact-map-downtown { top: 24px; left: 22px; }
	.forge-contact-map-east { left: 22px; }
	.forge-contact-map-holly { right: 22px; bottom: 22px; }
	.forge-contact-map-marker { left: 56%; transform: translate(-50%, -18%) scale(.9); }
}

@media (max-width: 420px) {
	.forge-contact-hero { background-position: 66% 22% !important; }
	.forge-contact-map-label { font-size: 8px !important; letter-spacing: 1px !important; }
	.forge-contact-map-holly { right: 16px; }
}

/* Preserve nested container widths in the editor. */
.editor-styles-wrapper .is-root-container > [data-type="kadence/rowlayout"]:has(.forge-contact-page),
.editor-styles-wrapper .is-root-container > .wp-block-kadence-rowlayout.forge-contact-page {
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.editor-styles-wrapper .forge-contact-page,
.editor-styles-wrapper .forge-contact-page .wp-block-kadence-rowlayout {
	width: 100% !important;
}

.editor-styles-wrapper .forge-contact-page .wp-block-kadence-rowlayout {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.editor-styles-wrapper .forge-contact-hours-row .wp-block-kadence-advancedheading {
	white-space: nowrap;
}

.editor-styles-wrapper .forge-contact-sidebar,
.editor-styles-wrapper .forge-contact-location-address,
.editor-styles-wrapper .forge-contact-location-grid .forge-contact-location-info {
	margin-top: 0 !important;
}

.editor-styles-wrapper .forge-contact-step-card {
	min-height: 280px;
	margin-bottom: 0;
}

.editor-styles-wrapper .forge-contact-map-downtown { top: 38px; left: 40px; }
.editor-styles-wrapper .forge-contact-map-east { left: 44px; }
.editor-styles-wrapper .forge-contact-map-holly { right: 52px; bottom: 30px; }
.editor-styles-wrapper .forge-contact-map-marker {
	left: 54%;
	transform: translate(-50%, -23%);
}

.editor-styles-wrapper :is(
	.kt-button-forge-contact-hero-cta,
	.kt-button-forge-contact-visit-directions,
	.kt-button-forge-contact-location-directions
) {
	color: #f5f5f3 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.editor-styles-wrapper :is(
	.kt-button-forge-contact-hero-cta,
	.kt-button-forge-contact-visit-directions,
	.kt-button-forge-contact-location-directions
)::before {
	background: transparent !important;
	box-shadow: none !important;
}

.editor-styles-wrapper .forge-contact-form-column [data-type="core/shortcode"] {
	position: relative;
	display: flex;
	width: 100% !important;
	min-width: 0;
	min-height: 420px;
	align-items: flex-start;
	padding: 58px 24px 24px;
	border: 1px dashed #444;
	border-radius: 6px;
	background: #111;
}

.editor-styles-wrapper .forge-contact-form-column [data-type="core/shortcode"]::before {
	position: absolute;
	top: 22px;
	left: 24px;
	color: #aaa9a5;
	font-family: Inter, sans-serif;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 1.5px;
	line-height: 1.35;
	text-transform: uppercase;
	content: "Fluent Forms · Contact form";
}

.editor-styles-wrapper .forge-contact-form-column [data-type="core/shortcode"] textarea {
	width: 100% !important;
	min-height: 52px;
	margin: 0;
	color: #f5f5f3;
	background: #181818;
}
