/* ============================================================
   HAZO MEDIA – Clone trang chủ (front-page.php)
   Bám theo hệ thống của hazomedia.com:
     Đỏ #d42328 · Mực #1b2534 · Chữ phụ #505565 · Container 1460px
   Tất cả class prefix .hz- để không đụng design system khác.
   ============================================================ */

.hz-home {
	--hz-red: #d42328;
	--hz-red-dark: #b31d22;
	--hz-red-soft: #ffdfe0;
	--hz-ink: #1b2534;
	--hz-navy: #1b2534;
	--hz-muted: #505565;
	--hz-grey: #6a6a6a;
	--hz-border: #e5e5e4;
	/* Dùng bởi hazo-pages.css (các trang con) */
	--hz-blue: #005b94;
	--hz-blue-dark: #004670;
	--hz-soft: #f4f7fb;
	--hz-radius: 20px;
	--hz-shadow: 0 1px 10.9px rgba(16, 0, 0, .2);
	--hz-shadow-sm: 0 2px 4px rgba(144, 144, 144, .5);
	--hz-font: 'Be Vietnam Pro', -apple-system, "Segoe UI", Roboto, sans-serif;
	--hz-font-d: 'Be Vietnam Pro', -apple-system, "Segoe UI", Roboto, sans-serif;
	--hz-head: 88px;
	font-family: var(--hz-font);
	font-size: 16px;
	color: var(--hz-ink);
	line-height: 1.6;
	background: #fff;
	overflow-x: hidden;
}
.hz-home *,
.hz-home *::before,
.hz-home *::after { box-sizing: border-box; }

.hz-home img { max-width: 100%; height: auto; display: block; }
.hz-home a { text-decoration: none; color: inherit; transition: color .25s ease, background .25s ease, transform .25s ease; }
.hz-home h1, .hz-home h2, .hz-home h3, .hz-home h4, .hz-home h5 { color: var(--hz-ink); font-family: var(--hz-font-d); }

.hz-container { width: 100%; max-width: 1460px; margin: 0 auto; padding: 0 20px; }

.hz-section { padding: 50px 0; }

/* Eyebrow: "// 01. HAZOMEDIA" ------------------------------- */
.hz-eyebrow {
	display: block;
	font-size: 15px;
	font-weight: 500;
	color: var(--hz-ink);
	margin: 0 0 10px;
	text-transform: none;
	letter-spacing: 0;
}
.hz-eyebrow span { color: var(--hz-red); }

.hz-h2 {
	font-weight: 700;
	font-size: 30px;
	line-height: normal;
	color: var(--hz-ink);
	margin: 0 0 15px;
}
.hz-h2-lg { font-size: 48px; }
.hz-h2 .hz-hl { color: var(--hz-red); }
.hz-lead { color: #555; font-size: 16px; margin: 0; }
.hz-center { text-align: center; }
.hz-center .hz-lead { margin-left: auto; margin-right: auto; }

/* Buttons ---------------------------------------------------- */
.hz-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	font-weight: 400; font-size: 16px;
	min-height: 45px; padding: 0 36px; border-radius: 99px;
	cursor: pointer; border: 1px solid transparent; line-height: 43px;
	text-transform: none; font-family: inherit;
	transition: all .3s ease;
}
.hz-btn-red { background: var(--hz-red); color: #fff; border-color: var(--hz-red); }
.hz-btn-red:hover { background: var(--hz-red-dark); border-color: var(--hz-red-dark); color: #fff; }
.hz-btn-outline { background: #fff; color: var(--hz-red); border-color: var(--hz-red); }
.hz-btn-outline:hover { background: var(--hz-red); color: #fff; }
.hz-btn-block { width: 100%; }
.hz-btn.is-pulse { animation: hz-zoom 1s linear infinite; }
@keyframes hz-zoom {
	0%   { transform: scale(.94); }
	70%  { transform: scale(1); box-shadow: 0 0 0 12px transparent; }
	100% { transform: scale(.94); box-shadow: 0 0 0 0 transparent; }
}

/* Nút pill có icon ở header (btn-ux của bản gốc) */
.hz-btn-ux {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 24px 10px; border-radius: 30px; white-space: nowrap;
	line-height: 1.563; font-weight: 500; font-size: 16px;
	border: 1px solid var(--hz-red); transition: all .5s;
}
.hz-btn-ux:hover { box-shadow: 0 4px 10px rgba(0, 0, 0, .4); }
.hz-btn-ux img { width: 24px; height: 24px; object-fit: contain; }
.hz-btn-ux-red { background: var(--hz-red); color: #fff; }
.hz-btn-ux-white { background: #fff; color: var(--hz-red); }

/* ============================================================
   HEADER – trong suốt trên hero, chuyển trắng khi cuộn
   ============================================================ */
.hz-header {
	position: sticky; top: 0; z-index: 300;
	background: #fff;
	transition: background .3s ease, box-shadow .3s ease, height .3s ease;
}
.hz-header.is-transparent { background: transparent; }
.hz-header.is-transparent.is-stuck { background: #fff; box-shadow: 0 2px 14px rgba(27, 37, 52, .08); }
.hz-header:not(.is-transparent) { box-shadow: 0 2px 14px rgba(27, 37, 52, .06); }

.hz-header-inner { display: flex; align-items: center; gap: 20px; height: var(--hz-head); transition: height .3s ease; }
.hz-header.is-stuck .hz-header-inner { height: 70px; }
.hz-logo { flex: 0 0 auto; }
/* Logo BAcode có thêm dòng slogan bên dưới (tỉ lệ ~2:1) nên cần cao hơn logo
   chữ-ngang cũ thì slogan mới đọc được. 70px vẫn lọt trong header 88px. */
.hz-logo img { height: 70px; width: auto; transition: height .3s ease; }
.hz-header.is-stuck .hz-logo img { height: 56px; }

.hz-nav { display: flex; align-items: center; justify-content: center; flex: 1 1 auto; margin: 0; padding: 0; }
.hz-nav > li { position: relative; list-style: none; margin: 0 15px; }
.hz-nav > li > a {
	display: flex; align-items: center; gap: 6px;
	padding: 12px 0; font-weight: 400; font-size: 16px; color: #333;
}
.hz-nav > li > a:hover,
.hz-nav > li.is-active > a { color: var(--hz-red); }
.hz-nav .hz-caret { font-size: .68em; opacity: .8; }

.hz-header-actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }

.hz-burger { display: none; background: none; border: 0; font-size: 1.6rem; color: var(--hz-navy); cursor: pointer; }

/* Mega menu: tab dọc bên trái + 2 cột dịch vụ bên phải (như bản gốc) */
.hz-header-inner { position: relative; }
.hz-nav > li.has-mega { position: static; }
.hz-mega {
	position: absolute; top: 100%; left: 20px; right: 20px;
	opacity: 0; visibility: hidden; transform: translateY(10px);
	transition: all .25s ease; z-index: 50; padding-top: 6px;
}
.hz-nav > li.has-mega:hover .hz-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.hz-mega-inner {
	display: flex; align-items: stretch; overflow: hidden;
	background: #fff; border-radius: 12px; box-shadow: 0 20px 50px rgba(27, 37, 52, .18);
}
.hz-mega-tabs {
	flex: 0 0 280px; list-style: none; margin: 0; padding: 20px 30px;
	border-right: 1px solid #eee;
}
.hz-mega-tabs li { list-style: none; margin-bottom: 10px; }
.hz-mega-tab {
	display: block; width: 100%; text-align: left;
	border: 0; background: transparent; cursor: pointer;
	font-family: inherit; font-size: 14px; font-weight: 500; color: #444;
	border-radius: 6px; padding: 10px; transition: all .25s ease;
}
.hz-mega-tab:hover,
.hz-mega-tab.is-active { background: var(--hz-red); color: #fff; }

.hz-mega-panels { flex: 1 1 auto; padding: 20px 30px; }
.hz-mega-panel { display: none; grid-template-columns: repeat(2, 1fr); gap: 4px 24px; }
.hz-mega-panel.is-active { display: grid; }
.hz-mega-item {
	display: flex; align-items: center; gap: 12px;
	padding: 10px 12px 10px 15px; border-radius: 10px; font-size: 12px; color: #444;
}
.hz-mega-item:hover { background: #fdf1f1; }
.hz-mega-ic {
	flex: 0 0 auto; width: 30px; height: 30px; border-radius: 5px; padding: 5px;
	background: var(--hz-red); display: flex; align-items: center; justify-content: center;
}
.hz-mega-ic img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.hz-mega-txt { flex: 1 1 auto; min-width: 0; }
.hz-mega-txt strong { display: block; font-size: 15px; font-weight: 600; color: var(--hz-ink); line-height: 1.3; }
.hz-mega-txt small { display: block; font-size: 12px; color: #7a7a7a; }
.hz-mega-item:hover .hz-mega-txt strong { color: var(--hz-red); }

/* ============================================================
   01 HERO + 02 GIỚI THIỆU – dùng chung 1 ảnh nền
   ============================================================ */
.hz-top { position: relative; padding: 0 0 50px; overflow: hidden; }
.hz-top-bg { position: absolute; inset: 0; z-index: 0; }
.hz-top-bg img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.hz-top-inner { position: relative; z-index: 1; }

/* Header trong suốt nằm đè lên nền hero */
.hz-header.is-transparent { margin-bottom: calc(-1 * var(--hz-head)); }
.hz-header.is-transparent + .hz-top { padding-top: var(--hz-head); }

.hz-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 100px 0 0; }
.hz-hero-title {
	font-size: 55px; line-height: 1.2; font-weight: 700;
	margin: 0 0 20px; color: var(--hz-ink);
}
/* Chữ tô đỏ trong H1: <strong> là bản cũ viết tay, .hz-hl là bản do người nhập nội dung
   tạo ra bằng cú pháp *chữ đỏ* trong wp-admin – hai cách phải hiện y như nhau. */
.hz-hero-title strong,
.hz-hero-title .hz-hl { position: relative; display: inline-block; color: var(--hz-red); font-weight: 700; }
.hz-hero-title strong::after,
.hz-hero-title .hz-hl::after {
	content: ""; position: absolute; top: 18px; left: 0;
	width: 100%; height: 100%;
	background: url(../assets/hazo/title.svg) center / contain no-repeat;
	pointer-events: none;
}
.hz-hero-sub { color: var(--hz-muted); font-size: 16px; max-width: 560px; margin: 0 0 24px; }
.hz-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

.hz-hero-visual { position: relative; }
@media (min-width: 1200px) {
	/* .ss-main-img của bản gốc: ảnh hero tràn ra khỏi cột, cắt ở mép phải */
	.hz-hero-visual { width: 130%; left: -30px; }
}
.hz-video { position: relative; display: block; }
.hz-video img { width: 100%; }
.hz-play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 81px; height: 81px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	animation: hz-ripple .9s linear infinite;
}
.hz-play img { width: 100%; height: 100%; }
@keyframes hz-ripple {
	0%   { box-shadow: 0 0 0 0 rgba(255,255,255,.2), 0 0 0 .5em rgba(255,255,255,.2); }
	100% { box-shadow: 0 0 0 .5em rgba(255,255,255,.2), 0 0 0 1em rgba(255,255,255,0); }
}

/* Giới thiệu ------------------------------------------------- */
.hz-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding-top: 50px; }
.hz-about-img { position: relative; padding-right: 150px; }
.hz-about-photo {
	position: relative; padding-top: 100%;
	border-radius: 32px; overflow: hidden;
	transform: rotate(-4deg);
	box-shadow: 27px 67px 43px rgba(55, 9, 6, .05);
}
.hz-about-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hz-about-badge {
	position: absolute; left: -40px; bottom: -40px; max-width: 106px;
	filter: drop-shadow(0 0 14.31px #ffd5c2);
}
.hz-about-content p { color: var(--hz-muted); font-size: 16px; margin: 0 0 15px; }

/* Ô số liệu nghiêng – num-count của bản gốc */
.hz-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 700px; margin-top: 30px; }
.hz-stat {
	position: relative; width: 100%; padding-top: 100%;
	border: 1px solid var(--hz-red); border-radius: 8px;
	transform: rotate(-9deg);
}
.hz-stat-in {
	position: absolute; top: 12px; left: 12px;
	width: calc(100% - 24px); height: calc(100% - 24px);
	background: linear-gradient(180deg, #d42328 0%, #ffbf93 100%);
	color: #fff; border-radius: 8px; font-size: 14px;
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
}
.hz-stat-in > * { transform: rotate(9deg); }
.hz-stat-in h3 { color: #fff; font-size: 30px; margin: 0 0 5px; line-height: normal; font-weight: 700; }
.hz-stat-in p { margin: 0; text-transform: uppercase; font-size: 14px; }

/* ============================================================
   03 DỊCH VỤ CỐT LÕI – bento
   ============================================================ */
.hz-core { position: relative; padding: 100px 0; overflow: hidden; }
.hz-core-bg { position: absolute; inset: 0; z-index: 0; }
.hz-core-bg img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.hz-core .hz-container { position: relative; z-index: 1; }

.hz-core-top { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; margin-bottom: 24px; }
.hz-core-top .hz-h2 { font-size: 30px; }
.hz-core-grid { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 30px; align-items: stretch; }

.hz-core-card {
	position: relative; overflow: hidden; border-radius: 30px; background: #fff;
	display: flex; align-items: center; color: inherit;
}
.hz-core-card.is-dark { background: #1b2534; color: #fff; }
.hz-core-card.is-dark h3, .hz-core-card.is-dark p { color: #fff; }
.hz-core-card .hz-core-side { flex: 0 0 auto; padding: 20px 30px; }
.hz-core-card .hz-core-pic { flex: 1 1 auto; }
.hz-core-card .hz-core-pic img { width: 100%; }

.hz-core-card.is-dark .hz-core-side { width: 42%; text-align: center; padding: 20px 8px; }
.hz-core-card.is-dark .hz-core-pic { width: 58%; }
.hz-core-ic { display: block; width: 74px; margin: 0 auto 10px; }
.hz-core-card.is-dark p { font-size: 24px; line-height: 1.3; margin: 0; }

.hz-core-card h3 { font-size: 30px; line-height: 1.3; margin: 0; font-weight: 700; }
.hz-core-card h3.is-red { color: var(--hz-red); }
.hz-core-card p { font-size: 20px; line-height: 1.3; margin: 0; }

.hz-core-card.is-narrow { flex-direction: column; justify-content: center; padding: 20px 35px; gap: 24px; }
.hz-core-card.is-narrow .hz-core-pic { width: 86%; flex: 0 0 auto; }
.hz-core-card.is-center { text-align: center; }

.hz-core-card.is-wide { padding: 0; }
.hz-core-card.is-wide .hz-core-side { width: 34%; padding: 0 0 0 30px; }
.hz-core-card.is-wide .hz-core-pic { width: 66%; }

/* Nút "Get Stated" trượt lên khi hover (hover-btn của bản gốc) */
.hz-core-link {
	display: inline-flex; align-items: center; gap: 8px;
	font-weight: 400; font-size: 16px; color: #fff;
	margin-bottom: -38px; opacity: 0; visibility: hidden; transition: all .5s;
}
.hz-core-link.is-red { color: var(--hz-red); }
.hz-core-card:hover .hz-core-link { margin-bottom: 0; opacity: 1; visibility: visible; }
.hz-core-card.is-dark .hz-core-side .hz-core-link { margin-top: 8px; }

/* ============================================================
   04 DỰ ÁN TIÊU BIỂU
   ============================================================ */
.hz-projects { padding: 70px 0; }
.hz-projects-head { max-width: 850px; margin: 0 auto 10px; }
.hz-projects-head .hz-h2 { font-size: 30px; }
.hz-projects-more { margin-top: 10px; }

.hz-proj-slider { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 20px 0; }
.hz-proj-slider::-webkit-scrollbar { display: none; }
.hz-proj-track { display: flex; }
.hz-proj-slide {
	flex: 0 0 25%; max-width: 25%; scroll-snap-align: center;
	transform: scale(.9); transition: transform .4s ease;
}
.hz-proj-slide.is-selected { transform: scale(1); }
.hz-proj-card { position: relative; border-radius: 16px; overflow: hidden; box-shadow: 0 0 20px rgba(0, 0, 0, .2); }
.hz-proj-img { position: relative; padding-top: 125%; }
.hz-proj-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.hz-proj-cap {
	position: absolute; left: 0; bottom: 0; width: 100%;
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 15px; background: #fff; border-radius: 16px;
	box-shadow: 0 0 20px rgba(0, 0, 0, .1);
	opacity: 0; transition: opacity .4s ease;
}
.hz-proj-slide.is-selected .hz-proj-cap { opacity: 1; }
.hz-proj-cap h3 { font-size: 18px; font-weight: 700; margin: 0; line-height: 1.3; }
.hz-proj-cap p { font-size: 14px; color: var(--hz-grey); margin: 0; }
.hz-proj-arrow {
	flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
	border: 1px solid var(--hz-red); color: var(--hz-red);
	display: flex; align-items: center; justify-content: center; font-size: 20px;
	transition: all .3s ease;
}
.hz-proj-card:hover .hz-proj-arrow { background: var(--hz-red); color: #fff; }

/* ============================================================
   DỊCH VỤ CỦA CHÚNG TÔI – 3 thẻ
   ============================================================ */
.hz-groups { padding: 30px 0; }
.hz-groups-head { margin-bottom: 30px; }
.hz-groups-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; align-items: stretch; }
.hz-group-card {
	background: #fff; border-radius: 20px; overflow: hidden;
	box-shadow: 0 1px 10.9px rgba(16, 0, 0, .2);
	display: flex; flex-direction: column;
}
.hz-group-head {
	position: relative; display: flex; align-items: center;
	padding: 20px; background: #fffcfc; border-bottom: 2px solid var(--hz-border); overflow: hidden;
}
.hz-group-head::before {
	content: ""; position: absolute; right: 0; bottom: -10px;
	width: 120px; height: 120px;
	background: url(../assets/hazo/element.png) right bottom / contain no-repeat;
	pointer-events: none;
}
.hz-group-img { width: 50%; flex: 0 0 50%; }
.hz-group-txt { flex: 1 1 auto; color: var(--hz-grey); letter-spacing: -.3px; position: relative; z-index: 1; }
.hz-group-txt h3 { font-size: 24px; margin: 0 0 8px; font-weight: 700; line-height: 1.25; letter-spacing: normal; }
.hz-group-txt h3 span { color: var(--hz-red); }
.hz-group-txt p { margin: 0; font-size: 16px; line-height: 1.35; }

.hz-group-list { list-style: none; margin: 0; padding: 20px; display: flex; flex-direction: column; gap: 20px; color: #373737; font-size: 18px; line-height: normal; }
.hz-group-list li { position: relative; margin: 0; padding-left: 24px; list-style: none; }
.hz-group-list li::before {
	content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M17.8462 8.59901L12.4465 2.59934C12.3313 2.47214 12.1705 2.40015 12.0001 2.40015H8.40033C8.16394 2.40015 7.94915 2.53934 7.85195 2.75533C7.75596 2.97252 7.79556 3.2257 7.95395 3.40089L12.9925 8.99979L7.95395 14.5975C7.79556 14.7739 7.75476 15.0271 7.85195 15.2431C7.94915 15.4602 8.16394 15.5994 8.40033 15.5994H12.0001C12.1705 15.5994 12.3313 15.5262 12.4465 15.4014L17.8462 9.40177C18.0514 9.17378 18.0514 8.8258 17.8462 8.59901Z' fill='%23D42328'/%3E%3Cpath d='M10.0465 8.59901L4.64682 2.59934C4.53163 2.47214 4.37084 2.40015 4.20045 2.40015H0.600642C0.364255 2.40015 0.149467 2.53934 0.0522719 2.75533C-0.0437229 2.97252 -0.00412505 3.2257 0.154266 3.40089L5.19279 8.99979L0.154266 14.5975C-0.00412505 14.7739 -0.0449228 15.0271 0.0522719 15.2431C0.149467 15.4602 0.364255 15.5994 0.600642 15.5994H4.20045C4.37084 15.5994 4.53163 15.5262 4.64682 15.4014L10.0465 9.40177C10.2517 9.17378 10.2517 8.8258 10.0465 8.59901Z' fill='%23D42328'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ============================================================
   CẢM NHẬN KHÁCH HÀNG
   ============================================================ */
.hz-tst { padding: 30px 0; }
.hz-tst-head { margin-bottom: 30px; }
.hz-tst-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.hz-tst-item { display: flex; flex-direction: column; }
.hz-tst-card {
	background: #fff; border: 1px solid #dedede; border-radius: 30px;
	padding: 45px 30px 15px; margin-bottom: 30px; box-shadow: var(--hz-shadow-sm);
	flex: 1 1 auto;
}
.hz-stars { color: #ffb545; font-size: 20px; letter-spacing: 5px; }
.hz-tst-card p {
	font-size: 18px; color: var(--hz-muted); font-weight: 400; line-height: 1.4;
	border-top: 1px solid #ececec; padding-top: 20px; margin: 20px 0 0;
}
.hz-tst-person { display: flex; align-items: center; gap: 13px; font-size: 18px; color: #828282; }
.hz-tst-person img { width: 57px; height: 57px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; }
.hz-tst-person h3 { font-size: 18px; margin: 0; font-weight: 600; color: var(--hz-ink); }
.hz-tst-person p { margin: 0; font-size: 16px; color: #828282; }

/* ============================================================
   OFFICE
   ============================================================ */
.hz-office { padding: 0; }
.hz-office-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.hz-office-media { position: relative; }
.hz-office-img { border-radius: 0 200px 0 0; overflow: hidden; position: relative; padding-top: 122%; }
.hz-office-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hz-office-label { position: absolute; top: 50%; right: 0; transform: translateY(-50%); max-width: 17.5%; z-index: 10; }
.hz-office-info { text-align: center; padding: 30px; }
.hz-office-info img { width: 70%; margin: 0 auto; }

/* ============================================================
   07 TIN TỨC
   ============================================================ */
.hz-news { background: #fff6f4; padding: 90px 0; }
.hz-news-head { margin-bottom: 30px; }

/* Hàng tin trượt ngang, tràn khỏi mép phải như bản gốc */
.hz-news-scroll {
	overflow-x: auto; scrollbar-width: none;
	padding-left: max(20px, calc((100vw - 1420px) / 2));
}
.hz-news-scroll::-webkit-scrollbar { display: none; }
.hz-news-track { display: flex; gap: 24px; width: max-content; padding-right: 20px; }
.hz-news-card { flex: 0 0 auto; width: calc((1420px - 4 * 24px) / 5); }

.hz-news-cat { font-size: 16px; font-weight: 700; color: var(--hz-ink); text-transform: uppercase; margin: 0 0 10px; }
.hz-news-thumb { display: block; position: relative; padding-top: 75%; border-radius: 30px; overflow: hidden; }
.hz-news-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.hz-news-card:hover .hz-news-thumb img { transform: scale(1.06); }
.hz-news-title { font-size: 18px; font-weight: 600; line-height: 1.5; margin: 14px 0 0; }
.hz-news-title a {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden; text-overflow: ellipsis;
}
.hz-news-title a:hover { color: var(--hz-red); }
.hz-news-title::after {
	content: ""; display: block; width: 24px; height: 24px; margin-top: 8px;
	background: url(../assets/hazo/arr-right.svg) left center / contain no-repeat;
}

/* ============================================================
   LOGO KHÁCH HÀNG – marquee
   ============================================================ */
.hz-clients { padding: 70px 0; display: flex; flex-direction: column; gap: 16px; }
.hz-marquee { overflow: hidden; width: 100%; }
.hz-marquee-track { display: flex; gap: 16px; width: max-content; animation: hz-scroll 70s linear infinite; }
.hz-marquee-track.is-reverse { animation-direction: reverse; }
.hz-marquee:hover .hz-marquee-track { animation-play-state: paused; }
@keyframes hz-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 8px)); } }
.hz-logo-cell {
	flex: 0 0 auto; width: 220px; height: 124px; padding: 14px 18px;
	background: #fff; border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, .07);
	display: flex; align-items: center; justify-content: center;
}
.hz-logo-cell img { max-height: 100%; max-width: 100%; width: auto; object-fit: contain; }

/* ============================================================
   HỢP TÁC CÙNG CHÚNG TÔI
   ============================================================ */
.hz-partner { padding: 30px 0 50px; }
.hz-partner-box { border: 2px solid var(--hz-red); border-radius: 30px; padding: 80px 50px 30px; }
.hz-partner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.hz-partner-text .hz-h2 { font-size: 30px; }
.hz-partner-text > p { color: var(--hz-muted); margin: 0; }

.hz-partner-logo { position: relative; max-width: 450px; margin: 40px auto; padding: 30px 70px; }
.hz-partner-logo .hz-partner-mark { width: 100%; }
.hz-partner-logo .hz-quote { position: absolute; width: 43px; max-width: 43px; }
.hz-partner-logo .hz-quote-l { top: 0; left: 0; }
.hz-partner-logo .hz-quote-r { bottom: 0; right: 0; }

.hz-partner-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.hz-contact-box { display: flex; align-items: center; gap: 14px; }
.hz-contact-ic {
	flex: 0 0 auto; width: 60px; height: 60px; border-radius: 50%;
	background: var(--hz-red-soft); color: var(--hz-red);
	display: flex; align-items: center; justify-content: center; font-size: 24px;
}
.hz-contact-box strong { display: block; color: var(--hz-ink); }
.hz-contact-box p { margin: 0; color: var(--hz-muted); }

.hz-partner-form { display: flex; flex-direction: column; gap: 15px; }
.hz-field {
	width: 100%; height: 55px; border-radius: 100px; padding: 10px 30px;
	border: 1px solid #e0e0e0; background: #fff; box-shadow: none;
	font-family: inherit; font-size: 16px; color: var(--hz-ink);
}
.hz-field:focus { outline: none; border-color: var(--hz-red); }
.hz-field-area { height: auto; border-radius: 20px; resize: none; }
.hz-partner-form .hz-btn { height: 55px; line-height: 53px; margin-top: 10px; font-size: 18px; }

/* ============================================================
   FOOTER
   ============================================================ */
.hz-footer { position: relative; color: var(--hz-ink); font-size: 14px; padding: 60px 0 0; overflow: hidden; }
.hz-footer-bg { position: absolute; inset: 0; z-index: 0; }
.hz-footer-bg img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.hz-footer .hz-container { position: relative; z-index: 1; }
.hz-footer-grid { display: grid; grid-template-columns: 4fr 2fr 3fr 3fr; gap: 30px; padding-bottom: 40px; }
.hz-footer-spacer { display: block; }
.hz-footer-about h2{ font-size: 28px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; }
.hz-footer-about > p { margin: 0 0 16px; }
.hz-footer-addr { list-style: none; margin: 0; padding: 0; }
.hz-footer-addr li { padding: 5px 0; line-height: 1.6; }
.hz-footer-addr i { color: var(--hz-red); margin-right: 6px; }
.hz-footer-social { display: flex; gap: 7.2px; margin-top: 20px; }
.hz-footer-social a {
	width: 36px; height: 36px; border-radius: 50%; border: 1px solid #bdbcbd;
	display: inline-flex; align-items: center; justify-content: center; color: var(--hz-red);
	transition: all .3s ease;
}
.hz-footer-social a:hover { background: var(--hz-red); color: #fff; border-color: var(--hz-red); }
.hz-footer-col h4 { font-size: 20px; font-weight: 700; margin: 0 0 20px; }
.hz-footer-col .hz-footer-h4-2 { margin-top: 30px; }
.hz-footer-col ul { list-style: none; margin: 0; padding: 0; }
.hz-footer-col li { padding: 5px 0; }
.hz-footer-col i { color: var(--hz-red); margin-right: 6px; }
.hz-footer-col a:hover { color: var(--hz-red); }
.hz-footer-bottom { position: relative; z-index: 1; text-align: center; padding: 20px 0; font-size: 14px; }
.hz-footer-bottom a { color: var(--hz-red); }

/* ============================================================
   NÚT LIÊN HỆ NỔI + BACK TO TOP
   ============================================================ */
.hz-float { position: fixed; right: 18px; bottom: 20px; z-index: 200; display: flex; flex-direction: column; gap: 12px; }
.hz-float a { width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.4rem; box-shadow: 0 8px 20px rgba(0,0,0,.25); position: relative; }
.hz-float .hz-fb { background: #0866ff; }
.hz-float .hz-zalo { background: #0068ff; font-size: .8rem; font-weight: 800; }
.hz-float .hz-phone { background: var(--hz-red); animation: hz-ring 1.5s infinite; }
@keyframes hz-ring { 0%,100% { box-shadow: 0 0 0 0 rgba(212,35,40,.5); } 50% { box-shadow: 0 0 0 12px rgba(212,35,40,0); } }
.hz-totop { position: fixed; right: 18px; bottom: 90px; z-index: 199; width: 44px; height: 44px; border-radius: 12px; background: var(--hz-navy); color: #fff; display: none; align-items: center; justify-content: center; cursor: pointer; }
.hz-totop.show { display: flex; }

/* ============================================================
   REVEAL
   ============================================================ */
.hz-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.hz-reveal.is-in { opacity: 1; transform: none; }

/* ============================================================
   TƯƠNG THÍCH TRANG CON
   Trang chủ không còn dùng .hz-section cho các khối này, nên các
   selector .hz-section.hz-* dưới đây chỉ áp cho template-*.php.
   ============================================================ */
.hz-section.hz-about { background: #f4f7fb; }
.hz-section.hz-about p { color: var(--hz-muted); }
.hz-section.hz-projects { background: var(--hz-navy); color: #fff; }
.hz-section.hz-projects .hz-h2,
.hz-section.hz-projects h3 { color: #fff; }
.hz-section.hz-projects .hz-lead { color: rgba(255,255,255,.75); }

.hz-section.hz-partner {
	background: linear-gradient(120deg, var(--hz-navy) 0%, #004670 100%);
	color: #fff; position: relative; overflow: hidden; padding: 50px 0;
}
.hz-section.hz-partner .hz-h2 { color: #fff; }
.hz-section.hz-partner p { color: rgba(255,255,255,.82); }
.hz-section.hz-partner .hz-partner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.hz-section.hz-partner .hz-partner-form {
	background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16);
	border-radius: 18px; padding: 30px; gap: 12px;
}
.hz-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hz-news-tag {
	display: inline-block; background: #fdecec; color: var(--hz-red);
	font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 999px; margin-bottom: 12px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* Màn rộng: bản gốc phóng to typography ở breakpoint 1600px */
@media (min-width: 1600px) {
	.hz-hero-title { font-size: 70px; }
	.hz-h2 { font-size: 40px; }
	.hz-hero-sub, .hz-lead { font-size: 18px; }
	.hz-btn { font-size: 18px; min-height: 64px; line-height: 62px; }
	.hz-stats { max-width: 875px; }
	.hz-stat-in { font-size: 20px; }
	.hz-stat-in h3 { font-size: 36px; }
	.hz-stat-in p { font-size: 16px; }
	.hz-core-card h3 { font-size: 35px; }
	.hz-core-card.is-dark p { font-size: 28px; }
	.hz-core-card.is-center p { font-size: 24px; }
	.hz-news-title { font-size: 20px; }
	.hz-footer { font-size: 16px; }
}

@media (max-width: 1199px) {
	.hz-hero-title { font-size: 44px; }
	.hz-h2-lg { font-size: 38px; }
	.hz-news-card { width: calc((100vw - 40px - 3 * 24px) / 4); }
	.hz-proj-slide { flex-basis: 33.333%; max-width: 33.333%; }
	.hz-logo-cell { width: calc(100vw / 5); }
	.hz-core-card.is-dark p,
	.hz-core-card h3 { font-size: 22px; }
	.hz-about-img { padding-right: 60px; }
}

@media (max-width: 1024px) {
	.hz-nav { display: none; }
	.hz-burger { display: block; }
	.hz-nav.is-open {
		display: flex; flex-direction: column; align-items: stretch;
		position: absolute; top: 100%; left: 0; right: 0; background: #fff;
		padding: 12px; box-shadow: 0 20px 40px rgba(27,37,52,.14); max-height: 78vh; overflow: auto;
	}
	.hz-nav.is-open > li { margin: 0; width: 100%; }
	.hz-nav.is-open > li.has-mega { position: relative; }
	.hz-nav.is-open .hz-mega { position: static; transform: none; opacity: 1; visibility: visible; width: 100%; padding: 0; }
	.hz-nav.is-open .hz-mega-inner { display: block; box-shadow: none; }
	.hz-nav.is-open .hz-mega-tabs { flex: none; border-right: 0; padding: 10px 0; display: flex; flex-wrap: wrap; gap: 8px; }
	.hz-nav.is-open .hz-mega-tabs li { margin: 0; }
	.hz-nav.is-open .hz-mega-panels { padding: 0 0 10px; }
	.hz-nav.is-open .hz-mega-panel.is-active { grid-template-columns: 1fr; }
	.hz-header-actions { margin-left: auto; }

	.hz-hero-grid, .hz-about-grid, .hz-core-top, .hz-office-grid, .hz-partner-grid { grid-template-columns: 1fr; }
	.hz-hero-grid { padding-top: 40px; }
	.hz-core-grid { grid-template-columns: 1fr 1fr; }
	.hz-core-card.is-wide { grid-column: span 2; }
	.hz-groups-grid, .hz-tst-grid { grid-template-columns: 1fr 1fr; }
	.hz-about-img { padding-right: 0; max-width: 520px; }
	.hz-office-img { border-radius: 0 120px 0 0; }
	.hz-office-info img { width: 80%; }
	.hz-footer-grid { grid-template-columns: 1fr 1fr; }
	.hz-footer-spacer { display: none; }
}

@media (max-width: 767px) {
	.hz-home { font-size: 15px; }
	.hz-section, .hz-core, .hz-projects, .hz-clients { padding: 40px 0; }
	.hz-hero-title { font-size: 30px; }
	.hz-hero-title strong::after,
	.hz-hero-title .hz-hl::after { top: 10px; }
	.hz-h2 { font-size: 24px; }
	.hz-h2-lg { font-size: 28px; }
	.hz-btn { padding: 0 24px; font-size: 15px; }
	.hz-btn-ux { font-size: 14px; padding: 7px 14px 5px; }
	.hz-btn-ux img { width: 20px; height: 20px; }
	.hz-logo img { height: 52px; }
	.hz-header-inner { height: 70px; }

	.hz-stats { gap: 14px; }
	.hz-stat-in h3 { font-size: 20px; }
	.hz-stat-in p { font-size: 11px; }

	.hz-core-grid { grid-template-columns: 1fr; }
	.hz-core-card.is-wide { grid-column: auto; }
	.hz-core-card.is-dark p, .hz-core-card h3 { font-size: 20px; }
	.hz-core-link { margin-bottom: 0; opacity: 1; visibility: visible; }

	.hz-proj-slide { flex-basis: 78%; max-width: 78%; }
	.hz-groups-grid, .hz-tst-grid { grid-template-columns: 1fr; }
	.hz-news { padding: 40px 0; }
	.hz-news-card { width: 78vw; }
	.hz-group-txt h3 { font-size: 20px; }
	.hz-group-list { font-size: 16px; gap: 14px; }
	.hz-tst-card { padding: 20px 15px 10px; border-radius: 24px; margin-bottom: 20px; }
	.hz-tst-card p { font-size: 15px; padding-top: 15px; margin-top: 15px; }
	.hz-office-img { border-radius: 0 60px 0 0; }
	.hz-office-info img { width: 100%; }
	.hz-logo-cell { width: 50vw; }

	.hz-partner-box { padding: 30px 20px; border-radius: 24px; }
	.hz-partner-contacts { grid-template-columns: 1fr; }
	.hz-section.hz-partner .hz-partner-grid { grid-template-columns: 1fr; }
	.hz-row-2 { grid-template-columns: 1fr; }
	.hz-footer-grid { grid-template-columns: 1fr; }
	.hz-footer-about h2 { font-size: 22px; }
}

/* =========================================================================
   TỐI ƯU SAU KIỂM TOÁN 03/09/2026
   Mỗi khối ghi rõ mã lỗi trong kiem-toan/KIEM-TOAN-BACODE.md.
   Đặt ở CUỐI FILE để đè lên các luật cùng độ ưu tiên ở trên.
   ========================================================================= */

/* --- #30 Link "bỏ qua điều hướng" cho người dùng bàn phím ---------------- */
.hz-skip {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--hz-red); color: #fff; padding: 12px 20px;
	border-radius: 0 0 8px 0; font-weight: 600;
}
.hz-skip:focus { left: 0; }

/* --- #30 Hiện rõ viền khi di chuyển bằng phím Tab ------------------------ */
.hz-home a:focus-visible,
.hz-home button:focus-visible,
.hz-home input:focus-visible,
.hz-home textarea:focus-visible,
.hz-home [tabindex]:focus-visible {
	outline: 3px solid var(--hz-red);
	outline-offset: 2px;
	border-radius: 4px;
}

/* --- #30 Mục cha mega menu giờ là <button>, phải trông y hệt <a> --------- */
.hz-nav > li > .hz-nav-toggle {
	font: inherit; font-weight: 500; color: var(--hz-ink);
	background: none; border: 0; padding: 0; margin: 0;
	display: inline-flex; align-items: center; gap: 6px;
	cursor: pointer; line-height: inherit;
	transition: color .25s ease;
}
.hz-nav > li > .hz-nav-toggle:hover,
.hz-nav > li.is-active > .hz-nav-toggle { color: var(--hz-red); }

/* --- #14 Dịch vụ chưa có trang: hiện trong mega menu nhưng không bấm được.
   (Mục ở MENU CHÍNH chưa có trang thì bị ẩn hẳn – xem parts/site-header.php.) --- */
.hz-mega-item.is-soon { cursor: default; }
.hz-mega-item.is-soon:hover { background: transparent; }
.hz-mega-item.is-soon .hz-mega-txt strong,
.hz-mega-item.is-soon .hz-mega-txt small { color: #98a1ae; }
.hz-mega-item.is-soon:hover .hz-mega-txt strong { color: #98a1ae; }
.hz-mega-item.is-soon img { opacity: .5; }
.hz-soon {
	font-style: normal; font-size: 10px; font-weight: 600;
	letter-spacing: .04em; text-transform: uppercase; white-space: nowrap;
	color: #98a1ae; background: #eef1f5;
	padding: 2px 6px; border-radius: 999px; margin-left: 6px;
	vertical-align: middle;
}

/* --- #09 Breadcrumb giờ là <nav><ol> ------------------------------------ */
.hz-crumb ol {
	list-style: none; margin: 0; padding: 0;
	display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.hz-crumb li { display: inline-flex; align-items: center; gap: 6px; }
.hz-crumb li + li::before { content: "/"; opacity: .55; }

/* --- #28 Vùng bấm tối thiểu 44px (Google: "tap targets too close") ------ */
.hz-crumb a,
.hz-crumb span,
.hz-footer-col ul a,
.hz-footer-addr a,
.hz-blog-readmore,
.hz-proj-industry-btn,
.hz-proj-tab {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}
.hz-proj-industry-btn { padding: 0 16px; }

/* --- #30 FAQ: <div> -> <button>, giữ nguyên diện mạo -------------------- */
.hz-faq-q {
	width: 100%; font: inherit; font-weight: 600; text-align: left;
	background: none; border: 0; color: var(--hz-navy);
	font-family: var(--hz-font-d);
}
/* --- #31 Bỏ trần 400px: câu trả lời dài sẽ không còn bị cắt âm thầm ----- */
.hz-faq-a {
	display: grid; grid-template-rows: 0fr;
	max-height: none; overflow: hidden;
	transition: grid-template-rows .32s ease;
}
.hz-faq-item.is-open .hz-faq-a { grid-template-rows: 1fr; max-height: none; }
.hz-faq-a > p { min-height: 0; }

/* --- #30 Back-to-top: <div> -> <button> --------------------------------- */
.hz-totop { border: 0; padding: 0; font-size: 16px; }

/* --- #30 Tên công ty ở footer: <h2> -> <p> (bỏ nhảy cấp H2 -> H4) ------- */
.hz-footer-brand {
	font-family: var(--hz-font-d);
	font-size: 28px; font-weight: 700; margin: 0 0 8px; line-height: 1.25;
	color: var(--hz-ink);
}

/* --- #27 Nét trang trí trong H1 phải nằm DƯỚI chân chữ, không cắt ngang -- */
.hz-hero-title strong::after,
.hz-hero-title .hz-hl::after {
	top: auto;
	bottom: -.04em;
	height: .32em;
	background-size: 100% 100%;
}

/* --- #16 Khối tin tức chỉ có 2 bài: căn giữa thay vì bỏ trống 3 cột ----- */
.hz-news-track { min-width: 100%; justify-content: center; }

/* --- #02 Nút hamburger không được tràn khỏi màn hình -------------------- */
.hz-header-inner { min-width: 0; }
.hz-logo { flex: 0 1 auto; min-width: 0; }
.hz-header-actions { flex: 0 1 auto; min-width: 0; }
.hz-burger {
	flex: 0 0 auto;
	width: 44px; height: 44px;      /* đủ lớn để bấm bằng ngón tay */
	align-items: center; justify-content: center;
	margin-left: 0;
}

@media (max-width: 1024px) {
	.hz-burger { display: flex; }

	/* --- #29 Mega menu trong menu mobile: mặc định THU GỌN --------------
	   Trước đây 17 mục dịch vụ đổ ra ngay khi mở menu, làm menu cao 658px
	   và đẩy "Dự án"/"Tin tức" xuống dưới màn hình. */
	.hz-nav.is-open .hz-mega {
		display: grid; grid-template-rows: 0fr;
		opacity: 1; visibility: visible;
		overflow: hidden; transition: grid-template-rows .3s ease;
	}
	.hz-nav.is-open > li.has-mega.is-open .hz-mega { grid-template-rows: 1fr; }
	.hz-nav.is-open .hz-mega-inner { min-height: 0; }
	.hz-nav.is-open > li.has-mega > .hz-nav-toggle {
		width: 100%; justify-content: space-between; min-height: 48px;
	}
	.hz-nav.is-open > li.has-mega.is-open > .hz-nav-toggle .hz-caret { transform: rotate(180deg); }
	.hz-nav.is-open .hz-caret { transition: transform .25s ease; }
	.hz-nav.is-open > li > a { min-height: 48px; display: flex; align-items: center; }
}

@media (max-width: 480px) {
	/* Logo + nút CTA + hamburger phải cùng vừa trong 320px. */
	.hz-header-inner { gap: 8px; padding-left: 14px; padding-right: 10px; }
	.hz-logo img { height: 40px; width: auto; }
	.hz-btn-ux { font-size: 13px; padding: 6px 11px 5px; white-space: nowrap; }
	.hz-btn-ux img { width: 17px; height: 17px; }
	.hz-stat-in p { font-size: 12px; }   /* #28 chữ 11px quá nhỏ trên mobile */
}

@media (max-width: 360px) {
	/* Dưới 360px thì rút nhãn CTA nhỏ lại để nút menu luôn nằm trong màn hình. */
	.hz-btn-ux span { font-size: 12px; }
	.hz-btn-ux { padding: 6px 9px 5px; }
	.hz-logo img { height: 36px; }
}

/* --- #01 Trang 404 --------------------------------------------------- */
.hz-404 { padding: 90px 0 100px; text-align: center; }
.hz-404-code {
	font-family: var(--hz-font-d); font-size: clamp(72px, 16vw, 150px);
	font-weight: 800; line-height: .9; margin: 0 0 6px;
	color: var(--hz-red); opacity: .13; letter-spacing: -.04em;
}
.hz-404-title { font-size: clamp(26px, 4vw, 40px); font-weight: 700; margin: 0 0 14px; }
.hz-404-sub { color: var(--hz-muted); max-width: 56ch; margin: 0 auto 28px; }
.hz-404-search { display: flex; gap: 10px; max-width: 520px; margin: 0 auto 40px; }
.hz-404-search input {
	flex: 1 1 auto; min-width: 0; height: 52px; padding: 0 18px;
	border: 1px solid var(--hz-border); border-radius: 999px;
	font: inherit; background: #fff; color: var(--hz-ink);
}
.hz-404-search input:focus { border-color: var(--hz-red); outline: none; }
.hz-404-search .hz-btn { height: 52px; flex: 0 0 auto; }
.hz-404-links {
	list-style: none; margin: 0 auto 34px; padding: 0; max-width: 860px;
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; text-align: left;
}
.hz-404-links a {
	display: flex; align-items: center; gap: 14px; height: 100%;
	background: #fff; border: 1px solid var(--hz-border); border-radius: 16px;
	padding: 16px 18px; transition: border-color .25s ease, transform .25s ease;
}
.hz-404-links a:hover { border-color: var(--hz-red); transform: translateY(-2px); }
.hz-404-ic {
	flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px;
	background: #fdf1f1; color: var(--hz-red);
	display: flex; align-items: center; justify-content: center; font-size: 18px;
}
.hz-404-txt strong { display: block; font-family: var(--hz-font-d); font-size: 16px; }
.hz-404-txt small { color: var(--hz-muted); font-size: 13px; }
.hz-404-help { color: var(--hz-muted); }
.hz-404-help a { color: var(--hz-red); font-weight: 600; }

@media (max-width: 640px) {
	.hz-404 { padding: 60px 0 70px; }
	.hz-404-links { grid-template-columns: 1fr; }
	.hz-404-search { flex-direction: column; }
	.hz-404-search .hz-btn { width: 100%; }
}

/* --- Tôn trọng thiết lập "giảm chuyển động" của hệ điều hành ------------ */
@media (prefers-reduced-motion: reduce) {
	.hz-home *, .hz-home *::before, .hz-home *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- #03 Form Contact Form 7 phải trông y hệt form mẫu tĩnh trước đây ---- */
.hz-partner-form.is-shortcode { display: block; }
.hz-cf7 { display: flex; flex-direction: column; gap: 15px; }
.hz-cf7-row { margin: 0; }
.hz-cf7-row p { margin: 0; }
.hz-cf7-row br { display: none; }
.hz-cf7 .wpcf7-form-control-wrap { display: block; }
.hz-cf7 .hz-field { display: block; }
.hz-cf7-submit .hz-btn {
	width: 100%; height: 55px; line-height: 53px;
	margin-top: 10px; font-size: 18px; border: 0; cursor: pointer;
}
.hz-cf7 .wpcf7-spinner { margin: 10px auto 0; display: block; }

/* Thông báo lỗi/thành công: đọc được, không phá bố cục. */
.hz-partner-form.is-shortcode .wpcf7-not-valid-tip {
	color: var(--hz-red); font-size: 13px; padding: 6px 22px 0; display: block;
}
.hz-partner-form.is-shortcode .wpcf7-response-output {
	margin: 14px 0 0; padding: 12px 18px; border-radius: 14px;
	border-width: 1px; font-size: 14px; line-height: 1.5;
}
.hz-partner-form.is-shortcode form.invalid .wpcf7-response-output,
.hz-partner-form.is-shortcode form.unaccepted .wpcf7-response-output,
.hz-partner-form.is-shortcode form.failed .wpcf7-response-output {
	border-color: var(--hz-red); background: #fdf1f1; color: #8f1c20;
}
.hz-partner-form.is-shortcode form.sent .wpcf7-response-output {
	border-color: #9ccfbf; background: #eaf6f2; color: #14624f;
}
.hz-cf7 .hz-field.wpcf7-not-valid { border-color: var(--hz-red); }

/* Ô "Trường bắt buộc" của trình duyệt không được che mất viền focus. */
.hz-cf7 .hz-field:focus-visible { outline-offset: 1px; }

/* --- Lớp ẩn dùng chung cho label chỉ dành cho trình đọc màn hình -------- */
.hz-home .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px;
	padding: 0; margin: -1px; overflow: hidden;
	clip-path: inset(50%); white-space: nowrap; border: 0;
}
.hz-home .screen-reader-text:focus {
	position: static !important; width: auto; height: auto;
	margin: 0; clip-path: none; white-space: normal;
}

/* --- #14 Mục footer chưa có trang --- */
.hz-footer-soon { color: rgba(255,255,255,.45); display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.hz-footer-soon em { font-style: normal; font-size: 10px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; background: rgba(255,255,255,.12); padding: 2px 6px; border-radius: 999px; }
