.vp-contact-page { overflow: hidden; padding: 0 2.7778vw; background: #fff; color: var(--vp-color-grey-900, #171717); }
.vp-contact-page__hero { position: relative; height: min(58rem, calc(100svh - 8rem)); min-height: 42rem; overflow: hidden; border-radius: 1.5rem; background: #fff; color: #fff; isolation: isolate; }
.vp-contact-page__visual, .vp-contact-page__scrim { position: absolute; inset: 0; }
.vp-contact-page__visual { z-index: 0; opacity: .72; pointer-events: none; }
.vp-contact-page__visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; mix-blend-mode: multiply; }
.vp-contact-page__scrim { z-index: 1; background: rgb(0 0 0 / 28%); }
.vp-contact-page__copy { position: absolute; z-index: 2; top: 4rem; right: 5rem; width: min(27rem, 36%); }
.vp-contact-page__eyebrow { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.25rem; color: var(--vp-color-red, #f00); font-size: 1.25rem; }
.vp-contact-page__eyebrow span { width: .5rem; height: .5rem; flex: 0 0 .5rem; border-radius: 50%; background: currentColor; }
.vp-contact-page h1 { margin: 0; font: 500 clamp(3rem, 5vw, 5rem)/1 var(--vp-font-heading); letter-spacing: -.05em; }
.vp-contact-page__intro { margin: 0; font-size: .875rem; line-height: 1.5; }
.vp-contact-page__title { position: absolute; z-index: 2; right: 0; bottom: 2rem; left: 0; display: flex; align-items: end; justify-content: center; }
.vp-contact-page__title h1 { width: 100%; margin: 0; font: 500 clamp(5rem, 11vw, 11.25rem)/.92 var(--vp-font-heading); letter-spacing: -.06em; text-align: center; }
.vp-contact-page__title img { position: absolute; bottom: .75rem; left: 5rem; width: 2.75rem; height: 2.75rem; object-fit: contain; }
.vp-contact-page__details { position: relative; padding: 5rem calc(2.35vw + 1rem) 6rem; background: #fff; color: var(--vp-color-grey-900, #171717); }
.vp-contact-page__channels { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem; max-width: 100rem; margin: 0 auto; }
.vp-contact-page__channel { max-width: 22rem; padding: 2rem; border-radius: 1.5rem; background: #fff; box-shadow: 0 .75rem 2rem rgb(0 0 0 / 8%); }
.vp-contact-page__icon { display: block; width: 3.5rem; height: 3.5rem; margin-bottom: 1.25rem; object-fit: contain; }
.vp-contact-page__channel h2 { margin: 0 0 .5rem; font-size: 1.25rem; }
.vp-contact-page__channel p { margin: 0 0 1.5rem; color: #777; }
.vp-contact-page__channel div { display: flex; flex-wrap: wrap; gap: .75rem 1rem; font-weight: 600; }
.vp-contact-page__channel a { color: inherit; text-decoration: none; }
.vp-contact-page__form-wrap { position: relative; z-index: 2; grid-column: 2; align-self: center; width: auto; margin: 0; padding: 5rem calc(2.35vw + 1rem); border-radius: 0; background: transparent; box-shadow: none; }
.vp-contact-page__form { display: grid; gap: .75rem; padding: 2.5rem; border-radius: 0; background: #fff; box-shadow: none; }
.vp-contact-page__form-heading { margin-bottom: 1.5rem; text-align: end; }
.vp-contact-page__form-heading p { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin: 0 0 1rem; color: var(--vp-color-red, #f00); font-size: .75rem; letter-spacing: .08em; }
.vp-contact-page__form-heading p span { display: block; width: 6px; height: 6px; flex: 0 0 6px; align-self: center; border-radius: 50%; background: var(--vp-color-red, #f00); }
.vp-contact-page__form-heading h2 { margin: 0; font: 500 46px/1.1 var(--vp-font-heading); letter-spacing: -.04em; }
.vp-contact-page__form-heading span { display: block; margin-top: 1rem; color: #555; font-size: 1rem; }
.vp-contact-page__form label { margin-top: .75rem; color: #555; }
.vp-contact-page__form input, .vp-contact-page__form textarea { width: 100%; box-sizing: border-box; padding: 1rem; border: 1px solid #e7e7e7; border-radius: .75rem; background: #f7f7f7; font: inherit; }
.vp-contact-page__form input.is-invalid, .vp-contact-page__form textarea.is-invalid { border-color: #c40000; box-shadow: 0 0 0 2px rgb(196 0 0 / 10%); }
.vp-contact-page__field-error { display: block; margin-top: -.35rem; color: #a40000; font-size: .75rem; }
.vp-contact-page__form textarea { resize: vertical; }
.vp-contact-page__form button { margin-top: 1rem; padding: 1rem; border: 0; border-radius: 99rem; background: var(--vp-color-red, #f00); color: #fff; font: 500 1rem/1 var(--vp-font-body); cursor: pointer; }
.vp-contact-page__form button:hover, .vp-contact-page__form button:focus-visible { background: #d90000; color: #fff; transform: translateY(-2px); }
.vp-contact-page__form button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; }
.vp-contact-page__form button:disabled { cursor: wait; opacity: .8; transform: none; }
.vp-contact-page__spinner { display: none; width: 1rem; height: 1rem; border: 2px solid rgb(255 255 255 / 45%); border-top-color: #fff; border-radius: 50%; }
.vp-contact-page__form button.is-loading .vp-contact-page__spinner { display: inline-block; animation: vp-contact-spin .7s linear infinite; }
.vp-contact-page__toast { position: fixed; z-index: 20; right: 1.5rem; bottom: 1.5rem; max-width: min(24rem, calc(100vw - 3rem)); padding: 1rem 1.25rem; border-radius: .75rem; box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 18%); font-size: .875rem; }
.vp-contact-page__toast--success { background: #187a2b; color: #fff; }
.vp-contact-page__toast--error { background: #a40000; color: #fff; }
@keyframes vp-contact-spin { to { transform: rotate(360deg); } }
.vp-contact-page__status { margin: 0 0 1rem; padding: .75rem 1rem; border-radius: .5rem; font-size: .875rem; }
.vp-contact-page__status--success { background: #edf8ef; color: #1c6b2a; }
.vp-contact-page__status--error { background: #fff0f0; color: #a40000; }
.vp-contact-page__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vp-contact-page__map-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0; width: calc(100% + 5.5556vw); margin-left: -2.7778vw; align-items: stretch; background: #fff; }
.vp-contact-page__map { min-height: 34rem; overflow: hidden; border-radius: 0; background: #f4f6f8; }
.vp-contact-page__map iframe { display: block; width: 100%; height: 100%; min-height: 34rem; border: 0; }

@media (max-width: 42rem) {
	.vp-contact-page { padding: 0 1rem; }
	.vp-contact-page__hero { height: 72svh; min-height: 28rem; border-radius: 1rem; }
	.vp-contact-page__visual { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: .65; }
	.vp-contact-page__copy { top: 1.5rem; right: 1.5rem; left: 1.5rem; width: auto; padding: 0; }
	.vp-contact-page__eyebrow { margin-bottom: .4rem; font-size: 1rem; }
	.vp-contact-page__intro { font-size: .875rem; }
	.vp-contact-page__title { right: 1.5rem; bottom: 1rem; left: 1.5rem; }
	.vp-contact-page__title h1 { font-size: 2.875rem; line-height: 1; }
	.vp-contact-page__title img { top: -3.5rem; right: auto; bottom: auto; left: 1rem; width: 2.5rem; height: 2.5rem; }
	.vp-contact-page__channels { position: static; grid-template-columns: 1fr 1fr; gap: 2.5rem 1rem; width: auto; margin-top: 3rem; }
	.vp-contact-page__channel { max-width: none; }
	.vp-contact-page__icon { width: 3rem; height: 3rem; margin-bottom: .75rem; }
	.vp-contact-page__channel h2 { font-size: 1.25rem; }
	.vp-contact-page__channel p, .vp-contact-page__channel div { font-size: .875rem; }
	.vp-contact-page__channel p { margin-bottom: .75rem; }
	.vp-contact-page__details { display: flex; min-height: 0; flex-direction: column; gap: 2rem; padding: 3rem 1rem 4rem; }
	.vp-contact-page__channels { grid-template-columns: 1fr; gap: 1rem; width: auto; }
	.vp-contact-page__map-form { display: flex; width: calc(100% + 2rem); margin-left: -1rem; flex-direction: column; gap: 2rem; padding: 0; }
	.vp-contact-page__map { width: 100%; min-height: 18rem; border-radius: 0; }
	.vp-contact-page__map iframe { min-height: 18rem; }
	.vp-contact-page__form-wrap { position: relative; top: auto; right: auto; bottom: auto; width: auto; margin: 0; padding: 3rem 1.5rem 4rem; border-radius: 0; align-self: stretch; }
	.vp-contact-page__form { width: 100%; box-sizing: border-box; padding: 0; border-radius: 0; }
	.vp-contact-page__form-heading h2 { font-size: 2rem; }
	.vp-contact-page__form-heading span { font-size: .875rem; }
}
