/**
 * PilotBooker Contact Page
 *
 * Exact file path:
 * /wp-content/themes/onelisting-child/assets/css/contact-page.css
 *
 * Scoped to body.pilotbooker-contact-page.
 */

body.pilotbooker-contact-page {
	--pbc-navy: #0B1E33;
	--pbc-navy-2: #122A45;
	--pbc-amber: #F2A93B;
	--pbc-amber-hover: #FFBF5C;
	--pbc-sky: #2D6FA3;
	--pbc-teal: #3FA796;
	--pbc-cloud: #F7F9FB;
	--pbc-cloud-dim: #DCE4EA;
	--pbc-ink: #0B1E33;
	--pbc-body: #4A5A6A;
	--pbc-muted: #5C6E80;
	--pbc-soft: #8A99A8;
	--pbc-line: rgba(255, 255, 255, 0.12);

	margin: 0;
	background: var(--pbc-cloud);
	color: var(--pbc-ink);
	font-family: "Inter", sans-serif;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.pilotbooker-contact-page *,
body.pilotbooker-contact-page *::before,
body.pilotbooker-contact-page *::after {
	box-sizing: border-box;
}

body.pilotbooker-contact-page
.pilotbooker-contact-shell {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	background: var(--pbc-cloud);
}

body.pilotbooker-contact-page
.pilotbooker-contact-shell > main {
	flex: 1 0 auto;
	min-width: 0;
}

body.pilotbooker-contact-page
.pb-contact-wrap {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding-right: 24px;
	padding-left: 24px;
}

/* =========================================================
   HERO
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-hero {
	position: relative;
	overflow: hidden;
	padding: 56px 0;
	color: #FFFFFF;
	background:
		radial-gradient(
			circle at 82% 24%,
			rgba(45, 111, 163, 0.24),
			transparent 29%
		),
		linear-gradient(
			180deg,
			var(--pbc-navy),
			var(--pbc-navy-2)
		);
	text-align: center;
}

body.pilotbooker-contact-page
.pb-contact-hero::after {
	position: absolute;
	top: -154px;
	right: -74px;
	width: 340px;
	height: 340px;
	content: "";
	border: 1px solid rgba(255, 255, 255, 0.06);
	border-radius: 50%;
	pointer-events: none;
}

body.pilotbooker-contact-page
.pb-contact-hero .pb-contact-wrap {
	position: relative;
	z-index: 1;
}

body.pilotbooker-contact-page
.pb-contact-tag {
	display: block;
	margin: 0 0 14px;
	color: var(--pbc-amber);
	font-family: "JetBrains Mono", monospace;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

body.pilotbooker-contact-page
.pb-contact-hero h1 {
	margin: 0 0 12px;
	color: #FFFFFF;
	font-family: "Space Grotesk", sans-serif;
	font-size: 2.1rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

body.pilotbooker-contact-page
.pb-contact-hero p {
	max-width: 560px;
	margin: 0 auto;
	color: #C6D2DE;
	font-size: 0.98rem;
	font-weight: 400;
	line-height: 1.65;
}

/* =========================================================
   MAIN LAYOUT
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-section {
	padding: 56px 0 70px;
}

body.pilotbooker-contact-page
.pb-contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	align-items: start;
	gap: 32px;
}

body.pilotbooker-contact-page
.pb-contact-form-card {
	min-width: 0;
	padding: 32px;
	background: #FFFFFF;
	border: 1px solid var(--pbc-cloud-dim);
	border-radius: 14px;
	box-shadow: none;
}

body.pilotbooker-contact-page
.pb-contact-form-card > h2,
body.pilotbooker-contact-page
.pb-contact-info-card > h2 {
	margin: 0;
	color: var(--pbc-ink);
	font-family: "Space Grotesk", sans-serif;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

body.pilotbooker-contact-page
.pb-contact-form-card > h2 {
	margin-bottom: 20px;
	font-size: 1.2rem;
}

body.pilotbooker-contact-page
.pb-contact-side-panel {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

body.pilotbooker-contact-page
.pb-contact-info-card {
	padding: 22px;
	background: #FFFFFF;
	border: 1px solid var(--pbc-cloud-dim);
	border-radius: 12px;
}

body.pilotbooker-contact-page
.pb-contact-info-card > h2 {
	margin-bottom: 12px;
	font-size: 0.95rem;
}

/* =========================================================
   CONTACT INFORMATION
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-info-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 16px;
}

body.pilotbooker-contact-page
.pb-contact-info-row:last-child {
	margin-bottom: 0;
}

body.pilotbooker-contact-page
.pb-contact-info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	color: var(--pbc-sky);
	background: var(--pbc-cloud);
	border: 1px solid rgba(220, 228, 234, 0.75);
	border-radius: 8px;
}

body.pilotbooker-contact-page
.pb-contact-info-icon svg {
	width: 17px;
	height: 17px;
}

body.pilotbooker-contact-page
.pb-contact-info-label {
	display: block;
	margin: 0 0 3px;
	color: var(--pbc-soft);
	font-family: "JetBrains Mono", monospace;
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

body.pilotbooker-contact-page
.pb-contact-info-value {
	display: block;
	color: var(--pbc-ink);
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

body.pilotbooker-contact-page
.pb-contact-info-value--link {
	color: var(--pbc-sky);
	text-decoration: none;
}

body.pilotbooker-contact-page
.pb-contact-info-value--link:hover,
body.pilotbooker-contact-page
.pb-contact-info-value--link:focus-visible {
	color: var(--pbc-navy);
	text-decoration: underline;
}

body.pilotbooker-contact-page
.pb-contact-info-note {
	display: block;
	margin-top: 3px;
	color: var(--pbc-soft);
	font-size: 0.72rem;
	line-height: 1.45;
}

/* =========================================================
   QUICK LINKS
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-quick-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	color: var(--pbc-sky);
	border-bottom: 1px dashed var(--pbc-cloud-dim);
	font-size: 0.85rem;
	font-weight: 500;
	line-height: 1.45;
	text-decoration: none;
}

body.pilotbooker-contact-page
.pb-contact-quick-links a:last-child {
	border-bottom: 0;
}

body.pilotbooker-contact-page
.pb-contact-quick-links a:hover,
body.pilotbooker-contact-page
.pb-contact-quick-links a:focus-visible {
	color: var(--pbc-navy);
}

body.pilotbooker-contact-page
.pb-contact-quick-links a span {
	flex: 0 0 auto;
	transition: transform 0.15s ease;
}

body.pilotbooker-contact-page
.pb-contact-quick-links a:hover span {
	transform: translateX(2px);
}

/* =========================================================
   FORMGENT
   Exact visual adaptation of the supplied contact reference.
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-form
.formgent-form {
	--formgent-form-background-color: transparent !important;
	--formgent-form-padding-desktop: 0 !important;
	--formgent-form-padding-tablet: 0 !important;
	--formgent-form-padding-mobile: 0 !important;
	--formgent-form-margin-desktop: 0 !important;
	--formgent-form-margin-tablet: 0 !important;
	--formgent-form-margin-mobile: 0 !important;
	--formgent-form-border-width: 0 !important;
	--formgent-form-border-radius: 0 !important;
	--formgent-field-vertical-spacing-desktop: 0 !important;
	--formgent-field-vertical-spacing-tablet: 0 !important;
	--formgent-field-vertical-spacing-mobile: 0 !important;
	--formgent-field-horizontal-spacing-desktop: 0 !important;
	--formgent-field-horizontal-spacing-tablet: 0 !important;
	--formgent-field-horizontal-spacing-mobile: 0 !important;
	--formgent-field-label-color: var(--pbc-ink) !important;
	--formgent-field-placeholder-color: #94A2AF !important;
	--formgent-field-input-color: var(--pbc-ink) !important;
	--formgent-field-options-color: var(--pbc-ink) !important;
	--formgent-field-error-message-color: #C83A3A !important;
	--formgent-field-border: 1px solid var(--pbc-cloud-dim) !important;
	--formgent-field-border-radius: 8px !important;
	--formgent-fixed-btn-bg-color: var(--pbc-amber) !important;
	--formgent-fixed-btn-text-color: var(--pbc-navy) !important;
	--formgent-fixed-btn-border-color: var(--pbc-amber) !important;

	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: "Inter", sans-serif !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-form form {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field-single {
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

/*
 * Expected Contact form order:
 * 1 Full Name
 * 2 Email Address
 * 3 I am a...
 * 4 Topic
 * 5 Message
 */
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field:nth-of-type(1),
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field:nth-of-type(2),
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field:nth-of-type(3),
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field:nth-of-type(4) {
	grid-column: span 1 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-list > .formgent-field:nth-of-type(n + 5),
body.pilotbooker-contact-page
.pb-contact-form
.formgent-fixed-submit-button,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single--button {
	grid-column: 1 / -1 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-label {
	display: block !important;
	margin: 0 0 6px !important;
	color: var(--pbc-ink) !important;
	font-family: "Inter", sans-serif !important;
	font-size: 0.82rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	line-height: 1.4 !important;
	text-transform: none !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-required {
	color: #D92D20 !important;
	font-weight: 700 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single__wrapper,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-has-input-icon {
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single__input,
body.pilotbooker-contact-page
.pb-contact-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
body.pilotbooker-contact-page
.pb-contact-form select,
body.pilotbooker-contact-page
.pb-contact-form textarea {
	width: 100% !important;
	min-width: 0 !important;
	min-height: 46px !important;
	margin: 0 !important;
	padding: 12px 14px !important;
	color: var(--pbc-ink) !important;
	background: #FFFFFF !important;
	border: 1px solid var(--pbc-cloud-dim) !important;
	border-radius: 8px !important;
	outline: none !important;
	box-shadow: none !important;
	font-family: "Inter", sans-serif !important;
	font-size: 0.92rem !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	transition:
		border-color 0.15s ease,
		box-shadow 0.15s ease !important;
}

body.pilotbooker-contact-page
.pb-contact-form
textarea.formgent-field-single__input,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single__input--textarea,
body.pilotbooker-contact-page
.pb-contact-form textarea {
	min-height: 130px !important;
	resize: vertical !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single__input::placeholder,
body.pilotbooker-contact-page
.pb-contact-form input::placeholder,
body.pilotbooker-contact-page
.pb-contact-form textarea::placeholder {
	color: #94A2AF !important;
	opacity: 1 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single__input:focus,
body.pilotbooker-contact-page
.pb-contact-form input:focus,
body.pilotbooker-contact-page
.pb-contact-form select:focus,
body.pilotbooker-contact-page
.pb-contact-form textarea:focus {
	border-color: var(--pbc-sky) !important;
	box-shadow: 0 0 0 3px rgba(45, 111, 163, 0.11) !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-dropdown,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-select,
body.pilotbooker-contact-page
.pb-contact-form
.components-select-control__input {
	width: 100% !important;
	min-height: 46px !important;
	border-color: var(--pbc-cloud-dim) !important;
	border-radius: 8px !important;
	font-family: "Inter", sans-serif !important;
	font-size: 0.92rem !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-fixed-submit-button,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-single--button {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	width: 100% !important;
	margin: 6px 0 0 !important;
	padding: 0 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-btn,
body.pilotbooker-contact-page
.pb-contact-form
button[type="submit"],
body.pilotbooker-contact-page
.pb-contact-form
input[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	min-width: 164px !important;
	min-height: 46px !important;
	margin: 0 !important;
	padding: 13px 26px !important;
	color: var(--pbc-navy) !important;
	background: var(--pbc-amber) !important;
	border: 1px solid var(--pbc-amber) !important;
	border-radius: 8px !important;
	outline: none !important;
	box-shadow: none !important;
	font-family: "Inter", sans-serif !important;
	font-size: 0.92rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	cursor: pointer !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-btn:hover,
body.pilotbooker-contact-page
.pb-contact-form
button[type="submit"]:hover,
body.pilotbooker-contact-page
.pb-contact-form
input[type="submit"]:hover {
	color: var(--pbc-navy) !important;
	background: var(--pbc-amber-hover) !important;
	border-color: var(--pbc-amber-hover) !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-btn:focus-visible,
body.pilotbooker-contact-page
.pb-contact-form
button[type="submit"]:focus-visible {
	box-shadow: 0 0 0 4px rgba(242, 169, 59, 0.24) !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-error-message,
body.pilotbooker-contact-page
.pb-contact-form
.formgent-field-error {
	margin-top: 5px !important;
	color: #C83A3A !important;
	font-size: 0.74rem !important;
	line-height: 1.4 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-confirmation-wrap {
	padding: 28px 24px !important;
	background: rgba(63, 167, 150, 0.08) !important;
	border: 1px solid rgba(63, 167, 150, 0.30) !important;
	border-radius: 10px !important;
	text-align: center !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-confirmation-wrap h3 {
	margin: 0 0 8px !important;
	color: var(--pbc-ink) !important;
	font-family: "Space Grotesk", sans-serif !important;
	font-size: 1.2rem !important;
	font-weight: 700 !important;
}

body.pilotbooker-contact-page
.pb-contact-form
.formgent-confirmation-wrap p {
	margin: 0 !important;
	color: var(--pbc-muted) !important;
	font-size: 0.86rem !important;
	line-height: 1.55 !important;
}

body.pilotbooker-contact-page
.pb-contact-form-placeholder {
	padding: 24px;
	color: var(--pbc-muted);
	background: var(--pbc-cloud);
	border: 1px dashed var(--pbc-cloud-dim);
	border-radius: 10px;
	font-size: 0.85rem;
	line-height: 1.55;
}

body.pilotbooker-contact-page
.pb-contact-form-placeholder strong {
	display: block;
	margin-bottom: 5px;
	color: var(--pbc-ink);
	font-family: "Space Grotesk", sans-serif;
	font-size: 0.95rem;
}

body.pilotbooker-contact-page
.pb-contact-form-placeholder p {
	margin: 0;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
	body.pilotbooker-contact-page
	.pb-contact-layout {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 24px;
	}
}

@media (max-width: 760px) {
	body.pilotbooker-contact-page
	.pb-contact-layout {
		grid-template-columns: 1fr;
	}

	body.pilotbooker-contact-page
	.pb-contact-side-panel {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	body.pilotbooker-contact-page
	.pb-contact-wrap {
		padding-right: 16px;
		padding-left: 16px;
	}

	body.pilotbooker-contact-page
	.pb-contact-hero {
		padding: 46px 0 44px;
	}

	body.pilotbooker-contact-page
	.pb-contact-hero h1 {
		font-size: 1.75rem;
	}

	body.pilotbooker-contact-page
	.pb-contact-hero p {
		font-size: 0.9rem;
	}

	body.pilotbooker-contact-page
	.pb-contact-section {
		padding: 36px 0 48px;
	}

	body.pilotbooker-contact-page
	.pb-contact-form-card {
		padding: 22px 18px;
		border-radius: 12px;
	}

	body.pilotbooker-contact-page
	.pb-contact-info-card {
		padding: 20px;
	}

	body.pilotbooker-contact-page
	.pb-contact-side-panel {
		grid-template-columns: 1fr;
	}

	body.pilotbooker-contact-page
	.pb-contact-form
	.formgent-field-list {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
	}

	body.pilotbooker-contact-page
	.pb-contact-form
	.formgent-field-list > * {
		grid-column: 1 !important;
	}

	body.pilotbooker-contact-page
	.pb-contact-form
	.formgent-field-single__input,
	body.pilotbooker-contact-page
	.pb-contact-form input:not([type="hidden"]),
	body.pilotbooker-contact-page
	.pb-contact-form select,
	body.pilotbooker-contact-page
	.pb-contact-form textarea {
		font-size: 16px !important;
	}

	body.pilotbooker-contact-page
	.pb-contact-form
	.formgent-btn,
	body.pilotbooker-contact-page
	.pb-contact-form
	button[type="submit"],
	body.pilotbooker-contact-page
	.pb-contact-form
	input[type="submit"] {
		width: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.pilotbooker-contact-page
	.pb-contact-quick-links a span,
	body.pilotbooker-contact-page
	.pb-contact-form input,
	body.pilotbooker-contact-page
	.pb-contact-form textarea,
	body.pilotbooker-contact-page
	.pb-contact-form select {
		transition: none !important;
	}
}


/* =========================================================
   FORMGENT PAYMENT BUTTON SAFETY
   The Contact form must never display payment controls.
   Scoped only to the PilotBooker Contact page so payments on
   other forms remain untouched.
   ========================================================= */

body.pilotbooker-contact-page
.pb-contact-form
.formgent-btn-paypal,
body.pilotbooker-contact-page
.pb-contact-form
button.formgent-btn-paypal,
body.pilotbooker-contact-page
.pb-contact-form
[class*="formgent-btn-paypal"] {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	pointer-events: none !important;
}