.ginalmp-page-hero.contact-page-hero {
	background: linear-gradient(90deg, rgb(3 17 35 / 15%), rgb(3 17 35 / 42%) 50%, rgb(3 17 35 / 15%)), url('../../images/generated/contact-communication-hero.webp') center 75% / cover;
}

.contact-page { background: #f7f8f6; }

.contact-page__inquiry {
	padding: clamp(48px, 5vw, 76px) 0;
	scroll-margin-top: 92px;
}

.contact-page__inquiry-grid {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	align-items: stretch;
	padding: 0;
	overflow: hidden;
	border: 1px solid #e1e5e5;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 16px 48px rgb(18 36 46 / 5%);
}

.contact-page__overview-copy {
	min-width: 0;
	padding: clamp(28px, 3vw, 48px);
	background: linear-gradient(160deg, rgb(251 249 244 / 91%), rgb(247 247 242 / 70%)), var(--contact-panel-image) center / cover;
}

.contact-page__section-rule {
	display: block;
	width: 38px;
	height: 3px;
	margin-bottom: 24px;
	background: var(--accent);
}

.contact-page__overview-copy h2 {
	margin: 0;
	color: #10243a;
	font-size: var(--type-section-title);
	font-weight: var(--type-section-title-weight);
	line-height: var(--type-section-title-line-height);
	letter-spacing: var(--type-section-title-letter-spacing);
}

.contact-page__details-copy {
	margin-top: 20px;
	color: #485966;
	font-size: var(--type-lead);
	font-weight: var(--type-lead-weight);
	line-height: var(--type-lead-line-height);
	letter-spacing: var(--type-lead-letter-spacing);
}

.contact-page__details-copy > :first-child { margin-top: 0; }
.contact-page__details-copy > :last-child { margin-bottom: 0; }

.contact-page__direct-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 32px 0 0;
	padding: 0;
	list-style: none;
}

.contact-page__contact-card {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
	padding: 22px 18px;
	border: 1px solid rgb(255 255 255 / 40%);
	border-radius: 14px;
	background: rgb(255 255 255 / 35%);
}

.contact-page__contact-card--email,
.contact-page__contact-card--address { grid-column: 1 / -1; }

.contact-page__contact-card > svg {
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	fill: none;
	stroke: var(--accent);
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.contact-page__contact-card > div { min-width: 0; }

.contact-page__contact-label {
	display: block;
	margin-bottom: 7px;
	color: #64717d;
	font-size: var(--type-label);
	font-weight: var(--type-label-weight);
	line-height: var(--type-label-line-height);
	letter-spacing: var(--type-label-letter-spacing);
	text-transform: uppercase;
}

.contact-page__contact-card a,
.contact-page__contact-card address {
	margin: 0;
	color: #10243a;
	font-size: var(--type-body);
	font-weight: var(--type-body-weight);
	line-height: var(--type-body-line-height);
	letter-spacing: var(--type-body-letter-spacing);
	font-style: normal;
	overflow-wrap: anywhere;
}

.contact-page__contact-card a:hover { color: var(--accent-dark); text-decoration: underline; }
.contact-page__contact-card a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

.contact-page__form-panel {
	min-width: 0;
	padding: clamp(28px, 3vw, 48px);
	background: #fff;
}

.contact-page__form { padding: 0; }

.contact-page__form > p {
	margin: 0;
	color: #536579;
	font-size: var(--type-body);
	font-weight: var(--type-body-weight);
	line-height: var(--type-body-line-height);
	letter-spacing: var(--type-body-letter-spacing);
}

/* Fluent Forms compatibility: plugin styles use higher-specificity field/button rules. */
.contact-page__form .ff-el-group { margin-bottom: 22px; }

.contact-page__form .ff-el-input--label label,
.contact-page__form .ff-el-input--label .ff-el-form-check-label {
	color: #253a4e;
	font-size: var(--type-body);
	font-weight: var(--type-body-weight);
	line-height: var(--type-body-line-height);
	letter-spacing: var(--type-body-letter-spacing);
}

.contact-page__form .ff-el-form-control {
	min-height: 52px;
	padding: 13px 16px !important;
	border: 1px solid #dce2e6 !important;
	border-radius: 10px !important;
	background: #fcfcfb !important;
	box-shadow: none !important;
	color: var(--ink) !important;
	font-family: inherit !important;
	font-size: var(--type-body) !important;
	font-weight: var(--type-body-weight) !important;
	line-height: var(--type-body-line-height) !important;
	letter-spacing: var(--type-body-letter-spacing) !important;
}

.contact-page__form textarea.ff-el-form-control {
	height: 144px;
	min-height: 144px;
	resize: vertical;
}

.contact-page__form .ff-el-form-control:focus {
	border-color: var(--accent) !important;
	box-shadow: 0 0 0 3px rgb(241 141 14 / 12%) !important;
}

.contact-page__form button.ff-btn.ff-btn-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	padding: 14px 22px !important;
	border: 1px solid var(--accent);
	border-radius: 999px;
	background: var(--accent) !important;
	color: #fff;
	font-family: inherit;
	font-size: var(--type-label);
	font-weight: var(--type-label-weight);
	line-height: var(--type-label-line-height);
	letter-spacing: var(--type-label-letter-spacing);
	text-transform: uppercase;
	transition: background .2s ease, border-color .2s ease;
}

.contact-page__form button.ff-btn.ff-btn-submit:hover {
	border-color: var(--accent-dark);
	background: var(--accent-dark) !important;
	color: #fff;
}

.contact-page__form .ff_submit_btn_wrapper { margin-bottom: 0; }

@media (max-width: 1100px) {
	.contact-page__direct-list { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
	.contact-page__inquiry-grid { grid-template-columns: 1fr; }
	.contact-page__direct-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.contact-page__inquiry { padding: 32px 0 48px; }
	.contact-page__inquiry-grid { border-radius: 16px; }
	.contact-page__overview-copy,
	.contact-page__form-panel { padding: 28px 22px; }
	.contact-page__direct-list { grid-template-columns: 1fr; gap: 12px; margin-top: 24px; }
	.contact-page__contact-card { padding: 18px 16px; }
	.contact-page__form .ff-el-group { margin-bottom: 18px; }
}
