/* Homepage system — one content axis, restrained type and consistent section titles. */
body.home .elementor-2 {
	--kha-home-shell: 1240px;
	--kha-home-gutter: 64px;
	--kha-home-ink: #302b26;
	--kha-home-copy: #514a43;
	--kha-home-muted: #6d655d;
	--kha-home-gold: #9b6d31;
	--kha-home-gold-dark: #79511f;
	--kha-home-line: #eadfce;
}

/* Every boxed homepage section now shares the same left and right edge. */
body.home .elementor-2 > .e-con-boxed > .e-con-inner {
	width: min(var(--kha-home-shell), calc(100% - var(--kha-home-gutter))) !important;
	max-width: none !important;
	margin-inline: auto !important;
}

/* Primary section titles: regular/medium, calm tracking and one scale. */
body.home .elementor-2 :is(
	.elementor-element-952bb46 h3,
	.elementor-element-e77f591 h2,
	.elementor-element-1e9f520 h2,
	.elementor-element-66835ed h2,
	.elementor-element-ff2db3d h2,
	.elementor-element-1afb141 h2,
	.elementor-element-b2ed445 h2
) {
	margin-bottom: 10px !important;
	font-size: clamp(30px, 2.65vw, 38px) !important;
	font-weight: 600 !important;
	letter-spacing: -.025em !important;
	line-height: 1.24 !important;
	text-wrap: balance;
}

body.home .elementor-2 :is(
	.elementor-element-952bb46 h3,
	.elementor-element-1e9f520 h2,
	.elementor-element-ff2db3d h2,
	.elementor-element-1afb141 h2,
	.elementor-element-b2ed445 h2
) {
	color: var(--kha-home-gold) !important;
}

body.home .elementor-2 :is(
	.elementor-element-e77f591 h2,
	.elementor-element-66835ed h2
) {
	color: #fff !important;
}

/* These two were always centered (inherited from a wrapping element, never
   their own rule) — the site-wide "headings never justify" fix in
   content-pages.css sets text-align directly on every heading tag, which
   beats inheritance and flattened them to left. Restore the original
   center here specifically. */
body.home .elementor-2 :is(
	.elementor-element-1e9f520 h2,
	.elementor-element-ff2db3d h2
) {
	text-align: center !important;
}

body.home .elementor-2 :is(
	.elementor-element-952bb46 h3,
	.elementor-element-e77f591 h2,
	.elementor-element-1e9f520 h2,
	.elementor-element-66835ed h2
) strong {
	font-weight: 600 !important;
}

body.home .elementor-2 .elementor-element-ff2db3d h3 {
	margin: 5px 0 0;
	color: var(--kha-home-muted);
	font-size: clamp(17px, 1.4vw, 20px) !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1.45 !important;
}

/* Introductory copy follows a readable measure instead of filling the full row. */
body.home .elementor-2 :is(
	.elementor-element-e77f591,
	.elementor-element-1e9f520
) p {
	max-width: 860px;
	margin-inline: auto;
	font-weight: 400 !important;
	line-height: 1.72;
	text-wrap: pretty;
}

body.home .elementor-2 .elementor-element-952bb46 p {
	max-width: 64ch;
	color: var(--kha-home-copy);
	font-weight: 400 !important;
	line-height: 1.78;
}

/* Knowledge and news use the same heading row and baseline. */
body.home .elementor-2 :is(
	.elementor-element-43229b1,
	.elementor-element-57aad2b
) {
	--e-con-grid-template-columns: minmax(0, 1fr) auto;
	align-items: end;
	margin: 0 0 32px !important;
	padding: 0 0 17px;
	border-bottom: 1px solid var(--kha-home-line);
}

body.home .elementor-2 .elementor-element-b2ed445 h2 {
	padding-left: 0;
}

body.home .elementor-2 .elementor-element-b2ed445 h2::before {
	display: none;
}

/* These two headings share a row with the "Xem tất cả" link, so their box
   stretches across the whole grid column. The gold gradient text-fill is
   sized to that box, so most of it fell on the wide empty space after the
   (left-aligned, short) text — the letters only ever showed the gradient's
   darkest opening sliver, reading as flat brown instead of gold. Shrinking
   the box to the text itself lets the full gradient play across the letters,
   matching the richer look of the headings above. */
body.home .elementor-2 :is(
	.elementor-element-1afb141 h2,
	.elementor-element-b2ed445 h2
) {
	display: inline-block;
	width: max-content;
	max-width: 100%;
}

body.home .elementor-2 :is(
	.elementor-element-43229b1,
	.elementor-element-57aad2b
) a.btnxemall {
	min-height: 0;
	padding: 0 0 5px;
	border: 0;
	border-bottom: 1px solid var(--kha-home-gold);
	border-radius: 0;
	background: transparent;
	color: var(--kha-home-gold-dark);
	font-size: 14px;
	font-weight: 400 !important;
	box-shadow: none;
	transform: none;
}

body.home .elementor-2 :is(
	.elementor-element-43229b1,
	.elementor-element-57aad2b
) a.btnxemall:hover {
	border-color: var(--kha-home-gold-dark);
	background: transparent;
	color: var(--kha-home-gold-dark);
	box-shadow: none;
}

body.home .elementor-2 a.btnxemall {
	font-weight: 400 !important;
}

/* Service cards: preserve hierarchy without bold-on-bold typography. */
body.home .elementor-2 .boxdv-home h3 {
	font-size: clamp(19px, 1.55vw, 22px) !important;
	font-weight: 600 !important;
	letter-spacing: -.012em !important;
	line-height: 1.35 !important;
}

body.home .elementor-2 .boxdv-home h5 {
	font-size: 15px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1.55 !important;
}

body.home .elementor-2 .boxdv-home p {
	font-weight: 400 !important;
	line-height: 1.7;
}

/* Doctors and trust metrics. */
body.home .elementor-2 .elementor-element-88d3298 :is(h4, h5),
body.home .elementor-2 .elementor-counter-number-wrapper,
body.home .elementor-2 .elementor-counter-number {
	font-weight: 500 !important;
}

body.home .elementor-2 .elementor-counter-title {
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

/* Testimonials contained the heaviest copy on the page; return it to editorial weight. */
body.home .elementor-2 .boxnoidungcase .noidungdai {
	color: var(--kha-home-copy);
	font-weight: 400 !important;
	line-height: 1.74 !important;
}

body.home .elementor-2 .boxnoidungcase h5 {
	color: var(--kha-home-gold-dark);
	font-weight: 600 !important;
	line-height: 1.45 !important;
}

body.home .elementor-2 .boxnoidungcase p:not(.noidungdai) {
	font-weight: 400 !important;
	line-height: 1.58;
}

/* Listing titles and actions share the same lighter rhythm. */
body.home .elementor-2 :is(
	.elementor-element-73e4dc7,
	.elementor-element-cd54876
) h5 {
	font-weight: 600 !important;
	letter-spacing: -.015em !important;
}

/* The register-form card above had no bottom padding, so this section sat
   flush against it with 0px gap. Give the section its own breathing room,
   matching the top gap already used before the Tin Tức listing below. */
body.home .elementor-2 .elementor-element-73e4dc7 {
	padding-top: clamp(64px, 6vw, 92px);
}

/* Knowledge listing: replace the legacy inline-block cards and fixed heights. */
body.home .elementor-2 .elementor-element-73e4dc7 .boxpost3col {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 2.5vw, 34px);
	width: 100%;
	margin: 0;
}

body.home .elementor-2 .elementor-element-73e4dc7 .post3col {
	display: block;
	width: auto;
	min-width: 0;
	padding: 0;
}

body.home .elementor-2 .elementor-element-73e4dc7 .shadow-relateprod,
body.home .elementor-2 .elementor-element-73e4dc7 .shadow-relateprod:hover {
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body.home .elementor-2 .elementor-element-73e4dc7 .shadow-relateprod > a {
	display: flex;
	height: 100%;
	min-width: 0;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}

body.home .elementor-2 .elementor-element-73e4dc7 .boxpost3col ul {
	display: flex;
	height: 100%;
	margin: 0;
	padding: 0;
	flex-direction: column;
	list-style: none;
	background: transparent;
}

body.home .elementor-2 .elementor-element-73e4dc7 .custhumbnail-post3col {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: 11px;
	background: #f5efe6;
}

body.home .elementor-2 .elementor-element-73e4dc7 .custhumbnail-post3col img {
	display: block;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: center 42%;
	border-radius: 0 !important;
	transition: transform .6s cubic-bezier(.2,.7,.2,1);
}

body.home .elementor-2 .elementor-element-73e4dc7 .post3col:hover .custhumbnail-post3col img {
	transform: scale(1.025);
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusinfo-offsetpost {
	display: flex;
	min-height: 250px;
	padding: 22px 2px 0;
	flex: 1;
	flex-direction: column;
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusinfo-offsetpost h5 {
	display: -webkit-box;
	min-height: 4.25em;
	margin: 0;
	overflow: hidden;
	color: var(--kha-home-ink);
	font-size: clamp(18px, 1.45vw, 21px) !important;
	font-weight: 600 !important;
	letter-spacing: -.02em !important;
	line-height: 1.42 !important;
	text-transform: none;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusexcerpt-ver {
	display: -webkit-box;
	margin-top: 12px;
	overflow: hidden;
	color: var(--kha-home-muted);
	font-size: 14.5px;
	font-weight: 400 !important;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusexcerpt-ver p {
	margin: 0;
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusreadmore-ver {
	margin: auto 0 0;
	padding-top: 18px;
	font-size: 13px;
}

body.home .elementor-2 .elementor-element-73e4dc7 .cusreadmore-ver span {
	min-height: 0;
	padding: 0 0 5px;
	border: 0;
	border-bottom: 1px solid var(--kha-home-gold);
	border-radius: 0;
	background: transparent;
	color: var(--kha-home-gold-dark);
}

body.home .elementor-2 .elementor-element-73e4dc7 a:hover .cusreadmore-ver span {
	border-color: var(--kha-home-gold-dark);
	background: transparent;
	color: var(--kha-home-gold-dark);
}

body.home .elementor-2 :is(
	.elementor-button,
	.btntwohome,
	.cusreadmore-ver span
) {
	font-weight: 500 !important;
}

@media (max-width: 1024px) {
	body.home .elementor-2 {
		--kha-home-gutter: 44px;
	}

	body.home .elementor-2 .elementor-element-73e4dc7 .boxpost3col {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	body.home .elementor-2 {
		--kha-home-gutter: 32px;
	}

	body.home .elementor-2 :is(
		.elementor-element-952bb46 h3,
		.elementor-element-e77f591 h2,
		.elementor-element-1e9f520 h2,
		.elementor-element-66835ed h2,
		.elementor-element-ff2db3d h2,
		.elementor-element-1afb141 h2,
		.elementor-element-b2ed445 h2
	) {
		font-size: clamp(25px, 7.2vw, 31px) !important;
		line-height: 1.28 !important;
	}

	body.home .elementor-2 :is(
		.elementor-element-43229b1,
		.elementor-element-57aad2b
	) {
		--e-con-grid-template-columns: minmax(0, 1fr);
		margin-bottom: 26px !important;
		padding-bottom: 13px;
	}

	body.home .elementor-2 .elementor-element-73e4dc7 .boxpost3col {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	body.home .elementor-2 .elementor-element-73e4dc7 .cusinfo-offsetpost {
		min-height: 0;
		padding: 19px 2px 0;
	}

	body.home .elementor-2 .elementor-element-73e4dc7 .cusinfo-offsetpost h5 {
		min-height: 0;
		font-size: 20px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.home .elementor-2 .elementor-element-73e4dc7 .custhumbnail-post3col img {
		transition: none;
	}
}
