/* ==========================================================================
   Contact Form Section
   ========================================================================== */

.contact-form-section {
	padding: 80px 0;
	background-color: var(--color-background, #fff);
	position: relative;
	overflow: hidden;
}
.page-id-220 section.contact-form-section {
    overflow: visible;
    background: transparent;
    overflow: visible;
}
.page-id-220 section.contact-form-section.bg-white::before {
    content: '';
    position: absolute;
    inset: -60px 0 auto auto;
    height: 532px;
    width: 543px;
    pointer-events: none;
    z-index: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='543' height='532' viewBox='0 0 543 532' fill='none'%3E%3Cpath d='M0 4.57764e-05L543 -1.43193e-06L543 532L3.00001 532L0 4.57764e-05Z' fill='url(%23paint0_linear_504_20953)' fill-opacity='0.5'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_504_20953' x1='576.056' y1='-20.1364' x2='183.836' y2='295.381' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%239473F9'/%3E%3Cstop offset='1' stop-color='white' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
}
/* Ensure content sits above the gradient */
.contact-form-section .container {
	position: relative;
	z-index: 1;
}

.contact-form-section.merge-background {
	padding-top: 0;
}

.contact-form-section__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 60px;
	align-items: start;
}

@media (min-width: 992px) {
	.contact-form-section__grid {
		grid-template-columns: 40fr 60fr;
		gap: 60px;
	}
}

/* Left Content Column */
.contact-form-section__content {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.contact-form-section__title {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem);
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.contact-form-section__title span {
	font-style: italic;
	color: var(--color-primary, #7c3aed);
}

.contact-form-section__description {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--color-text-secondary, #666);
}

/* Contact Buttons */
.contact-form-section__buttons {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 8px 0;
}

.contact-form-section__button {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	background: linear-gradient(135deg, #7c3aed 0%, #a78bfa 100%);
	border-radius: 8px;
	text-decoration: none;
	color: #fff;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-form-section__button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(124, 58, 237, 0.3);
}

.contact-form-section__button-icon {
	font-size: 1.25rem;
	line-height: 1;
}

.contact-form-section__button-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 0.8125rem;
	line-height: 1.4;
}

.contact-form-section__button-text strong {
	font-weight: 600;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Video Container - Override global video styles */
.contact-form-section__video.video-embed {
	height: auto;
	padding-bottom: 56.25%;
	background: #000;
}

.contact-form-section__video .video-wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Awards */
.contact-form-section__awards {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 8px;
}

.contact-form-section__award {
	flex-shrink: 0;
}

.contact-form-section__award img {
	height: 60px;
	width: auto;
	object-fit: contain;
}

/* Right Form Column */
.contact-form-section__form {
	background: #fcfbfd;
	padding: 48px;
	border-radius: 24px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
	position: relative;
	z-index: 2;
}
.contact-form-section__form::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 24px;
    padding: 2px;
    background: linear-gradient(76deg, #9082BA 0%, #FFFFFF 16%, #9082BA 50%, #FFFFFF 86%, #9082BA 100%);
    -webkit-mask: linear-gradient(#fcfbfd 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#fcfbfd 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: -1;
}

/* Form Title */
.contact-form-section__form h3,
.contact-form-section__form .form-title {
	font-size: 2.5rem;
	font-weight: 700;
	margin: 0 0 8px 0;
	color: #1f2937;
}

/* Required Information */
.contact-form-section__form .required-info {
	text-align: right;
	font-size: 0.875rem;
	color: #9ca3af;
	margin-bottom: 24px;
}

.contact-form-section__form .required-info::before {
	content: "* ";
	color: #ef4444;
}

/* Contact Form 7 Styling */
.contact-form-section__form .wpcf7-form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

/* Labels */
.contact-form-section__form label {
	display: block;
	font-size: 0.9375rem;
	font-weight: 500;
	color: #1f2937;
}

.contact-form-section__form label .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
}

/* Form Controls */
.contact-form-section__form input[type="tel"],
.contact-form-section__form input[type="text"],
.contact-form-section__form input[type="email"],
.contact-form-section__form select,
.contact-form-section__form textarea {
	width: 100%;
	padding: 14px 16px;
	border: 2px solid #e5e7eb;
	border-radius: 12px;
	font-size: 1rem;
	font-family: inherit;
	color: #6b7280;
	background-color: #fff;
	transition: all 0.2s ease;
}

.contact-form-section__form input[type="text"]::placeholder,
.contact-form-section__form input[type="email"]::placeholder,
.contact-form-section__form input[type="tel"]::placeholder,
.contact-form-section__form textarea::placeholder {
	color: #d1d5db;
	font-style: italic;
}

/* Focus state with purple border */
.contact-form-section__form input[type="tel"]:focus,
.contact-form-section__form input[type="text"]:focus,
.contact-form-section__form input[type="email"]:focus,
.contact-form-section__form select:focus,
.contact-form-section__form textarea:focus {
	outline: none;
	border-color: #8b5cf6;
	box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
}

/* Select dropdowns */
.contact-form-section__form select {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 48px;
	cursor: pointer;
}

.contact-form-section__form select option:first-child {
	color: #d1d5db;
}

/* Textarea */
.contact-form-section__form textarea {
	min-height: 140px;
	resize: vertical;
	font-family: inherit;
}

/* Full width fields - span both columns */
.contact-form-section__form .large-section {
	grid-column: 1 / -1;
}

/* Make CF7 wrapper spans transparent to grid layout */
.contact-form-section__form .wpcf7-form > span.wpcf7-form-control-wrap {
	display: contents;
}

/* Checkbox - spans both columns */
.contact-form-section__form .wpcf7-acceptance {
	grid-column: 1 / -1;
	display: block;
	margin: 8px 0 0 0;
	width: 100%;
}

.contact-form-section__form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
}

.contact-form-section__form input[type="checkbox"] {
	width: 20px;
	height: 20px;
	min-width: 20px;
	margin: 2px 0 0 0;
	border: 2px solid #e5e7eb;
	border-radius: 4px;
	cursor: pointer;
	flex-shrink: 0;
}

.contact-form-section__form .wpcf7-list-item-label {
	font-size: 0.875rem;
	line-height: 1.6;
	color: #6b7280;
	font-weight: 400;
	margin: 0;
	flex: 1;
}

/* Submit Button - also spans both columns */
.contact-form-section__form .submission-field {
	grid-column: 1 / -1;
	margin-top: 8px;
}

.contact-form-section__form .wpcf7-submit {
	width: 100%;
	padding: 16px 24px;
	background: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%);
	color: #fff;
	border: none;
	border-radius: 12px;
	font-size: 1.0625rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}

.contact-form-section__form .wpcf7-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(139, 92, 246, 0.4);
}

.contact-form-section__form .wpcf7-submit:active {
	transform: translateY(0);
}

/* Validation Messages */
.contact-form-section__form .wpcf7-not-valid-tip {
	font-size: 0.8125rem;
	color: #ef4444;
	margin-top: 6px;
	display: block;
}

.contact-form-section__form .wpcf7-response-output {
	margin-top: 20px;
	padding: 14px 16px;
	border-radius: 8px;
	font-size: 0.875rem;
	border: none;
	grid-column: 1 / -1;
}

.contact-form-section__form .wpcf7-validation-errors {
	background-color: #fef2f2;
	color: #991b1b;
}

.contact-form-section__form .wpcf7-mail-sent-ok {
	background-color: #f0fdf4;
	color: #166534;
}

/* Invalid field state */
.contact-form-section__form .wpcf7-not-valid {
	border-color: #ef4444;
}

/* Mobile Adjustments */
@media (max-width: 991px) {
	.contact-form-section {
		padding: 60px 0;
	}

	.contact-form-section__form {
		padding: 40px 32px;
	}

	.contact-form-section__buttons {
		flex-direction: column;
	}

	.contact-form-section__button {
		width: 100%;
		justify-content: center;
	}

	/* Stack form fields on mobile */
	.contact-form-section__form .wpcf7-form {
		grid-template-columns: 1fr;
	}

	/* Stack contact info boxes on mobile */
	.contact-info-boxes {
		flex-direction: column;
		gap: 16px;
	}

	/* Hide badge images in WYSIWYG content on mobile */
	.contact-form-section__content .section-content img {
		display: none;
	}

	/* Adjust gradient for mobile */
	.contact-form-section::before {
		top: -50px;
		right: -50px;
		width: 100%;
		height: calc(100% + 100px);
		background: radial-gradient(ellipse at top right, rgba(148, 115, 249, 0.20) 0%, rgba(167, 139, 250, 0.12) 40%, rgba(255, 255, 255, 0) 70%);
	}
}

@media (max-width: 576px) {
	.contact-form-section {
		padding: 40px 0;
	}

	.contact-form-section__grid {
		gap: 40px;
	}

	.contact-form-section__form {
		padding: 32px 24px;
		border-radius: 16px;
	}

	.contact-form-section__form h3,
	.contact-form-section__form .form-title {
		font-size: 2rem;
	}
}

/* Contact Info Boxes */
.contact-info-boxes {
	display: flex;
	gap: 26px;
	margin-top: 5px;
	height: auto;
}

.contact-info-box {
	flex: 1;
	padding: 15px;
	background: linear-gradient(135deg, rgba(124, 58, 237, 0.1) 0%, rgba(167, 139, 250, 0.1) 100%);
	border-left: 10px solid #7c3aed;
	border-radius: 8px;
}

.contact-info-box strong {
	display: block;
	font-size: 16px;
	margin-bottom: 8px;
	color: #1f2937;
}

.contact-info-box a {
	color:  #595959;
	text-decoration: none;
}