/* ============================================
   BRAND COLORS
============================================ */
:root {
	--primary: #1b375e;
	--secondary: #21659a;
	--text: #5f5f5f;
	--text-light: #7094d9;
	--light-bg: #EEF5FF;
}

/* ============================================
   CONTACT WRAPPER
============================================ */
.contact-section {
	padding: 60px 20px;
}

.contact-wrapper {
	max-width: 1100px;
	margin: auto;
	display: grid;
	grid-template-columns: 40% 60%;
	gap: 35px;
}

/* Mobile layout — FORM FIRST */
@media (max-width: 800px) {

	.contact-wrapper {
		display: flex;
		flex-direction: column;
	}

	/* FORM on top */
	.contact-form-card {
		order: 1;
	}

	/* INFO section below */
	.contact-info-card {
		order: 2;
	}
}


/* ============================================
   LEFT — INFO SECTION (NO BACKGROUND)
============================================ */
.contact-info-card {
	padding: 10px 0;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: var(--primary);
}

.info-title {
	font-size: 28px;
	font-weight: 700;
	margin-bottom: 22px;
	color: var(--primary);
}

.info-block {
	display: flex;
	gap: 12px;
	margin-bottom: 22px;
	align-items: flex-start;
}

.info-block h4 {
	font-size: 14px;
	font-weight: bold;
	margin-bottom: 4px;
	color: var(--primary);
}

.info-block a {
	font-size: 14px;
	line-height: 1.45rem;
}

.info-icon {
	width: 26px;
	display: flex;
	align-items: start;
	padding-top: 3px;
}

/* ============================================
   RIGHT — FORM CARD (THEMED BACKGROUND)
============================================ */
.contact-form-card {
	background: #ffffff9c;
	padding: 32px;
	border-radius: 16px;
	border: 1px solid #22569c2e;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

/* ============================================
   FLOATING INPUT GROUP
============================================ */
.floating-group {
	position: relative;
	margin-bottom: 25px;
}

.floating-group input,
.floating-group textarea {
	width: 100%;
	border: none;
	border-bottom: 2px solid #b3c7ed;
	padding: 12px 0 6px;
	background: transparent;
	font-size: 14px;
	color: var(--text);
	transition: border-color 0.25s ease;
}

.floating-group textarea {
	resize: none;
	padding-top: 18px;
	min-height: 110px;
}

.floating-group input:focus,
.floating-group textarea:focus {
	outline: none;
	border-bottom-color: var(--primary);
}

/* Floating label */
.floating-group label {
	position: absolute;
	top: 12px;
	left: 0;
	color: var(--text-light);
	font-size: 14px;
	pointer-events: none;
	transition: 0.25s ease;
}

.floating-group input:focus+label,
.floating-group textarea:focus+label,
.floating-group input:not(:placeholder-shown)+label,
.floating-group textarea:not(:placeholder-shown)+label {
	top: -10px;
	font-size: 12px;
	color: var(--primary);
	font-weight: 600;
}

/* ============================================
   SUBMIT BUTTON
============================================ */
.submit-btn {
	display: block;
	margin: auto;
	width: 180px;
	background: var(--primary);
	padding: 12px;
	color: white;
	border-radius: 8px;
	border: none;
	font-weight: 700;
	cursor: pointer;
	transition: 0.3s ease;
}

.submit-btn:hover {
	background: var(--secondary);
}

/* ============================================
   ANIMATIONS
============================================ */
.fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: 0.6s ease;
}

.in-view {
	opacity: 1 !important;
	transform: none !important;
}

/* Error message text */
.error-text {
	color: #d33;
	font-size: 12px;
	margin-top: 4px;
	display: block;
	min-height: 14px;
}

/* Red border when invalid */
input.error,
textarea.error {
	border-color: #d33 !important;
}

/* Optional: shake animation on invalid submit */
@keyframes shake {
	0% {
		transform: translateX(0);
	}

	25% {
		transform: translateX(-4px);
	}

	50% {
		transform: translateX(4px);
	}

	75% {
		transform: translateX(-4px);
	}

	100% {
		transform: translateX(0);
	}
}

input.error,
textarea.error {
	animation: shake 0.25s ease;
}