/**
 * Contact page — layout + plugin form (loads after sContact Form assets).
 */

/* Contact page only — hide locations grid section */
body.page-contact .locations.locations-page,
body.page-template-page-contact .locations.locations-page {
	display: none !important;
}

/* Match design/contact.html: body clears fixed nav; section has no extra top band */
body.inner-pages.page-contact,
body.page-template-page-contact.inner-pages {
	padding-top: 121px !important;
}

.page-contact-main.wp-block-group {
	background: transparent !important;
}


.page-contact-main .wp-block-html {
	padding: 0 !important;
	max-width: 100% !important;
}

/* No gap between contact sections (block editor default margins) */
.page-contact-main .wp-block-post-content>*,
.page-contact-main .wp-block-html>section {
	margin-block: 0 !important;
}

.page-contact-main .wp-block-html>section+section {
	margin-top: 0 !important;
}

.contact-form-section .contact-main,
.contact-form-section .container.contact-main {
	align-items: stretch !important;
}

/* Grid matches design/pages.css; width from .container (1280px + 32px gutters) */
.contact-form-section .contact-main,
.contact-form-section .container.contact-main,
.contact-form-section .contact-main.deens-container,
.contact-form-section .container.contact-main.deens-container {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: 0 !important;
	align-items: stretch !important;
	box-sizing: border-box !important;
}

.contact-form-section>.container.contact-main,
.contact-form-section .container.contact-main {
	width: 100% !important;
	max-width: 1280px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 32px !important;
	padding-right: 32px !important;
}

.contact-form-section .contact-main:not(.container) {
	width: min(100%, 1280px) !important;
	max-width: 1280px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 32px !important;
	padding-right: 32px !important;
}

.contact-form-section .contact-main>.contact-aside {
	grid-column: 1;
	min-width: 0;
	align-self: stretch;
}

.contact-form-section .contact-main>.contact-form-panel {
	grid-column: 2;
	min-width: 0;
}

/* Match design/pages.css .contact-aside */
.contact-form-section .contact-aside {
	background: #212121 !important;
	padding: 3.5rem 2.5rem 40px !important;
	display: flex;
	flex-direction: column;
	gap: 0;
	align-items: flex-start;
	text-align: left;
	min-height: 100%;
	height: 100%;
}

.contact-form-section .contact-aside .site-section-title {
	width: 100%;
	text-align: left;
	margin: 0 0 0;
}

body.page-contact.inner-pages .page-contact-main .contact-aside .site-section-title h2,
.contact-form-section .contact-aside .site-section-title h2 {
	font-size: 34px !important;
	line-height: 1.1 !important;
	font-weight: 800 !important;
	text-transform: capitalize !important;
	text-align: left !important;
	margin: 0 !important;
	color: #fff !important;
	letter-spacing: 0.005em;
}

.contact-form-section .contact-aside .site-section-title h2 span {
	color: #fff !important;
}

.contact-form-section .contact-aside .content-prose {
	width: 100%;
	max-width: 100%;
	font-size: 16px !important;
	line-height: 1.75 !important;
	font-weight: 400 !important;
	text-align: left !important;
	color: #fff !important;
	margin: 14px 0 0 !important;
}

.contact-form-section .contact-aside .content-prose p {
	text-align: left !important;
	margin: 0 0 1.25em !important;
	color: #fff !important;
}

.contact-form-section .contact-aside .content-prose p:last-child {
	margin-bottom: 0 !important;
}

.contact-form-section .contact-aside .contact-channels {
	width: 100%;
	margin-top: 28px;
}

.contact-form-section .contact-aside .contact-quick-links {
	width: 100%;
	margin-top: 28px;
}

.contact-form-section .contact-form-panel .site-section-title {
	text-align: left;
	width: 100%;
}

.contact-form-section .contact-form-panel .site-section-title h2 {
	font-size: clamp(36px, 4.2vw, 56px) !important;
	line-height: 1.1 !important;
	font-weight: 800 !important;
	text-transform: capitalize !important;
	text-align: left !important;
	margin: 0 !important;
	color: #15110d !important;
}

.contact-form-section .contact-form-panel .site-section-title h2 span {
	color: #000 !important;
}

.contact-form-section .contact-form-panel .form-hint {
    color: #15110d;
    margin: 10px 0 28px;
    font-size: 15px;
    display: block !important;
}

.contact-form-section .contact-form-panel .form-hint .req {
	color: var(--red, #f32a22);
}

.contact-form-section .deens-contact-form-plugin,
.contact-form-section #contact-form.booking-form {
	width: 100%;
	margin: 0;
}

.contact-form-section .booking-form__row {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 18px !important;
	margin-bottom: 25px !important;
}

.contact-form-section .booking-form__row>div {
	min-width: 0;
}



.contact-form-section .booking-form textarea {
	min-height: 120px;
	resize: vertical;
	margin-bottom: 0;
}


.contact-form-section .booking-form .radio-row {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin-top: 14px;
}


.contact-form-section .Preferred-reply {
	margin-block: 30px;
}

.contact-form-section #contact-form .deens-field-error,
.contact-form-section .deens-field-error {
	background: #f32a22 !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	display: block;
	margin-top: 6px;
	line-height: 1.4;
	color: #fff !important;
	padding: 0px 4px;
}

.contact-form-section #contact-form .form-hint--counter {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    width: 100%;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    color: rgb(21 17 13);
}

.contact-form-section #contact-form .form-hint--counter span {
	font-style: normal;
}

.contact-form-section .booking-form__actions {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center;
	width: 100%;
	margin-top: 15px;
}

.contact-form-section .booking-form__actions .btn-primary, .contact-form-section .booking-form__actions button.btn-primary {
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 150px;
    padding: 14px 16px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: none !important;
    border-radius: 999px !important;
    cursor: pointer;
    box-shadow: 0 10px 28px -10px rgba(243, 42, 34, 0.55);
}

.contact-form-section .booking-form__actions #submit_text.deens-form-btn--pending {
	display: none !important;
}

.contact-form-section .booking-form__actions #submit_text.deens-form-btn--pending.is-visible {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}

.contact-form-section .booking-form__actions #contact_submit.deens-form-btn--submit.is-hidden {
	display: none !important;
}

/* Three carts maps — design/contact.html */
.page-contact .locations.locations-page {
	background: #fff;
	padding: 48px 0 88px;
	margin-top: 0 !important;
}

.page-contact .locations.locations-page .loc-head1 {
	margin: 0 0 0;
	padding: 0;
}

.page-contact .locations.locations-page .section-head {
	margin: 0;
	padding: 0;
}

.page-contact .locations.locations-page .loc-grid {
	margin-top: 45px;
}

.page-contact .locations.locations-page .site-section-title {
	text-align: center;
	width: 100%;
}

.page-contact .locations.locations-page .site-section-title h2 {
	font-size: 34px;
	line-height: 1.05 !important;
	font-weight: 800 !important;
	text-transform: capitalize !important;
	text-align: center !important;
	color: #15110d !important;
	margin: 0 !important;
}

.page-contact .locations.locations-page .site-section-title h2 span {
	color: #000 !important;
}

.page-contact .locations.locations-page .loc-card .img-wrap {
	position: relative;
	min-height: 250px;
}

.page-contact .locations.locations-page .loc-card .img-wrap iframe {
	display: block;
	width: 100%;
	height: 250px;
	min-height: 250px;
	border: 0;
}

body.page-partner.inner-pages .page-partner-main .site-section-title h2 {
	font-size: 50px !important;
}

@media (max-width: 1269px) {

	body.inner-pages.page-contact,
	body.page-template-page-contact.inner-pages {
		padding-top: 0 !important;
	}
}

@media (max-width: 768px) {
	.page-contact-main.wp-block-group {
		padding-top: 0 !important;
	}

	.contact-form-section .contact-main,
	.contact-form-section .container.contact-main {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	.contact-form-section .booking-form__row {
		grid-template-columns: 1fr !important;
	}

	.contact-form-section .contact-aside,
	.contact-form-section .contact-form-panel {
		padding: 2rem 1.25rem 1.5rem;
	}

	body.page-contact.inner-pages .page-contact-main .contact-form-panel .site-section-title h2 {
		margin: 0 0 24px !important;
		font-size: 28px !important;
	}


	.contact-form-section .contact-aside {
		padding: 25px !important;
	}

	body.page-contact.inner-pages .page-contact-main .contact-aside .site-section-title h2,
	.contact-form-section .contact-aside .site-section-title h2 {
		font-size: 30px !important;
	}

	.page-contact .locations.locations-page .site-section-title h2 {
		font-size: 29px !important;
		margin-bottom: 35px !important;
	}


}

/* Gutenberg: contact-main children are groups, not bare aside/panel */
body.page-contact .contact-form-section .contact-main,
body.page-contact .contact-form-section .container.contact-main {
	display: grid !important;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
	gap: 0 !important;
	align-items: stretch !important;
}

body.page-contact .contact-form-section .contact-main > .contact-aside,
body.page-contact .contact-form-section .contact-main > .wp-block-group.contact-aside {
	grid-column: 1 !important;
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
	flex-basis: auto !important;
	margin: 0 !important;
}

body.page-contact .contact-form-section .contact-main > .contact-form-panel,
body.page-contact .contact-form-section .contact-main > .wp-block-group.contact-form-panel {
	grid-column: 2 !important;
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
	flex-basis: auto !important;
	margin: 0 !important;
}

body.page-contact .contact-form-section .contact-aside.wp-block-group,
body.page-contact .contact-form-section .wp-block-group.contact-aside {
	background: #212121 !important;
	padding: 3.5rem 2.5rem 40px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	height: 100%;
}

body.page-contact .contact-form-section .contact-channels.wp-block-group {
	display: grid !important;
	gap: 0 !important;
	width: 100%;
	margin-top: 28px;
}

body.page-contact .locations.locations-page {
	display: block !important;
}

@media (max-width: 991px) {
	body.page-contact .contact-form-section .contact-main,
	body.page-contact .contact-form-section .container.contact-main {
		grid-template-columns: 1fr !important;
	}

	body.page-contact .contact-form-section .contact-main > .contact-aside,
	body.page-contact .contact-form-section .contact-main > .contact-form-panel,
	body.page-contact .contact-form-section .contact-main > .wp-block-group.contact-aside,
	body.page-contact .contact-form-section .contact-main > .wp-block-group.contact-form-panel {
		grid-column: 1 !important;
	}
}
