/* =========================================================================
   Trang Liên hệ (templates/template-contact.php)
   Dùng design token của theme (--color-pri #2563EB, --color-second #F59E0B…).
   ========================================================================= */

/* ---- Hero ---- */
/* Khung mặc định max-width:50% + font tới 5.6rem khiến tiêu đề dài bị rớt
   chữ lẻ ("Math,", "sàng"). Nới khung + giảm nhẹ cỡ chữ để mỗi dòng vừa khít. */
.page-contact .bn-hero-content {
	max-width: 64%;
}

.page-contact .bn-hero-content .tt {
	--f-sz: clamp(2.8rem, calc(-1rem + 4.6vw), 4.8rem);
	text-wrap: balance;
}

@media (max-width: 1024px) {
	.page-contact .bn-hero-content {
		max-width: 80%;
	}
}

@media (max-width: 800px) {
	.page-contact .bn-hero-content {
		max-width: 100%;
	}
}

.page-contact .sec-contact {
	background: linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.page-contact .contact-wr {
	display: grid;
	grid-template-columns: 1fr 1.15fr;
	gap: var(--dist40, 4rem);
	align-items: stretch;
}

/* ---- Thẻ chung (info + form) ---- */
.page-contact .contact-info,
.page-contact .contact-form {
	background: #fff;
	border: 1px solid #e8edf3;
	border-radius: 2.4rem;
	padding: var(--dist40, 4rem);
	box-shadow: 0 1.2rem 3.2rem rgba(15, 23, 42, .05);
}

.page-contact .contact-lead {
	color: var(--color-text-1, #475569);
	font-size: 1.6rem;
	line-height: 1.6;
	margin: 0 0 var(--dist28, 2.8rem);
}

/* ---- Danh sách thông tin ---- */
.page-contact .contact-list {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
}

.page-contact .contact-item {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	padding: 1.6rem 1.8rem;
	border: 1px solid #eef2f7;
	border-radius: 1.6rem;
	background: #fbfcfe;
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.page-contact .contact-item:hover {
	border-color: #c7d7f5;
	transform: translateY(-2px);
	box-shadow: 0 .8rem 2rem rgba(37, 99, 235, .08);
}

.page-contact .contact-item .icon {
	flex: 0 0 auto;
	width: 5.6rem;
	height: 5.6rem;
	border-radius: 1.4rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(37, 99, 235, .12), rgba(245, 158, 11, .14));
}

.page-contact .contact-item .icon img {
	width: 2.8rem;
	height: 2.8rem;
	object-fit: contain;
}

.page-contact .contact-item .des {
	display: flex;
	flex-direction: column;
	gap: .2rem;
	min-width: 0;
}

.page-contact .contact-item .des .txt {
	font-size: 1.3rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--color-text-1, #64748b);
	font-weight: 600;
}

.page-contact .contact-item .des .link {
	font-size: 1.7rem;
	font-weight: 600;
	color: var(--color-text, #0f172a);
	text-decoration: none;
	word-break: break-word;
}

.page-contact .contact-item .des a.link:hover {
	color: var(--color-pri, #2563eb);
}

/* ---- Mạng xã hội ---- */
.page-contact .contact-socials {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	margin-top: var(--dist28, 2.8rem);
}

.page-contact .contact-socials .social {
	width: 4.8rem;
	height: 4.8rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f1f5fb;
	border: 1px solid #e3eaf4;
	color: var(--color-text-1, #475569);
	font-weight: 600;
	font-size: 1.4rem;
	text-decoration: none;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}

.page-contact .contact-socials .social:hover {
	background: var(--color-pri, #2563eb);
	color: #fff;
	transform: translateY(-2px);
}

.page-contact .contact-socials .social img {
	width: 2.2rem;
	height: 2.2rem;
	object-fit: contain;
}

/* ---- Form (Contact Form 7, markup theme .frm-row/.frm-ip/.frm-input) ---- */
/* Lưới: tự quản gutter để không phụ thuộc biến --gap của footer. */
.page-contact .contact-form .frm-row {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	gap: 1.4rem;
}

.page-contact .contact-form .frm-col {
	padding: 0;
	margin: 0;
}

.page-contact .contact-form .frm-col.col-6 {
	flex: 0 0 calc(50% - .7rem);
	max-width: calc(50% - .7rem);
}

.page-contact .contact-form .frm-col.col-12 {
	flex: 0 0 100%;
	max-width: 100%;
}

.page-contact .contact-form .frm-item,
.page-contact .contact-form .frm-ip {
	margin: 0;
	width: 100%;
}

/* Input/textarea trên thẻ trắng — ghi đè .frm-input (vốn chữ trắng dành cho footer). */
.page-contact .contact-form .frm-input,
.page-contact .contact-form input.wpcf7-form-control,
.page-contact .contact-form textarea {
	width: 100%;
	height: auto;
	border: 1px solid #d8e0ea;
	border-radius: 1.2rem;
	padding: 1.3rem 1.6rem;
	font-size: 1.6rem;
	font-family: inherit;
	color: var(--color-text, #0f172a);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.page-contact .contact-form .wpcf7-form-control.wpcf7-submit {
	color: #ffffff;
	border: none;
}

.page-contact .contact-form .wpcf7-form-control.wpcf7-submit:hover {
	color: var(--color-pri);
}

.page-contact .contact-form .frm-input::placeholder,
.page-contact .contact-form textarea::placeholder {
	color: #9aa6b6;
}

.page-contact .contact-form .frm-input:focus,
.page-contact .contact-form textarea:focus {
	outline: none;
	border-color: var(--color-pri, #2563eb);
	box-shadow: 0 0 0 .3rem rgba(37, 99, 235, .14);
}

.page-contact .contact-form textarea.frm-input,
.page-contact .contact-form textarea {
	resize: vertical;
	min-height: 13rem;
}

/* Nút gửi (giao diện do cf7.css toàn site lo; ở đây chỉ canh khoảng cách). */
.page-contact .contact-form .footer-frm-btn {
	margin-top: 1.6rem;
}

/* ---- Thông báo ---- */
.page-contact .contact-alert {
	border-radius: 1.2rem;
	padding: 1.4rem 1.8rem;
	font-size: 1.5rem;
	margin-bottom: 2rem;
	line-height: 1.5;
}

.page-contact .contact-alert--ok {
	background: #dcfce7;
	color: #166534;
	border: 1px solid #bbf7d0;
}

.page-contact .contact-alert--err {
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

/* ---- Bản đồ ---- */
.page-contact .sec-contact-map {
	padding-bottom: var(--dist80, 8rem);
}

.page-contact .contact-map {
	max-width: var(--ctn, 133.2rem);
	margin: 0 auto;
	padding: 0 var(--halfrectn, 2rem);
}

.page-contact .contact-map iframe {
	display: block;
	width: 100%;
	border-radius: 2.4rem;
	box-shadow: 0 1.2rem 3.2rem rgba(15, 23, 42, .08);
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.page-contact .contact-wr {
		grid-template-columns: 1fr;
		gap: var(--dist28, 2.8rem);
	}
}

@media (max-width: 600px) {

	.page-contact .contact-info,
	.page-contact .contact-form {
		padding: 2.4rem 2rem;
		border-radius: 1.8rem;
	}

	.page-contact .contact-form .frm-col.col-6 {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.page-contact .contact-map iframe {
		border-radius: 1.6rem;
	}
}