/* =============================================================
TRANG LIÊN HỆ (Contact) — prefix class: cct-
Dùng lại token màu/khoảng cách chung của site (--cdet-*) khai
báo tại style.css :root, không định nghĩa lại token riêng.
============================================================= */

/* =============================================================
1. HERO
============================================================= */

.cct-hero {
	background: linear-gradient(to bottom, var(--cdet-bg-gray) 0%, var(--cdet-bg-white) 100%);
	padding: 48px 0;
}

.cct-hero__breadcrumb {
	font-size: 14px;
	color: var(--cdet-text-light);
	margin-bottom: 16px;
}

.cct-hero__breadcrumb a {
	color: var(--cdet-text-light);
	text-decoration: none;
}

.cct-hero__breadcrumb a:hover {
	color: var(--cdet-primary);
}

.cct-hero__breadcrumb span {
	color: var(--cdet-primary);
}

.cct-hero__title {
	font-size: 40px;
	font-weight: 800;
	color: var(--cdet-primary);
	line-height: 1.2;
	margin: 0 0 20px;
}

.cct-hero__desc {
	font-size: 16px;
	color: var(--cdet-text-muted);
	line-height: 1.6;
	margin: 0 0 14px;
}

.cct-hero__note {
	font-size: 14px;
	color: var(--cdet-text-light);
	line-height: 1.6;
	margin: 0 0 28px;
}

.cct-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.cct-hero__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 15px 20px;
	border-radius: var(--cdet-radius-md);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	background-color: var(--cdet-primary);
	color: #fff;
	box-shadow: var(--cdet-shadow-card);
	border: 2px solid var(--cdet-primary);
	transition: opacity 0.2s;
}
.cct-hero__btn svg{
	width: 20px;
	height: 20px;
}

.cct-hero__btn:hover {
	opacity: 0.9;
	color: #fff;
}

.cct-hero__btn--outline {
	background-color: transparent;
	color: var(--cdet-primary);
	box-shadow: none;
}

.cct-hero__btn--outline:hover {
	background-color: var(--cdet-bg-gray);
	opacity: 1;
	color: var(--cdet-primary);
}

.cct-hero__image-wrap {
	border-radius: var(--cdet-radius-xl);
	overflow: hidden;
	box-shadow: var(--cdet-shadow-hover);
}

.cct-hero__image {
	display: block;
	width: 100%;
	height: auto;
	max-height: 400px;
	object-fit: cover;
}

/* =============================================================
2. VALUE PROPS (4 cột)
============================================================= */

.cct-valueprops {
	padding: 48px 0;
	border-bottom: 1px solid var(--cdet-border);
}

.cct-valueprops__item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
}

.cct-valueprops__icon {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: #eff6ff;
	color: var(--cdet-primary);
}
.cct-valueprops__icon svg {
	width: 30px;
	height: 30px;
}
.cct-valueprops__title {
	font-size: 18px;
	font-weight: 700;
	color: var(--cdet-text);
	margin: 0 0 4px;
}

.cct-valueprops__desc {
	font-size: 14px;
	color: var(--cdet-text-light);
	margin: 0;
}

/* =============================================================
3. CONTACT METHODS (4 card)
============================================================= */

.cct-methods {
	padding: 64px 0;
}

.cct-methods__title {
	text-align: center;
	font-size: 28px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 40px;
}

.cct-methods__card {
	text-align: center;
	padding: 32px;
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-lg);
	box-shadow: var(--cdet-shadow-card);
	transition: transform 0.3s ease, border-color 0.3s ease;
}

.cct-methods__card:hover {
	border-color: var(--cdet-primary);
	transform: translateY(-4px);
}

.cct-methods__card-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 16px;
	color: var(--cdet-primary);
}
.cct-methods__card-icon svg{
	width: 40px;
	height: 40px;
}
.cct-methods__card-title {
	font-size: 20px;
	font-weight: 700;
	color: var(--cdet-text);
	margin: 0 0 4px;
}
.cct-methods__card-value {
	font-size: 18px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 8px;
	text-decoration: none;
	display: inline-block;
}
.cct-methods__card p{margin: 0;}
.cct-methods__card-value--sm {
	font-size: 16px;
}

.cct-methods__card-desc {
	font-size: 16px;
	color: var(--cdet-text-light);
	margin: 0;
}

.cct-methods__card-zalo-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background-color: var(--cdet-primary);
	color: #fff;
	border-radius: var(--cdet-radius-sm);
	font-weight: 700;
	font-size: 11px;
}

/* =============================================================
4. FORM + SIDEBAR
============================================================= */

.cct-formsection {
	background-color: var(--cdet-bg-gray);
	padding: 48px 0;
}

.cct-formcard {
	background-color: #fff;
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-lg);
	box-shadow: var(--cdet-shadow-card);
	padding: 32px;
}

.cct-formcard__title {
	font-size: 24px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 32px;
}

.cct-field {
	position: relative;
	margin-bottom: 16px;
}

/* CF7 bọc field trong <span class="wpcf7-form-control-wrap">, mặc định
là inline — phải ép display:block để chiếm full width trong .cct-field */
.cct-field .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.cct-field__icon svg {
	width: 20px;
	height: 20px;
}

.cct-field__icon {
	position: absolute;
	top: 1px;
	bottom: 0;
	left: 10px;
	display: flex;
	align-items: center;
	color: var(--cdet-primary);
	pointer-events: none;
	z-index: 1;
	height: 43px;
}

.cct-field .wpcf7-form-control {
	width: 100%;
	padding: 8px 10px 8px 40px;
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-md);
	font-size: 16px;
	font-family: var(--cdet-font);
	color: var(--cdet-text);
	margin: 0;
	height: 45px;
}

.cct-field textarea.wpcf7-form-control,
.cct-field select.wpcf7-form-control {
	padding-left: 16px;
}

.cct-field textarea.wpcf7-form-control {
	resize: vertical;
}

.cct-field select.wpcf7-form-control {
	color: var(--cdet-text-light);
}

.cct-field .wpcf7-form-control:focus {
	outline: none;
	border-color: var(--cdet-primary);
	box-shadow: 0 0 0 1px var(--cdet-primary);
}

.cct-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.cct-consent {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--cdet-text-light);
	margin-bottom: 16px;
}

.cct-consent .wpcf7-list-item {
	margin: 0;
}
.wpcf7-list-item-label{
	font-size: 16px;
}
.cct-submit .wpcf7-form-control.wpcf7-submit {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 16px;
	background-color: var(--cdet-primary);
	color: #fff;
	border: none;
	border-radius: var(--cdet-radius-md);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	box-shadow: var(--cdet-shadow-card);
	transition: background-color 0.2s;
}

.cct-submit .wpcf7-form-control.wpcf7-submit:hover {
	background-color: var(--cdet-navy);
}

.cct-submit__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 10px;
	color: var(--cdet-text-light);
	margin-top: 8px;
}
.cct-submit__note svg {
	width: 20px;
}
/* Ẩn thông báo mặc định CF7 (spinner + response output) vào đúng vị trí gọn */
.cct-formcard .wpcf7-spinner {
	margin-left: 8px;
}

.cct-formcard .wpcf7-not-valid-tip {
	font-size: 12px;
	margin-top: 4px;
}

/* Sidebar */
.cct-sidebar {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.cct-sidebar__card {
	background-color: #fff;
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-lg);
	box-shadow: var(--cdet-shadow-card);
	padding: 32px;
}

.cct-sidebar__title {
	font-size: 20px;
	font-weight: 700;
	color: var(--cdet-text);
	margin: 0 0 24px;
}

.cct-sidebar__list {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.cct-sidebar__item {
	display: flex;
	gap: 16px;
	align-items: center;
}

.cct-sidebar__item-icon {
	color: var(--cdet-primary);
	flex-shrink: 0;
	margin-top: 2px;
}
.cct-sidebar__item-icon svg {
	width: 30px;
	height: 30px;
}
.cct-sidebar__item-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 2px;
}

.cct-sidebar__item-desc {
	font-size: 14px;
	color: var(--cdet-text-light);
	margin: 0;
}

.cct-sidebar__booking {
	background-color: #eff6ff;
	border: 1px solid #dbeafe;
	border-radius: var(--cdet-radius-lg);
	padding: 32px;
}

.cct-sidebar__booking-head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
}

.cct-sidebar__booking-icon {
	background-color: #fff;
	color: var(--cdet-primary);
	padding: 6px;
	border-radius: var(--cdet-radius-md);
	box-shadow: var(--cdet-shadow-card);
	flex-shrink: 0;
	line-height: 1;
}
.cct-sidebar__booking-icon svg{
	width: 30px;
	height: 30px;
}

.cct-sidebar__booking-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--cdet-text);
	margin: 0 0 2px;
}

.cct-sidebar__booking-desc {
	font-size: 12px;
	color: var(--cdet-text-light);
	margin: 0;
}

.cct-sidebar__booking-btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px;
	background-color: #fff;
	color: var(--cdet-primary);
	border: 1px solid var(--cdet-primary);
	border-radius: var(--cdet-radius-md);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	transition: background-color 0.2s;
}
.cct-sidebar__booking-btn svg{
	width: 20px;
	height: 20px;
}
.cct-sidebar__booking-btn:hover {
	background-color: #dbeafe;
	color: var(--cdet-primary);
}

/* =============================================================
5. MAP + OFFICE INFO
============================================================= */

.cct-mapsection {
	padding: 64px 0;
}

.cct-mapsection__title {
	text-align: center;
	font-size: 28px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 48px;
}

/* .cct-mapcard gắn thẳng vào [row_inner] (là chính element .row-inner đó),
không phải div bọc ngoài — nên phải tự reset margin âm mặc định của
Flatsome row, nếu không 2 cột sẽ tràn ra ngoài border-radius của card */
.cct-mapcard {
	background-color: #fff;
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-xl);
	overflow: hidden;
	box-shadow: var(--cdet-shadow-hover);
	margin: 0 !important;
}

.cct-mapcard__visual {
	height: 400px;
	background-color: var(--cdet-bg-gray);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.cct-mapcard__marker {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	color: var(--cdet-primary);
}

.cct-mapcard__marker-label {
	background-color: var(--cdet-primary);
	color: #fff;
	font-size: 10px;
	padding: 4px 10px;
	border-radius: var(--cdet-radius-sm);
	white-space: nowrap;
	margin-bottom: 4px;
	box-shadow: var(--cdet-shadow-card);
}

/* Nhãn tên khu vực xung quanh marker — chỉ mang tính minh hoạ, ẩn ở mobile */
.cct-mapcard__region {
	position: absolute;
	font-size: 13px;
	font-weight: 700;
	color: var(--cdet-text-light);
}

.cct-mapcard__info {
	height: 100%;
	padding: 40px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.cct-mapcard__info-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 16px;
}

.cct-mapcard__info-desc {
	font-size: 14px;
	color: var(--cdet-text-muted);
	line-height: 1.6;
	margin: 0 0 24px;
}

.cct-mapcard__info-list {
	list-style: none;
	margin: 0 0 32px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cct-mapcard__info-item {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	color: var(--cdet-text);
	margin: 0 !important;
}

.cct-mapcard__info-item svg {
	color: var(--cdet-primary);
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.cct-mapcard__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	padding-top: 32px;
	border-top: 1px solid var(--cdet-border);
}

.cct-mapcard__stat {
	text-align: center;
}

.cct-mapcard__stat-icon {
	display: flex;
	justify-content: center;
	margin-bottom: 4px;
	color: var(--cdet-primary);
}
.cct-mapcard__stat-icon svg {
	width: 40px;
	height: 40px;
}
.cct-mapcard__stat-number {
	font-size: 28px;
	font-weight: 800;
	color: var(--cdet-navy-dark);
}

.cct-mapcard__stat-label {
	font-size: 14px;
	text-transform: uppercase;
	color: var(--cdet-text-light);
	font-weight: 700;
}

/* =============================================================
6. FAQ
============================================================= */

.cct-faq {
	padding: 64px 0;
	background-color: #fff;
}

.cct-faq__title {
	text-align: center;
	font-size: 28px;
	font-weight: 700;
	color: var(--cdet-primary);
	margin: 0 0 48px;
}

/* Dùng accordion có sẵn của Flatsome, chỉ giới hạn max-width cho khớp design */
.cct-faq__accordion {
	max-width: 860px;
	margin: 0 auto;
}
/* Accordion override cho Flatsome */
.cct-faq__accordion.accordion {
	border: none;
	gap: 10px;
	display: flex;
	flex-direction: column;
}

.cct-faq__accordion .accordion-item{
	margin-bottom: 5px;
	background: var(--cdet-bg-white);
	border: 1px solid var(--cdet-border);
	border-radius: var(--cdet-radius-md) !important;
}
.cct-faq__accordion .accordion-item:has(> .active){
	border: 1px solid var(--cdet-primary);
}
.accordion-title.active{
	background: rgba(0, 74, 173, 0.1);
	border: 0;
	border-bottom: 1px solid rgba(0, 74, 173, 0.3);
}
.cct-faq__accordion .accordion-title {
	padding: 16px 40px 16px 20px;
	font-size: 14px;
	font-weight: 700;
	color: var(--cdet-text);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 16px;
}
.cct-faq__accordion.accordion .toggle{
	right: 10px;
	left: auto;
	top: 13px;
	color: var(--fs-color-primary);
}
.cct-faq__accordion .accordion-title>span {
	color: var(--cdet-primary);
	font-weight: 800;
	font-size: 18px;
	border-radius: 3px;
}
.cct-faq__accordion ..accordion-inner{
	padding: 20px;
}

.cct-faq__accordion .accordion-inner p {
	font-size: 16px;
	color: var(--cdet-text-muted);
	line-height: 1.7;
	margin: 0 0 12px;
}

.cct-faq__accordion .accordion-inner ul {
	padding-left: 18px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cct-faq__accordion .accordion-inner ul li {
	font-size: 16px;
	color: var(--cdet-text);
	line-height: 1.5;
}
/* =============================================================
RESPONSIVE — mobile (dưới 768px).
Việc xuống 1 cột ở các row/col chính đã do span__sm="12" của
UX Builder lo, phần dưới đây chỉ chỉnh chi tiết không do span lo được.
Không khai báo riêng cho tablet vì mặc định tablet = desktop.
============================================================= */

@media (max-width: 768px) {

	.cct-hero__title {
		font-size: 30px;
	}

	.cct-field-row {
		grid-template-columns: 1fr;
	}

	.cct-mapcard__region {
		display: none;   /* nhãn khu vực dễ đè chữ khi thu hẹp, ẩn cho gọn */
	}

	.cct-mapcard__stats {
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
	}
	.cct-formcard,.cct-sidebar__card,.cct-sidebar__booking{padding: 20px;}
	.cct-mapsection__title{margin-bottom: 0;}
	.cct-mapcard__info{padding: 0;}
	.cct-mapcard__stat-number {	font-size: 22px;}
	.cct-mapcard__stat-label{font-weight: 500;text-transform: capitalize;}
	.cct-faq__title {
		font-size: 24px;
		margin: 0 0 25px;
	}
	.cct-methods__card{padding: 20px;}
}
