.kn-native-page .kn-pg-btnw.bg-register .kn-pg-btn { --g: rgb(161,125,63) 0%, rgb(247,205,139) 26%, rgb(254,207,126) 53%, rgb(247,205,139) 82%, rgb(161,125,63) 100%;
  background-image: linear-gradient(90deg, var(--g)); background-image: -webkit-linear-gradient(0deg, var(--g)); }
/*
Theme Name: Keangnam Korea GP
Theme URI: https://keangnamkorea.com
Description: Child theme GeneratePress cho keangnamkorea.com — migrate khỏi Elementor, giữ pixel parity + SEO + tracking.
Author: Keangnam Korea
Template: generatepress
Version: 0.1.0
Text Domain: keangnamkorea-gp
*/

/* GP tự enqueue file này cho child theme */

/* Design tokens (Kit 3394) */
:root {
	--kn-primary: #204397;
	--kn-primary-hover: #1D3C88;
	--kn-primary-dark: #183271;
	--kn-primary-bg: #E9ECF5;
	--kn-deep-navy: #1A2E6E;
	--kn-secondary: #FBD405;
	--kn-second-hover: #E2BF05;
	--kn-second-dark: #BC9F04;
	--kn-accent: #61CE70;
	--kn-text: #292C2F;
	--kn-text-detail: #959596;
	--kn-sub: #EBEBEB;
	--kn-gray: #DFDFE2;
	--kn-spacing-md3: 3.125rem;
	--kn-container: 81.25rem; /* 1300px — chốt theo container nội dung đo live min(100%,1300px);.container 1320px của theme cũ KHÔNG dùng cho */
}

/* ── Typography toàn cục — port THEO HÀNH VI từ theme cũ `assets/css/main.css` (số liệu: §2 + đo live */
html {
	line-height: 1.5;
	-webkit-text-size-adjust: 100%;
	font-size: 16px;
}
body {
	font-family: "Lato", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--kn-text);
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
p { margin-top: 0; margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }
/* RESET TOÀN CỤC CHƯA PORT */
b, strong { font-weight: bolder; }
a { text-decoration: none; color: inherit; }
a:hover, a:active { color: var(--kn-secondary); }
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	margin-top: 0;
	margin-bottom: 0.5em;
	font-weight: bold;
	line-height: 1.25;
}
h1, .h1, .big-title { font-size: 2.75rem; line-height: 1.32; color: var(--kn-primary); }
h2, .h2 { font-size: 2rem; line-height: 1.40625; color: var(--kn-primary); }
h3, .h3 { font-size: 1.75rem; line-height: 1.142857; color: var(--kn-primary); }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.375rem; }
h6, .h6 { font-size: 1.25rem; line-height: 1.3; }

/* Class tiện ích theme cũ — bỏ đuôi selector `.elementor-heading-title` (GP không còn markup đó) */
.text-korea { font-size: 1rem; line-height: 2; }
.text-korea--sm { font-size: 0.875rem; line-height: 2.2857; }
.normal-bold { font-weight: 600; line-height: 1.375; }
.caption { font-size: 0.875rem; }
.font-extra-normal { font-size: 1.125rem; line-height: 1.3333; padding: 0; }
.font-large-extra { font-size: 3.8rem; }
.font-medium-extra { font-size: 2.3rem; line-height: 1.2; }

@media (max-width: 1500px) {
	:root { --kn-spacing-md3: 2.5rem; }
	h1, .h1, .big-title { font-size: 42px; }
	h2, .h2 { font-size: 38px; }
	h3, .h3 { font-size: 34px; }
	h4, .h4 { font-size: 24px; }
	.font-large-extra { font-size: 3.4rem; }
	.font-medium-extra { font-size: 2.1rem; }
}
@media (max-width: 1024px) {
	h1, .h1, .big-title { font-size: 2.5rem; }
	h2, .h2 { font-size: 1.875rem; }
	h3, .h3 { font-size: 1.625rem; }
	h5, .h5 { font-size: 1.25rem; }
	h6, .h6 { font-size: 1.125rem; }
	.font-large-extra { font-size: 3.1rem; }
	.font-medium-extra { font-size: 2rem; }
}
@media (max-width: 991px) {
	:root { --kn-spacing-md3: 1.875rem; }
}
@media (max-width: 768px) {
	:root { --kn-spacing-md3: 1.25rem; }
	h1, .h1, .big-title { font-size: 2.25rem; }
	.font-large-extra { font-size: 3rem; }
	.font-medium-extra { font-size: 2rem; }
	button, [type="button"], [type="reset"], [type="submit"], .btn { padding: 0.625rem 1.25rem; }
}
/* Kit 3394 §1.5 — bộ luật nút cho MỌI `<button>` toàn site: font-weight, nền secondary, chữ theo token
   văn bản, không viền, bo 5; rê/focus nền primary chữ trắng. Thiếu khối này thì nút do plugin sinh
   (đóng Fancybox, Gravity Forms) rơi về nền xám của theme cha. `padding` đã khai ở khối media trên.
   `body[class]` chứ không phải `body`: bản gốc dùng `.elementor-kit-<id> button` = đặc trưng (0,1,1),
   nên `body button` (0,0,2) THUA mọi rule một lớp (vd `.show-more-btn` — nút giữ viền và bo 999 của
   riêng nó thay vì nền vàng như bản gốc). Bộ chọn thuộc tính tính ở mức lớp ⟹ `body[class]` = (0,1,1),
   đúng bằng bản gốc; `<body>` của WordPress luôn có lớp. Nút khai nền riêng ở đặc trưng cao hơn
   (nút đóng popup, nút form theo lớp form) không đổi. */
body[class] button, body[class] [type="button"], body[class] [type="reset"], body[class] [type="submit"] { font-weight: 700; }
body[class] button, body[class] [type="button"], body[class] [type="reset"], body[class] [type="submit"], body[class] .elementor-button { background-color: var(--kn-secondary); color: var(--kn-text); border-style: none; border-radius: 5px; }
body[class] button:hover, body[class] button:focus, body[class] [type="button"]:hover, body[class] [type="button"]:focus, body[class] [type="reset"]:hover, body[class] [type="reset"]:focus, body[class] [type="submit"]:hover, body[class] [type="submit"]:focus, body[class] .elementor-button:hover, body[class] .elementor-button:focus { background-color: var(--kn-primary); color: #FFFFFF; }
@media (max-width: 460px) {
	h1, .h1, .big-title { font-size: 2rem; }
	.font-large-extra { font-size: 2.6rem; }
}

/* ==== Tools-bar phụ trợ (P2) — CSS ngoài template dse-tools-bar.php: phần <style> chính đã nằm inline trong ==== */

/* (1) main.css:359-364 — nguyên văn */
.popup_person_1_0_0 { position: fixed; z-index: 14; opacity: 0; left: 10px; bottom: 10%; padding: 8px 10px; border-radius: 50px; background: #1f4398; display: flex; justify-content: space-between; color: #fff; }
.popup_person_1_0_0__pic { width: 60px; height: 60px; }
.popup_person_1_0_0__pic img { width: 60px; height: 60px; border-radius: 100%; }
.popup_person_1_0_0__box { padding-left: 15px; }
.popup_person_1_0_0__name { font-size: 14px; }
.popup_person_1_0_0__ct, .popup_person_1_0_0__time { font-size: 13px; }

/* (2) custom_css 5827 dòng 37-51 */
.popup_person_1_0_0 { background: #1f4398d4; }
.btn-chat-ngay { position: fixed; bottom: 0; right: 24px; padding: 4px 10px; border-radius: 4px 4px 0px 0px; background: linear-gradient(180deg, rgb(0 141 243) 0%, #032FC9 100%); z-index: 999; }
.btn-chat-ngay .bubble { height: 20px; width: 20px; background: #BC3027; color: #fff; display: flex; align-items: center; justify-content: center; position: absolute; top: -16px; right: -10px; border-radius: 20px; }
.btn-chat-ngay .box { display: flex; align-items: center; color: #fff; }
.btn-chat-ngay .box img { height: 24px; }
@keyframes shake {
    0%, 100% { transform: rotate(-10deg); }
    25% { transform: rotate(10deg); }
    50% { transform: rotate(-10deg); }
    75% { transform: rotate(10deg); }
}
.btn-chat-ngay .box img { display: inline-block; animation: shake 0.3s infinite; }
.popup_person_1_0_0 { z-index: 999; }

/* (2b) custom_css 5827 dòng 54-59 */
li.tools-bar-item.icon-logo { position: relative; }
li.tools-bar-item.icon-logo::after { content: ''; position: absolute; top: 10px; left: 8px; width: 10px; height: 10px; background-color: red; border-radius: 50%; animation: pulse 2s infinite; z-index: 9999; }
@keyframes pulse {
    0% { transform: scale(0.8); opacity: 1; }
    70% { transform: scale(1.5); opacity: 0; }
    100% { transform: scale(0.8); opacity: 0; }
}

/* ==== Search overlay full-screen (P2) ==== */
#kn-search-overlay { position: fixed; inset: 0; z-index: 9998; background: rgba(0, 0, 0, .8); opacity: 0; visibility: hidden; transition: all .3s ease; display: flex; align-items: center; padding: 0 15%; }
#kn-search-overlay.is-open { opacity: 1; visibility: visible; }
#kn-search-overlay form { position: static; width: 100%; margin: 0; }
#kn-search-input { width: 100%; height: 51px; font-size: 20px; font-weight: 400; text-align: center; color: #000; background: #E9ECF5; border: 0; border-bottom: 1px solid #FFF; border-radius: 0; outline: none; }
#kn-search-overlay .kn-search-close { position: absolute; right: 15px; top: calc(50% + 6.5px); transform: translateY(-50%); width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; background: transparent; border: 0; padding: 0; color: #FFF; cursor: pointer; }

/* ==== Trang dựng bằng GP Block Element loại `content-template` (P2 cụm 2 ==== */
body.kn-content-template .site.grid-container,
body.kn-loop-template .site.grid-container { max-width: 100%; padding: 0; }
body.kn-content-template .site-content,
body.kn-loop-template .site-content { display: block; margin: 0; padding: 0; }
body.kn-content-template .site-content .content-area,
body.kn-loop-template .site-content .content-area { width: 100%; margin: 0; padding: 0; float: none; }
body.kn-content-template .site-main,
body.kn-loop-template .site-main { margin: 0; padding: 0; }
/* Thẻ bọc do GP in ra quanh Element (`<article id="post-N" class="… dynamic-content-template">`) */
body.kn-content-template .dynamic-content-template { margin: 0; padding: 0; border: 0; background: none; }

/* ==== P3 — CHO PHÉP `position: sticky` SỐNG TRÊN TRANG ARCHIVE/SEARCH ==== */
html:has(body.kn-loop-template),
html:has(body.kn-content-template.single) { overflow-x: clip; }
body.kn-loop-template,
body.kn-content-template.single { overflow-x: clip; }

/* ==== POPUP KHUYẾN MÃI (P4 việc 4) ==== */

/* Popup KM */
#pum-10164.pum-overlay { z-index: 19999999999; }
.popup-khuyen-mai { display: flex; flex-direction: column; }
.popup-khuyen-mai .column.left, .left-form-end-article { background-image: url(/wp-content/uploads/2026/10/poster_0510-min.webp); background-position: bottom center; background-repeat: no-repeat; background-size: cover; min-height: 224px; border-radius: 8px 8px 0 8px; }
.popup-khuyen-mai .column.right { padding: 20px 24px; }
.popup-khuyen-mai .column.right h3 { text-align: center; color: #284294; font-weight: bold; margin: 10px auto 16px; display: block; font-size: 20px; padding: 0; text-transform: uppercase; }
.popup-khuyen-mai .gform_button { color: #fff !important; border-radius: 50px !important; text-transform: uppercase; background-image: -moz-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%) !important; background-image: -webkit-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%) !important; background-image: -ms-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%) !important; font-weight: 400 !important; border: solid 1px #fff !important; width: 100%; max-width: 250px; margin: 0 auto; display: block !important; font-weight: bold !important; }
.popup-khuyen-mai .quyen-loi { max-width: 320px; font-size: 15px; font-weight: 500; text-align: center; }
#popmake-10164>button.pum-close { border-radius: 0 8px !important; }
@media screen and (min-width:1024px) {
    .popup-khuyen-mai { display: flex; flex-direction: row; }
    .popup-khuyen-mai .column.left, .left-form-end-article { background-position: center center; min-width: 368px; min-height: 468px; border-radius: 8px 0px 0 8px; }
}

/* Popup KM chạy bằng GB Overlay Panel (inc/popup-km.php + scripts/gp/43): plugin lo khung fixed + backdrop + */
.gb-overlay:has(.popup-khuyen-mai) { z-index: 1999999999; }
.gb-overlay .popup-khuyen-mai { position: relative; width: min(736px, calc(100vw - 20px)); margin: auto; background: #fff; border-radius: 8px; }
.gb-overlay.active .popup-khuyen-mai { animation: kn-popup-in .35s ease both; }
.gb-overlay.active .gb-overlay__backdrop { animation: kn-popup-fade .35s ease both; }
@keyframes kn-popup-in { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kn-popup-fade { from { opacity: 0; } to { opacity: 1; } }
/* Selector 2 lớp có chủ đích: thắng cả CSS global button của Elementor Kit (.elementor-kit-3394 button */
.gb-overlay .kn-popup-close { position: absolute; top: 0; right: 0; z-index: 1; width: 26px; height: 26px; min-width: 0; padding: 0; border: 0; border-radius: 0; cursor: pointer; background: rgb(27, 65, 170); color: #fff; font-size: 24px; line-height: 24px; text-align: center; }
.gb-overlay .kn-popup-close--vi { border-radius: 0 8px; }
/* The overlay is position:fixed and does not scroll, so on touch devices the on-screen keyboard covers the form fields
   (iOS does not resize a fixed layer). Make the overlay itself the scroll container; flex-start + auto margins keep the
   panel centred while it fits and reachable from the top when it does not. While a field has focus on a touch device,
   add room below the panel so it can be dragged clear of the keyboard. */
.gb-overlay--standard:has(.popup-khuyen-mai) { align-items: flex-start; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.gb-overlay--standard:has(.popup-khuyen-mai) > .gb-overlay__content { max-height: none; margin: auto; }
.gb-overlay--standard:has(.popup-khuyen-mai) > .gb-overlay__backdrop { position: fixed; }
@media (hover: none) and (pointer: coarse) {
    .gb-overlay--standard:has(.popup-khuyen-mai :is(input, select, textarea):focus) > .gb-overlay__content { margin-top: 10px; margin-bottom: 55vh; }
}

/* ==== GRAVITY FORMS — khối "Đăng kí tư vấn" (form id 2) của trang chủ + confirmation `.kk-card` (P4 đợt B) ==== */

/* (A) main.css theme cũ — Gravity Forms */
.gform_wrapper.gravity-theme .gform_footer { text-align: center; justify-content: center; padding-bottom: 0 !important; }
.gform_wrapper.gravity-theme .gform_footer .gform_button { display: flex; align-items: center; border-radius: 0.5rem; padding: 0.625rem 1.25rem; min-width: 140px; border: solid 0.125rem #fcd207; color: #1F4396; background: #fcd207 }
/* CỐ Ý BỎ `padding-left: 0.5rem` của rule gốc (main.css:116): trên LIVE nó KHÔNG có hiệu lực */
.gform_wrapper.gravity-theme .gform_footer .gform_button>span { line-height: 1; }

/* Port `label{display:inline-block;line-height:1;vertical-align:middle}` (main.css:28) */
.gform_wrapper label { display: inline-block; line-height: 1; vertical-align: middle; }

/* Port `.elementor-testimonial.elementor-testimonial__text strong` (main.css) */
.elementor-testimonial .elementor-testimonial__text strong,
[data-kn="s8-text"] strong { color: #FBD405; margin-bottom: 0.625rem; display: inline-block; font-size: 1.125rem; }
.gform_wrapper.gravity-theme .gform_footer .gform_button:hover, .gform_wrapper.gravity-theme .gform_footer .gform_button:focus { background: #204397; color: #fff; }
.gform_wrapper.blue-submit_wrapper.gravity-theme .gform_footer .gform_button { border-color: #204397; background: #204397; color: #fff; }
.gform_wrapper.blue-submit_wrapper.gravity-theme .gform_footer .gform_button:hover, .gform_wrapper.blue-submit_wrapper.gravity-theme .gform_footer .gform_button:focus { color: #1F4396; border-color: #FBD405; background: #FBD405; }
/* ĐỢT 4 — biến thể `form-side-bar` (GF 31 "LP - Auto Service", nhúng trong thân bài 2527) */
/* Giữ NGUYÊN cú pháp CÓ TIỀN TỐ của theme cũ: Chrome dùng `-webkit-linear-gradient(0deg,…)` và in lại đúng */
.gform_wrapper.form-side-bar_wrapper.gravity-theme .gform_footer .gform_button { color: #fff; border-radius: 50px; text-transform: uppercase; background-image: -moz-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%); background-image: -webkit-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%); background-image: -ms-linear-gradient(0deg, rgb(6, 32, 80) 0%, rgb(31, 67, 152) 54%, rgb(6, 32, 80) 100%); font-weight: bold; border: solid 1px #fff; width: 100%; max-width: 250px; margin: 0 auto; display: block; }
.gform_wrapper.form-side-bar_wrapper.gravity-theme .gform_footer .gform_button:hover,
.gform_wrapper.form-side-bar_wrapper.gravity-theme .gform_footer .gform_button:focus { color: #114dc0; background-image: -moz-linear-gradient(0deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%); background-image: -webkit-linear-gradient(0deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%); background-image: -ms-linear-gradient(0deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%); }
.gform_wrapper.gravity-theme .gform_body .gfield input, .gform_wrapper.gravity-theme .gform_body .gfield select { padding: 0.625rem 1.25rem; border: none; background: #E9ECF5; color: #292C2F; font-size: 1.125rem; outline: none !important; border-radius: 5px; line-height: 1 !important; }
.gform_wrapper.gravity-theme .gform_body .gfield select { appearance: none; background-image: url('assets/images/angle-down.svg'); background-size: 0.875rem; background-repeat: no-repeat; background-position: calc(100% - 0.625rem) center; padding-right: 1.875rem }

/* (B) custom_css 5827 — form captcha / kk-card / intl-tel-input (nguyên văn) */
.iti--fullscreen-popup.iti--container { z-index: 99999999999999 !important }
/* Foreign-phone fields (.phone_not_vn) start hidden so the form's initial layout equals its steady state
   for the default country (VN, dial 84). dse-core reveals them with slideDown() when another country is chosen. */
.gform_wrapper .gfield.phone_not_vn { display: none; }
/* 5827 dòng 80 — bị SÓT khi port (, 129 166): thiếu nó nhãn captcha là inline-block (rule `.gform_wrapper */
.form-captcha-color-white .lable-white label { color: #fff; display: block !important; text-align: center; }
.form-captcha-color-white .lable-white .ginput_container { color: #fff; }
.form-captcha-color-white .label-center { display: block !important; text-align: center; }
.gform_button span { display: flex; }
.gform_button { gap: 6px }
.gfield--type-math_captcha .gfield_label { font-size: 14px !important; }
.kk-card { width: 100%; max-width: 28rem; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.kk-card * { margin: 0; padding: 0; box-sizing: border-box; }
.kk-card .card-box {    
overflow: hidden;     }
.kk-card .icon-circle { width: 2.75rem; height: 2.75rem; border-radius: 9999px; border: 2px solid #E8C878; background: rgba(232, 200, 120, .10); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.kk-card .icon-circle svg { width: 1.5rem; height: 1.5rem; stroke: #E8C878; }
.kk-card .card-title h2 { font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin-bottom: .25rem; }
.kk-card .card-title p { font-size: .875rem; line-height: 1.6; }
.kk-card .divider { height: 1px; margin-bottom: 1rem; }
.kk-card .section-label { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .01em; margin-bottom: .5rem; }
.kk-card .phone-section { margin-bottom: 1rem; }
.kk-card .phone-box { border-radius: .75rem; padding: .875rem; border: 1px solid; }
.kk-card .phone-number { font-size: 1.25rem; font-weight: 700; letter-spacing: .05em; display: block; margin-bottom: .5rem; }
.kk-card .box-note { font-size: .75rem; line-height: 1.6; }
.kk-card .box-note a { color: inherit; font-weight: 700; text-decoration: underline; }
.kk-card .working-hours { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.kk-card .working-hours svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.kk-card .working-hours .wh-label { font-size: .75rem; }
.kk-card .hours-badge { border-radius: 9999px; padding: .125rem .75rem; font-size: .75rem; font-weight: 500; border: 1px solid; }
.kk-card .btn-video { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; margin-bottom: 1rem; padding: .625rem; background: transparent; border: 1px solid; border-radius: .5rem; font-size: .8125rem; font-weight: 600; text-decoration: none; transition: all .2s; }
.kk-card .btn-video svg { width: 1rem; height: 1rem; stroke: currentColor; fill: none; }
.kk-card .hotline-subtle { border-top: 1px solid; padding-top: .75rem; text-align: center; font-size: .7rem; }
.kk-card .hotline-subtle a { font-weight: 600; text-decoration: none; }
.bg-navy .kk-card .card-box { background: #204397; border: 1px solid transparent; }
.bg-navy .kk-card .card-title h2 { color: #ffffff; }
.bg-navy .kk-card .card-title p { color: rgba(255, 255, 255, .92); }
.bg-navy .kk-card .divider { background: rgba(255, 255, 255, .10); }
.bg-navy .kk-card .section-label { color: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .phone-box { background: rgba(232, 200, 120, .08); border-color: rgba(232, 200, 120, .25); }
.bg-navy .kk-card .phone-number { color: #E8C878; }
.bg-navy .kk-card .box-note { color: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .working-hours svg { stroke: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .working-hours .wh-label { color: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .hours-badge { background: rgba(232, 200, 120, .10); border-color: rgba(232, 200, 120, .20); color: #E8C878; }
.bg-navy .kk-card .btn-video { color: rgba(255, 255, 255, .85); border-color: rgba(255, 255, 255, .3); }
.bg-navy .kk-card .btn-video:hover { background: rgba(255, 255, 255, .08); }
.bg-navy .kk-card .hotline-subtle { border-color: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .hotline-subtle a { color: rgba(255, 255, 255, .75); }
.bg-navy .kk-card .hotline-subtle a:hover { color: #ffffff; }
.bg-white .kk-card .card-box { background: #ffffff; border: 1px solid transparent; }
.bg-white .kk-card .card-title h2 { color: #204397; }
.bg-white .kk-card .card-title p { color: #495057; }
.bg-white .kk-card .divider { background: #dee2e6; }
.bg-white .kk-card .section-label { color: #6C757D; }
.bg-white .kk-card .phone-box { background: rgba(232, 200, 120, .10); border-color: rgba(232, 200, 120, .30); }
.bg-white .kk-card .phone-number { color: #204397; }
.bg-white .kk-card .box-note { color: #6C757D; }
.bg-white .kk-card .working-hours svg { stroke: #6C757D; }
.bg-white .kk-card .working-hours .wh-label { color: #6C757D; }
.bg-white .kk-card .hours-badge { background: rgba(232, 200, 120, .15); border-color: rgba(232, 200, 120, .25); color: #204397; }
.bg-white .kk-card .btn-video { color: #204397; border-color: #204397; }
.bg-white .kk-card .btn-video:hover { background: rgba(32, 67, 151, .06); }
.bg-white .kk-card .hotline-subtle { border-color: #dee2e6; color: #6C757D; }
.bg-white .kk-card .hotline-subtle a { color: #204397; }
.bg-white .kk-card .hotline-subtle a:hover { color: #1a3472; }

/* ==== P4 GĐ2 — THÂN BÀI CPT `service` dựng lại bằng block (pilot bài 357 `lay-mo-bong-mat`; script ==== */

/* ── (0) KHUNG: legacy là container Elementor `.e-con-boxed` */
.kn-svc-b { display: flow-root; margin: 20px 10px 0; }
.kn-svc-b--first { margin-top: 0; padding-top: 10px; }
.kn-svc-b--last { padding-bottom: 10px; }

/* ── (1) HEADING widget (4 cái) — legacy `.elementor-heading-title{padding:0;margin:0;line-height:1}` bị */
.kn-svc-b.kn-heading { line-height: 1.25; padding-left: 0; padding-right: 0; }

/* ── (2) LƯỚI QUY TRÌNH — `custom_css` 5827 (post `custom_css`, theme_mods_keangnamkorea) port NGUYÊN VĂN, đúng 2 dải */
.quy-trinh-dich-vu { border: 1px dashed #204397; background: #f7fbff; padding: 16px; }
.quy-trinh-dich-vu .elementor-image-box-title { font-size: 22px; }
.quy-trinh-dich-vu .elementor-image-box-img { width: 20% !important; }
@media screen and (max-width: 600px) {
	.quy-trinh-dich-vu .elementor-image-box-wrapper { display: flex; gap: 16px; }
	.quy-trinh-dich-vu .elementor-image-box-img { width: 30% !important; padding-top: 4px; }
	.quy-trinh-dich-vu .elementor-image-box-title { font-size: 18px; }
}

/* widget-image-box.min.css + CSS per-widget Elementor sinh (image_space 15px */
/* Legacy: `.quy-trinh-dich-vu` là `.e-con-boxed` CÓ thêm `.e-con-inner` với `padding:10px 0` và `gap:20px` */
.kn-image-box { margin-bottom: 20px; }
.quy-trinh-dich-vu .kn-image-box:first-child { margin-top: 10px; }
.quy-trinh-dich-vu .kn-image-box:last-child { margin-bottom: 10px; }
.kn-image-box .elementor-image-box-wrapper { text-align: left; }
.kn-image-box .elementor-image-box-content { width: 100%; }
/* LỀ CỦA `figure` KHÔNG PHẢI thứ widget-image-box.min.css khai */
.kn-image-box .elementor-image-box-img { display: inline-block; margin: 0 auto; width: 30%; }
.kn-image-box .elementor-image-box-img img { display: block; line-height: 0; }
@media (min-width: 768px) {
	.kn-image-box .elementor-image-box-wrapper { display: flex; flex-direction: row; align-items: flex-start; }
	.kn-image-box--left .elementor-image-box-img { margin: 0 15px 0 0; }
}
/* `%B% p{margin:0 0 1em;text-align:justify}` của Element single-service là (0,1,1) rule này phải ≥ (0,2,0) mới */
.kn-image-box .elementor-image-box-description { margin: 0; text-align: left; }

/* ── (3) VIDEO YouTube — legacy `.elementor-wrapper{aspect-ratio:var(--video-aspect-ratio)}` với */
.kn-svc-video .kn-video-wrap { aspect-ratio: 1.77777; }
.kn-svc-video .kn-video-wrap iframe { background-color: #000; border: none; display: flex; height: 100%; width: 100%; max-width: 100%; margin: 0; line-height: 1; }

/* ── (4) NÚT CHIA SẺ (thay Global Widget 3979) */
.kn-share { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 10px; row-gap: 0; }
.kn-share a.kn-share__btn { align-items: center; border: 2px solid #204397; border-radius: 99.9em; color: #204397; cursor: pointer; display: flex; font-size: 7px; font-weight: 400; height: 4.5em; justify-content: center; overflow: hidden; text-decoration: none; transition-duration: .2s; transition-property: filter, background-color, border-color, color; }
.kn-share a.kn-share__btn:hover { border-color: #1D3C88; color: #1D3C88; }
.kn-share .kn-share__icon { align-items: center; align-self: stretch; color: inherit; display: flex; justify-content: center; margin-inline-start: -.2em; position: relative; width: 4.5em; }
.kn-share .kn-share__icon svg { fill: currentColor; height: 17px; width: 17px; }

/* ── (5) FAQ — `<details>` thay widget `toggle` (0 jQuery, đóng mặc định, mở được NHIỀU mục cùng lúc = đúng hành vi */
.kn-faq .kn-faq-item { background-color: #F6F8F9; margin-bottom: .625rem; }
.kn-faq .kn-faq-title { cursor: pointer; display: block; font-weight: 700; line-height: 1; margin: 0; outline: none; padding: 16px; list-style: none; }
/* Màu primary nằm ở NHÃN + ICON, KHÔNG ở thẻ tiêu đề: live khai `.elementor-…-e290825.elementor-toggle-title */
.kn-faq .kn-faq-label { color: var(--kn-primary); }
.kn-faq .kn-faq-title::-webkit-details-marker { display: none; }
.kn-faq .kn-faq-title::marker { content: ""; }
/* `line-height:1` KHAI LẠI TƯỜNG MINH (, re-convert native */
.kn-faq .kn-faq-icon { color: var(--kn-primary); display: inline-block; float: left; line-height: 1; margin-inline-end: 16px; text-align: left; width: 1em; }
.kn-faq .kn-faq-icon svg { height: 1em; width: 1em; margin-inline-start: -5px; fill: var(--kn-primary); }
.kn-faq .kn-faq-item[open] .kn-faq-icon svg path { fill: var(--kn-secondary); }
.kn-faq .kn-faq-content { padding: 0 16px 16px; }
/* Nội dung FAQ KHÔNG chịu `%B% p{text-align:justify}` / `%B% a{color:primary;font-weight:800}` của Element */
.kn-faq .kn-faq-content p { text-align: start; }
.kn-faq .kn-faq-content a { color: inherit; font-weight: inherit; text-decoration: none; }
/* Danh sách trong câu trả lời FAQ: nguồn margin-bottom 0, theme cha cho 1.5em */
.kn-native-page .kn-faq .kn-faq-answer ul, .kn-native-page .kn-faq .kn-faq-answer ol { margin-bottom: 0; }

/* ── (6) LIÊN KẾT trong khối rich-text của thân bài service */
.kn-svc-b.kn-svc-text a { color: #183271; font-size: 16px; font-weight: 700; text-decoration-line: underline; }

/* ── (7) LỀ TRÊN của `figure.wp-caption` */
.kn-svc-b.kn-svc-text figure.wp-caption { margin-top: 1em; }

/* ── (8) BIẾN THỂ CỤM A — thêm ở đợt 1 (12 bài 281/299/302/318/330/339/348/366/8030/8705/8759/8776) */
/* LONGHAND, KHÔNG dùng shorthand `padding:0 10px` (sửa, đợt 3): shorthand RESET luôn padding-bottom khối cuối */
.kn-svc-b.kn-svc-row--plain { padding-left: 10px; padding-right: 10px; }
.kn-svc-row-in { padding: 10px 0; }
.kn-svc-row-in > .kn-svc-b { margin: 0; }
.kn-svc-row-in > .kn-svc-b + .kn-svc-b { margin-top: 20px; }

/* (8b) BUG LIVE `width_laptop` (spec §1.4/§7) */
@media (max-width: 1366px) and (min-width: 768px) {
	.kn-svc-b.kn-svc-b--wlap { width: calc(var(--kn-svc-w) - 20px); max-width: calc(100% - 20px); margin-left: auto; margin-right: auto; }
}

/* (8c) HEADING có HTML KHỐI trong `title` (281 `<p><b>` */
/* ĐỢT 4 đổi `>` thành TỔ TIÊN: bài 2527 chèn thêm lớp `.kn-wc` (vai `.elementor-widget-container`) giữa hai thẻ */
.kn-heading-wrap .kn-heading { line-height: 1.25; margin: 0; padding-left: 0; padding-right: 0; }

/* ── (9) BIẾN THỂ CỤM B/D/E — thêm ở đợt 2 (12 bài 474/545/554/572/16990/17767/23296 */
@media (min-width: 768px) {
	.kn-image-box.kn-image-box--vmiddle .elementor-image-box-wrapper { align-items: center; }
	.kn-image-box.kn-image-box--vbottom .elementor-image-box-wrapper { align-items: flex-end; }
}

/* (9b) LƯỚI QUY TRÌNH dạng `e-con-full` (chỉ bài 23296 */
.quy-trinh-dich-vu.kn-svc-row--full .kn-image-box:first-child { margin-top: 0; }
.quy-trinh-dich-vu.kn-svc-row--full .kn-image-box:last-child { margin-bottom: 0; }

/* (9c) BẢNG trong thân bài — port từ `themes/keangnamkorea/style.css` khối "Table styling" (nguồn thứ hai, KHÔNG */
.kn-svc-b table { background-color: transparent; width: 100%; margin-block-end: 15px; font-size: 0.9em; border-spacing: 0; border-collapse: collapse; }
.kn-svc-b table th,
.kn-svc-b table td { padding: 15px; line-height: 1.5; vertical-align: top; border: 1px solid rgba(128, 128, 128, 0.502); }
.kn-svc-b table th { font-weight: bold; }
.kn-svc-b table tbody > tr:nth-child(odd) > td,
.kn-svc-b table tbody > tr:nth-child(odd) > th { background-color: rgba(128, 128, 128, 0.071); }
.kn-svc-b table tbody tr:hover > td,
.kn-svc-b table tbody tr:hover > th { background-color: rgba(128, 128, 128, 0.102); }

/* ── (10) BIẾN THỂ CỤM C/F/G/H/I — thêm ở đợt 3 (12 bài 12902/17419/17163/17519 */
.kn-svc-b.kn-svc-row-head { margin: 10px 0 20px; }

/* (10b) `text_align:justify` của widget image-box (12902/17419/9879/10866 */
.kn-image-box.kn-image-box--justify .elementor-image-box-wrapper { text-align: justify; }
.kn-image-box.kn-image-box--justify .elementor-image-box-description { text-align: justify; }

/* (10c) `title_bottom_space` (4px ở 12902/17419/9879/10866) `.elementor-image-box-title` */
.kn-image-box.kn-image-box--tbs .elementor-image-box-title { margin-bottom: var(--kn-ib-tbs); }

/* (10d) `image_size` (%). CHỈ có hiệu lực NGOÀI lưới `.quy-trinh-dich-vu`: 5827 khai */
.kn-image-box.kn-image-box--imgw .elementor-image-box-img { width: var(--kn-ib-imgw); }

/* (10e) `__globals__.title_color = primary` (1983/16872) */
.kn-image-box.kn-image-box--tprimary .elementor-image-box-title { color: var(--kn-primary); }

/* (10f) LƯỚI image-box KHÔNG có class `quy-trinh-dich-vu` (9879/10866): container lồng THƯỜNG (`.kn-svc-row--plain */
.kn-svc-row-in > .kn-image-box:last-child { margin-bottom: 0; }

/* (10g) ĐUÔI THÂN BÀI — top-level container RỖNG của legacy (17232/17547: `cdf775c`, 0 widget) */
.kn-svc-b.kn-svc-b--tail20 { padding-bottom: 30px; }

/* (10h) `figure.wp-caption` của bài mà `post_content` GỐC ĐÃ chứa block (duy nhất **875** trên 37 bài đã chuyển */
.kn-svc-b.kn-svc-text--wpblk figure.wp-caption { margin-top: 0; }

/* (10i) `text_align` KHÔNG được khai trên image-box (17163/17519/17232/17547) legacy giữ giá trị khởi tạo `start` */
.kn-image-box.kn-image-box--tstart .elementor-image-box-wrapper { text-align: start; }
.kn-image-box.kn-image-box--tstart .elementor-image-box-description { text-align: start; }
/* …VÀ Ở ≤767 GIÁ TRỊ MẶC ĐỊNH LÀ `center`, KHÔNG PHẢI `start` (đo trên legacy @700/@600/@460/@390 */
@media (max-width: 767px) {
	.kn-image-box.kn-image-box--tstart .elementor-image-box-wrapper { text-align: center; }
	.kn-image-box.kn-image-box--tstart .elementor-image-box-description { text-align: center; }
}

/* ══════════════════════════════════════════════════════════════════════════════ (11) ĐỢT 4 */

/* ── (11a) KHUNG khi container GỐC khai `padding:0` (565 `#474cd164`) */
.kn-svc-b.kn-svc-b--p0 { margin-left: 0; margin-right: 0; }
.kn-svc-b--p0.kn-svc-b--first { padding-top: 0; }
.kn-svc-b--p0.kn-svc-b--last { padding-bottom: 0; }

/* ── (11b) CON của container `e-con-full` dựng lại là FLEX/GRID ITEM triệt lề 20/10px của `.kn-svc-b` (khoảng */
.kn-svc-con > .kn-svc-b { margin: 0; }
/* …VÀ `min-width:0`: Elementor khai `.e-con.elementor-widget{min-width:0px}` (đã tra rule THẮNG trên legacy) */
.kn-svc-con .kn-svc-b { min-width: 0; }

/* ── (11c) NÚT (widget `button`, 2 instance */
.kn-svc-button .elementor-button { display: inline-block; line-height: 1; font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; border-radius: 5px; padding: 13px 18px; transition: .3s; }
.kn-svc-button .elementor-button-content-wrapper { display: flex; justify-content: center; gap: 5px; }
.kn-svc-button .elementor-button-icon { display: flex; align-items: center; }
.kn-svc-button .elementor-button-icon svg { width: 1em; height: 1em; fill: currentColor; }

/* ══ 565 — `dieu-khac-chan-may` ══════════════════════════════════════════════ */

/* (11d) `custom_css` khối (`#474cd164`, container gốc): `#toc_container{display:none}` */
.postid-565 #toc_container { display: none; }

/* (11e) `custom_css` khối (`#4f75ee5`, widget html "trust bar") */
.postid-565 .dkcm-trust { display: flex; align-items: center; gap: 16px; background: #f8f8f8; border: 1px solid #eee; border-radius: 10px; padding: 12px 16px; width: fit-content; }
.postid-565 .dkcm-trust__item { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.postid-565 .dkcm-trust__num { font-size: 15px; font-weight: 700; color: #1a2a5e; line-height: 1; }
.postid-565 .dkcm-trust__text { font-size: 11px; color: #888; }
.postid-565 .dkcm-trust__sep { width: 1px; height: 28px; background: #ddd; }

/* (11f) Hai nút — màu lấy từ Kit 3394 (`primary #204397` */
.postid-565 .kn-btn-a5298e7 .elementor-button { background-color: #204397; color: #E9ECF5; fill: #E9ECF5; }
.postid-565 .kn-btn-a5298e7 .elementor-button-content-wrapper { flex-direction: row-reverse; }
.postid-565 .kn-btn-a5298e7 .elementor-button:hover,
.postid-565 .kn-btn-a5298e7 .elementor-button:focus { background-color: #FBD405; color: #1D3C88; border-color: #FBD405; }
.postid-565 .kn-btn-a5298e7 .elementor-button:hover svg,
.postid-565 .kn-btn-a5298e7 .elementor-button:focus svg { fill: #1D3C88; }
.postid-565 .kn-btn-0aea00a .elementor-button { background-color: rgba(2, 1, 1, 0); border: 3px solid #204397; color: #292C2F; }
.postid-565 .kn-btn-0aea00a .elementor-button:hover,
.postid-565 .kn-btn-0aea00a .elementor-button:focus { color: #183271; border-color: #292C2F; }

/* ══ 281 — `nang-mui-cau-truc-s-line` ════════════════════════════════════════ */

/* (11r) Container gốc mang `width_laptop:566px` (Elementor sinh media 768–1366 đặt --width lên chính container trọn */
@media (max-width: 1366px) and (min-width: 768px) {
	.postid-281 .kn-svc-con--top.kn-con-158a181d { width: 566px; max-width: 100%; margin-left: auto; margin-right: auto; padding-left: 10px; padding-right: 10px; }
}

/* ══ 16990 — `eyebrow-microblading` (EN) ══════════════════════════════════════ */

/* (11s) Container gốc `width_laptop:752px` (media 768–1366 của Elementor) */
@media (max-width: 1366px) and (min-width: 768px) {
	.postid-16990.single-service .kn-svc-body { padding-left: 0; padding-right: 0; }
	.postid-16990 .kn-svc-con--top.kn-con-474cd164 { width: 752px; max-width: 100%; margin-left: auto; margin-right: auto; padding-left: 10px; padding-right: 10px; }
}

/* (11u) Blob kết thúc bằng h2 rồi tới LƯỚI: hộp widget bản gốc (flex item) CHỨA mb 16 của h2 rồi mới cộng flex-gap 20 */
.postid-16990.single-service .kn-svc-con--top > h2 + .kn-svc-row { margin-top: 36px; }

/* ══ 565 — `dieu-khac-chan-may` */

/* (11w-a) Container GỐC `474cd164` khai `padding:0` ở CẢ hai lớp (đo @1440: khối đầu y trùng mép trong gốc */
.postid-565.single-service .kn-svc-body { padding: 0; }
/* (11w-b) Hình học 4 container `content_width:full` của hero */
.postid-565 .kn-svc-con.kn-con-a24c2ca,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-a24c2ca { display: flex; flex-direction: row; gap: 20px; }
.postid-565 .kn-svc-con.kn-con-1d7aeaa,
.postid-565 .kn-svc-con.kn-con-3b17f8b,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-1d7aeaa,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-3b17f8b { display: flex; flex-direction: column; gap: 20px; min-width: 0; width: 100%; }
.postid-565 .kn-svc-con.kn-con-616083e,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-616083e { display: flex; flex-direction: row; gap: 20px; }
@media (max-width: 767px) {
	.postid-565 .kn-svc-con.kn-con-a24c2ca,
	.postid-565 .kn-svc-con.kn-con-616083e,
	.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-a24c2ca,
	.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-616083e { flex-wrap: wrap; }
}
body.single-service.postid-565 .kn-svc-body .kn-svc-con > *,
.editor-styles-wrapper.post-type-service .kn-con-a24c2ca > *,
.editor-styles-wrapper.post-type-service .kn-con-1d7aeaa > *,
.editor-styles-wrapper.post-type-service .kn-con-3b17f8b > *,
.editor-styles-wrapper.post-type-service .kn-con-616083e > * { margin: 0; min-width: 0; }
/* (11w-c) NÚT bản native: cùng cây + số đo 11c (a inline-block > div.content-wrapper flex */
.kn-svc-button .elementor-button-content-wrapper > .gb-shape,
.editor-styles-wrapper.post-type-service .kn-svc-button .elementor-button-content-wrapper > .gb-shape { display: flex; align-items: center; }
.kn-svc-button .elementor-button-content-wrapper > .gb-shape svg,
.editor-styles-wrapper.post-type-service .kn-svc-button .elementor-button-content-wrapper > .gb-shape svg { width: 1em; height: 1em; fill: currentColor; }
.editor-styles-wrapper.post-type-service .kn-svc-button .elementor-button { display: inline-block; line-height: 1; font-size: 15px; font-weight: 700; text-align: center; text-decoration: none; border-radius: 5px; padding: 13px 18px; }
.editor-styles-wrapper.post-type-service .kn-svc-button .elementor-button-content-wrapper { display: flex; justify-content: center; gap: 5px; }
.editor-styles-wrapper.post-type-service .kn-btn-a5298e7 .elementor-button-content-wrapper { flex-direction: row-reverse; }

/* ══ 17232 / 17547 — `triple-l-cang-bong-da-nang-co-tre-hoa` (VI/EN) ══════════════ */

/* (11v) ĐUÔI THÂN BÀI: container cấp cao nhất thứ hai (`cdf775c`) RỖNG ở bản gốc nhưng vẫn cao ĐÚNG 20px */
.postid-17232.single-service .kn-svc-body { padding-bottom: 30px; }
.postid-17547.single-service .kn-svc-body { padding-bottom: 30px; }

/* ══ 2527 — `nang-cung-may-giau-chi` ═════════════════════════════════════════ */

/* (11g) HÌNH HỌC container (thay biến `--display/--gap/--padding-*` mà Elementor sinh) */
.postid-2527 .kn-svc-con.kn-con-ca85dcd,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-ca85dcd { display: flex; flex-direction: column; gap: 0; padding: 40px 40px 26px; border-radius: 16px; }
.postid-2527 .kn-svc-con.kn-con-dd70b15,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-dd70b15 { display: flex; flex-direction: column; gap: 20px; margin-top: 24px; }
.postid-2527 .kn-svc-con.kn-con-cd6b5f4,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-cd6b5f4 { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(1, 1fr); grid-auto-flow: row; justify-content: start; }
@media (max-width: 767px) {
	.postid-2527 .kn-svc-con.kn-con-ca85dcd,
	.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-ca85dcd { padding: 32px 24px 28px; }
	.postid-2527 .kn-svc-con.kn-con-cd6b5f4,
	.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-cd6b5f4 { grid-template-columns: repeat(1, 1fr); }
}
/* Khoảng cách khối cấp cao nhất: legacy là flex `gap:20` của container gốc (không bao giờ gộp), thân bài native */
.postid-2527 .kn-svc-con.kn-con-ca85dcd { margin-bottom: 20px; }
.postid-2527 .kn-svc-con.kn-con-cd6b5f4 { margin-bottom: 52px; }

/* (11h) `custom_css` khối (`#ca85dcd`) */
.postid-2527 .kn-svc-con.kn-con-ca85dcd,
.editor-styles-wrapper.post-type-service .kn-svc-con.kn-con-ca85dcd {
	background: radial-gradient(620px 300px at 90% -20%, rgba(80,109,179,.6), transparent 60%),
radial-gradient(420px 260px at -5% 115%, rgba(232,200,120,.22), transparent 55%),
linear-gradient(155deg, #1b2f6e 0%, #284294 60%, #31509f 100%);
}

/* (11i) `custom_css` khối (`#1fa3c9c`, `.eyebrow`) */
.postid-2527 .eyebrow,
.editor-styles-wrapper.post-type-service .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #E8C878; }
.postid-2527 .eyebrow::before,
.editor-styles-wrapper.post-type-service .eyebrow::before { content: ""; width: 24px; height: 1.5px; background: #E8C878; }
/* Thẻ chữ trong eyebrow là flex item thứ hai (sau,before) */
.postid-2527 .eyebrow > .gb-text,
.editor-styles-wrapper.post-type-service .eyebrow > .gb-text { margin: 0; line-height: 1.25; }

/* (11j) `custom_css` khối (`#2c9a5ed`, `.hero h2`) */
.postid-2527 .kn-svc-con.hero .kn-heading-plain,
.editor-styles-wrapper.post-type-service .kn-svc-con.hero .kn-heading-plain { margin: 12px 0 0; }
.postid-2527 .kn-svc-con.hero h2,
.editor-styles-wrapper.post-type-service .kn-svc-con.hero h2 { font-family: 'Playfair Display', serif; font-weight: 600; font-size: clamp(26px, 5.4vw, 36px); line-height: 1.15; margin: 0 0 12px; color: #fff; }
.postid-2527 .kn-svc-con.hero h2 em,
.editor-styles-wrapper.post-type-service .kn-svc-con.hero h2 em { font-style: italic; color: #E8C878; }

/* (11k) `custom_css` khối (`#a4d87d5`, `.sub`) */
.postid-2527 .sub,
.editor-styles-wrapper.post-type-service .kn-svc-con .sub { font-size: 16px; line-height: 1.6; color: rgba(255, 255, 255, .9); max-width: 32em; margin-bottom: 12px !important; }
/* `max-width:32em` chỉ ăn ở thẻ `<p class="sub">` BÊN TRONG: trên live thẻ WIDGET (cũng mang class `sub`) bị */
.postid-2527 .kn-svc-con > .sub,
.editor-styles-wrapper.post-type-service .kn-svc-con > .sub { max-width: 100%; }

/* (11l) `custom_css` khối (`#56372fe`, `.price-row` + `.price-tag` + `.chip`) */
.postid-2527 .price-row,
.editor-styles-wrapper.post-type-service .price-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
/* `margin-bottom:8px` CHẾT ở thẻ widget (thua rule margin của Elementor) nhưng SỐNG ở `<div class="price-row">` */
.postid-2527 .kn-svc-con > .price-row,
.editor-styles-wrapper.post-type-service .kn-svc-con > .price-row { margin-bottom: 0; }
.postid-2527 .price-tag,
.editor-styles-wrapper.post-type-service .price-tag { display: inline-flex; align-items: baseline; gap: 9px; background: linear-gradient(135deg, #E8C878 0%, #f3ddae 55%, #c9a44e 100%); color: #1b2f6e; border-radius: 12px; padding: 12px 18px 11px; box-shadow: 0 8px 22px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .6); }
.postid-2527 .price-tag .lbl,
.editor-styles-wrapper.post-type-service .price-tag .lbl { font-size: 12px; font-weight: 600; text-transform: uppercase; }
.postid-2527 .price-tag .num,
.editor-styles-wrapper.post-type-service .price-tag .num { font-family: 'Playfair Display', serif; font-size: clamp(26px, 5.6vw, 32px); font-weight: 700; line-height: 1; }
.postid-2527 .price-tag .num small,
.editor-styles-wrapper.post-type-service .price-tag .num small { font-size: .55em; }
.postid-2527 .chips,
.editor-styles-wrapper.post-type-service .chips { display: flex; gap: 8px; flex-wrap: wrap; }
.postid-2527 .chip,
.editor-styles-wrapper.post-type-service .chip { border: 1px solid rgba(232, 200, 120, .55); color: #ffe9b8; border-radius: 99px; font-size: 12.5px; font-weight: 600; padding: 7px 13px; white-space: nowrap; }
/* Thẻ chữ gb/text trong price-tag/chips/undercta là span */

/* (11m) `custom_css` khối (`#fa72d7c`, `.price-cond`) */
.postid-2527 .price-cond,
.editor-styles-wrapper.post-type-service .price-cond { font-size: 13px; color: rgba(255, 255, 255, .78); }

/* (11n) `custom_css` khối (`#5a0029c`, `.miniform`) + CSS "advanced" mà Elementor sinh cho */
.postid-2527 .miniform,
.editor-styles-wrapper.post-type-service .miniform { background: #fff; border-radius: 14px; display: grid; gap: 12px; box-shadow: 0 16px 40px rgba(8, 16, 40, .35); }
.postid-2527 .miniform > .kn-wc,
.editor-styles-wrapper.post-type-service .miniform > .kn-wc { background-color: #FFFFFF; padding: 24px 24px 20px; border-radius: 12px; }
@media (max-width: 767px) {
	.postid-2527 .miniform > .kn-wc,
	.editor-styles-wrapper.post-type-service .miniform > .kn-wc { padding: 12px; }
}

/* (11o) `custom_css` khối (`#abc7b7c`, `.undercta`) */
/* `margin-top:8px` áp cho CẢ HAI lớp mang class `undercta` (thẻ widget + `<div>` bên trong) */
.postid-2527 .kn-svc-con > .undercta,
.editor-styles-wrapper.post-type-service .kn-svc-con > .undercta { margin-top: 8px; }
.postid-2527 .undercta,
.editor-styles-wrapper.post-type-service .undercta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 8px; font-size: 13px; color: rgba(255, 255, 255, .78); }
/* Link trong undercta cần thắng rule link văn xuôi (12e, cùng specificity nhưng đứng SAU trong nguồn) */
.postid-2527 .kn-svc-con .undercta a,
.editor-styles-wrapper.post-type-service .undercta a { color: #fff; font-weight: 700; font-size: 15px; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }

/* (11p) `custom_css` khối (`#cd6b5f4`, `.trust` + `.t-item`) */
.postid-2527 .trust,
.editor-styles-wrapper.post-type-service .trust { background: #15244f; color: #fff; border-radius: 14px; display: grid; gap: 16px 20px; padding: 20px; position: relative; }
.postid-2527 .t-item,
.editor-styles-wrapper.post-type-service .t-item { font-size: 14px; line-height: 1.5; }
.postid-2527 .t-item b,
.editor-styles-wrapper.post-type-service .t-item b { display: block; color: #E8C878; font-size: 16px; margin-bottom: 2px; font-weight: 800; }

/* (11q) [vc_video] bọc-p: đã tổng quát hoá */

/* ══════════════════════════════════════════════════════════════════════════════ (12) THÂN BÀI SERVICE */

/* ── (12a) KHUNG: gộp padding hai lớp container của bản gốc (0 10px ngoài + 10px 0 trong) vào wrapper; khối */
body.single-service .kn-svc-body { padding: 10px; }

/* ── (12b) Các KHỐI KHUNG cách nhau 20px (nguyên bản là flex gap của container) */
body.single-service .kn-svc-body .kn-heading,
body.single-service .kn-svc-body .kn-svc-row,
body.single-service .kn-svc-body .kn-video-wrap,
body.single-service .kn-svc-body .kn-faq,
body.single-service .kn-svc-body .after-before,
.editor-styles-wrapper.post-type-service .kn-heading,
.editor-styles-wrapper.post-type-service .kn-svc-row,
.editor-styles-wrapper.post-type-service .kn-video-wrap,
.editor-styles-wrapper.post-type-service .kn-faq,
.editor-styles-wrapper.post-type-service .after-before { margin-block: 20px; }
/* [kn_share] tự in class `kn-svc-b` (dùng chung với markup thế hệ trước, mang margin ngang 10px) trong wrapper */
body.single-service .kn-svc-body .kn-share { margin: 20px 0; }
/* Khối đầu/cuối bỏ lề dọc (padding wrapper đã lo) */
body.single-service .kn-svc-body > :first-child { margin-top: 0; }
body.single-service .kn-svc-body > :last-child { margin-bottom: 0; }
/* Bài có wrapper `--top` (width_laptop) đứng ĐẦU/CUỐI thân bài: con đầu/cuối THẬT nằm trong wrapper */
body.single-service .kn-svc-body > .kn-svc-con--top:first-child > :first-child { margin-top: 0; }
body.single-service .kn-svc-body > .kn-svc-con--top:last-child > :last-child { margin-bottom: 0; }
/* Đoạn CTA (p do [support_button] render, có a[data-fancybox]) đứng NGAY TRƯỚC khối chia sẻ: bản gốc giữ lề */
body.single-service .kn-svc-body > p:has(> a[data-fancybox]) + .kn-share { margin-top: 36px; }
/* Biến thể cho bài có wrapper `--top` (con không còn là direct-child của body */
body.single-service .kn-svc-body > .kn-svc-con--top > p:has(> a[data-fancybox]) + .kn-share { margin-top: 36px; }
/* CTA giữa blob: bản gốc là `<p><p>CTA</p></p>` bị trình duyệt tách p RỖNG tự-gộp lề (16) đứng trước CTA; gap */
body.single-service .kn-svc-body p:has(> a[data-fancybox]) { margin-top: 16px; }
/* Ảnh đứng CUỐI một cụm văn xuôi, khối KHUNG theo sau: hộp widget bản gốc là flex item (formatting context độc */
body.single-service .kn-svc-body .wp-block-image + .kn-heading,
body.single-service .kn-svc-body .wp-block-image + .kn-heading-plain,
body.single-service .kn-svc-body .wp-block-image + .kn-svc-row,
body.single-service .kn-svc-body .wp-block-image + .kn-video-wrap,
body.single-service .kn-svc-body .wp-block-image + .kn-faq,
body.single-service .kn-svc-body .wp-block-image + .kn-share { margin-top: 36px; }
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-heading,
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-heading-plain,
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-svc-row,
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-video-wrap,
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-faq,
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption + .kn-share { margin-top: 40px; }

/* ── (12c) Heading WIDGET (class `kn-heading`) có line-height 1.25; h2 nằm trong văn xuôi giữ line-height của */
body.single-service .kn-svc-body .kn-heading,
.editor-styles-wrapper.post-type-service .kn-heading { line-height: 1.25; }

/* ── (12d) Video 16:9 (1.77777 đúng giá trị Elementor, không làm tròn; iframe phải height:100% vì aspect-ratio */
body.single-service .kn-svc-body .kn-video-wrap,
.editor-styles-wrapper.post-type-service .kn-video-wrap { aspect-ratio: 1.77777; }
body.single-service .kn-svc-body .kn-video-wrap iframe,
.editor-styles-wrapper.post-type-service .kn-video-wrap iframe { background-color: #000; border: none; display: flex; height: 100%; width: 100%; max-width: 100%; margin: 0; line-height: 1; }

/* ── (12e0) Văn xuôi canh đều: bản gốc canh bằng style nội tuyến từng đoạn, whitelist CLEAN đã giặt style đó */
/* Justify là THUỘC TÍNH PER-P theo inline style NGUỒN (474: legacy p không style = start) */
body.single-service .kn-svc-body p.kn-align-justify,
.editor-styles-wrapper.post-type-service p.kn-align-justify { text-align: justify; }
/* S6 đợt 3 — heading cũng canh đều theo style nguồn (17419: h2 justify ngắt 3 dòng @1024, bỏ là 2) */
body.single-service .kn-svc-body :is(h1, h2, h3, h4, h5, h6).kn-align-justify,
.editor-styles-wrapper.post-type-service :is(h1, h2, h3, h4, h5, h6).kn-align-justify { text-align: justify; }
/* li justify (style nguồn trên <li>, hoặc <p style=justify> duy nhất trong li */
body.single-service .kn-svc-body .kn-list-justify > li,
.editor-styles-wrapper.post-type-service .kn-list-justify > li { text-align: justify; }

/* ── (12e) LIÊN KẾT văn xuôi (gồm CTA [support_button]): giá trị hiệu lực của bản gốc */
/* S6 đợt 4 (565): NÚT widget `a.elementor-button` KHÔNG phải link văn xuôi */
body.single-service .kn-svc-body a:where(:not(.elementor-button)),
.editor-styles-wrapper.post-type-service a:where(:not(.elementor-button)) { color: #183271; font-size: 16px; font-weight: 700; text-decoration-line: underline; }
body.single-service .kn-svc-body .kn-faq-answer a,
.editor-styles-wrapper.post-type-service .kn-faq-answer a { color: inherit; font-size: inherit; font-weight: inherit; text-decoration: none; }
body.single-service .kn-svc-body .kn-share a.kn-share__btn,
.editor-styles-wrapper.post-type-service .kn-share a.kn-share__btn { color: #204397; font-size: 7px; font-weight: 400; text-decoration: none; }
body.single-service .kn-svc-body .kn-share a.kn-share__btn:hover { color: #1D3C88; }

/* ── (12f) Ảnh trong văn xuôi (`core/image`) */
body.single-service .kn-svc-body .wp-block-image figure,
body.single-service .kn-svc-body figure.wp-block-image { display: table; margin: 0 auto 1em; }
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption figure,
body.single-service .kn-svc-body figure.wp-block-image.kn-svc-caption { margin: 16px auto 20px; }
/* Bài mà post_content GỐC đã chứa block (duy nhất 875): live nạp wp-block-library nên `:where(figure){margin:0 */
body.single-service .kn-svc-body .wp-block-image.kn-svc-caption--wpblk figure,
body.single-service .kn-svc-body figure.wp-block-image.kn-svc-caption--wpblk { margin-top: 0; }
body.single-service .kn-svc-body .wp-block-image figcaption,
body.single-service .kn-svc-body figure.wp-block-image > figcaption { caption-side: bottom; display: table-caption; margin: 0; }
/* Ảnh trần KHÔNG align: bản gốc là <img> INLINE trong <p> */
body.single-service .kn-svc-body figure.wp-block-image:not(.kn-svc-caption) { padding-bottom: 6px; }
.editor-styles-wrapper.post-type-service figure.wp-block-image:not(.kn-svc-caption):not(.aligncenter):not(.alignleft):not(.alignright) { padding-bottom: 6px; }
.editor-styles-wrapper.post-type-service figure.wp-block-image { display: table; margin: 0 auto 1em; }
.editor-styles-wrapper.post-type-service figure.wp-block-image.kn-svc-caption { margin: 16px auto 20px; }
.editor-styles-wrapper.post-type-service figure.wp-block-image.kn-svc-caption--wpblk { margin-top: 0; }
/* Editor không nhận CSS của Element khai lại hình thức chú thích cho canvas */
.editor-styles-wrapper.post-type-service figure.wp-block-image > figcaption { background-color: #E9ECF5; caption-side: bottom; color: #292C2F; display: table-caption; font-size: 16px; font-style: italic; font-weight: 500; line-height: 1.25; margin: 0; padding: 10px 20px; }

/* ── (12g) Văn xuôi trong CANVAS EDITOR (frontend đã có CSS của Element single-service) */
.editor-styles-wrapper.post-type-service p { margin: 0 0 1em; }
.editor-styles-wrapper.post-type-service ul,
.editor-styles-wrapper.post-type-service ol { margin: 0; padding-left: 40px; }
.editor-styles-wrapper.post-type-service li { margin: 0; }

/* ── (12h) FAQ = GB Pro accordion (toàn cục như các component dùng chung khác: chỉ khớp DOM accordion nên vô */
/* flow-root: hộp accordion phải CHỨA lề dưới của mục cuối (10px) */
.kn-faq { display: flow-root; }
.kn-faq .gb-accordion__item { background-color: #F6F8F9; margin-bottom: .625rem; }
.kn-faq .gb-accordion__toggle { cursor: pointer; font-weight: 700; line-height: 1; padding: 16px; }
.kn-faq .kn-faq-label { color: var(--kn-primary); }
.kn-faq .gb-accordion__toggle-icon { color: var(--kn-primary); display: inline-block; float: left; line-height: 1; margin-inline-end: 16px; text-align: left; width: 1em; }
.kn-faq .gb-accordion__toggle-icon svg { height: 1em; width: 1em; margin-inline-start: -5px; fill: var(--kn-primary); }
.kn-faq .gb-accordion__item-open .gb-accordion__toggle-icon svg path { fill: var(--kn-secondary); }
.kn-faq .kn-faq-answer { padding: 0 16px 16px; }
.kn-faq .kn-faq-answer p:not([class*="kn-align-"]) { text-align: start; }  /* đoạn có lớp căn lề của converter (19370 justify) phải thắng */
.kn-native-page .kn-faq .gb-accordion__item:not(.gb-accordion__item-open) > .gb-accordion__content { display: none; }

/* ── (12i) Khối chỉ có ở bài native v2 dùng hạ tầng chia sẻ thế hệ trước */
body.single-service .kn-svc-body .kn-car,
.editor-styles-wrapper.post-type-service .kn-car { margin: 20px 0; }
/* Heading widget mà title chứa nguyên một thẻ heading: bản gốc render thành hộp widget (flex item, chứa lề dưới */
body.single-service .kn-svc-body .kn-heading-plain,
.editor-styles-wrapper.post-type-service .kn-heading-plain { display: flow-root; margin-block: 20px; }
/* Shortcode khối (before/after) nằm TRONG blob văn xuôi của bản gốc: quanh nó legacy LUÔN có cặp p-rỗng */
body.single-service .kn-svc-body .kn-svc-sc-inline,
.editor-styles-wrapper.post-type-service .kn-svc-sc-inline { margin-block: 0; }
/* Biến thể NGUỒN-BỌC-P (`kn-sc-pw`, converter gắn theo cờ pre-autop): chỉ nhánh này legacy có cặp p-rỗng */
body.single-service .kn-svc-body .kn-svc-sc-inline.kn-sc-pw,
.editor-styles-wrapper.post-type-service .kn-svc-sc-inline.kn-sc-pw { margin-block: 16px; }
/* p-rỗng artifact SAU output là `p:last-child` của widget khi shortcode đứng CUỐI blob rule nền mb 0 (54 */
body.single-service .kn-svc-body .kn-svc-run > .kn-svc-sc-inline.kn-sc-pw:last-child,
.editor-styles-wrapper.post-type-service .kn-svc-run > .kn-svc-sc-inline.kn-sc-pw:last-child { margin-bottom: 0; }
body.single-service .kn-svc-body .kn-svc-sc-inline .after-before { margin-block: 0; }

/* ── (12j) CONTAINER LỒNG THƯỜNG (bọc text-editor/video/carousel */
body.single-service .kn-svc-body .kn-svc-row--plain,
.editor-styles-wrapper.post-type-service .kn-svc-row--plain { padding-left: 10px; padding-right: 10px; }
body.single-service .kn-svc-body .kn-svc-row-in,
.editor-styles-wrapper.post-type-service .kn-svc-row-in { padding: 10px 0; }
body.single-service .kn-svc-body .kn-svc-row-in > :first-child,
.editor-styles-wrapper.post-type-service .kn-svc-row-in > :first-child { margin-top: 0; }
body.single-service .kn-svc-body .kn-svc-row-in > :last-child,
.editor-styles-wrapper.post-type-service .kn-svc-row-in > :last-child { margin-bottom: 0; }

/* Rác TinyMCE `div.mceTemp` (giữ-theo-parity, chuyển thể p cùng class): bản gốc là div KHÔNG lề, hộp đúng một */
body.single-service .kn-svc-body p.mceTemp,
.editor-styles-wrapper.post-type-service p.mceTemp { margin: 0; }

/* p CUỐI một container rác đã unwrap: bản gốc nó là:last-child của container ăn rule nền */
body.single-service .kn-svc-body p.kn-junk-last,
.editor-styles-wrapper.post-type-service p.kn-junk-last { margin-bottom: 0; }
/* `<div>` trần ruột inline (rác TinyMCE 7216) chuyển thể p: hộp block KHÔNG lề y bản gốc */
body.single-service .kn-svc-body p.kn-div-plain,
.editor-styles-wrapper.post-type-service p.kn-div-plain { margin: 0; }

/* ── (12n) BIẾN THỂ CỤM C/F/G/H/I ở bản NATIVE (S6 đợt 3 */
body.single-service .kn-svc-body .kn-svc-row > .kn-heading.kn-svc-row-head,
.editor-styles-wrapper.post-type-service .kn-svc-row > .kn-heading.kn-svc-row-head { margin: 10px 0 20px; }
/* (12n-b) `image_size` theo GIÁ TRỊ (thay biến inline `--kn-ib-imgw` của v1 */
.kn-image-box.kn-image-box--imgw-10 .elementor-image-box-img { width: 10%; }
.kn-image-box.kn-image-box--imgw-12 .elementor-image-box-img { width: 12%; }
.kn-image-box.kn-image-box--imgw-18 .elementor-image-box-img { width: 18%; }
/* (12n-c) `title_bottom_space` 4px (12902/17419/9879/10866) */
.kn-image-box.kn-image-box--tbs-4 .elementor-image-box-title { margin-bottom: 4px; }
/* (12n-d) Đoạn văn thụt `padding-left:40px` (style nội tuyến nguồn */
body.single-service .kn-svc-body p.kn-pl-40,
.editor-styles-wrapper.post-type-service p.kn-pl-40 { padding-left: 40px; }

/* ── (12k) WRAPPER-RUN: mỗi text-editor của bản gốc = một hộp `.kn-svc-run` */
body.single-service .kn-svc-body .kn-svc-run,
.editor-styles-wrapper.post-type-service .kn-svc-run { display: flow-root; margin-block: 20px; }
/* CTA [support_button] đứng CUỐI run: bên bản gốc nó KHÔNG BAO GIỜ là con cuối thật */
body.single-service .kn-svc-body .kn-svc-run > p:has(> a[data-fancybox]):last-child { margin-bottom: 16px; }
/* Trim đầu/cuối cho run đứng mép */
body.single-service .kn-svc-body > .kn-svc-run:first-child { margin-top: 0; }
body.single-service .kn-svc-body > .kn-svc-run:last-child { margin-bottom: 0; }
body.single-service .kn-svc-body .kn-svc-row-in > .kn-svc-run:first-child { margin-top: 0; }
body.single-service .kn-svc-body .kn-svc-row-in > .kn-svc-run:last-child { margin-bottom: 0; }

/* ── (12l) BẢNG trong thân bài */
body.single-service .kn-svc-body table,
.editor-styles-wrapper.post-type-service table { border-collapse: collapse; margin: 0 0 15px; }
body.single-service .kn-svc-body th,
body.single-service .kn-svc-body td,
.editor-styles-wrapper.post-type-service th,
.editor-styles-wrapper.post-type-service td { padding: 15px; border: 1px solid rgba(128, 128, 128, .5); font-size: .9em; line-height: 1.5; }
body.single-service .kn-svc-body th,
.editor-styles-wrapper.post-type-service th { background: rgba(128, 128, 128, .07); font-weight: 700; }
/* Con đầu/cuối trong run bỏ lề SÁT MÉP? KHÔNG */

/* ==== 13. PAGE native v2 — swap post_content 51 page (P4 GĐ2, từ; plan) Mirror Kit 3394 cho document `wp-page` (đo ==== */
/* `.e-con{min-width:0;width:var(--width)}` với `--width:100%` mặc định (frontend.min.css) */
/* `.entry-content.kn-canvas-root` LÀ gốc trang (page-canvas.php), không phải khối nội dung sau tiêu đề vô hiệu */
.kn-native-page .entry-content.kn-canvas-root { margin-top: 0; }
:where(.kn-native-page .kn-pg-con) { display: flex; flex-direction: column; padding-left: 10px; padding-right: 10px; width: 100%; min-width: 0; }
:where(.kn-native-page .kn-pg-con > .kn-pg-con-in) { display: flex; flex-direction: column; gap: 20px; width: 100%; max-width: min(100%, 1300px); margin-left: auto; margin-right: auto; padding-top: 10px; padding-bottom: 10px; flex: 1 1 auto; }
/* `flex: 1 1 auto` = frontend.min.css `.e-con.e-flex>.e-con-inner{flex-grow:1;flex-shrink:1;flex-basis:auto}` */
:where(.kn-native-page .kn-pg-con--full) { gap: 20px; padding-top: 10px; padding-bottom: 10px; }
/* ≤767 Elementor ép `--flex-wrap: wrap` cho mọi `.e-con.e-flex` (frontend.min.css) trừ khi element tự khai */
@media (max-width: 767px) { :where(.kn-native-page .kn-pg-con > .kn-pg-con-in, .kn-native-page .kn-pg-con--full) { flex-wrap: wrap; } }
.kn-native-page .kn-pg-run, .kn-native-page .kn-pg-run-in { display: flow-root; }  /* in = text-editor trong wrapper.kn-wg>.kn-wc khi có _margin (180) */
.kn-native-page .kn-pg-run--center, .kn-native-page .kn-pg-run-in--center { text-align: center; }
.kn-native-page .kn-pg-run--left, .kn-native-page .kn-pg-run-in--left { text-align: left; }
.kn-native-page .kn-pg-run--right, .kn-native-page .kn-pg-run-in--right { text-align: right; }
.kn-native-page .kn-pg-run--justify, .kn-native-page .kn-pg-run-in--justify { text-align: justify; }
/* heading widget: đo 7629 h1,5 */
.kn-native-page .kn-heading, .kn-native-page .kn-heading-in { margin: 0; line-height: 1.25; }  /* in = heading trong wrapper.kn-wg>.kn-wc (180) */
/* header_size=span (10299 `9da2433`): legacy span INLINE trong.elementor-widget-container hộp widget = line box */
.kn-native-page span.kn-heading { line-height: max(1.5rem, 1.25em); }
.kn-native-page .kn-align-center { text-align: center; }
.kn-native-page .kn-align-left { text-align: left; }
.kn-native-page .kn-align-right { text-align: right; }
.kn-native-page .kn-align-justify { text-align: justify; }

/* (12m) Căn lề theo dải — chỉ 4 tổ hợp có thật trong nguồn (khác thì assembler DỪNG); dải hẹp đặt sau */
@media (max-width:1366px){.kn-native-page .kn-align-laptop-center{text-align:center}}
@media (max-width:991px){.kn-native-page .kn-align-mobile_extra-center{text-align:center}}
@media (max-width:767px){.kn-native-page .kn-align-mobile-center{text-align:center}.kn-native-page .kn-align-mobile-justify{text-align:justify}}
/* theme-post-title (3128) + global#4421 "Page Title" (2474/6966/6967): 35px uppercase primary center margin 0 */
.kn-native-page .kn-pg-title { font-size: 35px; line-height: 1.25; text-transform: uppercase; color: var(--kn-primary); text-align: center; margin: 0; font-weight: 700; }
.kn-native-page .kn-pg-title--global { line-height: 1; }
/* image widget: `.elementor-widget-image{text-align:center}` + img inline-block vertical-align middle hộp = ảnh */
/* image widget = HỘP `.elementor-widget-image` (text-align theo `align`, mặc định center) chứa img inline-block */
:where(.kn-native-page .kn-pg-img-wrap) { text-align: center; }
:where(.kn-native-page .kn-pg-img-wrap--left) { text-align: left; }
:where(.kn-native-page .kn-pg-img-wrap--right) { text-align: right; }
:where(.kn-native-page .kn-pg-img) { display: inline-block; vertical-align: middle; height: auto; max-width: 100%; }
/* The builder renders an image link as an inline-block box, so a percentage width on the image resolves against */
:where(.kn-native-page .kn-pg-img-a) { display: inline-block; max-width: 100%; }
/* Văn xuôi trong.kn-pg-run: đo legacy 2213 ( el ul): ul margin 0/0 (reset của theme cũ), padding-left 40, li */
.kn-native-page .kn-pg-run ul, .kn-native-page .kn-pg-run ol { margin: 0; padding-left: 40px; }
.kn-native-page .kn-pg-run li { margin: 0; }
.kn-native-page .kn-list-justify > li, .kn-native-page .kn-ul-justify { text-align: justify; } /* kn-ul-justify: style justify nằm trên chính <ul> */
/* has-text-align-* của core (block-library) */
.kn-native-page .has-text-align-center { text-align: center; }
.kn-native-page .has-text-align-left { text-align: left; }
.kn-native-page .has-text-align-right { text-align: right; }

/* ── (13b) LỚP TIỆN ÍCH THEME CŨ dùng trong page (port NGUYÊN VĂN từ `themes/keangnamkorea/assets/css/main.css` */
.kn-native-page .py-normal { padding-top: 2.5rem; padding-bottom: 2.5rem; }        /* main.css:91 */
.kn-native-page .py-medium { padding-top: 2.8125rem; padding-bottom: 2.8125rem; }  /* main.css:92 */
.kn-native-page .text-white { color: #fff; }                                       /* main.css:95 */
.kn-native-page .flex-1 { flex: 1 !important; }                                    /* main.css:65 */
.kn-native-page .h-100 { height: 100%; }                                           /* main.css:77 */
.kn-native-page .strong-primary strong { color: var(--kn-primary); font-size: 1.125rem; }  /* main.css:99 */
.kn-native-page .title-inline-block, .kn-native-page .title-inline-block * { display: inline-block; }  /* main.css:128 */
.kn-native-page .container-ml-0 > .kn-pg-con-in { margin-left: 0; }                /* main.css:83 (đổi.e-con-inner.kn-pg-con-in) */
.kn-native-page .container-mr-0 > .kn-pg-con-in { margin-right: 0; }               /* main.css:84 */
/* Lớp font trên HEADING: live class nằm trên wrapper widget, theme viết */
.kn-native-page .kn-heading.font-extra-normal { font-size: 1.125rem; line-height: 1.3333; padding: 0; }
.kn-native-page .kn-heading.font-medium-extra { font-size: 2.3rem; line-height: 1.2; }
@media (max-width: 1500px) { .kn-native-page .kn-heading.font-medium-extra { font-size: 2.1rem; } }
@media (max-width: 1024px) { .kn-native-page .kn-heading.font-medium-extra { font-size: 2rem; } }
@media (max-width: 460px)  { .kn-native-page .kn-heading.font-medium-extra { font-size: 1.8rem; } }
/* `single-detail-content` (3114 text-editor `381a13f`) */
.kn-native-page .single-detail-content h4 { font-size: 1.625rem; margin: 0.9375rem 0; text-transform: initial; font-weight: 600; color: #1f4398; background: url('assets/images/bg-title.png') 0px 0.625rem no-repeat; background-size: 1.11538em; line-height: 1.9; }
@media (max-width: 1500px) { .kn-native-page .single-detail-content h4 { font-size: 24px; } }
.kn-native-page .single-detail-content ul li { list-style: circle; line-height: 1.5rem; }
/* blob `p style="padding-left:40px"` class kn-pl-40 (khuôn services 12n-d) */
.kn-native-page p.kn-pl-40 { padding-left: 40px; }
/* 180: `.space-container-left/right` (main.css:177-178, `--container` theme cũ = 82.5rem */
.kn-native-page .space-container-left { padding-left: max(1.25rem, calc((100vw - 82.5rem) / 2)); }
.kn-native-page .space-container-right { padding-right: max(1.25rem, calc((100vw - 82.5rem) / 2)); }
/* `title-inline-block` (main.css:128) đặt lên `.kn-wc` (wrapper widget-container) */
.kn-native-page .title-inline-block, .kn-native-page .title-inline-block * { display: inline-block; }

/* ── (13c) `size` của widget heading font-size cố định (port `elementor/assets/css/widget-heading.min.css`; đo */
.kn-native-page .kn-h-small { font-size: 15px; }
.kn-native-page .kn-h-medium { font-size: 19px; }
.kn-native-page .kn-h-large { font-size: 29px; }
.kn-native-page .kn-h-xl { font-size: 39px; }
.kn-native-page .kn-h-xxl { font-size: 59px; }

/* ── (13e) ICON-BOX (194/8559 "Tầm nhìn / Sứ mệnh / Giá trị cốt lõi") */
.kn-native-page .kn-ib-wrap { display: flex; flex-direction: row; align-items: center; }           /* position left + vertical middle */
.kn-native-page .kn-ib--top .kn-ib-wrap { flex-direction: column; align-items: normal; }             /* position top mặc định (PG5 19464/19911 không icon: đo column, align normal) */
/* 23834 `d5dda64` (không khai icon_space/icon_size): mặc định widget-icon-box */
:where(.kn-native-page .kn-ib-wrap) { gap: 15px; }
.kn-native-page .kn-ib-icon { flex: 0 0 auto; line-height: 0; }
:where(.kn-native-page .kn-ib-icon) { font-size: 50px; }
.kn-native-page .kn-ib-icon .gb-shape { display: inline-block; line-height: 1; text-align: center; font-size: inherit; vertical-align: top; }  /* .elementor-icon */
/* `vertical-align: top` bù lớp BỌC mà GB bắt phải có: legacy là `a.elementor-icon > svg` (svg display block) */
:where(.kn-native-page .kn-ib-icon .gb-shape) { color: #69727d; }
.kn-native-page .kn-ib-icon .gb-shape svg { display: block; width: 1em; height: 1em; position: relative; }                          /* .elementor-icon svg */
.kn-native-page .kn-ib-icon-a { display: inline-block; line-height: 1; color: inherit; text-decoration: none; }                     /* a.elementor-icon (link) */
.kn-native-page .kn-ib-title a { color: inherit; text-decoration: none; }                                                            /* .elementor-icon-box-title a{color:inherit} */
.kn-native-page .kn-ib-content { flex-grow: 1; width: 100%; }
.kn-native-page .kn-ib-desc { margin: 0; }
/* ≤767: widget tự mang `elementor-mobile-position-top` (mobile_default=top của control position) cột */
@media (max-width: 767px) {
	.kn-native-page .kn-ib-wrap { flex-direction: column; align-items: normal; }
	:where(.kn-native-page .kn-ib-wrap) { text-align: center; }
	/* `position_mobile left` (23834 d5dda64 */
	.kn-native-page .kn-ib--mleft .kn-ib-wrap { flex-direction: row; align-items: center; }
}

/* ── (13g) GOOGLE MAPS (180 `743ab5d`) */
.kn-native-page .kn-map { line-height: 0; }
.kn-native-page .kn-map iframe { width: 100%; max-width: 100%; height: 300px; margin: 0; border: 0; line-height: 1; }

/* Widget = 100% bề ngang cột (frontend.min.css `.e-con>.e-con-inner>.elementor-widget,.e-con>.elementor-widget{w */
/* PG4 (, đo 10299 `a601f1b`/`14678730`): trong container ROW widget là flex item `width:auto` (co theo nội dung */
/* 23834 (, đo `03b931a`/`999c3f4`/`269f9df` align-items center: nút 324,94 */
:where(.kn-native-page .kn-pg-con, .kn-native-page .kn-pg-con-in) { --kn-wgw: 100%; --kn-wgg: 0; --kn-wgcw: initial; }
:where(.kn-native-page .kn-pg-con-in, .kn-native-page .kn-pg-con--full) > :where(.kn-wg, .kn-pg-run, .kn-heading, .kn-heading-w, .kn-pg-img-wrap, .kn-ib, .kn-pg-title) { width: var(--kn-wgw, 100%); max-width: 100%; min-width: 0; }
:where(.kn-native-page .kn-pg-con-in, .kn-native-page .kn-pg-con--full) > :where(.kn-wg--grow) { flex-grow: var(--kn-wgg, 0); width: var(--kn-wgcw, var(--kn-wgw, 100%)); }
/* (13w) N-5 — ảnh khai control "Width" theo % (`.kn-pg-img-wrap--wpct`, assembler gắn): legacy để hộp widget */
:where(.kn-native-page .kn-pg-con-in, .kn-native-page .kn-pg-con--full) > .kn-pg-img-wrap--wpct { width: auto; }

/* ── (13h) LOOP-GRID VIDEO (166 `c33c18c` GB Query) + PHÂN TRANG */
.kn-native-page .kn-loop-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1024px) { .kn-native-page .kn-loop-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) { .kn-native-page .kn-loop-grid { grid-template-columns: repeat(1, 1fr); } }
.kn-native-page .kn-loop-item { min-width: 0; }
.kn-native-page .kn-vl-title { font-size: 1.125rem; line-height: 1.3333; font-weight: 700; margin: 0; }
.kn-native-page .kn-vl-title a { color: inherit; text-decoration: none; }
.kn-native-page .kn-loop-pag { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; text-align: center; }
.kn-native-page .kn-loop-pag .page-numbers { display: flex; justify-content: center; align-items: center; width: 2.25rem; height: 2.25rem; margin: 0.25rem; border: 0.125rem solid var(--kn-primary); background-color: #fff; color: var(--kn-primary); font-size: 1rem; font-weight: 800; border-radius: 50%; text-decoration: none; line-height: 1.5; }
.kn-native-page .kn-loop-pag .page-numbers.current, .kn-native-page .kn-loop-pag .page-numbers:hover, .kn-native-page .kn-loop-pag .page-numbers:focus { background-color: var(--kn-primary); color: #fff; border-color: var(--kn-secondary); }
.kn-native-page .kn-screen-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* Sticky sidebar (166 `379f80e`): CSS sticky cần html/body KHÔNG là scroll container (bẫy tools-bar */
html:has(body.kn-native-page) { overflow-x: clip; }
body.kn-native-page { overflow-x: clip; }

/* ── (13i) IMAGE-BOX page-mode (PG4; kn-page-widgets.php kn_pg_image_box) */
/* position LEFT (PG5 5251/5185 image-box-constant/offer-image-box): port widget-image-box.min.css */
/* Builder kéo lớp bọc trong của widget đầy ô grid/flex; thiếu nó thì thẻ có nền ngắn hơn ô */
.kn-native-page .kn-wg > .kn-wc, .kn-native-page .kn-pg-img-wrap > .kn-wc { height: 100%; }
/* `.kn-pg-img-wrap` (hộp widget ảnh) cũng cần: khi hộp bị flex kéo cao bằng anh em, legacy */
.kn-native-page .kn-pib--left .kn-pib-wrap { flex-direction: row; text-align: start; }
@media (min-width: 768px) { .kn-native-page .kn-pib--left .kn-pib-wrap { display: flex; } }
/* where = specificity 0 để styles per-block (0,1,0: text-align */
:where(.kn-native-page .kn-pib-wrap) { text-align: center; }                          /* .elementor-image-box-wrapper{text-align:center} */
.kn-native-page .kn-pib-img { display: inline-block; }
:where(.kn-native-page .kn-pib-img) { margin: 0; }                                    /* margin-bottom per-block (image_space, mặc định 15) thắng */
.kn-native-page .kn-pib-img img { display: block; line-height: 0; height: auto; max-width: 100%; }
/* Elementor widget-image-box.min.css @≤767: ảnh canh giữa (auto !important) + lề dưới 15 */
@media (max-width: 767px) {
  :where(.kn-native-page .kn-pib-img) { margin-bottom: 15px; }
  .kn-native-page .kn-pib-img { margin-left: auto !important; margin-right: auto !important; }
}
.kn-native-page .kn-pib-content { width: 100%; }
.kn-native-page .kn-pib-desc { margin: 0; }
/* ≤767: widget CSS `margin-left/right:auto!important` cho figure inline-block = 0 (đo: margin "0 0 15px" @390) */

/* ── (13j) VIDEO page-mode (kn_pg_video) */
.kn-native-page .kn-pg-video-c { overflow: hidden; transform: translateZ(0); position: relative; }
.kn-native-page .kn-pg-video-wrap { aspect-ratio: var(--kn-video-ar, 1.77777); position: relative; }
.kn-native-page .kn-pg-video-ov { cursor: pointer; text-align: center; }
/* INLINE (23834 a849d44, không lightbox): port widget-video.min.css */
.kn-native-page .kn-pg-video-ov--bg { position: absolute; inset: 0; background-position: 50%; background-size: cover; }
.kn-native-page .kn-pg-video-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.kn-native-page .kn-pg-video-ov img { aspect-ratio: var(--kn-video-ar, 1.77777); display: block; object-fit: cover; object-position: center center; width: 100%; height: auto; }
.kn-native-page .kn-pg-video-play { left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); }
.kn-native-page .kn-pg-video-play .gb-shape { display: inline-block; line-height: 1; }
/* PG5: `play_icon_size`/`play_icon_color` per-block trên.kn-pg-video-play (`%B% svg{width;height;fill}`, 14390 */
.kn-native-page .kn-pg-video-play svg { filter: drop-shadow(1px 0 6px rgba(0, 0, 0, .3)); opacity: .8; transition: all .5s; display: block; }
:where(.kn-native-page .kn-pg-video-play svg) { height: 100px; width: 100px; fill: #fff; }
.kn-native-page .kn-pg-video-ov:hover .kn-pg-video-play svg { opacity: 1; }

/* ── (13k) COUNTDOWN (kn_pg_countdown) */
.kn-native-page #countdown ul { list-style: none; margin-block: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: space-between; max-width: 400px; align-items: stretch; gap: 10px; margin-left: auto; margin-right: auto; }
.kn-native-page #countdown ul > li { min-width: 80px; flex: 1; background-color: #f3c37e; border-radius: 10px; padding: 10px; font-size: 18px; color: #103473; display: flex; flex-direction: column; justify-content: center; align-items: center; margin: 0; }
.kn-native-page #countdown ul > li > span { font-size: 44px; font-weight: bold; margin-bottom: 5px; line-height: 1; }

/* ── (13l) BĂNG CHUYỀN page-mode (kn_pg_carousel_gb: nested-carousel G1 */
.kn-native-page .kn-pg-icar-slide { margin: 0; text-align: center; }
.kn-native-page .kn-vlist .sld-item { display: block; }
.kn-native-page .kn-vlist a { display: block; position: relative; }
.kn-native-page .kn-vlist a img { display: inline; vertical-align: baseline; width: 100%; height: auto; max-width: 100%; }
.kn-native-page .kn-vlist .kn-play-over { position: absolute; width: 100%; height: 100%; top: 0; left: 0; line-height: 0; display: flex; align-items: center; justify-content: center; color: #ff0d0d; font-size: 30px; }
.kn-native-page .kn-vlist .kn-play-over .gb-shape { display: inline-block; line-height: 0; }
.kn-native-page .kn-vlist .kn-play-over svg { height: 1em; width: 1.125em; fill: currentColor; display: block; }  /* fab fa-youtube 576/512 = 33.75×30 @30px */
.kn-native-page .kn-pg-car .gb-carousel-item { min-width: 0; }

/* ── (13m) BUTTON page-mode (kn_pg_button) */
/* where = specificity 0 để styles per-block (màu/hover/typo/padding/radius/border, 0,1,0) THẮNG Kit (132 #12 */
.kn-native-page .kn-pg-btn { display: inline-block; text-align: center; text-decoration: none; transition: all .3s; }
:where(.kn-native-page .kn-pg-btn) { line-height: 1; font-size: 15px; font-weight: 700; padding: 10px 20px; border-radius: 5px; border: none; background-color: var(--kn-secondary); color: #292C2F; fill: #292C2F; }  /* line-height cũng per-block (bg-register 1.6667em 43.67 cao) */
:where(.kn-native-page .kn-pg-btn:hover, .kn-native-page .kn-pg-btn:focus) { background-color: var(--kn-primary); color: #fff; }
.kn-native-page .kn-pg-btn-in { display: flex; justify-content: center; gap: 5px; }                  /* .elementor-button-content-wrapper{gap:5px} */
.kn-native-page .kn-pg-btn-text { flex-grow: 1; order: 10; display: inline-block; }
/* Icon FA nội tuyến (23834 f50c8a5 `far fa-comment-alt` 18×18 @18px trước chữ) */
.kn-native-page .kn-pg-btn-icon { display: flex; align-items: center; }
.kn-native-page .kn-pg-btn-icon .gb-shape { display: inline-block; line-height: 0; }
.kn-native-page .kn-pg-btn-icon svg { display: block; width: 1em; height: 1em; }

/* ── (13n) TOGGLE page-mode (kn_pg_toggle gb-pro/accordion.kn-faq, CSS chung `.kn-faq` mục 12) */
.kn-native-page .kn-pg-faq .kn-faq { display: flow-root; }

/* ── (13o) LỚP TIỆN ÍCH THEME CŨ trên widget thân bài PG4 (5827 custom_css + main.css, port NGUYÊN VĂN đổi */
.kn-native-page .kn-pib.hi-tect_imgmove { margin-top: 80px; }                                            /* 5827:1 */
.kn-native-page .kn-pib.hi-tect_imgmove .kn-pib-img { position: relative; margin-top: -100px !important; }  /* 5827:2 */
.kn-native-page .kn-pib.hi-tect-box-icon ul { padding: 0; margin: 0; text-align: left; }                   /* 5827:3 */
.kn-native-page .kn-pib.hi-tect-box-icon ul li { position: relative; padding-left: 0; font-size: 14px; display: flex; margin: 10px auto; min-height: 42px; }  /* 5827:4 */
.kn-native-page .kn-pib.hi-tect-box-icon ul li:before { content: ""; display: inline-flex; width: 28px; height: 28px; background-image: url('/wp-content/uploads/2024/04/icon-list.png'); background-size: contain; background-repeat: no-repeat; margin-right: 5px; min-width: 28px; }  /* 5827:5 — live: WP Rocket lazy-bg không nạp được ảnh cho,before (đo computed none) build HIỆN icon */
.kn-native-page .kn-pib.image-box_innerpd .kn-pib-content { padding: 15px; }                              /* 5827:15 */
.kn-native-page .kn-pib.box-image-over .kn-pib-img { display: flex; justify-content: center; padding-bottom: 8px; }  /* 5827:96 */
.kn-native-page .kn-pib.box-image-over .kn-pib-wrap .kn-pib-img img { margin-top: -3.125rem; }             /* main.css:235 */
.kn-native-page .kn-pib.h-100 { height: 100%; }                                                            /* main.css:77 (đã có.h-100 chung; lặp cho rõ) */
@media (max-width: 480px) { .kn-native-page .sm-full { max-width: 100%; width: 100%; } }                 /* 5827:32 */
.kn-native-page .menu-hiden { display: none !important; }                                                    /* 5827:88 — Q3 */
/* main.css:46 `.big-title.elementor-heading-title{font-size}` */
.kn-native-page .kn-wc.big-title > .kn-heading-in { font-size: inherit; }

/* ── (13d) ẨN THEO DẢI `hide_<dải>` (Elementor ghi `hidden-<dải>`) */
@media (max-width: 767px) { .kn-native-page .kn-hide-mobile { display: none; } }
@media (min-width: 768px) and (max-width: 991px) { .kn-native-page .kn-hide-mobile_extra { display: none; } }
@media (min-width: 992px) and (max-width: 1024px) { .kn-native-page .kn-hide-tablet { display: none; } }
@media (min-width: 1025px) and (max-width: 1366px) { .kn-native-page .kn-hide-laptop { display: none; } }
@media (min-width: 1367px) { .kn-native-page .kn-hide-desktop { display: none; } }

/* ==== 14. PAGE TEMPLATES landing (page-landing.php) + canvas (page-canvas.php) ==== */
html:has(body.page-template-page-landing-php),
html:has(body.page-template-page-canvas-php) { overflow-x: clip; }
body.page-template-page-landing-php,
body.page-template-page-canvas-php { overflow-x: clip; }
body.page-template-page-landing-php > .entry-content,
body.page-template-page-canvas-php > .entry-content { margin: 0; padding: 0; width: 100%; }

/* ── (14b) HEADER-IN-CONTENT của 22 landing K2 (container `header-landing`): số đo 7 dải `` §2, CSS port từ */
/* sticky: legacy = JS `position:fixed` + spacer trên desktop+laptop (`sticky_on`), ≤1024 relative */
@media (min-width: 1025px) { .kn-native-page .kn-sticky-dl { position: sticky; top: 0; } }
.kn-native-page .kn-lp-header .kn-pg-con { position: relative; }   /* `.e-con{position:relative}` */
/* logo (theme-site-logo): ảnh LUÔN 210×63.34 (`min-width:210px` thắng max-width 200/space) trong hộp 210 co */
.kn-native-page .kn-lp-logo { width: 210px; min-width: 0; text-align: left; }
.kn-native-page .kn-lp-logo a { display: inline-block; }
.kn-native-page .kn-lp-logo img { width: 210px; min-width: 210px; max-width: none; height: auto; vertical-align: middle; }
/* polylang switcher (`[kn_lang_switcher]`): a 34×34 tròn, ảnh Polylang bị `,after` cờ theme phủ */
.kn-native-page .wget-lang-switcher ul { list-style: none; padding: 0; margin: 0; }
.kn-native-page .wget-lang-switcher ul li.lang-item a { padding: 0; width: 2.125rem; height: 2.125rem; display: block; border-radius: 50%; overflow: hidden; position: relative; }
.kn-native-page .wget-lang-switcher ul li.lang-item a img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center; }
.kn-native-page .wget-lang-switcher ul li.lang-item a:after { content: ''; background-image: url('assets/images/vietnam-flag-icon.svg'); position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 1 !important; }
.kn-native-page .wget-lang-switcher ul li.lang-item a[lang="en-US"]:after { background-image: url('assets/images/en_flag_icon.png'); }
/* Header toàn site (Block Element, menu `gb-menu-knhdr14`): cùng khuôn cờ 34×34 tròn của theme cũ — ảnh cờ 16×11 Polylang
 * (inline width/height) phủ bằng `:after` cờ theme; `#kn-header` để thắng CSS block in sau style.css. */
#kn-header .gb-menu-knhdr14 .menu-item .gb-menu-link { border-radius: 50%; position: relative; }
#kn-header .gb-menu-knhdr14 .menu-item .gb-menu-link img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center; }
#kn-header .gb-menu-knhdr14 .menu-item .gb-menu-link:after { content: ''; background-image: url('assets/images/vietnam-flag-icon.svg'); position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 1 !important; }
#kn-header .gb-menu-knhdr14 .menu-item .gb-menu-link[lang="en-US"]:after { background-image: url('assets/images/en_flag_icon.png'); }
/* hamburger (widget icon `fas fa-bars` SVG nội tuyến, không Font Awesome): a inline-block lh 1, svg 1em = 34 */
.kn-native-page .kn-lp-ham { text-align: center; }
.kn-native-page .kn-lp-ham-a { display: inline-block; line-height: 1; text-decoration: none; }
.kn-native-page .kn-lp-ham-a .gb-shape { display: block; line-height: 1; }
.kn-native-page .kn-lp-ham-a svg { width: 1em; height: 1em; display: block; fill: currentColor; }
/* nav (icon-list view inline, space_between 20 = margin ±10): ul flex wrap center; a flex 100% (link */
.kn-native-page .kn-lp-nav { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin: 0 -10px; padding: 0; }
.kn-native-page .kn-lp-nav-item { margin: 0 10px; padding: 0; display: flex; align-items: center; }
/* 132 #15b: typography (14/700/uppercase) là per-block `%B% >.kn-lp-nav-item > a` (y Elementor `li > a`), ul/li */
.kn-native-page .kn-lp-nav-item a { display: flex; align-items: center; width: 100%; padding: 0; color: inherit; text-decoration: none; }
/* nút header: luật chung `.kn-pg-btn` (mục 13m */
/* #menu-mobile ≤1024 = overlay + panel trượt (main.css:318-324 nguyên văn, đổi class Elementor kn-lp-*); JS */
@media (max-width: 1024px) {
	.kn-native-page #menu-mobile { padding: 0 !important; background-color: #403635bf; position: fixed; display: none; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; z-index: 1999; }
	.kn-native-page #menu-mobile > div { background-color: var(--kn-primary); color: #fff; max-width: min(18.75rem, 90vw); height: 100vh; overflow: auto; transform: translateX(-100%); transition: 0.5s; }
	.kn-native-page #menu-mobile .kn-lp-nav { padding-top: 1.25rem; display: flex; flex-direction: column; }
	.kn-native-page #menu-mobile .kn-lp-nav a { padding: 0.625rem 1.25rem; }
	.kn-native-page #menu-mobile.show { display: block; opacity: 1; }
	.kn-native-page #menu-mobile.open > div { transform: translateX(0); transition: 0.5s; }
	.kn-native-page #menu-mobile .kn-pg-btn { color: var(--kn-primary) !important; background-color: var(--kn-secondary) !important; }  /* per-block styles (0,1,0) của nút tel là primary/trắng */
}

/* ==== 15. Canvas pages (template page-canvas.php): widget rules that only these pages use ==== */
/* (15a) Icon list, traditional layout, centered: the icon box is the shape block's own span (an inline Element cannot */
.kn-native-page .kn-pg-il-list { list-style: none; margin: 0; padding: 0; }
.kn-native-page .kn-pg-il-item { margin: 0; padding: 0; position: relative; display: flex; align-items: center; font-size: inherit; }
/* Row = `a` (item has a link) or `span.kn-pg-il-row` (no link); block styles per instance (svg size/margin */
:where(.kn-native-page .kn-pg-il-item) > .kn-pg-il-row, :where(.kn-native-page .kn-pg-il-item) > a { display: flex; align-items: center; width: 100%; font-size: inherit; text-decoration: none; }
.kn-native-page .kn-pg-il--center { text-align: center; }
:where(.kn-native-page .kn-pg-il--center) .kn-pg-il-item, :where(.kn-native-page .kn-pg-il--center .kn-pg-il-item) > * { justify-content: center; }
:where(.kn-native-page .kn-pg-il-item) .gb-shape { display: flex; position: relative; line-height: 0; border-radius: 100%; border: 1px solid #204397; padding: 5px 3px; margin-right: 10px; }
:where(.kn-native-page .kn-pg-il-item .gb-shape) svg { display: block; width: var(--kn-il-isz, 1em); height: var(--kn-il-isz, 1em); margin: 0 calc(var(--kn-il-isz, 1em) * .25) 0 0; }  /* lề = cỡ icon ×.25 (Elementor `--e-icon-list-icon-size`), KHÔNG phải.25em của font hộp */
:where(.kn-native-page .kn-pg-il-item .gb-shape) + .kn-pg-il-tx { align-self: center; padding-inline-start: 5px; }
/* (15b) Page 13353: per-element custom CSS of the form container, scoped to the page because the builder only loaded */
.page-id-13353 .pr-form-style label, .page-id-13353 .pr-form-style .ginput_container { color: #fff !important; }
.page-id-13353 .pr-form-style button { display: flex; align-items: center; justify-content: center; border-radius: 0.5rem; padding: 0.625rem 1.25rem; min-width: 140px; border: solid 0.125rem #fcd207; color: #1F4396; background: #fcd207; }
.page-id-13353 .pr-form-style .gform_confirmation_message { color: #fff; }
/* (15c) Gravity Forms `tiktok-form` and its `tiktok-form-wrap` parent (old theme main.css) */
.kn-native-page .tiktok-form-wrap { background-image: linear-gradient(28deg, rgb(17, 19, 105) 0%, rgb(17, 79, 195) 50%, rgb(17, 19, 105) 100%); }
.kn-native-page .tiktok-form .gform_wrapper.gravity-theme .gform_footer .gform_button, .kn-native-page .tiktok-form .gform_wrapper.gravity-theme .gform_footer .gform_button:hover, .kn-native-page .tiktok-form .gform_wrapper.gravity-theme .gform_footer .gform_button:focus { background-image: linear-gradient(0deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%); font-size: 20.634px; margin-bottom: 0; color: rgb(17, 77, 192); font-weight: bold; text-transform: uppercase; line-height: 1.2; text-align: center; border: none; width: 100%; justify-content: center; }
/* (15d) Image box variant `tiktok-content-box` (old theme main.css, builder selectors renamed to.kn-pib-*): content */
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-content { padding: 15px; background-color: #fff; margin-top: -80px; display: flex; flex-direction: column; justify-content: flex-start; }
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-title { border-style: solid; border-width: 3px; border-color: rgb(255, 255, 255); border-radius: 27px; background-color: rgb(31, 67, 152); font-size: 24px; color: #fecf7e; font-weight: bold; text-transform: uppercase; line-height: 2.516; text-align: center; width: 100%; max-width: 70%; margin-left: auto; margin-right: auto; margin-bottom: -30px; position: relative; z-index: 2; }
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-desc { padding: 40px 30px 30px; border-radius: 19px; background-color: rgb(31, 67, 152); font-size: 24px; color: rgb(255, 255, 255); line-height: 1.182; text-align: center; border: 2px solid; border-color: #e4ad5d; z-index: 1; position: relative; margin-bottom: 0; }
@media screen and (max-width: 575px) {
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-title { font-size: 19px; }
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-desc { padding: 40px 20px; font-size: 20px; }
}
@media screen and (max-width: 460px) {
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-content { padding: 5px; margin-top: -50px; }
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-title { font-size: 13px; margin-bottom: -15px; border: 1px solid; }
.kn-native-page .kn-pib.tiktok-content-box .kn-pib-desc { border: 1px solid; padding: 20px 10px; font-size: 13px; }
}
/* (15e) WordPress [gallery], 2 columns, 20px spacing: mirrors the core geometry (negative margin on the grid, padding */
.kn-native-page .kn-pg-gal-grid { display: flex; flex-wrap: wrap; margin: 0 calc(var(--kn-gal-sp, 20px) * -1) calc(var(--kn-gal-sp, 20px) * -1) 0; }
.kn-native-page .kn-pg-gal-item { box-sizing: border-box; width: 50%; max-width: 50%; margin: 0; padding: 0 var(--kn-gal-sp, 20px) var(--kn-gal-sp, 20px) 0; text-align: center; }
.kn-native-page .kn-pg-gal-item > a { display: block; }
.kn-native-page .kn-pg-gal-img { display: block; width: 100%; height: auto; }
/* Gallery without the 2-column helper class: the builder's own stylesheet drops to one column below 480px */
@media (max-width: 479px) { .kn-native-page .kn-pg-gal--lb .kn-pg-gal-item { width: 100%; max-width: 100%; } }
/* Khuôn 4 (11865/16895): 3 cột */
@media (min-width: 768px) { .kn-native-page .kn-pg-gal--c3 .kn-pg-gal-item { width: 33.33%; max-width: 33.33%; } }
/* (15f) Old theme utility classes that survive inside rich text */
.kn-native-page .color-primary { color: var(--kn-primary); }
.kn-native-page .color-second { color: var(--kn-secondary); }
.kn-native-page .text-uppercase { text-transform: uppercase; }
/* (15g) Site logo widget outside the header: centered, image width = the widget's `space` (200px), no min-width */
.kn-native-page .kn-pg-logo-d { text-align: center; }
.kn-native-page .kn-pg-logo-d > a { display: inline-block; }
.kn-native-page .kn-pg-logo-d-img { display: inline-block; width: 200px; max-width: 200px; height: auto; vertical-align: middle; }

/* (15h) Page 23834: body cố định 480px căn giữa ở mọi dải (page custom_css, class trên body */
body.kn-native-page.page-id-23834 { max-width: 480px; margin: 0 auto; }

/* (15i) GF `input-bg-white` (page custom_css): ô nhập trắng thay #E9ECF5 chung; GF nối `_wrapper` vào lớp form 32 (2 */
.kn-native-page .gform_wrapper.gravity-theme.input-bg-white_wrapper .gform_body .gfield input { background: #fff; }

/* (15i-1) GF `form-side-bar_wrapper` (main.css:120–121) ĐÃ port toàn cục (nút gửi navy gradient, hover vàng) */

/* (15k) Heading 9eb65b1 "GƯƠNG MẶT VẪN LÀ BẠN…" (per-element custom_css + `_background_image` + `_padding`, cả bản */
.page-id-23834 .kn-cc-9eb65b1 { padding: 15px; background-image: url('/wp-content/uploads/2026/05/bg-guongmat.png'); background-position: center center; background-repeat: no-repeat; background-size: contain; }

/* (15l) `ul.dot-list` (Customizer CSS:176–178; html 9225314 / 0e58d0c / f1c8a60): chấm tròn 10px #1b4bb8, li flex đầu */
.kn-native-page ul.dot-list { margin: 0; list-style: none; padding-left: 0; }  /* `margin: 0` y `.check-list`: GP đặt `ul{margin:0 0 1.5em 3em}` thiếu nó thì ul thụt 48 và dôi 24 dưới, chữ */
.kn-native-page ul.dot-list li { position: relative; display: flex; align-items: flex-start; gap: 10px; }
.kn-native-page ul.dot-list li::before { content: ""; background: #1b4bb8; display: inline-flex; width: 10px; height: 10px; border-radius: 100%; min-width: 10px; position: relative; top: 5px; }

/* (15m) `ul.check-list` (Customizer CSS:179–181; html 53be87c / 1aba063 / d1f6238 / 6a74f58) + `.check-white` (page */
.kn-native-page ul.check-list { margin: 0; padding: 0; list-style: none; }
.kn-native-page ul.check-list li { position: relative; padding-left: 25px; }
.kn-native-page ul.check-list li::before { content: "✓"; position: absolute; left: 0; top: 2px; font-size: 15px; font-weight: 700; color: #2563eb; }
.kn-native-page ul.check-list.check-white li::before { color: #fff; }

/* (15n) `div.process-list` (page custom_css; html 4ab299b, 5 bước trái/phải xen kẽ): cột bước, ảnh tròn 90 viền trắng */
.kn-native-page .process-list { display: flex; flex-direction: column; gap: 24px; padding: 16px 12px; background: #dfe5f5; }
.kn-native-page .process-list__item { position: relative; display: flex; align-items: center; min-height: 84px; }
.kn-native-page .process-list__content { width: 100%; padding: 16px 18px; border-radius: 20px; background: #fff; }
.kn-native-page .process-list__image { position: absolute; top: 50%; width: 90px; height: 90px; border: 4px solid #fff; border-radius: 50%; overflow: hidden; transform: translateY(-50%); z-index: 2; }
.kn-native-page .process-list__image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.kn-native-page .process-list__item--left { padding-left: 50px; }
.kn-native-page .process-list__item--left .process-list__image { left: 0; }
.kn-native-page .process-list__item--left .process-list__content { padding-left: 50px; }
.kn-native-page .process-list__item--right { padding-right: 50px; }
.kn-native-page .process-list__item--right .process-list__image { right: 0; }
.kn-native-page .process-list__item--right .process-list__content { padding-right: 50px; }
.kn-native-page .process-list__title { margin: 0 0 4px; font-size: 14px; line-height: 1.3; font-weight: 700; color: #102a72; }
.kn-native-page .process-list__desc { margin: 0; font-size: 13px; line-height: 1.4; color: #111; }
/* (15p) Image widget: caption figure (`figure > [a >] img + figcaption`, builder default 10px 20px / 500 / */
.kn-native-page .kn-pg-img-fig { margin: 0; display: block; }
:where(.kn-native-page .kn-pg-img-cap) { display: block; padding: 10px 20px; font-weight: 500; line-height: 1.25; margin: 0; }
/* `:where` is required here: the caption's top spacing is a per-image control, emitted as a block style whose */
.kn-native-page .kn-pg-img-abs { position: absolute; width: auto; }
/* `width: auto` mirrors `.elementor-absolute`: an absolutely positioned widget box does not take the */

/* ==== 16. Landing pages (page-landing.php): theme classes used by the PG5 pages, ported from the old theme ==== */
/* (16a) image-box-constant / offer-image-box: ảnh trái – chữ phải, canh giữa dọc */
.kn-native-page .kn-pib.image-box-constant .kn-pib-wrap,
.kn-native-page .kn-pib.offer-image-box .kn-pib-wrap { display: flex; flex-direction: row; align-items: center; text-align: left; }
.kn-native-page .kn-pib.image-box-constant .kn-pib-img { margin-right: 0.9375rem !important; margin-bottom: 0 !important; width: auto !important; }
/* !important is not decoration: the builder's own mobile rule centres the figure with */
.kn-native-page .kn-pib.image-box-constant .kn-pib-content,
.kn-native-page .kn-pib.offer-image-box .kn-pib-content { flex: 1; }

/* (16b) offer-image-box: ảnh trong đĩa tròn 5em viền primary, tiêu đề chữ gradient vàng */
.kn-native-page .kn-pib.offer-image-box .kn-pib-img { margin-right: 1.5rem !important; margin-bottom: 0 !important; width: 5em !important; height: 5em; border-radius: 100%; overflow: hidden; border: solid 0.25rem #1f4398; display: flex; justify-content: center; align-items: center; background-color: #fff; }
.kn-native-page .kn-pib.offer-image-box .kn-pib-title { background: linear-gradient(to right, #D0A868 0%, #A48042 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* (16c) certifice-image-box: logo chứng nhận cao cố định 2.375rem */
.kn-native-page .kn-pib.certifice-image-box .kn-pib-img img { width: auto; height: 2.375rem; }

/* (16d) rbc-quytrinh (5251/5185) + nep-nhan-quy-trinh (14390): ảnh bước viền phải xanh, viền dưới không màu (= */
.kn-native-page .kn-pib.rbc-quytrinh .kn-pib-img img,
.kn-native-page .kn-pib.nep-nhan-quy-trinh .kn-pib-img img { border-right: solid 4px #1c52c3; border-bottom: 4px solid; }
.kn-native-page .kn-pib.rbc-quytrinh .kn-pib-title { font-size: 1.25rem; }
/* nep-nhan-quy-trinh title = khung viền trắng */
.kn-native-page .kn-pib.nep-nhan-quy-trinh .kn-pib-title { border: solid 1px #fff; display: flex; justify-content: center; align-items: center; padding: 10px 20px; }

/* (16e) border-camtion (14390, 4 ảnh có chú thích): hộp ảnh gọn 270 giữa, chú thích đóng khung */
.kn-native-page .kn-pg-img-wrap.border-camtion > figure { max-width: 270px; margin: 0 auto; }
.kn-native-page .kn-pg-img-wrap.border-camtion figcaption { border: solid 1px #fff; display: flex; padding: 10px 20px; justify-content: center; align-items: center; min-height: 70px; margin-top: 20px; border-radius: 10px; }

/* (16f) caption-overimg (19464/19911, 4 ảnh): chú thích phủ đáy ảnh */
.kn-native-page .kn-pg-img-wrap.caption-overimg figure { position: relative; }
.kn-native-page .kn-pg-img-wrap.caption-overimg figcaption { position: absolute; width: 100%; bottom: 0; left: 0; padding: 15px; display: block; }

/* (16g) step-six (container 19464/19911): dòng đậm đầu mô tả image-box tách thành tiêu đề phụ */
.kn-native-page .step-six .kn-pib-desc strong { display: block; margin-bottom: 10px; }

/* (16h) style-list (text-editor 14390): ul không bullet, li flex có chấm tròn 10px màu chữ */
.kn-native-page .style-list ul { padding-left: 0; list-style: none; margin-bottom: 1em; }
.kn-native-page .style-list ul li { display: flex; margin-bottom: 2px; align-items: center; }
.kn-native-page .style-list ul li::before { content: ""; display: inline-flex; width: 10px; height: 10px; background: currentColor; border-radius: 100%; margin-right: 5px; }

/* (16i) giai-phap-xnn (container 14390) + icon-expo / icon-meso (2 icon-list con): icon-list KHÔNG icon, li vẽ ảnh */
.kn-native-page .giai-phap-xnn .kn-pg-il-item::before { content: ""; display: inline-flex; width: 30px; height: 30px; min-width: 30px; margin-right: 10px; background-image: url('assets/images/icon-reborn.png'); background-size: contain; background-repeat: no-repeat; }
.kn-native-page .giai-phap-xnn .kn-pg-il.icon-expo .kn-pg-il-item::before { background-image: url('assets/images/icon-exo.png'); }
.kn-native-page .giai-phap-xnn .kn-pg-il.icon-meso .kn-pg-il-item::before { background-image: url('assets/images/icon-meso.png'); }

/* (16j) wrinkles-form.form-style-light (shortcode GF 14390, form 24 `form-side-bar_wrapper`): nhãn + ô captcha trắng */
.kn-native-page .wrinkles-form.form-style-light .gform_wrapper.gravity-theme .gfield--type-math_captcha .ginput_container,
.kn-native-page .wrinkles-form.form-style-light .gform_wrapper.gravity-theme .gfield--type-math_captcha .gfield_label { color: #fff; }

/* (16k) has-arrow (toggle 14390): tiêu đề flex, mũi tên ảnh 20×20 đẩy sang phải, xoay -90° khi đóng, thẳng khi mở */
.kn-native-page .has-arrow .kn-faq .gb-accordion__toggle { display: flex; align-items: center; }
.kn-native-page .has-arrow .kn-faq .gb-accordion__toggle::after { content: ""; display: flex; width: 20px; height: 20px; background-image: url('assets/images/arrow-down-tg.png'); background-size: contain; background-repeat: no-repeat; background-position: center; margin-left: auto; transform: rotate(-90deg); }
.kn-native-page .has-arrow .kn-faq .gb-accordion__item-open > .gb-accordion__toggle::after { transform: none; }

/* (16l) cb-icon-list (icon-list 19460): mỗi mục là thẻ nền primary bo 10, icon 30px, chữ in hoa */
.kn-native-page .cb-icon-list .kn-pg-il-list, .kn-native-page .cb-list-icon .kn-pg-il-list { display: flex; flex-direction: column; gap: 10px; }
.kn-native-page .cb-icon-list .kn-pg-il-item, .kn-native-page .cb-list-icon .kn-pg-il-item { background: #1f4396; margin: 0; padding: 10px 15px; border-radius: 10px; color: #fff; }
.kn-native-page .cb-icon-list .kn-pg-il-item .gb-shape, .kn-native-page .cb-list-icon .kn-pg-il-item .gb-shape { --kn-il-isz: 30px; }  /* đặt CỠ ICON để lề phải 7.5 theo đúng công thức hộp 45.5 = legacy */
.kn-native-page .cb-icon-list .kn-pg-il-tx, .kn-native-page .cb-list-icon .kn-pg-il-tx { position: relative; text-transform: uppercase; }

/* (16m) cb-trehoa-wrap (container 19460): nền primary chỉ phủ 80% bên phải, bo 20; ≤768 phủ hết */
.kn-native-page .kn-pg-con.cb-trehoa-wrap { position: relative; background-color: transparent; }
.kn-native-page .kn-pg-con.cb-trehoa-wrap::before { content: ""; position: absolute; top: 0; bottom: 0; right: 0; left: auto; width: 80%; border-radius: 20px; background-color: var(--kn-primary, #204397); }
.kn-native-page .kn-pg-con.cb-trehoa-wrap > * { position: relative; }
@media (max-width: 768px) {
  .kn-native-page .kn-pg-con.cb-trehoa-wrap::before { width: 100%; }
}

/* (16n) cb-numlist (icon-list 19460): số thứ tự đậm 25px trong chữ */
.kn-native-page .cb-numlist .kn-pg-il-tx span { font-weight: bold; font-size: 25px; }

/* (16o) kols_list_video + dots_out (video-list 14390/19460/19464/19911): main.css:228–229, 384, 422 */
.kn-native-page .kn-vlist.kols_list_video.dots_out .gb-carousel-pagination { bottom: -25px; }

/* (16v) `bg-register` nút gradient */
.kn-native-page .kn-pg-btnw.bg-register .kn-pg-btn {
  background-image: linear-gradient(90deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%);
  background-image: -webkit-linear-gradient(0deg, rgb(161, 125, 63) 0%, rgb(247, 205, 139) 26%, rgb(254, 207, 126) 53%, rgb(247, 205, 139) 82%, rgb(161, 125, 63) 100%);
}

/* (16p) KHÔNG port (ghi để đóng tập lớp PG5): – `bg-register`: ĐÃ PORT ở 16v (quyết định cũ dựa trên 6 trang PG5 */

/* (16q) Danh sách KOL (tabs GB Pro thay widget dse-kols-list, luật kn_pg5_kols_list): 2 cột, thumb tròn, tên/chức vụ */
.kn-native-page .kn-kols { display: flex; flex-wrap: wrap; flex-direction: row-reverse; }
.kn-native-page .kn-kols > .gb-tabs__items { box-sizing: border-box; padding: 0 10px; width: 70%; }
.kn-native-page .kn-kols > .gb-tabs__menu { box-sizing: border-box; padding: 0 10px; width: 30%; display: flex; flex-wrap: wrap; align-content: flex-start; justify-content: center; }
/* Source nests the thumbs in an inner wrapper that shrinks to its own height, so its `align-content:center` */
.kn-native-page .kn-kols .gb-tabs__item { position: relative; }
/* Definite width, not max-width: the thumb <img> is lazy and has no intrinsic size until it loads, so a shrink-to-fit item
   collapses to its padding (10px) and the whole thumb row reflows on load — a tap could land on a neighbour. Live keeps the
   size steady through a 120×120 placeholder; the rendered size is the same (item = its cap at every band). */
.kn-native-page .kn-kols .gb-tabs__menu-item { padding: 5px; width: 125px; cursor: pointer; line-height: 24px; }
.kn-native-page .kn-kols .kn-kols-thumb-img { display: inline; vertical-align: baseline; padding-top: 5px; border-radius: 100%; background-color: #fff; width: 100%; height: auto; aspect-ratio: 1 / 1; object-position: top center; max-width: 125px; }
.kn-native-page .kn-kols .gb-tabs__menu-item.gb-block-is-current .kn-kols-thumb-img { background-color: #11377a; }
.kn-native-page .kn-kols .kn-kols-img { display: inline; vertical-align: baseline; width: 100%; height: auto; }
.kn-native-page .kn-kols .kn-kols-det { position: absolute; bottom: 30px; right: 0; text-align: right; }
.kn-native-page .kn-kols .kn-kols-pos { background-image: url('assets/images/right-icon.png'); background-repeat: no-repeat; background-position: left center; background-size: auto 12px; padding-left: 12px; }
.kn-native-page .kn-kols .kn-kols-title { font-weight: bold; text-transform: uppercase; color: #11377a; }
@media (max-width: 991px) {
  .kn-native-page .kn-kols > .gb-tabs__items, .kn-native-page .kn-kols > .gb-tabs__menu { width: 100%; }
  .kn-native-page .kn-kols .gb-tabs__menu-item { width: 110px; }
}
@media (max-width: 768px) {
  .kn-native-page .kn-kols .gb-tabs__menu-item { width: 90px; }
}

/* (16r) cb-list-icon: bản mobile của icon-list */
.kn-native-page .cb-list-icon .kn-pg-il-tx { font-size: 18px; }

/* ── (16s) S8 — CHÉP Y LEGACY: 19370 image `71c116e` (TX_Cobe_111, gốc 490×379, per-element `width:75%`) nằm */
@media (max-width: 767px) {
  .kn-native-page.page-id-19370 .kn-pg-img-wrap:has(> img[src*="TX_Cobe_111"]) { max-height: 284.25px; }
  /* (16t) S8-b — `cb-logo.png` (gốc 385×35, `width:90%`) tràn hộp y cơ chế trên: 31.5 = 35 ×.9 */
  .kn-native-page.page-id-19370 .kn-pg-img-wrap:has(> img[src*="cb-logo"]),
  .kn-native-page.page-id-19460 .kn-pg-img-wrap:has(> img[src*="cb-logo"]),
  .kn-native-page.page-id-19155 .kn-pg-img-wrap:has(> img[src*="cb-logo"]) { max-height: 31.5px; }
  /* Cùng cơ chế, bản VI: `TX_Cobe_2999` 486x334 width 75% hộp kẹt 250.5 */
  .kn-native-page.page-id-19460 .kn-pg-img-wrap:has(> img[src*="TX_Cobe_2999"]),
  .kn-native-page.page-id-19155 .kn-pg-img-wrap:has(> img[src*="TX_Cobe_2999"]) { max-height: 250.5px; }
}

/* (16u) Bảng giá — số là COMPUTED trên nguồn, không phải chữ trong `<style>` của widget */
.kn-native-page .kn-pg-tbl table { font-family: "Lato", sans-serif; width: 100%; max-width: 880px; margin: 0 auto; border-collapse: collapse; border-spacing: 0; table-layout: auto; color: #fff; font-size: 14.4px; line-height: 21.6px; background: none; border: 0; }
.kn-native-page .kn-pg-tbl th, .kn-native-page .kn-pg-tbl td { padding: 15px; border: 1px solid rgba(128, 128, 128, 0.5); vertical-align: top; font-size: 14.4px; line-height: 21.6px; }
.kn-native-page .kn-pg-tbl th { background-color: #fff; color: #003366; text-align: center; font-weight: 700; }
.kn-native-page .kn-pg-tbl td { color: #fff; text-align: left; font-weight: 400; background: none; }
.kn-native-page .kn-pg-tbl tbody tr:nth-child(odd) td { background-color: rgba(128, 128, 128, 0.07); }
.kn-native-page .kn-pg-tbl td:last-child { text-align: center; font-weight: 700; }

/* (16w) Chênh lệch CỐ Ý so với bản gốc, chỉ cho 3 landing dùng thẻ imb-cobe (; không suy rộng sang trang khác) */
/* Ảnh tròn của thẻ: nguồn để hộp ảnh sát mép trái thẻ */
.kn-native-page.page-id-19155 .kn-pib.imb-cobe .kn-pib-img,
.kn-native-page.page-id-19370 .kn-pib.imb-cobe .kn-pib-img,
.kn-native-page.page-id-19460 .kn-pib.imb-cobe .kn-pib-img { margin-inline: auto; }
/* 19464/19911: thẻ "BƯỚC 01-06" (hộp ảnh flex) và icon của 4 thẻ trắng (ảnh block trong hộp inline-block) đều */
.kn-native-page:is(.page-id-19464, .page-id-19911) :is(.kn-pib-img, .kn-pib-img > img) { margin-inline: auto; }
@media (max-width: 767px) {
  /* Bản EN: 6 khối "chăm sóc" để width 33% nên xuống 1 cột; ép 2 cột như bản VI, khe 20px */
  .kn-native-page.page-id-19370 .kn-pg-con--full:has(> .kn-pg-con--full > .kn-wg.kn-pib:not(.imb-cobe)) { gap: 20px; }
  .kn-native-page.page-id-19370 .kn-pg-con--full:has(> .kn-wg.kn-pib:not(.imb-cobe)) { width: calc(50% - 10px); }
}

/* (17a) box-img-1 (before/after slides): square crop from the top */
.kn-native-page .kn-pg-img-wrap.box-img-1 img { aspect-ratio: 1; width: 100%; object-fit: cover; object-position: top center; }
.kn-native-page .box-ratio-1 { aspect-ratio: 1; }  /* main.css:231 */

/* (17b) Nested tabs (GB Pro tabs): stretched title row, 30px gaps; below 768px the row becomes an accordion */
.kn-native-page .kn-ntabs { display: flex; flex-direction: column; gap: 30px; }
.kn-native-page .kn-ntabs > .gb-tabs__menu { display: flex; flex-wrap: wrap; gap: 30px; }
.kn-native-page .kn-ntabs-title { display: flex; align-items: center; justify-content: center; gap: 5px; flex: 1 0 auto; padding: 10px 25px; background: var(--kn-primary); color: #fff; font-size: 1rem; font-weight: 700; line-height: 1.5; text-align: center; cursor: pointer; user-select: none; transition: background .3s, color .3s; }
.kn-native-page .kn-ntabs-title:hover, .kn-native-page .kn-ntabs-title.gb-block-is-current { background: #fff; color: var(--kn-primary); }
.kn-native-page .kn-ntabs-text { display: flex; align-items: center; }
.kn-native-page .kn-ntabs-icon { width: 0; height: 0; flex-shrink: 0; overflow: hidden; order: 1; }
.kn-native-page .kn-ntabs > .gb-tabs__items > .gb-tabs__item.gb-tabs__item-open { display: flex; }
@media (max-width: 767px) {
  .kn-native-page .kn-ntabs { gap: 0; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu, .kn-native-page .kn-ntabs > .gb-tabs__items { display: contents; }
  .kn-native-page .kn-ntabs-title { width: auto; }
  .kn-native-page .kn-ntabs-title:not(:first-child) { margin-top: 30px; }
  .kn-native-page .kn-ntabs-title.gb-block-is-current { margin-bottom: 30px; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(1) { order: 0; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(1) { order: 1; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(2) { order: 2; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(2) { order: 3; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(3) { order: 4; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(3) { order: 5; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(4) { order: 6; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(4) { order: 7; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(5) { order: 8; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(5) { order: 9; }
  .kn-native-page .kn-ntabs > .gb-tabs__menu > :nth-child(6) { order: 10; } .kn-native-page .kn-ntabs > .gb-tabs__items > :nth-child(6) { order: 11; }
}

/* (17c) title-gold-linear: gold gradient text on a heading (main.css:230) */
.kn-native-page .kn-heading.title-gold-linear, .kn-native-page .kn-wc.title-gold-linear > :is(h1, h2, h3, h4, h5, h6, div, p) { background: linear-gradient(90deg, rgba(161, 125, 63, 1) 0%, rgba(247, 205, 139, 1) 26%, rgba(254, 207, 126, 1) 53%, rgba(247, 205, 139, 1) 82%, rgba(161, 125, 63, 1) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* 18. Shared carousel — base CSS for the theme runtime `assets/js/kn-carousel.js` (replaces the block plugin's */
:where(.gb-carousel[data-kn-car]) { overflow: hidden; position: relative; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-items { display: flex; column-gap: var(--gb-carousel-slide-gap, 0px); position: relative; width: 100%; transition-property: transform; transition-timing-function: ease; touch-action: pan-y; }  /* no z-index on the track: an arrow placed before the track in DOM order must still paint above the slides */
:where(.gb-carousel[data-kn-car]) .gb-carousel-item { display: block; flex: 0 0 calc((100% - var(--gb-carousel-slide-gap, 0px) * (var(--gb-carousel-slides-per-view, 1) - 1)) / var(--gb-carousel-slides-per-view, 1)); min-width: 0; position: relative; -webkit-user-select: none; user-select: none; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-item img { -webkit-user-drag: none; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-control { transition: opacity .2s ease; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-control.is-disabled { cursor: not-allowed; opacity: .5; }  /* no pointer-events:none — a click must stop at the arrow, not reach the slide */
:where(.gb-carousel[data-kn-car]) .gb-carousel-control .gb-shape { display: block; line-height: 0; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-control:focus-visible, :where(.gb-carousel[data-kn-car]) .gb-carousel-dot:focus-visible { outline: 2px solid currentcolor; outline-offset: 2px; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-pagination { align-items: center; display: flex; justify-content: center; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-dot { background-color: rgba(0,0,0,.3); border-radius: 50%; cursor: pointer; display: block; height: 7px; transition: background-color .3s ease, transform .3s ease; width: 7px; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-dot:only-child { display: none !important; }
:where(.gb-carousel[data-kn-car]) .gb-carousel-dot.is-active { background-color: rgba(0,0,0,.8); transform: scale(1.5); }
@media (prefers-reduced-motion: reduce) { :where(.gb-carousel[data-kn-car]) .gb-carousel-items, :where(.gb-carousel[data-kn-car]) .gb-carousel-dot, :where(.gb-carousel[data-kn-car]) .gb-carousel-control { transition-duration: .001ms !important; } }

/* ==== 17. CỤM F (8961 · 10892 · 16543) ==== */

/* (17a) `.item-xu-ly` — 3 rule Customizer, ánh xạ `.elementor-widget-image-box``.kn-pib` */
.kn-native-page .item-xu-ly .kn-pib > .kn-wc { border-radius: 10px 10px 0 0; }
.kn-native-page .item-xu-ly .kn-pib .kn-pib-content { padding: 20px; }
.kn-native-page .item-xu-ly .kn-pib .kn-pib-img { position: relative; margin-top: -75px !important; }

/* (17b) `.box-cnm-4item` — lớp đặt trên HỘP widget image-box (`_css_classes`) */
.kn-native-page .box-cnm-4item .kn-pib-title { padding: 8px 10px; border-bottom: solid 1px; }
.kn-native-page .box-cnm-4item .kn-pib-desc { padding: 15px; }
.kn-native-page .box-cnm-4item img { width: 100%; height: auto; }
@media (max-width: 480px) {
	.kn-native-page .box-cnm-4item { width: 100% !important; }
}

/* (17c) image-gallery KHUÔN 3 (5 cột, có chú thích) */
.kn-native-page .kn-pg-gal--c5 .kn-pg-gal-grid { display: block; margin: 0 calc(var(--kn-gal-sp, 0px) * -1) calc(var(--kn-gal-sp, 0px) * -1) 0; }
.kn-native-page .kn-pg-gal--c5 .kn-pg-gal-item { display: block; width: 100%; max-width: 100%; margin: 0; padding: 0 var(--kn-gal-sp, 0px) var(--kn-gal-sp, 0px) 0; text-align: center; }  /* ĐO legacy 8961 (`.gallery-item` computed): display BLOCK */
.kn-native-page .kn-pg-gal--c5 .kn-pg-gal-img { width: auto; height: auto; display: block; margin: 0 auto; }
.kn-native-page .kn-pg-gal-cap { width: 100%; margin: 0; }
@media (min-width: 768px) {
	.kn-native-page .kn-pg-gal--c5 .kn-pg-gal-grid--c5 .kn-pg-gal-item { max-width: 20%; }
}
/* Customizer, KHÔNG bó theo lớp `gallery_capover` */
@media (max-width: 767.9px) {
	.kn-native-page .kn-pg-gal-grid--c5 .kn-pg-gal-item { max-width: 180px !important; }
}

/* (17d) `.gallery_capover` — chú thích đè lên ảnh (Customizer, không @media) */
.kn-native-page .gallery_capover .kn-pg-gal-item { position: relative; }
.kn-native-page .gallery_capover .kn-pg-gal-cap { position: absolute; padding: 10px; bottom: 0; right: 5px; }
.kn-native-page .gallery_capover .kn-pg-gal-cap strong { display: block; }
.kn-native-page .gallery_capover .kn-pg-gal-grid--c5 { display: flex; flex-wrap: wrap; justify-content: center; padding: 0 10px; }

/* (17e) `caption-overimg` — chú thích đè lên ảnh; lớp nằm trên HỘP widget (assembler dời từ `img` sang wrap) */
.kn-native-page .kn-pg-img-wrap.caption-overimg .kn-pg-img-fig,
.kn-native-page .kn-pg-img-wrap.caption-overimg .kn-pg-img-fig .kn-pg-img { line-height: 0; }
/* PHẢI bó trong `.kn-pg-img-fig`: ảnh `caption-overimg` KHÔNG có chú thích (10299 */

/* 19. FAQ block inside posts (Rank Math prints bare markup; the single-post template of the site dresses it as a one-open
   accordion — same selectors and values, so specificity stays (1,1,0)). `:where()` keeps the rules off the block-editor canvas,
   where the answers must stay visible for editing. The toggle itself is assets/js/kn-faq-toggle.js. */
:where(body:not(.editor-styles-wrapper)) #rank-math-faq { font-family: 'Lato', system-ui, sans-serif; max-width: 876px; margin: 0 auto; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-list { display: grid; gap: 8px; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-list-item { background: #fff; border: 1px solid #e3e7f0; border-radius: 12px; overflow: hidden; transition: border-color .3s, box-shadow .3s; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-list-item:hover { border-color: #c9d2ea; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .open { border-color: #204397; box-shadow: 0 6px 22px rgba(32, 67, 151, .10); }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-question { cursor: pointer; margin: 0; padding: 10px 54px 10px 22px; position: relative; font-size: 16px; font-weight: bold; line-height: 1.45; color: #204397; display: flex; align-items: center; min-height: 28px; transition: background .3s, color .3s; -webkit-tap-highlight-color: transparent; user-select: none; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-question:hover { background: #f5f7fc; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .open .rank-math-question { color: #183271; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-question:focus-visible { outline: 2px solid #FBD405; outline-offset: -2px; }
/* chevron drawn with borders */
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-question::after { content: ""; position: absolute; right: 20px; top: 50%; width: 11px; height: 11px; margin-top: -3px; border-right: 2.5px solid #204397; border-bottom: 2.5px solid #204397; transform: translateY(-50%) rotate(45deg); transition: transform .3s ease, border-color .3s; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .open .rank-math-question::after { transform: translateY(0) rotate(-135deg); border-color: #FBD405; }
/* answer slides via max-height */
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .open .rank-math-answer { max-height: 400px; }
:where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-answer p { margin: 0; padding: 10px 22px; font-size: 1rem; line-height: 1.65; color: #292C2F; }
@media (max-width: 600px) {
  :where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-question { padding: 10px 48px 10px 18px; }
  :where(body:not(.editor-styles-wrapper)) #rank-math-faq .rank-math-answer p { padding: 10px 18px; }
}

/* 20. Archive fallback (`/video/`, `/tag/...` — body.kn-legacy-archive, inc/archive-search.php (3)). The previous theme
   rendered these with its generic archive.php: a centered column (1140/800/600/500, 10px gutters under 576px), heading +
   description without a box, articles stacked with no gap or padding, thumbnails 100% wide capped at 500/400/300px.
   Selectors carry `.site-main` so they beat GP's separate-containers rules (padding 40/30, `#main` margins, `>:last-child`). */
.kn-legacy-archive #main.site-main { width: 100%; max-width: 1140px; margin: 0 auto; }
@media (max-width: 1199px) { .kn-legacy-archive #main.site-main { max-width: 800px; } }
@media (max-width: 991px)  { .kn-legacy-archive #main.site-main { max-width: 600px; } }
@media (max-width: 767px)  { .kn-legacy-archive #main.site-main { max-width: 500px; } }
@media (max-width: 575px)  { .kn-legacy-archive #main.site-main { max-width: none; padding: 0 10px; } }
.kn-legacy-archive .site-main > * { margin-bottom: 0; }
.kn-legacy-archive .site-main .page-header,
.kn-legacy-archive .site-main .inside-article { padding: 0; }
.kn-legacy-archive .site-main .page-title { margin-bottom: .5em; }
.kn-legacy-archive .site-main .taxonomy-description p:last-child { margin-bottom: 1em; }
.kn-legacy-archive .site-main .entry-title { margin-bottom: .5em; }
.kn-legacy-archive .site-main .post-image,
.kn-legacy-archive .site-main .entry-summary { margin-top: 0; }
.kn-legacy-archive .site-main .post-image img { width: 100%; max-height: 500px; object-fit: cover; }
@media (max-width: 991px) { .kn-legacy-archive .site-main .post-image img { max-height: 400px; } }
@media (max-width: 575px) { .kn-legacy-archive .site-main .post-image img { max-height: 300px; } }
.kn-legacy-archive .site-main > nav.pagination { margin: 20px 0; }
