/*
 * Theme Lộc Thái (PORTAL-LOCTHAI-GIAODIEN)
 * Lớp giao diện đặt trên theme default 4.6. Nội dung theo Chiến lược phát triển 2026-2031, tầm nhìn 2035.
 * Phong cách tham khảo cổng thông tin trường học hiện đại (hn-ams.edu.vn): dải số liệu, thẻ tin, dải kêu gọi, chân
 * trang xanh. Màu chủ đạo: xanh biển trường (#1769d1, ước lượng từ ảnh biển tên trường); vàng hổ phách như chữ trên biển
 * chỉ để nhấn. Đổi màu toàn site: sửa --lt-brand, --lt-navy, --lt-navy-2 và --lt-ink dưới đây; các màu trong suốt đi theo cùng sắc.
 *
 * Site trường công lập nên giữ giản dị: màu phẳng, không quầng sáng, không dòng chữ nhỏ in hoa trên tiêu đề, không số thứ tự trang
 * trí, không nhãn đè lên ảnh, không chuyển động lặp vô hạn trừ slide. Chuyển động chỉ để báo trạng thái (rê chuột, chuyển slide, vào màn hình).
 *
 * Quy ước cân đối (đợt 3, PORTAL-LOCTHAI-GIAODIEN-3); mọi khối dùng các token dưới đây, không gõ số riêng:
 * - Bo góc: --lt-r-btn (nút, ô nhỏ, ảnh trong thẻ) < --lt-r-card (thẻ) < --lt-r-lg (khối nổi: số liệu, banner, màn hình video).
 * - Khoảng cách: --lt-gap giữa các thẻ, --lt-section giữa các khu lớn.
 * - Tiêu đề khu: --lt-h2 cho mọi khu; riêng dải video lớn hơn vì là điểm nhấn của trang chủ.
 * - Bóng: --lt-shadow lúc nghỉ, --lt-shadow-hover khi rê chuột, --lt-shadow-lg cho khối nổi.
 * - Rê chuột (PORTAL-LOCTHAI-LIENKET, mục "Rê chuột đồng bộ" cuối tệp): thẻ bấm được nhấc --lt-lift + bóng hover + viền xanh,
 *   ảnh trong thẻ phóng --lt-zoom; hàng danh sách tô nền --lt-brand-soft; cùng --lt-hover-dur và --lt-ease. Khối không bấm được
 *   (Sứ mệnh, số liệu) không nhấc để khỏi hiểu nhầm là nút.
 *
 * Thứ tự trong tệp: font, token, nền, đầu trang, menu, dải tiêu đề trang, slide, số liệu, banner, trang chủ (tin, video,
 * chuyên mục, tiện ích), giá trị cốt lõi, khối + nội dung module, trang chuyên mục, trang video, chân trang, đáp ứng, trợ năng.
 */

/* ---------- Font Be Vietnam Pro (OFL, tự lưu trong ../fonts, không gọi dịch vụ ngoài) ---------- */
@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-vietnamese-400-normal.woff2") format("woff2");
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-ext-400-normal.woff2") format("woff2");
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-400-normal.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-vietnamese-500-normal.woff2") format("woff2");
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-ext-500-normal.woff2") format("woff2");
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-500-normal.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-vietnamese-700-normal.woff2") format("woff2");
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-ext-700-normal.woff2") format("woff2");
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-700-normal.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-vietnamese-800-normal.woff2") format("woff2");
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-ext-800-normal.woff2") format("woff2");
    unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Be Vietnam Pro";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../fonts/be-vietnam-pro-latin-800-normal.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens ---------- */
:root {
    --lt-page: #f1f5f9;
    --lt-surface: #ffffff;
    --lt-surface-2: #f8fafc;
    --lt-text: #0f172a;
    --lt-text-2: #334155;
    --lt-text-3: #566579; /* đủ tương phản 4.5:1 trên nền trang #f1f5f9 */
    --lt-line: #e2e8f0;
    --lt-navy: #1769d1;
    --lt-navy-2: #0d4fa8;
    --lt-brand-band: #1769d1;
    --lt-ink: #0f55b0;
    --lt-brand: #1769d1;
    --lt-brand-hover: #0d4fa8;
    --lt-brand-soft: rgba(23, 105, 209, 0.08);
    --lt-accent: #94600f;
    --lt-accent-on-navy: #f8d999;
    --lt-amber: #e0a33a;
    --lt-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 16px rgba(15, 23, 42, 0.05);
    --lt-shadow-hover: 0 18px 36px -18px rgba(13, 79, 168, 0.32);
    --lt-shadow-lg: 0 18px 40px -18px rgba(13, 79, 168, 0.35);
    --lt-r-btn: 3px;
    --lt-r-card: 4px;
    --lt-r-lg: 5px;
    --lt-gap: 18px;
    --lt-section: clamp(28px, 3vw, 40px);
    --lt-h2: clamp(1.5rem, 2.4vw, 2rem);
    --lt-font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
    --lt-ease: cubic-bezier(0.16, 1, 0.3, 1);
    --lt-hover-dur: 220ms;
    --lt-lift: -3px;
    --lt-zoom: 1.04;
    --lt-zoom-dur: 600ms;
    --lt-wrap: 1200px;
    color-scheme: light; /* chỉ dùng giao diện sáng, kể cả khi máy đặt chế độ tối (PORTAL-LOCTHAI-SANG) */
}

/* ---------- Base ---------- */
/* Bootstrap 3 đặt html {font-size: 10px}; mọi kích thước rem của tệp này tính theo 16px (cỡ mặc định của trình duyệt).
 * Bootstrap và NukeViet dùng px nên không bị ảnh hưởng. */
html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: 76px;
}

/* style.css đặt body cao 100% màn hình, thanh đầu trang dính theo body nên trôi mất khi cuộn quá chiều cao đó */
html body {
    height: auto;
    min-height: 100%;
    font-family: var(--lt-font);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--lt-text);
    background: var(--lt-page);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-tap-highlight-color: transparent;
}

body a,
body a:link,
body a:visited {
    color: var(--lt-brand);
    text-decoration: none;
}

body a:hover,
body a:focus {
    color: var(--lt-brand-hover);
    text-decoration: none; /* rê chuột chỉ đổi màu, không gạch chân */
}

:focus-visible {
    outline: 3px solid var(--lt-brand);
    outline-offset: 2px;
    border-radius: 4px;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--lt-font);
    color: var(--lt-text);
    font-weight: 700;
    letter-spacing: -0.01em;
}

.lt-wrap {
    width: 100%;
    max-width: var(--lt-wrap);
    margin: 0 auto;
    padding: 0 24px;
}

.lt-skip {
    position: absolute;
    left: 16px;
    top: -60px;
    z-index: 2000;
    padding: 10px 16px;
    border-radius: var(--lt-r-btn);
    background: var(--lt-navy-2);
    color: #fff !important;
}

.lt-skip:focus {
    top: 12px;
}

.wraper {
    width: auto;
    max-width: var(--lt-wrap);
    padding: 0 24px;
}

.section-body {
    padding: var(--lt-section) 0;
    background: transparent;
}

/* style.css của theme default cho #body nền trắng + viền + bóng: bỏ, mỗi khối Lộc Thái tự có nền (và theo chế độ tối) */
#body.container,
.lt-body.container {
    width: auto;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

/* ---------- Header ---------- */
.lt-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: var(--lt-surface);
    border-bottom: 1px solid var(--lt-line);
    transition: box-shadow 200ms ease;
}

.lt-header.is-scrolled {
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
}

.lt-header-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 68px;
}

.lt-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    text-decoration: none !important;
}

.lt-brand-mark {
    width: 54px;
    height: 60px;
    object-fit: contain;
    flex: none;
}

/* Hai dòng dài bằng nhau: khung rộng theo dòng dài hơn, cả hai dòng căn đều tới hết khung.
 * Cỡ chữ từng màn hình đã chọn gần khớp nên khoảng cách giữa các từ gần như không đổi */
.lt-brand-text {
    display: inline-grid;
    flex: none;
    width: max-content;
    line-height: 1.25;
}

.lt-brand-sub,
.lt-brand-name {
    text-align: justify;
    text-align-last: justify;
}

/* Dòng 1 cơ quan chủ quản, dòng 2 tên trường; chữ hoa gõ sẵn trong mẫu */
.lt-brand-sub {
    margin-bottom: 2px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--lt-text-2);
    white-space: nowrap;
}

.lt-brand-name {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.01em;
    color: var(--lt-ink);
    white-space: nowrap;
}

/* Viền vàng quanh từng chữ của tên trường (PORTAL-LOCTHAI-VIENTEN): nét vẽ trước phần tô (paint-order) nên viền nằm ngoài
 * nét chữ (lộ khoảng 1px), chữ không bị mảnh đi; cặp xanh + vàng như menu và nút. Chân trang nền xanh: chữ trắng, viền vẫn vàng. */
.lt-brand-name {
    -webkit-text-stroke: 2px var(--lt-amber);
    paint-order: stroke fill;
}

.lt-header-tools {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.lt-search {
    position: relative;
    display: flex;
    align-items: center;
}

.lt-search .form-control {
    width: 240px;
    height: 38px;
    padding: 0 38px 0 14px;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface-2);
    color: var(--lt-text);
    font-size: 0.875rem;
    box-shadow: none;
}

.lt-search .form-control::placeholder {
    color: var(--lt-text-3);
}

.lt-search .form-control:focus {
    background: var(--lt-surface);
    border-color: var(--lt-brand);
    box-shadow: 0 0 0 3px var(--lt-brand-soft);
}

.lt-search-btn {
    position: absolute;
    right: 4px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: var(--lt-text-3);
}

.lt-search-btn:hover {
    color: var(--lt-brand);
}

.lt-header .personalArea {
    display: flex;
    align-items: center;
}

/* ---------- Menu chính ---------- */
.lt-nav {
    border-top: 1px solid var(--lt-line);
}

#menusite .navbar,
#menusite .navbar-default {
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#menusite .navbar-collapse {
    padding: 0;
}

#menusite .navbar-nav {
    float: none;
    display: flex;
    flex-wrap: nowrap;
    gap: 2px;
    margin: 0 -10px;
    padding: 6px 0;
}

#menusite .navbar-default .navbar-nav > li,
#menusite .navbar-default .navbar-nav > li:first-child,
#menusite .navbar-default .navbar-nav > li:last-child {
    float: none;
    flex: none;
    border: 0;
    background: none;
}

#menusite .navbar-default .navbar-nav > li > a,
#menusite .navbar-nav > li > a {
    padding: 14px 11px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-text-2);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 20px;
    background: transparent;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 150ms ease, color 150ms ease;
}

#menusite .navbar-default .navbar-nav > li > a:hover,
#menusite .navbar-default .navbar-nav > li > a:focus,
#menusite .navbar-default .navbar-nav > .open > a,
#menusite .navbar-default .navbar-nav > .open > a:hover,
#menusite .navbar-default .navbar-nav > .open > a:focus {
    color: var(--lt-ink);
    background: var(--lt-surface-2) !important; /* style.css đặt gradient kèm !important */
}

#menusite .navbar-default .navbar-nav > .active > a,
#menusite .navbar-default .navbar-nav > .active > a:hover,
#menusite .navbar-default .navbar-nav > .active > a:focus {
    color: var(--lt-brand);
    background: var(--lt-brand-soft) !important;
}

#menusite .navbar-nav > li > a .caret {
    border-top-color: currentColor;
    opacity: 0.6;
}

/* style.css tô nền xám #dcdcdc, viền và bo góc kèm !important */
#menusite .dropdown-menu {
    min-width: 240px;
    margin-top: 4px;
    padding: 6px;
    border: 1px solid var(--lt-line) !important;
    border-radius: var(--lt-r-card) !important;
    background: var(--lt-surface) !important;
    box-shadow: var(--lt-shadow-lg);
    transform-origin: top left;
}

#menusite .open > .dropdown-menu {
    animation: lt-pop 160ms var(--lt-ease);
}

#menusite .dropdown-menu > li,
#menusite .dropdown-menu > li:last-child {
    border: 0;
}

#menusite .dropdown-menu > li > a {
    padding: 8px 12px;
    border-radius: 3px;
    color: var(--lt-text);
    font-size: 0.875rem;
    white-space: normal;
}

body #menusite .dropdown-menu > li > a:hover,
body #menusite .dropdown-menu > li > a:focus,
body #menusite .dropdown-menu > .active > a,
body #menusite .navbar .navbar-nav .open .dropdown-menu > li > a:hover,
body #menusite .navbar .navbar-nav .open .dropdown-menu > li > a:focus,
body #menusite .navbar .navbar-nav .open .dropdown-menu > .active > a {
    color: var(--lt-brand);
    background: var(--lt-brand-soft) !important;
    text-decoration: none;
}

/* Mục cuối menu: danh sách canh lề phải và cấp 3 mở sang trái để không lòi khỏi trang */
#menusite .navbar-nav > .dropdown:last-child > .dropdown-menu {
    left: auto;
    right: 0;
}

#menusite .dropdown-submenu > a::after {
    display: none;
}

#menusite .dropdown-submenu > .dropdown-menu {
    left: auto;
    right: 100%;
    margin: -6px 4px 0 0;
    min-width: 280px;
}

/* Thanh menu máy tính và máy bảng: nền xanh đậm, khối vàng .lt-nav-ind (js/locthai.js) nằm ở mục đang chọn,
 * trượt theo chuột rồi về chỗ cũ. Chữ trắng, mục dưới khối vàng (.is-lit) đổi xanh đậm.
 * #lt-header thêm một id để thắng các luật hover, .active của style.css và bootstrap.
 * Không có js thì mục đang chọn tự tô vàng (:not(.is-live)). */
#menusite .navbar-nav > li.lt-nav-ind {
    display: none;
}

@media (min-width: 768px) {
    /* Dải logo cao đúng --lt-bar-h và đầu trang dính ở top âm đúng bằng số đó: cuộn xuống thì dải logo trôi đi,
     * thanh menu xanh nổi ở mép trên màn hình (PORTAL-LOCTHAI-MENUCAO) */
    .lt-header {
        --lt-bar-h: 76px;
        top: calc(-1 * var(--lt-bar-h));
        border-bottom: 0;
    }

    .lt-header-bar {
        height: var(--lt-bar-h);
        min-height: 0;
    }

    .lt-nav {
        border-top: 0;
        background: var(--lt-navy);
    }

    #menusite .navbar-nav {
        position: relative;
        justify-content: space-between;
        padding: 0;
    }

    #lt-header #menusite .navbar-default .navbar-nav > li > a {
        color: #fff;
        background: transparent !important;
        transition: color 180ms ease;
    }

    #lt-header #menusite .navbar-default .navbar-nav:not(.is-live) > .active > a {
        color: var(--lt-navy-2);
        background: var(--lt-amber) !important;
    }

    #lt-header #menusite .navbar-default .navbar-nav > li.is-lit > a {
        color: var(--lt-navy-2);
    }

    #lt-header #menusite .navbar-default .navbar-nav > li > a:focus-visible {
        outline: 2px solid #fff;
        outline-offset: -4px;
    }

    #menusite .navbar-default .navbar-nav > li.lt-nav-ind {
        display: block;
        position: absolute;
        top: 6px;
        bottom: 6px;
        left: 0;
        width: 0;
        margin: 0;
        border-radius: var(--lt-r-btn);
        background: var(--lt-amber);
        opacity: 0;
        pointer-events: none;
        transition: transform 280ms var(--lt-ease), width 280ms var(--lt-ease), opacity 150ms ease;
    }

    #menusite .navbar-default .navbar-nav > li.lt-nav-ind.is-on {
        opacity: 1;
    }

    #menusite .navbar-default .navbar-nav > li.lt-nav-ind.no-anim {
        transition: none;
    }

    #menusite .navbar-nav > li > a .caret {
        opacity: 1;
        transition: transform 200ms var(--lt-ease);
    }

    #menusite .navbar-nav > .open > a .caret {
        transform: rotate(180deg);
    }

    /* Danh sách con luôn dựng sẵn nên đóng cũng mờ dần; khối chạm sát đáy thanh để chuột đi xuống không bị ngắt */
    #menusite .dropdown-menu {
        display: block;
        visibility: hidden;
        margin-top: 0;
        border-radius: 0 0 var(--lt-r-card) var(--lt-r-card) !important;
        opacity: 0;
        transform: translateY(8px);
        transition: opacity 180ms ease, transform 220ms var(--lt-ease), visibility 0s linear 180ms;
    }

    #menusite .open > .dropdown-menu,
    #menusite .dropdown-submenu:hover > .dropdown-menu {
        visibility: visible;
        opacity: 1;
        transform: none;
        transition-delay: 0s;
        animation: none;
    }

    #menusite .dropdown-submenu > .dropdown-menu {
        border-radius: var(--lt-r-card) !important;
    }

    #menusite .dropdown-menu > li > a {
        transition: background-color 150ms ease, color 150ms ease, transform 200ms var(--lt-ease);
    }

    #menusite .dropdown-menu > li > a:hover {
        transform: translateX(3px);
    }
}

/* Màn hình rộng: logo, tên trường và menu cùng lớn lên một bậc; hai dòng tên phóng cùng tỉ lệ nên vẫn dài bằng nhau */
@media (min-width: 1200px) {
    .lt-header {
        --lt-bar-h: 88px;
    }

    .lt-brand {
        gap: 14px;
    }

    .lt-brand-mark {
        width: 62px;
        height: 70px;
    }

    .lt-brand-sub {
        font-size: 0.84375rem;
    }

    .lt-brand-name {
        font-size: 1.6875rem;
    }

    #menusite .navbar-nav {
        margin: 0 -14px;
    }

    #menusite .navbar-default .navbar-nav > li > a,
    #menusite .navbar-nav > li > a {
        padding: 16px 14px;
        font-size: 0.9375rem;
    }

    #menusite .navbar-default .navbar-nav > li.lt-nav-ind {
        top: 7px;
        bottom: 7px;
    }
}

@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
    #menusite .navbar-default .navbar-nav > li.lt-nav-ind,
    #menusite .dropdown-menu,
    #menusite .dropdown-menu > li > a {
        transition: none;
    }

    #menusite .dropdown-menu,
    #menusite .dropdown-menu > li > a:hover {
        transform: none;
    }
}

@keyframes lt-pop {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

/* ---------- Dải đầu trang trong: đường dẫn vị trí, tiêu đề, chuyên mục con ---------- */
.lt-pagehead {
    padding: 14px 0;
    background: var(--lt-surface);
    border-bottom: 1px solid var(--lt-line);
}

.lt-pagehead:has(.lt-pagehead-main) {
    padding-bottom: 20px;
}

.lt-pagehead + .section-body {
    padding-top: var(--lt-section);
}

.lt-crumbs {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
}

/* style.responsive.css ẩn đường dẫn trên điện thoại, để lại dải trắng trống */
.lt-crumbs .breadcrumbs-wrap {
    display: block;
}

.lt-crumbs .breadcrumbs-wrap,
.lt-crumbs .breadcrumbs-wrap .display {
    background: none;
    height: auto;
}

.lt-crumbs .breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
}

.lt-crumbs .breadcrumbs li {
    float: none;
    margin: 0;
    font-size: 0.8125rem;
    color: var(--lt-text-3);
}

.lt-crumbs .breadcrumbs li + li::before {
    content: "/";
    margin: 0 8px;
    color: var(--lt-text-3);
}

/* style.css cho thẻ a float + nền kiểu mũi tên: bỏ, nếu không dấu "/" nhảy ra sau liên kết */
.lt-crumbs .breadcrumbs a {
    float: none;
    color: var(--lt-text-3) !important;
    background: none !important;
    padding: 0 !important;
}

.lt-crumbs .breadcrumbs a:hover {
    color: var(--lt-brand) !important;
}

.lt-crumbs .breadcrumbs a::after,
.lt-crumbs .breadcrumbs a::before {
    display: none !important;
}

.lt-pagehead-main {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 32px;
    margin-top: 16px;
}

body .lt-pagehead-title {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--lt-ink);
    text-wrap: balance;
}

.lt-pagehead-sub {
    margin: 6px 0 0;
    font-size: 0.9375rem;
    color: var(--lt-text-3);
}

.lt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

body a.lt-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-btn);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--lt-text-2);
    text-decoration: none;
    transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.lt-chip span {
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
    color: var(--lt-text-3);
}

body a.lt-chip:hover {
    border-color: var(--lt-brand);
    color: var(--lt-brand);
    text-decoration: none;
}

body a.lt-chip.is-active,
body a.lt-chip.is-active:hover {
    border-color: var(--lt-navy);
    background: var(--lt-navy);
    color: #fff;
}

.lt-chip.is-active span {
    color: rgba(255, 255, 255, 0.72);
}

/* ---------- Hero: chia đôi nền navy ---------- */
.lt-hero {
    padding: clamp(48px, 7vw, 88px) 0;
    background: var(--lt-navy-2);
    color: #e2e8f0;
}

.lt-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: center;
    gap: clamp(32px, 5vw, 64px);
}

.lt-badge {
    display: inline-block;
    margin: 0 0 20px;
    padding: 6px 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: var(--lt-r-btn);
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.8125rem;
    font-weight: 600;
    color: #e2e8f0;
}

body .lt-display {
    margin: 0;
    font-size: clamp(2.5rem, 5.4vw, 4rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.025em;
    color: #ffffff;
    text-wrap: balance;
}

.lt-display span {
    color: var(--lt-accent-on-navy);
}

.lt-lead {
    margin: 20px 0 0;
    max-width: 34em;
    font-size: clamp(1rem, 1.3vw, 1.125rem);
    line-height: 1.6;
    color: #cbd5e1;
    text-wrap: pretty;
}

.lt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.lt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: var(--lt-r-btn);
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none !important;
    transition: background-color 150ms ease, border-color 150ms ease, transform 100ms ease-out;
    -webkit-user-select: none;
    user-select: none;
}

.lt-btn:active {
    transform: scale(0.98);
}

body a.lt-btn-primary,
body a.lt-btn-primary:link,
body a.lt-btn-primary:visited {
    color: #ffffff;
    background: var(--lt-brand);
}

body a.lt-btn-primary:hover,
body a.lt-btn-primary:focus {
    color: #ffffff;
    background: var(--lt-brand-hover);
}

body a.lt-btn-glass,
body a.lt-btn-glass:link,
body a.lt-btn-glass:visited {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.1);
}

body a.lt-btn-glass:hover,
body a.lt-btn-glass:focus {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.18);
}

body a.lt-btn-light,
body a.lt-btn-light:link,
body a.lt-btn-light:visited {
    color: var(--lt-navy-2);
    background: #ffffff;
}

body a.lt-btn-light:hover,
body a.lt-btn-light:focus {
    color: var(--lt-navy-2);
    background: #e2e8f0;
}

body a.lt-btn-amber,
body a.lt-btn-amber:link,
body a.lt-btn-amber:visited {
    color: var(--lt-navy-2);
    background: var(--lt-amber);
}

body a.lt-btn-amber:hover,
body a.lt-btn-amber:focus {
    color: var(--lt-navy-2);
    background: var(--lt-accent-on-navy);
}

/* Tin tiêu điểm */
.lt-featured {
    overflow: hidden;
    border-radius: var(--lt-r-card);
    background: var(--lt-surface);
    box-shadow: var(--lt-shadow-lg);
    color: var(--lt-text);
}

.lt-featured-media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--lt-surface-2);
}

.lt-featured-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lt-ease);
}

.lt-featured:hover .lt-featured-media img {
    transform: scale(1.03);
}

.lt-featured-body {
    padding: 20px 22px 22px;
}

body .lt-featured h3 {
    margin: 12px 0 8px;
    font-size: 1.1875rem;
    line-height: 1.35;
}

.lt-featured h3 a {
    color: var(--lt-text) !important;
}

.lt-featured h3 a:hover {
    color: var(--lt-brand) !important;
}

.lt-featured p {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--lt-text-3);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lt-featured-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--lt-line);
    font-size: 0.8125rem;
    color: var(--lt-text-3);
}

.lt-featured-meta a {
    font-weight: 600;
}

/* Dải số liệu */
.lt-stats-band {
    background: var(--lt-surface);
    border-bottom: 1px solid var(--lt-line);
}

.lt-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.lt-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 20px;
    text-align: center;
}

.lt-stat + .lt-stat {
    border-left: 1px solid var(--lt-line);
}

.lt-stat-number {
    font-size: clamp(2rem, 3.4vw, 2.75rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--lt-brand);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.lt-stat-number small {
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--lt-text-3);
}

.lt-stat-label {
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--lt-text-3);
}

/* ---------- Khung Chiến lược (PORTAL-LOCTHAI-CHIENLUOC, bố cục lại PORTAL-LOCTHAI-CHIENLUOC2) ----------
 * Đọc từ trên xuống theo logic văn bản: tên + mốc thời gian (đầu khung xanh) → Sứ mệnh | Tầm nhìn (hai cột bằng nhau)
 * → Giá trị cốt lõi (lưới 4 × 2 ô bằng nhau, kẻ mảnh như bảng) → Phương châm (dải đáy khung, căn giữa).
 * Mỗi phần cùng một kiểu đầu mục: ô biểu tượng + tiêu đề + một dòng nói phần đó là gì. */
.lt-values {
    padding: var(--lt-section) 0;
    background: var(--lt-page);
}

.lt-strat {
    overflow: hidden;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-lg);
    background: var(--lt-surface);
    box-shadow: var(--lt-shadow);
}

/* Đầu khung: tên văn bản bên trái, trục mốc thời gian bên phải */
.lt-strat-head {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: center;
    gap: 24px 48px;
    padding: 32px 36px;
    background: var(--lt-navy);
    color: #fff;
}

body .lt-strat-name h2 {
    margin: 0 0 18px;
    font-size: clamp(1.375rem, 2.1vw, 1.875rem);
    font-weight: 800;
    line-height: 1.28;
    letter-spacing: -0.015em;
    color: #fff;
    text-wrap: balance;
}

.lt-strat-name .lt-btn {
    gap: 8px;
}

body .lt-strat-name a.lt-btn-amber,
body .lt-strat-name a.lt-btn-amber:link,
body .lt-strat-name a.lt-btn-amber:visited,
body .lt-strat-name a.lt-btn-amber:hover,
body .lt-strat-name a.lt-btn-amber:focus {
    color: var(--lt-navy-2);
}

/* Trục mốc: vạch ngang nối các chấm, năm chữ lớn; mốc cuối (tầm nhìn) chấm vàng đặc */
.lt-strat-steps {
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lt-strat-steps li {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 28px;
}

.lt-strat-steps li::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 0;
    right: 0;
    height: 2px;
    background: rgba(255, 255, 255, 0.28);
}

.lt-strat-steps li:last-child::before {
    right: auto;
    width: 16px;
}

.lt-strat-steps li::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 16px;
    height: 16px;
    border: 3px solid var(--lt-amber);
    border-radius: 50%;
    background: var(--lt-navy);
}

.lt-strat-steps li:last-child::after {
    background: var(--lt-amber);
}

.lt-strat-steps strong {
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: #fff;
}

.lt-strat-steps span {
    padding-right: 8px;
    font-size: 0.875rem;
    line-height: 1.35;
    color: rgba(255, 255, 255, 0.85);
}

/* Đầu mục dùng chung của các phần */
.lt-strat-part {
    padding: 30px 36px 32px;
}

.lt-strat-mv + .lt-strat-part {
    border-top: 1px solid var(--lt-line);
}

body .lt-strat-part h3 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-size: 1.375rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--lt-ink);
}

.lt-strat-pico {
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-navy);
    background: var(--lt-brand-soft);
    font-size: 1.125rem;
}

body .lt-strat-part .lt-strat-sub {
    margin: 2px 0 16px 52px;
    font-size: 0.9375rem;
    line-height: 1.4;
    color: var(--lt-text-3);
}

.lt-strat-part p {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--lt-text-2);
    text-wrap: pretty;
}

/* Sứ mệnh | Tầm nhìn: hai cột bằng nhau, vạch dọc ở giữa */
.lt-strat-mv {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.lt-strat-mv > .lt-strat-part + .lt-strat-part {
    border-left: 1px solid var(--lt-line);
}

/* Giá trị cốt lõi: lưới ô bằng nhau, đường kẻ 1px (khe lưới để lộ nền màu kẻ), vạch màu đầu ô theo ý nghĩa */
.lt-value-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    background: var(--lt-line);
    list-style: none;
}

.lt-value {
    --c: var(--lt-navy);
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 20px 22px;
    background: var(--lt-surface);
    box-shadow: inset 0 3px 0 var(--c);
    transition: background-color var(--lt-hover-dur) var(--lt-ease);
}

.lt-v-chinhtruc { --c: #1769d1; }
.lt-v-trachnhiem { --c: #0f766e; }
.lt-v-yeuthuong { --c: #be185d; }
.lt-v-tritue { --c: #8f5a06; }
.lt-v-hoptac { --c: #166534; }
.lt-v-thichung { --c: #0369a1; }
.lt-v-sangtao { --c: #6d28d9; }
.lt-v-hoinhap { --c: #b91c1c; }

.lt-value-ico {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin-bottom: 6px;
    border-radius: var(--lt-r-btn);
    color: var(--c);
    background: color-mix(in srgb, var(--c) 11%, var(--lt-surface));
    font-size: 1.125rem;
    transition: color var(--lt-hover-dur) var(--lt-ease), background-color var(--lt-hover-dur) var(--lt-ease);
}

body .lt-value h4 {
    margin: 0;
    font-style: normal;
    font-size: 1.125rem;
    font-weight: 800;
    line-height: 1.3;
    color: var(--c);
}

body .lt-strat-part .lt-value p {
    font-size: 0.9375rem;
    line-height: 1.55;
}

@media (hover: hover) {
    .lt-value:hover {
        background: color-mix(in srgb, var(--c) 5%, var(--lt-surface));
    }

    .lt-value:hover .lt-value-ico {
        color: #fff;
        background: var(--c);
    }
}

/* Phương châm: dải đáy khung, nền vàng nhạt, căn giữa để khép bố cục */
.lt-strat-motto {
    padding: 28px 36px 32px;
    border-top: 1px solid color-mix(in srgb, var(--lt-amber) 40%, var(--lt-surface));
    background: color-mix(in srgb, var(--lt-amber) 12%, var(--lt-surface));
    text-align: center;
}

body .lt-strat-motto h3 {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 700;
    color: var(--lt-accent);
}

body .lt-strat-motto h3 .fa {
    margin-right: 6px;
}

.lt-strat-motto p {
    max-width: 44rem;
    margin: 0 auto;
    font-size: clamp(1.25rem, 2vw, 1.625rem);
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--lt-ink);
    text-wrap: balance;
}

@media (max-width: 991.98px) {
    .lt-strat-head {
        grid-template-columns: minmax(0, 1fr);
        padding: 26px 28px;
    }

    .lt-strat-part,
    .lt-strat-motto {
        padding-left: 28px;
        padding-right: 28px;
    }

    .lt-value-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .lt-strat-head,
    .lt-strat-part,
    .lt-strat-motto {
        padding: 22px 18px 24px;
    }

    .lt-strat-mv {
        grid-template-columns: 1fr;
    }

    .lt-strat-mv > .lt-strat-part + .lt-strat-part {
        border-left: 0;
        border-top: 1px solid var(--lt-line);
    }

    body .lt-strat-part h3 {
        font-size: 1.25rem;
    }

    body .lt-strat-part .lt-strat-sub {
        margin: 10px 0 12px;
    }

    .lt-strat-steps span {
        font-size: 0.8125rem;
    }
}

@media (max-width: 575.98px) {
    .lt-value-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Một cột: biểu tượng bên trái, vạch màu chuyển sang mép trái để tám mục không quá dài */
    .lt-value {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 2px 12px;
        padding: 16px;
        box-shadow: inset 3px 0 0 var(--c);
    }

    .lt-value-ico {
        grid-row: 1 / span 2;
        margin: 0;
    }
}

/* ---------- Khối (panel) và nội dung module ---------- */
body .panel,
body .well {
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    background: var(--lt-surface);
    box-shadow: var(--lt-shadow);
    color: var(--lt-text);
}

body .panel {
    overflow: hidden;
    margin-bottom: var(--lt-gap);
}

/* Khối lồng trong khối: chỉ giữ một lớp viền */
body .panel .panel {
    border: 0;
    box-shadow: none;
    background: transparent;
}

body .panel-default > .panel-heading,
body .panel-primary > .panel-heading,
body .panel > .panel-heading {
    padding: 16px 20px 12px;
    border: 0;
    border-bottom: 1px solid var(--lt-line);
    background: transparent;
    background-image: none !important; /* style.css đặt gradient kèm !important */
    color: var(--lt-ink);
    font-size: 1.0625rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}

body .panel > .panel-heading a {
    color: var(--lt-ink) !important;
}

body .panel-body {
    padding: 16px 20px 20px;
}

body .list-group-item {
    border-color: var(--lt-line);
    background: transparent;
    color: var(--lt-text);
}

/* Tin không có ảnh: bỏ ảnh thay thế (logo) để danh sách thuần chữ */
img[src*="/noimge"],
img[src*="logo-noimage"],
img[src*="no_image"] {
    display: none !important;
}

.news_column .imghome,
.news_column img.img-thumbnail {
    width: 128px;
    height: auto;
    margin: 0 16px 8px 0;
    padding: 0;
    border: 0;
    border-radius: var(--lt-r-btn);
}

.news_column .panel-heading h4,
.news_column .panel-heading .cat-icon {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 800;
}

.news_column .panel-heading a,
.news_column .panel-heading .cat-icon a {
    color: var(--lt-ink);
    background: none;
    padding: 0;
}

.news_column .panel-heading .cat-icon a::after {
    content: " ›";
    color: var(--lt-text-3);
}

body .news_column h3,
body .news_column h2 {
    font-size: 1.0625rem;
    line-height: 1.4;
}

.news_column h3 a,
.news_column h2 a {
    color: var(--lt-text);
}

.news_column h3 a:hover,
.news_column h2 a:hover {
    color: var(--lt-brand);
}

.news_column .text-muted,
.news_column .text-muted li {
    font-size: 0.8125rem;
    color: var(--lt-text-3);
}

/* Danh mục (metismenu) */
body .metismenu.panel {
    padding: 8px;
}

body .metismenu .sidebar,
body .metismenu .sidebar-nav {
    float: none;
    border: 0;
    background: none;
}

body .metismenu .sidebar-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

body .metismenu .sidebar-nav ul a,
body .metismenu .sidebar-nav ul a:link,
body .metismenu .sidebar-nav ul a:visited {
    display: block;
    padding: 9px 12px;
    border: 0;
    border-radius: var(--lt-r-btn);
    box-shadow: none;
    background: none;
    color: var(--lt-text-2);
    font-size: 0.9375rem;
    font-weight: 500;
    text-decoration: none;
}

body .metismenu .sidebar-nav ul a:hover,
body .metismenu .sidebar-nav ul a:focus,
body .metismenu .sidebar-nav ul a:active {
    background: var(--lt-surface-2);
    color: var(--lt-ink);
}

body .metismenu .sidebar-nav .active > a,
body .metismenu .sidebar-nav .active > a:hover {
    background: var(--lt-brand-soft);
    color: var(--lt-brand);
    font-weight: 700;
}

body .metismenu .sidebar-nav ul ul a,
body .metismenu .sidebar-nav ul ul a:hover {
    padding-left: 24px;
    background-color: transparent;
    font-size: 0.875rem;
    color: var(--lt-text-3);
}

body .metismenu .arrow {
    color: var(--lt-text-3);
}

/* Khối tin ở cột phụ: danh sách phân cách bằng đường mảnh; chỉ thu nhỏ ảnh trong hàng tin, không đụng ảnh video, biểu ngữ */
.col-md-6 .panel-body ul,
.col-md-5 .panel-body ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.col-md-6 .panel-body li,
.col-md-5 .panel-body li {
    padding: 10px 0;
    font-size: 0.875rem;
    line-height: 1.5;
}

.col-md-6 .panel-body li + li,
.col-md-5 .panel-body li + li {
    border-top: 1px solid var(--lt-line);
}

.col-md-6 .panel-body li:first-child,
.col-md-5 .panel-body li:first-child {
    padding-top: 0;
}

.col-md-6 .panel-body li:last-child,
.col-md-5 .panel-body li:last-child {
    padding-bottom: 0;
}

/* Ảnh hàng tin ở cột phụ thường là ảnh chụp công văn, nhỏ không đọc được và làm chữ lệch hàng: danh sách thuần chữ */
.col-md-6 .panel-body li img,
.col-md-5 .panel-body li img {
    display: none;
}

.col-md-6 .panel-body li a,
.col-md-5 .panel-body li a {
    color: var(--lt-text);
    font-weight: 500;
}

.col-md-6 .panel-body li a:hover,
.col-md-5 .panel-body li a:hover {
    color: var(--lt-brand);
}

/* Khối văn bản mới (module laws) */
body .block-law .item {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--lt-line);
}

body .block-law .law-code {
    margin: 0 0 2px;
    font-size: 0.8125rem;
    font-weight: 700;
}

body .block-law .law-title {
    margin: 0 0 4px;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--lt-text);
}

body .block-law .law-view {
    margin: 0;
    font-size: 0.75rem;
    font-style: normal;
    color: var(--lt-text-3);
}

.lt-side-video-list {
    margin: 12px 0 0;
}

/* Bài viết chi tiết */
body .newsdetail h1.title,
body .newsdetail .title {
    font-size: clamp(1.75rem, 3.4vw, 2.375rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--lt-ink);
    text-wrap: balance;
}

.img-thumbnail {
    border-color: var(--lt-line);
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface);
}

/* Nút & ô nhập bootstrap */
body .btn {
    border-radius: var(--lt-r-btn);
    font-weight: 600;
    transition: background-color 150ms ease, transform 100ms ease-out;
}

body .btn:active,
body .btn.active {
    transform: scale(0.98);
    box-shadow: none;
}

body .btn-primary,
body .btn-info {
    border-color: var(--lt-brand);
    background: var(--lt-brand);
    color: #fff;
}

body .btn-primary:hover,
body .btn-primary:focus,
body .btn-info:hover,
body .btn-info:focus {
    border-color: var(--lt-brand-hover);
    background: var(--lt-brand-hover);
    color: #fff;
}

body .form-control {
    border-color: var(--lt-line);
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface);
    color: var(--lt-text);
    box-shadow: none;
}

body .form-control:focus {
    border-color: var(--lt-brand);
    box-shadow: 0 0 0 3px var(--lt-brand-soft);
}

body .pagination > li > a,
body .pagination > li > span {
    border-color: var(--lt-line);
    background: var(--lt-surface);
    color: var(--lt-brand);
}

body .pagination > .active > a,
body .pagination > .active > span {
    border-color: var(--lt-brand);
    background: var(--lt-brand);
}

body .table > thead > tr > th,
body .table > tbody > tr > td {
    border-color: var(--lt-line);
}

/* ---------- Chân trang navy ---------- */
body #footer.lt-footer {
    min-height: 0;
    padding: 32px 0 16px;
    border: 0;
    background: var(--lt-navy-2);
    background-image: none;
    color: #d5dfec;
    font-size: 0.875rem;
}

body #footer.lt-footer p {
    margin: 0 0 6px;
}

body #footer.lt-footer strong,
body #footer.lt-footer b,
body #footer.lt-footer h2,
body #footer.lt-footer h3,
body #footer.lt-footer h4 {
    color: #e2e8f0;
}

/* ---------- Thanh thống kê truy cập [STATBAR] (ngay trên chân trang, mọi trang) ---------- */
.lt-statbar {
    background: var(--lt-navy);
    color: #fff;
}

.lt-statbar-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 auto;
    list-style: none;
}

.lt-statbar-item {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 18px 20px;
}

.lt-statbar-item + .lt-statbar-item {
    border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.lt-statbar-item:first-child {
    padding-left: 0;
}

.lt-statbar-ico {
    display: grid;
    place-items: center;
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-navy-2);
    background: var(--lt-amber);
    font-size: 1.3125rem;
}

.lt-statbar-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.lt-statbar-num {
    --lt-odo-line: 1.15em;
    display: flex;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
    line-height: var(--lt-odo-line);
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
}

/* Ô chỉ hở một dòng; dải 0-9 trượt bên trong. Mỗi số dừng trễ hơn số bên trái */
.lt-odo-cell {
    display: block;
    height: var(--lt-odo-line);
    overflow: hidden;
}

.lt-odo-strip {
    display: block;
    white-space: pre;
    transition: transform calc(1500ms + var(--lt-odo-i, 0) * 170ms) cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
}

.lt-statbar-label {
    font-size: 0.875rem;
    line-height: 1.3;
    color: #d5dfec;
}

@media (max-width: 991.98px) {
    .lt-statbar-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lt-statbar-item {
        padding: 14px 16px;
    }

    .lt-statbar-item:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .lt-statbar-item:nth-child(n + 3) {
        border-top: 1px solid rgba(255, 255, 255, 0.2);
    }
}

@media (max-width: 575.98px) {
    .lt-statbar-item {
        gap: 10px;
        padding: 12px 10px;
    }

    .lt-statbar-ico {
        width: 38px;
        height: 38px;
        font-size: 1.0625rem;
    }

    .lt-statbar-num {
        font-size: 1.25rem;
    }

    .lt-statbar-label {
        font-size: 0.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lt-odo-strip {
        transition: none;
    }
}

/* Cột trống (chưa có khối) tự ẩn, các cột còn lại chia lại chỗ */
.lt-footer-grid {
    display: flex;
    gap: 40px;
}

.lt-footer-about {
    flex: 2 1 0;
    min-width: 0;
}

.lt-footer-links,
.lt-footer-social {
    flex: 1 1 0;
    min-width: 0;
}

.lt-footer-links:not(:has(*)),
.lt-footer-social:not(:has(*)) {
    display: none;
}

/* Mạng xã hội (blocks/global.social.tpl): màu biểu tượng theo nhận diện từng nền tảng */
body #footer.lt-footer .lt-social-title {
    margin: 0 0 12px;
    font-size: 1.0625rem;
    font-weight: 800;
    color: #fff;
}

.lt-social-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body .lt-social-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: var(--lt-r-btn);
    background: rgba(255, 255, 255, 0.08);
    text-decoration: none;
    transition: background-color 150ms ease;
}

.lt-social-ico {
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: var(--lt-r-btn);
    color: #fff;
    font-size: 1.1875rem;
}

.lt-social-fb .lt-social-ico {
    background: #1877f2;
}

.lt-social-yt .lt-social-ico {
    background: #d90000;
}

.lt-social-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.3;
    color: #fff;
}

.lt-social-text small {
    font-size: 0.8125rem;
    font-weight: 400;
    color: #d5dfec;
}

@media (hover: hover) {
    body .lt-social-link:hover {
        background: rgba(255, 255, 255, 0.16);
        text-decoration: none;
    }
}

.lt-footer .lt-brand-name {
    color: #ffffff;
}

.lt-footer .lt-brand-sub {
    color: #d5dfec;
}

.lt-brand-footer {
    display: flex;
    margin-bottom: 18px;
}

.lt-footer a {
    color: #cbd5e1 !important;
}

.lt-footer a:hover {
    color: #ffffff !important;
}

.lt-footer .panel,
.lt-footer .well {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
}

.lt-footer .panel-body {
    padding: 0;
}

.lt-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.lt-totop {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-left: auto;
    border-radius: var(--lt-r-btn);
    background: rgba(255, 255, 255, 0.08);
    color: #e2e8f0 !important;
    transition: background-color 150ms ease, transform 100ms ease-out;
}

.lt-totop:hover {
    background: rgba(255, 255, 255, 0.16);
}

.lt-totop:active {
    transform: scale(0.95);
}

.theme-change a,
.theme-change span {
    margin-right: 12px;
}

/* ---------- Màn hình vừa ---------- */
@media (max-width: 1199.98px) {
    #menusite .navbar-default .navbar-nav > li > a,
    #menusite .navbar-nav > li > a {
        padding: 14px 8px;
        font-size: 0.8125rem;
    }
}

@media (max-width: 1023.98px) {
    .lt-hero-grid {
        grid-template-columns: 1fr;
    }

    .lt-featured {
        max-width: 640px;
    }

    .lt-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lt-stat:nth-child(3) {
        border-left: 0;
    }

    .lt-stat:nth-child(n + 3) {
        border-top: 1px solid var(--lt-line);
    }

    .lt-search .form-control {
        width: 180px;
    }

    /* Khổ tablet: thu khoảng đệm để menu giữ một dòng */
    #menusite .navbar-default .navbar-nav > li > a,
    #menusite .navbar-nav > li > a {
        padding: 14px 4px;
        font-size: 0.75rem;
    }

    #menusite .navbar-nav {
        gap: 0;
    }
}

/* ---------- Điện thoại ---------- */
@media (max-width: 767.98px) {
    .lt-wrap,
    .wraper {
        padding: 0 16px;
    }

    .lt-header-bar {
        min-height: 60px;
        gap: 8px;
    }

    .lt-header-tools {
        margin-right: 48px;
    }

    .lt-brand {
        gap: 8px;
    }

    .lt-brand-mark {
        width: 40px;
        height: 44px;
    }

    .lt-brand-name {
        -webkit-text-stroke-width: 1.6px;
        font-size: 1.21875rem;
    }

    .lt-brand-sub {
        font-size: 0.625rem;
        letter-spacing: 0;
    }

    .lt-search {
        display: none;
    }

    .lt-nav {
        position: relative;
        border-top: 0;
    }

    .lt-nav > .lt-wrap {
        position: relative;
    }

    #menusite .navbar-header {
        position: absolute;
        top: -52px;
        right: -8px;
        margin: 0;
    }

    /* style.css đặt nút tuyệt đối right: -50px, lòi ra ngoài trang và gây cuộn ngang trên điện thoại */
    #menusite .navbar-toggle {
        position: static;
        margin: 0;
        padding: 10px;
        border: 0;
        border-radius: var(--lt-r-btn);
        background: transparent;
    }

    #menusite .navbar-toggle:hover,
    #menusite .navbar-toggle:focus {
        border-color: transparent;
        background: var(--lt-brand-soft);
    }

    #menusite .navbar-toggle .icon-bar {
        width: 20px;
        background: var(--lt-ink);
    }

    /* Menu mở phủ lên nội dung ngay dưới thanh đầu trang nên phải có nền đặc (style.responsive.css đẩy xuống 50px) */
    #menusite .navbar-collapse {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: 2;
        width: auto;
        max-height: calc(100vh - 60px);
        max-height: calc(100dvh - 60px);
        overflow-y: auto;
        padding: 0 12px;
        border: 1px solid var(--lt-line);
        border-radius: 0 0 var(--lt-r-card) var(--lt-r-card);
        background: var(--lt-surface);
        box-shadow: var(--lt-shadow-lg);
    }

    #menusite .navbar-nav {
        display: block;
        margin: 0;
        padding: 8px 0 12px;
    }

    #menusite .navbar-default .navbar-nav > li > a,
    #menusite .navbar-nav > li > a {
        padding: 12px 8px;
        font-size: 1rem;
    }

    /* style.responsive.css tô chữ trắng cho mục đang chọn và khi rê */
    #menusite .navbar-default .navbar-nav > li > a:hover,
    #menusite .navbar-default .navbar-nav > li > a:focus,
    #menusite .navbar-default .navbar-nav > .open > a,
    #menusite .navbar-default .navbar-nav > .open > a:hover,
    #menusite .navbar-default .navbar-nav > .open > a:focus {
        color: var(--lt-ink) !important;
    }

    #menusite .navbar-default .navbar-nav > .active > a,
    #menusite .navbar-default .navbar-nav > .active > a:hover,
    #menusite .navbar-default .navbar-nav > .active > a:focus {
        color: var(--lt-brand) !important;
    }

    /* Vùng bấm mũi tên mở mục con đủ lớn cho ngón tay (chữ vẫn là liên kết sang trang) */
    #menusite .navbar-default .navbar-nav > li > a > .caret {
        top: 0;
        right: 0;
        width: 48px;
        height: 100%;
        opacity: 1;
    }

    #menusite .navbar-default .navbar-nav > .open > a > .caret::before {
        content: '\f0d8';
    }

    /* Mục con nằm trong khung menu, thụt vào theo cấp, không nền riêng */
    #menusite .navbar-nav .open .dropdown-menu,
    #menusite .navbar-nav .open .dropdown-submenu > .dropdown-menu {
        display: block;
        position: static;
        float: none;
        min-width: 0;
        margin: 0;
        padding: 0 0 0 12px;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none;
        animation: none;
    }

    #menusite .dropdown-menu > li > a,
    #menusite .dropdown-submenu a {
        padding: 10px 8px !important;
        border-top: 0 !important;
        background: transparent;
        line-height: 1.5;
        font-size: 0.9375rem;
    }

    #menusite .dropdown-submenu li a {
        color: var(--lt-text) !important;
    }

    #menusite .dropdown-submenu > .dropdown-menu a {
        font-size: 0.875rem;
    }

    .lt-actions .lt-btn {
        flex: 1 1 auto;
    }

    .lt-stat {
        padding: 22px 12px;
    }

    .lt-footer-grid {
        flex-direction: column;
        gap: 28px;
    }

    :root {
        --lt-gap: 14px;
    }
}

/* Điện thoại hẹp: thu logo và chữ để hai dòng tên không chạm nút menu */
@media (max-width: 413.98px) {
    .lt-brand {
        gap: 6px;
    }

    .lt-brand-mark {
        width: 36px;
        height: 40px;
    }

    .lt-brand-sub {
        font-size: 0.5625rem;
    }

    .lt-brand-name {
        font-size: 1.09375rem;
    }
}

@media (max-width: 349.98px) {
    .lt-header-bar {
        padding: 0 12px;
    }

    .lt-brand-mark {
        width: 34px;
        height: 38px;
    }

    .lt-brand-sub {
        font-size: 0.53125rem;
    }

    .lt-brand-name {
        font-size: 1.03125rem;
    }
}

/* Vùng chạm trên điện thoại: liên kết nhỏ đứng riêng đủ cao để bấm bằng ngón tay */
@media (max-width: 767.98px) {
    .lt-crumbs .breadcrumbs a {
        display: inline-block;
        padding: 6px 0 !important;
    }

    body .block-law .law-code a {
        display: inline-block;
        padding: 4px 0;
    }

    .news_column a.dimgray {
        display: inline-block;
        padding: 10px 8px;
    }

    body a.lt-more {
        min-height: 40px;
    }

    body .pagination > li > a,
    body .pagination > li > span {
        padding: 10px 14px;
    }
}

/* Điện thoại hẹp: thanh thống kê bỏ bớt khoảng để số dài không tràn ô */
@media (max-width: 413.98px) {
    .lt-statbar-item {
        gap: 8px;
        padding: 10px 6px;
    }

    .lt-statbar-ico {
        width: 30px;
        height: 30px;
        font-size: 0.875rem;
    }

    .lt-statbar-num {
        font-size: 1.0625rem;
    }
}

/* Thành phần của bootstrap và style.css theo cùng thang bo góc; nút phát video và ô chọn giữ tròn */
.modal-content {
    border-radius: var(--lt-r-lg);
}

#sitemodal .close,
#sitemodalTerm .close,
body button.close,
body .badge,
body [class*="social-share-"] {
    border-radius: var(--lt-r-btn);
}


/* ---------- Trợ năng ---------- */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .lt-btn:active,
    .lt-totop:active,
    body .btn:active,
    .lt-featured:hover .lt-featured-media img {
        transform: none;
    }
}

@media (prefers-contrast: more) {
    :root {
        --lt-line: #64748b;
        --lt-text-3: #334155;
    }

    .lt-header {
        background: var(--lt-surface);
    }
}

/* ---------- Hoa văn trống đồng Đông Sơn (cùng hoa văn nền site quiz) ----------
 * images/trong-dong-mask.webp chỉ giữ nét ở kênh trong suốt nên dùng làm mask, màu lấy từ background-color:
 * xanh trường trên nền trang sáng, vàng trên dải xanh đậm. Các thẻ nền đặc nằm trên, hoa văn chỉ lộ ở khoảng trống.
 * Lớp ::before cố định thay cho background-attachment: fixed vì Safari iOS bỏ qua thuộc tính đó.
 * Chỉnh độ chìm ở opacity, độ lớn ở mask-size. */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.1;
    background-color: var(--lt-brand);
    -webkit-mask:
        url("../images/trong-dong-mask.webp") right -22vmax top -18vmax / 78vmax auto no-repeat,
        url("../images/trong-dong-mask.webp") left -20vmax bottom -24vmax / 56vmax auto no-repeat;
    mask:
        url("../images/trong-dong-mask.webp") right -22vmax top -18vmax / 78vmax auto no-repeat,
        url("../images/trong-dong-mask.webp") left -20vmax bottom -24vmax / 56vmax auto no-repeat;
}

body #footer.lt-footer,
.lt-video {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

body #footer.lt-footer::before,
.lt-video::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.14;
    background-color: var(--lt-amber);
    -webkit-mask: url("../images/trong-dong-mask.webp") right -180px center / 520px auto no-repeat;
    mask: url("../images/trong-dong-mask.webp") right -180px center / 520px auto no-repeat;
}

.lt-video::before {
    -webkit-mask: url("../images/trong-dong-mask.webp") left -260px top -200px / 640px auto no-repeat;
    mask: url("../images/trong-dong-mask.webp") left -260px top -200px / 640px auto no-repeat;
}

@media (max-width: 767.98px) {
    body::before {
        -webkit-mask-position: right -40vmax top -14vmax, left -32vmax bottom -20vmax;
        mask-position: right -40vmax top -14vmax, left -32vmax bottom -20vmax;
        -webkit-mask-size: 92vmax auto, 64vmax auto;
        mask-size: 92vmax auto, 64vmax auto;
    }

    body #footer.lt-footer::before,
    .lt-video::before {
        -webkit-mask-position: right -160px bottom -120px;
        mask-position: right -160px bottom -120px;
        -webkit-mask-size: 400px auto;
        mask-size: 400px auto;
    }
}

@media print {
    body::before {
        display: none;
    }

    .lt-header,
    .lt-footer,
    .lt-home-intro,
    .lt-home-values {
        display: none !important;
    }
}

/* =====================================================================
 * Đợt 2 (PORTAL-LOCTHAI-GIAODIEN-2)
 * ===================================================================== */

/* ---------- Slide ảnh khổ rộng [HOME_SLIDER] (module slider, plugin carousel) ---------- */
.lt-slider {
    position: relative;
    height: clamp(420px, 72svh, 680px);
    overflow: hidden;
    background: var(--lt-navy-2);
    color: #fff;
    isolation: isolate;
}

.lt-slider-track,
.lt-slide,
.lt-slide-media {
    position: absolute;
    inset: 0;
}

.lt-slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity 900ms var(--lt-ease), visibility 0s linear 900ms;
}

/* Ảnh loading="lazy": slide không dùng tới ẩn hẳn (ngay từ CSS, trước khi JS chạy) để trình duyệt chưa tải;
 * JS gắn .is-near cho slide vừa rời và slide kế. Chưa có JS thì chỉ slide đầu hiện. */
.lt-slide:not(.is-active):not(.is-near) {
    display: none;
}

.lt-slide.is-active {
    opacity: 1;
    visibility: visible;
    transition: opacity 900ms var(--lt-ease), visibility 0s;
}

/* Khung đầu tiên khi JS bật slide: không chạy hiệu ứng hiện dần (ảnh đầu đã hiện sẵn), js/locthai.js gỡ lớp sau 2 khung hình */
.lt-slider.no-anim .lt-slide,
.lt-slider.no-anim .lt-slide-body > *,
.lt-hl.no-anim .lt-hl-slide,
.lt-hl.no-anim .lt-hl-body > * {
    transition: none !important;
}

/* Vuốt ngang do JS xử lý (slide bám ngón), vuốt dọc vẫn cuộn trang */
.lt-slider,
.lt-hl {
    touch-action: pan-y;
}

/* JS chưa chạy: hiện slide đầu */
.lt-slider:not(.is-ready) .lt-slide:first-child {
    display: block;
    opacity: 1;
    visibility: visible;
}

.lt-slide-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
    transform: scale(1.06);
    transition: transform 7s linear;
}

.lt-slide.is-active .lt-slide-media img {
    transform: scale(1);
}

/* Lớp phủ: đậm bên trái cho chữ, nhạt dần sang phải; đáy tối để dải số liệu nổi */
.lt-slide-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(13, 79, 168, 0.86) 0%, rgba(13, 79, 168, 0.6) 34%, rgba(13, 79, 168, 0.08) 68%, rgba(13, 79, 168, 0) 100%),
        linear-gradient(0deg, rgba(13, 79, 168, 0.55) 0%, rgba(13, 79, 168, 0) 32%);
}

.lt-slide-body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    height: 100%;
    padding-bottom: 96px;
}

.lt-slide-body > * {
    max-width: 560px;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 600ms var(--lt-ease), transform 600ms var(--lt-ease);
}

.lt-slide.is-active .lt-slide-body > * {
    opacity: 1;
    transform: none;
}

.lt-slide.is-active .lt-slide-body > :nth-child(2) { transition-delay: 90ms; }
.lt-slide.is-active .lt-slide-body > :nth-child(3) { transition-delay: 180ms; }
.lt-slide.is-active .lt-slide-body > :nth-child(4) { transition-delay: 270ms; }

.lt-slider .lt-slide-title {
    margin: 0 0 12px;
    font-size: clamp(1.75rem, 3.6vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: #fff;
    text-wrap: balance;
}

.lt-slide-text {
    margin: 0 0 24px;
    font-size: clamp(0.975rem, 1.3vw, 1.125rem);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.86);
}

.lt-slide-text:empty {
    display: none;
}

.lt-slider .lt-slide-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.lt-slider .lt-slide-cta svg {
    transition: transform 250ms var(--lt-ease);
}

.lt-slider .lt-slide-cta:hover svg {
    transform: translateX(3px);
}

/* Điều khiển: chấm có thanh tiến trình + nút dừng/trước/sau */
.lt-slider-ui {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 84px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 auto;
}

.lt-slider-dots {
    display: flex;
    gap: 8px;
}

.lt-slider-dot {
    position: relative;
    width: 36px;
    height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.lt-slider-dot::before,
.lt-slider-dot::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 11px;
    height: 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.35);
}

.lt-slider-dot::after {
    background: var(--lt-amber);
    transform: scaleX(0);
    transform-origin: left;
}

.lt-slider-dot[aria-selected="true"]::after {
    transform: scaleX(1);
    transition: transform var(--lt-slide-ms, 6000ms) linear;
}

.lt-slider.is-paused .lt-slider-dot[aria-selected="true"]::after {
    transition: none;
}

.lt-slider-nav {
    display: flex;
    gap: 8px;
}

.lt-slider-btn {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--lt-r-btn);
    color: #fff;
    background: rgba(13, 79, 168, 0.72);
    cursor: pointer;
    transition: background 200ms ease, border-color 200ms ease, transform 150ms ease;
}

.lt-slider-btn:hover {
    background: rgba(13, 79, 168, 0.65);
    border-color: var(--lt-amber);
}

.lt-slider-btn:active {
    transform: scale(0.96);
}

.lt-slider-btn .lt-ico-play,
.lt-slider.is-paused .lt-slider-btn .lt-ico-pause {
    display: none;
}

.lt-slider.is-paused .lt-slider-btn .lt-ico-play {
    display: block;
}

/* Dải số liệu nổi lên mép dưới slide (khối giới thiệu kiểu "stats") */
.lt-stats-band--float {
    position: relative;
    z-index: 3;
    margin-top: -52px;
    background: transparent;
    border-bottom: 0;
}

.lt-stats-band--float .lt-stats {
    background: var(--lt-surface);
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-lg);
    box-shadow: var(--lt-shadow-lg);
}

.lt-stats-band--float .lt-stat {
    position: relative;
}

.lt-stats-band--float .lt-stat-number {
    color: var(--lt-ink);
    transition: color 250ms ease;
}

/* ---------- Bung ra khi cuộn: lớp do locthai.js gắn, không có JS thì nội dung hiện bình thường ---------- */
.lt-reveal {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 500ms ease, transform 500ms ease;
    transition-delay: calc(var(--lt-i, 0) * 30ms);
}

.lt-reveal.is-in {
    opacity: 1;
    transform: none;
}

/* ---------- Rê chuột ---------- */
@media (hover: hover) {
    .lt-stats-band--float .lt-stat:hover .lt-stat-number {
        color: var(--lt-brand);
    }

}

/* ---------- Màn hình nhỏ ---------- */
@media (max-width: 767.98px) {
    .lt-slider {
        height: clamp(400px, 64svh, 540px);
    }

    .lt-slide-media img {
        object-position: center 40%;
    }

    .lt-slide-media::after {
        background: linear-gradient(0deg, rgba(13, 79, 168, 0.92) 0%, rgba(13, 79, 168, 0.55) 48%, rgba(13, 79, 168, 0.1) 100%);
    }

    .lt-slide-body {
        justify-content: flex-end;
        padding-bottom: 132px;
    }

    .lt-slide-text {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 16px;
    }

    .lt-slider-ui {
        bottom: 72px;
    }

    .lt-slider-btn[data-lt-prev],
    .lt-slider-btn[data-lt-next] {
        display: none;
    }

    .lt-slider-dot {
        width: 24px;
    }

    .lt-stats-band--float {
        margin-top: -48px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lt-slide-media img,
    .lt-slide.is-active .lt-slide-media img {
        transform: none;
    }

    .lt-slide-body > *,
    .lt-reveal {
        opacity: 1;
        transform: none;
    }
}

/* ---------- Trang chủ: khung các khu (layout.home.tpl) ---------- */
.lt-home-lead {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
}

.lt-home-lead-main,
.lt-home-lead-side {
    min-width: 0;
}

/* Cột thông báo kéo dài bằng cột tin, các hàng chia đều chiều cao */
.lt-home-lead-side .lt-sec {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.lt-home-lead-side .lt-notice-list {
    flex: 1;
    display: grid;
    grid-auto-rows: 1fr;
}

.lt-home-lead-side .lt-notice-item {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 12px;
    padding: 10px 14px;
}

.lt-home-lead-side .lt-notice-body {
    flex-direction: column;
    gap: 2px;
}

body .lt-home-lead-side a.lt-notice-title {
    font-size: 0.9375rem;
    line-height: 1.4;
}

.lt-home-after {
    padding: var(--lt-section) 0;
}

/* Tiện ích: văn bản mới 2/3 (3 văn bản xếp ngang), liên kết + biểu ngữ xếp chồng 1/3 */
.lt-home-util {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--lt-gap);
    align-items: stretch;
    margin-top: var(--lt-section);
}

.lt-home-util .panel:has(.block-law) {
    grid-row: span 2;
}

/* Văn bản mới ở trang chủ: một cột, mỗi văn bản một hàng như danh sách Thông báo; trái là số hiệu và trích yếu,
 * phải là ngày đăng và lượt xem (PORTAL-LOCTHAI-APPLE, thay ba cột hẹp chen chữ nhỏ) */
.lt-home-util .block-law {
    display: block;
}

body .lt-home-util .block-law .item {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "code date" "title views";
    gap: 2px 20px;
    margin: 0 -10px;
    padding: 10px;
    border: 0;
    border-radius: var(--lt-r-btn);
}

body .lt-home-util .block-law .item + .item {
    border-top: 1px solid var(--lt-line);
}

/* Cả hàng bấm được (số hiệu là liên kết duy nhất), như hàng Thông báo và Liên kết */
body .lt-home-util .block-law .law-code a::after {
    content: "";
    position: absolute;
    inset: 0;
}

body .lt-home-util .block-law .law-code {
    grid-area: code;
}

body .lt-home-util .block-law .law-title {
    grid-area: title;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.5;
}

body .lt-home-util .block-law p.law-view {
    grid-area: date;
    align-self: end;
    text-align: right;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

body .lt-home-util .block-law em.law-view {
    grid-area: views;
    text-align: right;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

.lt-home-util:not(:has(*)) {
    display: none;
}

.lt-home-util .panel {
    height: 100%;
    margin: 0;
}

.lt-home-util .nv-block-banners {
    height: 100%;
}

.lt-home-util .nv-block-banners img {
    width: 100%;
    height: 100%;
    border-radius: var(--lt-r-card);
    object-fit: cover;
}

/* Tiêu đề khu */
.lt-sec-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--lt-line);
}

.lt-sec .lt-sec-title {
    margin: 0;
    font-size: var(--lt-h2);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--lt-ink);
}

.lt-sec-sub {
    margin: 4px 0 0;
    font-size: 0.9375rem;
    color: var(--lt-text-3);
}

body a.lt-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: nowrap;
}

body a.lt-more:hover {
    text-decoration: none;
}

/* Thẻ tin dùng chung */
.lt-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--lt-surface);
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    overflow: hidden;
    transition: transform 300ms var(--lt-ease), box-shadow 300ms var(--lt-ease), border-color 300ms ease;
}

.lt-card-media {
    display: block;
    overflow: hidden;
    background: var(--lt-surface-2);
}

.lt-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lt-ease);
}

/* Tin không ảnh: huy hiệu trường trên nền navy nhạt */
.lt-ph {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background: var(--lt-brand-soft);
}

.lt-card-media .lt-ph img {
    width: auto;
    height: auto;
    max-width: 36%;
    opacity: 0.55;
    object-fit: contain;
}

.lt-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 16px 18px 18px;
}

.lt-tag {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lt-brand);
}

body .lt-card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: pretty;
}

body .lt-card-title a {
    color: var(--lt-text);
    transition: color 200ms ease;
}

/* Cả thẻ bấm được qua tiêu đề */
.lt-card-title a::after {
    content: "";
    position: absolute;
    inset: 0;
}

.lt-card-text:empty {
    display: none;
}

.lt-card-text {
    margin: 0;
    color: var(--lt-text-2);
    font-size: 0.9375rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lt-card-date {
    margin-top: auto;
    font-size: 0.8125rem;
    color: var(--lt-text-3);
    font-variant-numeric: tabular-nums;
}

/* Slide tin [HOME_NEWS] (khối global.locthai_news, kiểu headline): lấy từ Các nhóm tin.
 * Ảnh phủ kín khung, tiêu đề nằm dưới trên lớp phủ xanh; cả khung bấm được qua tiêu đề.
 * Chuyển động nhẹ: mờ dần 900ms, ảnh trôi chậm suốt thời gian hiện, chữ nhích lên 8px; không trượt ngang. */
.lt-hl {
    position: relative;
    width: 100%; /* min-height ở điện thoại không được kéo giãn bề ngang theo tỉ lệ khung */
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--lt-r-card);
    background: var(--lt-navy-2);
    box-shadow: var(--lt-shadow);
    isolation: isolate;
}

.lt-hl-track,
.lt-hl-slide {
    position: absolute;
    inset: 0;
}

.lt-hl-slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity 900ms ease, visibility 0s linear 900ms;
}

.lt-hl-slide.is-active,
.lt-hl:not(.is-ready) .lt-hl-slide:first-child {
    opacity: 1;
    visibility: visible;
    transition: opacity 900ms ease, visibility 0s;
}

.lt-hl-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
    transition: transform 8s linear;
}

.lt-hl-slide.is-active .lt-hl-img {
    transform: scale(1);
}

/* Lớp phủ đậm dần xuống đáy để tiêu đề luôn đọc được, phần trên giữ nguyên ảnh */
.lt-hl-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(13, 79, 168, 0.96) 0%, rgba(13, 79, 168, 0.86) 26%, rgba(13, 79, 168, 0.32) 54%, rgba(13, 79, 168, 0) 72%);
}

/* Thân chữ phủ cả khung, chữ dồn xuống đáy: vùng bấm của tiêu đề (a::after) nhờ đó trải khắp ảnh */
.lt-hl-body {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 8px;
    padding: 0 24px 64px;
    color: #e6edf6;
}

.lt-hl-body > * {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 700ms ease, transform 700ms var(--lt-ease);
}

.lt-hl-slide.is-active .lt-hl-body > *,
.lt-hl:not(.is-ready) .lt-hl-slide:first-child .lt-hl-body > * {
    opacity: 1;
    transform: none;
}

.lt-hl-slide.is-active .lt-hl-body > :nth-child(2) { transition-delay: 120ms; }

body .lt-hl-title {
    margin: 0;
    font-size: clamp(1.1875rem, 2vw, 1.625rem);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: balance;
}

body .lt-hl-title a,
body .lt-hl-title a:hover {
    color: #fff;
}

.lt-hl-title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.lt-hl-meta {
    margin: 0;
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
}

/* Điều khiển ở đáy khung; dùng lại chấm + nút của slide ảnh */
.lt-hl-ui {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    bottom: 12px;
    padding: 0 24px;
}

.lt-hl .lt-slider-dot {
    width: 24px;
}

.lt-hl .lt-slider-btn {
    width: 38px;
    height: 38px;
}

.lt-hl.is-paused .lt-slider-dot[aria-selected="true"]::after {
    transition: none;
}

.lt-hl .lt-slider-btn .lt-ico-play,
.lt-hl.is-paused .lt-slider-btn .lt-ico-pause {
    display: none;
}

.lt-hl.is-paused .lt-slider-btn .lt-ico-play {
    display: block;
}

@media (hover: hover) {
    .lt-hl:hover .lt-hl-title a {
        color: var(--lt-accent-on-navy);
    }
}

@media (max-width: 767.98px) {
    .lt-hl {
        aspect-ratio: 4 / 3;
        min-height: 320px;
    }

    .lt-hl-body {
        gap: 6px;
        padding: 0 16px 66px;
    }

    /* Chữ chiếm nhiều hơn nửa khung: lớp phủ phải lên cao hơn */
    .lt-hl-slide::after {
        background: linear-gradient(0deg, rgba(13, 79, 168, 0.97) 0%, rgba(13, 79, 168, 0.9) 48%, rgba(13, 79, 168, 0.4) 74%, rgba(13, 79, 168, 0) 92%);
    }

    body .lt-hl-title {
        font-size: 1.0625rem;
        -webkit-line-clamp: 4;
    }

    .lt-hl-ui {
        padding: 0 16px;
    }

    /* Giữ đủ vùng chạm trên màn hình cảm ứng */
    .lt-hl .lt-slider-btn {
        width: 44px;
        height: 44px;
    }

    .lt-hl .lt-slider-btn[data-lt-prev],
    .lt-hl .lt-slider-btn[data-lt-next] {
        display: inline-grid;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lt-hl-slide,
    .lt-hl-slide.is-active,
    .lt-hl-img,
    .lt-hl-body > * {
        transition: none;
    }

    .lt-hl-img,
    .lt-hl-body > * {
        transform: none;
    }

    .lt-hl-body > * {
        opacity: 1;
    }
}

/* Tin nổi bật: 1 tin lớn nằm ngang + hàng 3 thẻ */
.lt-card-lead {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
}

.lt-card-lead .lt-card-media {
    height: 100%;
    min-height: 280px;
}

body .lt-card-lead .lt-card-title {
    font-size: clamp(1.125rem, 1.7vw, 1.375rem);
    line-height: 1.35;
    -webkit-line-clamp: 5;
}

.lt-card-lead .lt-card-body {
    gap: 12px;
    padding: 24px;
}

.lt-mag-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--lt-gap);
    margin-top: var(--lt-gap);
}

.lt-card-small .lt-card-media {
    aspect-ratio: 16 / 9;
}

.lt-card-small .lt-card-body {
    padding: 14px 16px 16px;
}

body .lt-card-small .lt-card-title {
    font-size: 0.9375rem;
}

/* Thông báo: ô ngày dạng tờ lịch */
.lt-notice-list {
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--lt-surface);
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    overflow: hidden;
}

.lt-notice-item {
    position: relative;
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 14px 18px;
    transition: background 200ms ease;
}

.lt-notice-item + .lt-notice-item {
    border-top: 1px solid var(--lt-line);
}

.lt-cal {
    display: grid;
    overflow: hidden;
    text-align: center;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface);
    font-variant-numeric: tabular-nums;
    transition: border-color 200ms ease, transform 300ms var(--lt-ease);
}

.lt-cal-m {
    padding: 2px 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #fff;
    background: var(--lt-navy);
}

.lt-cal-d {
    padding-top: 2px;
    font-size: 1.375rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--lt-ink);
}

.lt-cal-y {
    padding-bottom: 3px;
    font-size: 0.75rem;
    color: var(--lt-text-3);
}

.lt-notice-body {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
}

body a.lt-notice-title {
    color: var(--lt-text);
    font-weight: 600;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

body a.lt-notice-title::after {
    content: "";
    position: absolute;
    inset: 0;
}

.lt-new {
    flex-shrink: 0;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 700;
    color: #3d2a05;
    background: var(--lt-amber);
}

/* ---------- Dải video toàn khổ [HOME_VIDEO] (khối global.locthai_video) ----------
 * Nền xanh đậm phẳng, màn hình lớn; độ nổi đến từ kích thước, không từ hiệu ứng. */
.lt-video {
    position: relative;
    padding: clamp(32px, 3.5vw, 44px) 0;
    overflow: hidden;
    color: #cbd5e1;
    background: var(--lt-navy-2);
}

.lt-video-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: 20px clamp(32px, 4.5vw, 56px);
}

.lt-video-stage {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    min-width: 0;
}

.lt-video-head {
    grid-column: 2;
    grid-row: 1;
}

.lt-video-copy {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
}

body .lt-video-heading {
    margin: 0;
    font-size: clamp(2rem, 3.6vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.025em;
    color: #fff;
    text-wrap: balance;
}

.lt-video-screen {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--lt-r-lg);
    background: var(--lt-navy-2);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.lt-video-screen .lt-yt-frame {
    position: absolute;
    inset: 0;
    height: 100%;
    border-radius: 0;
    background: #000;
}

.lt-video-play {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.lt-video-poster {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 900ms var(--lt-ease);
}

.lt-video-play::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(13, 79, 168, 0.42) 0%, rgba(13, 79, 168, 0.06) 46%);
    transition: opacity 300ms ease;
}

.lt-video-btn {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    display: grid;
    place-items: center;
    width: clamp(68px, 8vw, 96px);
    height: clamp(68px, 8vw, 96px);
    border-radius: 999px;
    color: var(--lt-navy-2);
    background: var(--lt-amber);
    transform: translate(-50%, -50%);
    box-shadow: 0 16px 36px -10px rgba(13, 79, 168, 0.75);
    transition: transform 300ms var(--lt-ease), background-color 200ms ease;
}

.lt-video-btn svg {
    position: relative;
    margin-left: 4px;
}

.lt-video-play:active .lt-video-btn {
    transform: translate(-50%, -50%) scale(0.96);
}

.lt-video-topic {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #d5dfec;
}

.lt-video-topic:empty {
    display: none;
}

body .lt-video-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
    text-wrap: pretty;
}

body .lt-video-title a {
    color: #fff;
}

body .lt-video-title a:hover {
    color: var(--lt-accent-on-navy);
}

.lt-video-text {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lt-video-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0;
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    color: #d5dfec;
}

.lt-video-list {
    align-self: stretch;
    display: grid;
    gap: 4px;
    max-height: 208px;
    margin: 4px 0 0;
    padding: 8px 0 0;
    overflow-y: auto;
    list-style: none;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
}

.lt-video-item {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 6px;
    border: 0;
    border-radius: var(--lt-r-btn);
    background: transparent;
    color: #cbd5e1;
    font: inherit;
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
    transition: background-color 150ms ease, color 150ms ease;
}

.lt-video-item[aria-current="true"] {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.lt-video-thumb {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.08);
}

.lt-video-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lt-video-item-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lt-video-actions {
    margin-top: 8px;
}

/* ---------- Khu chuyên mục [HOME_CATS] (khối global.locthai_news, kiểu tabs) ----------
 * Cột trái là mục lục (biểu tượng, tên, số bài); bên phải là tin của chuyên mục đang chọn: 1 tin chính + danh sách. */
.lt-hub-box {
    display: grid;
    grid-template-columns: 288px minmax(0, 1fr);
    min-height: 514px; /* bằng chuyên mục dài nhất, đổi tab trang không nhảy */
    overflow: hidden;
    background: var(--lt-surface);
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    box-shadow: var(--lt-shadow);
}

.lt-hub-rail {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px;
    background: var(--lt-surface-2);
    border-right: 1px solid var(--lt-line);
}

.lt-hub-tab {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 8px 12px 8px 8px;
    border: 0;
    border-radius: var(--lt-r-btn);
    background: transparent;
    color: var(--lt-text-2);
    font: inherit;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: background-color 150ms ease, color 150ms ease;
}

.lt-hub-ico {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: var(--lt-r-btn);
    background: var(--lt-brand-soft);
    color: var(--lt-brand);
    font-size: 1rem;
    transition: background-color 150ms ease, color 150ms ease;
}

.lt-hub-count {
    color: var(--lt-text-3);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.lt-hub-tab[aria-selected="true"] {
    background: var(--lt-navy);
    color: #fff;
}

.lt-hub-tab[aria-selected="true"] .lt-hub-ico {
    background: var(--lt-amber);
    color: var(--lt-navy-2);
}

.lt-hub-tab[aria-selected="true"] .lt-hub-count {
    color: rgba(255, 255, 255, 0.82);
}

.lt-hub-panel:not([hidden]) {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 24px;
    padding: 16px 20px;
    animation: lt-fade-up 400ms var(--lt-ease);
}

@keyframes lt-fade-up {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
}

.lt-hub-lead {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.lt-hub-media {
    display: block;
    aspect-ratio: 16 / 9;
    margin-bottom: 4px;
    overflow: hidden;
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface-2);
}

.lt-hub-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lt-ease);
}

body .lt-hub-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.01em;
    text-wrap: pretty;
}

body .lt-hub-title a {
    color: var(--lt-text);
}

.lt-hub-title a::after {
    content: "";
    position: absolute;
    inset: 0;
}

/* Chuyên mục không có tin kèm ảnh: danh sách chiếm trọn khung */
.lt-hub-panel:not([hidden]):not(:has(.lt-hub-lead)) {
    grid-template-columns: minmax(0, 1fr);
}

.lt-hub-side {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.lt-hub-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.lt-hub-list li {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 6px 0;
}

.lt-hub-list li:first-child {
    padding-top: 0;
}

.lt-hub-list li + li {
    border-top: 1px solid var(--lt-line);
}

.lt-hub-list .lt-cal-d {
    font-size: 1.1875rem;
}

body .lt-hub-list a {
    color: var(--lt-text);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lt-hub-side .lt-more {
    align-self: flex-start;
    margin-top: auto;
}

/* Chuyên mục chỉ có một tin: tin chiếm trọn khung */
.lt-hub-panel:not([hidden]):not(:has(.lt-hub-list li)) {
    grid-template-columns: minmax(0, 1fr);
}

.lt-hub-side:not(:has(.lt-hub-list li)) .lt-hub-list {
    display: none;
}

/* ... ảnh và chữ nằm ngang để khung không cao vọt so với cột mục lục */
.lt-hub-panel:not(:has(.lt-hub-list li)) .lt-hub-lead:has(.lt-hub-media) {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    grid-auto-rows: min-content;
    column-gap: 24px;
}

.lt-hub-panel:not(:has(.lt-hub-list li)) .lt-hub-media {
    grid-column: 1;
    grid-row: 1 / span 4;
    margin: 0;
}

@media (hover: hover) {
    .lt-card:hover {
        border-color: rgba(23, 105, 209, 0.4);
    }

    .lt-card:hover .lt-card-media img {
        transform: scale(1.05);
    }

    .lt-card:hover .lt-ph img {
        transform: none;
    }

    body .lt-card:hover .lt-card-title a {
        color: var(--lt-brand);
    }

    .lt-notice-item:hover {
        background: var(--lt-brand-soft);
    }

    .lt-notice-item:hover .lt-cal {
        border-color: var(--lt-amber);
        transform: translateY(-2px);
    }

    .lt-notice-item:hover .lt-notice-title {
        color: var(--lt-brand);
    }

    .lt-video-play:hover .lt-video-poster {
        transform: scale(1.03);
    }

    .lt-video-play:hover .lt-video-btn {
        background: var(--lt-accent-on-navy);
        transform: translate(-50%, -50%) scale(1.08);
    }

    .lt-video-item:hover {
        color: #fff;
        background: rgba(255, 255, 255, 0.07);
    }

    .lt-hub-tab:not([aria-selected="true"]):hover {
        background: var(--lt-brand-soft);
        color: var(--lt-ink);
    }

    .lt-hub-lead:hover .lt-hub-media img {
        transform: scale(1.05);
    }

    body .lt-hub-lead:hover .lt-hub-title a,
    body .lt-hub-list a:hover {
        color: var(--lt-brand);
        text-decoration: none;
    }
}

@media (max-width: 1199.98px) {
    .lt-hub-box {
        grid-template-columns: 248px minmax(0, 1fr);
    }

    .lt-hub-panel:not([hidden]) {
        gap: 24px;
    }
}

@media (max-width: 991.98px) {
    .lt-home-lead {
        grid-template-columns: minmax(0, 1fr);
        gap: 40px;
    }

    .lt-video-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
    }

    .lt-video-head,
    .lt-video-stage,
    .lt-video-copy {
        grid-column: 1;
        grid-row: auto;
    }

    .lt-video-head {
        margin-bottom: 4px;
    }

    .lt-video-stage {
        margin-bottom: 8px;
    }

    .lt-video-list {
        grid-auto-flow: column;
        grid-auto-columns: minmax(220px, 1fr);
        max-height: none;
        padding-bottom: 6px;
        overflow-x: auto;
        overflow-y: hidden;
    }

    /* Mục lục chuyên mục thành hàng cuộn ngang */
    .lt-hub-box {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }

    .lt-hub-rail {
        position: relative;
        flex-direction: row;
        overflow-x: auto;
        border-right: 0;
        border-bottom: 1px solid var(--lt-line);
        scrollbar-width: none;
        scroll-snap-type: x proximity;
    }

    .lt-hub-rail::-webkit-scrollbar {
        display: none;
    }

    .lt-hub-tab {
        flex: none;
        width: auto;
        min-height: 44px;
        grid-template-columns: 28px auto auto;
        gap: 8px;
        padding: 6px 10px 6px 6px;
        white-space: nowrap;
        scroll-snap-align: center;
    }

    .lt-hub-ico {
        width: 28px;
        height: 28px;
        font-size: 0.875rem;
    }

    .lt-home-util {
        grid-template-columns: minmax(0, 1fr);
    }

    .lt-home-util .panel:has(.block-law) {
        grid-row: auto;
    }
}

@media (max-width: 767.98px) {
    .lt-card-lead {
        display: flex;
    }

    .lt-card-lead .lt-card-media {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .lt-card-lead .lt-card-body {
        padding: 16px 18px 18px;
    }

    .lt-mag-list {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Thẻ nhỏ thành hàng ngang cho gọn */
    .lt-card-small {
        display: grid;
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .lt-card-small .lt-card-media {
        height: 100%;
        aspect-ratio: auto;
        min-height: 96px;
    }

    .lt-card-small .lt-card-body {
        gap: 6px;
        padding: 12px 14px;
    }

    .lt-notice-item {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 12px;
        padding: 12px 14px;
    }

    .lt-notice-body {
        flex-direction: column;
        gap: 4px;
    }

    .lt-hub-panel:not([hidden]) {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 16px;
    }

    body .lt-home-util .block-law .item {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "code" "title" "date" "views";
    }

    body .lt-home-util .block-law p.law-view,
    body .lt-home-util .block-law em.law-view {
        text-align: left;
    }

    .lt-home-util .nv-block-banners {
        height: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lt-card:hover,
    .lt-card:hover .lt-card-media img,
    .lt-notice-item:hover .lt-cal,
    .lt-video-play:hover .lt-video-poster,
    .lt-hub-lead:hover .lt-hub-media img {
        transform: none;
    }

    .lt-video-play:hover .lt-video-btn {
        transform: translate(-50%, -50%);
    }

    .lt-hub-panel:not([hidden]) {
        animation: none;
    }
}

/* ---------- Banner sự kiện [EVENT_BANNER] (module banners, banner HTML lớp .lt-event) ---------- */
.lt-home-events {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--lt-gap);
    margin-top: var(--lt-gap);
}

.lt-home-events:not(:has(.nv-block-banners)) {
    display: none;
}

.lt-home-events .nv-block-banners > div {
    height: 100%;
    text-align: left;
}

body a.lt-event {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    min-height: 132px;
    padding: 18px 22px;
    overflow: hidden;
    border-radius: var(--lt-r-lg);
    text-decoration: none;
    isolation: isolate;
    transition: transform 300ms var(--lt-ease), box-shadow 300ms var(--lt-ease);
}

.lt-event-navy {
    color: #e2e8f0;
    background: var(--lt-navy-2);
}

.lt-event-light {
    color: var(--lt-text-2);
    background: var(--lt-surface);
    border: 1px solid var(--lt-line);
}

.lt-event-kicker {
    font-size: 0.875rem;
    font-weight: 600;
}

.lt-event-navy .lt-event-kicker {
    color: var(--lt-accent-on-navy);
}

.lt-event-light .lt-event-kicker {
    color: var(--lt-accent);
}

.lt-event-title {
    max-width: 30ch;
    font-size: clamp(1.125rem, 1.8vw, 1.375rem);
    font-weight: 800;
    line-height: 1.3;
}

.lt-event-navy .lt-event-title {
    color: #fff;
}

.lt-event-light .lt-event-title {
    color: var(--lt-ink);
}

.lt-event-navy .lt-event-text {
    color: #d5dfec;
}

.lt-event-text {
    max-width: 44ch;
    font-size: 0.9375rem;
    line-height: 1.55;
}

.lt-event-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 8px;
    font-size: 0.9375rem;
    font-weight: 700;
}

.lt-event-navy .lt-event-cta {
    color: var(--lt-amber);
}

.lt-event-light .lt-event-cta {
    color: var(--lt-brand);
}

/* ---------- Trang chuyên mục (viewcat_page.tpl) ----------
 * Phần lớn tin không có ảnh: dạng danh sách hàng (ô lịch, tiêu đề, trích dẫn), có ảnh thì ảnh nhỏ bên phải,
 * không để ô ảnh trống. Ô lịch do theme.php (nv_locthai_cat_dates) dựng từ ngày đăng. */
.lt-catdesc {
    display: flex;
    gap: 16px;
    margin-bottom: var(--lt-gap);
    padding: 16px 20px;
    border-radius: var(--lt-r-card);
    background: var(--lt-brand-soft);
    color: var(--lt-text-2);
}

.lt-catdesc p {
    margin: 0;
}

.lt-catdesc img {
    border-radius: var(--lt-r-btn);
}

.lt-catlist {
    display: grid;
    gap: 10px;
    margin-bottom: var(--lt-gap);
}

.lt-catitem {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    padding: 12px 16px;
}

.lt-catitem-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

body .lt-catitem .lt-card-title {
    font-size: 1.0625rem;
    -webkit-line-clamp: 2;
}

.lt-catitem .lt-card-text {
    -webkit-line-clamp: 2;
}

.lt-catitem .lt-card-text p {
    margin: 0;
}

.lt-catitem .lt-card-text img {
    display: none;
}

.lt-catitem-media {
    display: block;
    width: 148px;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: var(--lt-r-btn);
    background: var(--lt-surface-2);
}

.lt-catitem-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lt-ease);
}

/* Ảnh mặc định của module nghĩa là tin không có ảnh: bỏ cả ô */
.lt-catitem-media:has(img[src*="/noimge"]),
.lt-catitem-media:has(img[src*="logo-noimage"]),
.lt-catitem-media:has(img[src*="no_image"]) {
    display: none;
}

/* Tin mới nhất: nền nhấn nhẹ, ảnh (nếu có) khổ rộng phía trên */
.lt-catitem-lead {
    grid-template-columns: 60px minmax(0, 1fr);
    padding: 20px 22px;
    border-color: rgba(23, 105, 209, 0.22);
    background: var(--lt-surface);
}

.lt-catitem-lead .lt-catitem-media {
    grid-column: 1 / -1;
    width: 100%;
    aspect-ratio: 21 / 9;
}

body .lt-catitem-lead .lt-card-title {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    line-height: 1.35;
    -webkit-line-clamp: 3;
}

.lt-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 16px;
    margin: 2px 0 0;
    padding: 0;
    font-size: 0.8125rem;
    color: var(--lt-text-3);
}

.lt-adminlink {
    position: relative;
    z-index: 1;
    margin: 0;
}

@media (hover: hover) {
    .lt-catitem:hover .lt-catitem-media img {
        transform: scale(1.05);
    }

    .lt-catitem:hover .lt-cal {
        border-color: var(--lt-amber);
    }
}

@media (max-width: 767.98px) {
    .lt-catitem {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 12px;
        padding: 14px;
    }

    .lt-catitem-media {
        grid-column: 2;
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .lt-catitem-lead .lt-catitem-media {
        grid-column: 1 / -1;
        aspect-ratio: 16 / 9;
    }
}

/* ---------- Trang video (viewlist.tpl, viewgrid.tpl) ---------- */
.lt-vgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--lt-gap);
    margin-bottom: var(--lt-gap);
}

.lt-vcard-thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--lt-navy-2);
}

.lt-vcard-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 600ms var(--lt-ease);
}

/* Ảnh mặc định của module (biểu tượng nhỏ, tô nền): không phóng to */
.lt-vcard-thumb img[src$="/video.png"] {
    display: none;
}

/* Chỉ một video: nằm ngang, không để nửa khung trống */
.lt-vgrid:has(> .lt-vcard:only-child) {
    grid-template-columns: minmax(0, 1fr);
}

.lt-vcard:only-child {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
}

.lt-vcard:only-child .lt-card-body {
    justify-content: center;
    padding: 24px;
}

@media (hover: hover) {
    .lt-vcard:hover .lt-vcard-thumb img {
        transform: scale(1.04);
    }

    .lt-vcard:hover .lt-yt-play {
        transform: translate(-50%, -50%) scale(1.08);
    }
}

@media (max-width: 767.98px) {
    .lt-vgrid {
        grid-template-columns: minmax(0, 1fr);
    }

    .lt-vcard:only-child {
        display: flex;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lt-catitem:hover .lt-catitem-media img,
    .lt-vcard:hover .lt-vcard-thumb img {
        transform: none;
    }

    .lt-vcard:hover .lt-yt-play {
        transform: translate(-50%, -50%);
    }
}

/* ---------- Căn đều hai lề cho đoạn văn ----------
 * Chỉ đoạn văn có dòng đủ dài (khoảng 45 ký tự trở lên): thân bài, mô tả chuyên mục, Sứ mệnh/Tầm nhìn, video, slide ảnh.
 * Thẻ hẹp (giá trị cốt lõi, sự kiện, thẻ tin, cột phải) và mọi đoạn dưới khổ 992 canh trái: tiếng Việt không ngắt
 * âm tiết được nên căn đều ở dòng ngắn để lại khoảng trắng lớn giữa các từ (PORTAL-LOCTHAI-APPLE).
 * Đoạn người soạn đặt canh giữa trong bài (style trực tiếp, .text-center) vẫn giữ nguyên. */
@media (min-width: 992px) {
    #news-bodyhtml,
    .bodytext,
    .news_column .hometext,
    .lt-slide-text,
    .lt-strat-mv p:not(.lt-strat-sub),
    .lt-video-text,
    .lt-catdesc p,
    #lt-main .well,
    #lt-main .col-md-18 p:not(.law-title, .law-view, .lt-hl-meta, .lt-sec-sub, .lt-pagehead-sub, .lt-adminlink, .text-center, .text-center *) {
        text-align: justify;
        text-justify: inter-word;
    }
}

/* ---------- Tin chi tiết: khổ đọc ---------- */
#news-bodyhtml,
.bodytext,
.news_column .hometext {
    overflow-wrap: anywhere; /* đường dẫn dài trong bài không đẩy tràn khung trên điện thoại */
    overflow-x: auto; /* bảng rộng cuộn ngang trong khung, không bị cắt mất */
    font-size: 1.0625rem;
    line-height: 1.75;
    color: var(--lt-text);
}

#news-bodyhtml p {
    margin-bottom: 1em;
}

#news-bodyhtml h2,
#news-bodyhtml h3 {
    margin: 1.6em 0 0.6em;
    line-height: 1.3;
}

#news-bodyhtml img {
    max-width: 100%;
    height: auto;
    border-radius: var(--lt-r-btn);
}

.news_column h1.title {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--lt-ink);
    text-wrap: balance;
}

/* Danh sách tin liên quan cuối bài */
.news_column .related,
.lt-catlist ~ .related {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px var(--lt-gap);
    padding: 0;
}

.news_column .related li,
.lt-catlist ~ .related li {
    padding: 10px 0;
    border-bottom: 1px dashed var(--lt-line);
    font-size: 0.9375rem;
    list-style: none;
}

.news_column .related li em.fa,
.lt-catlist ~ .related li em.fa {
    color: var(--lt-amber);
}

.news_column .related li em:not(.fa),
.lt-catlist ~ .related li em:not(.fa) {
    font-size: 0.8125rem;
    font-style: normal;
    color: var(--lt-text-3);
    font-variant-numeric: tabular-nums;
}

.lt-related-title {
    margin: 32px 0 12px;
    font-size: 1.1875rem;
    font-weight: 800;
    color: var(--lt-ink);
}

/* ---------- Tin chi tiết: các ô dưới bài đồng bộ với trang chủ (PORTAL-LOCTHAI-APPLE, modules/news/detail.tpl) ----------
 * Ngày đăng và nút gửi/in/lưu trên một hàng; ô đánh giá gọn một dòng; bình luận khi chưa đăng nhập là lời mời
 * nền nhạt thay khung đỏ báo lỗi; tin khác một cột, tiêu đề trái, ngày phải. */
.lt-article-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--lt-line);
}

.lt-article-time {
    font-size: 0.875rem;
    color: var(--lt-text-3);
    font-variant-numeric: tabular-nums;
}

.lt-article-tools .list-inline {
    display: flex;
    gap: 4px;
    margin: 0;
}

.lt-article-tools .list-inline > li {
    padding: 0;
}

body .lt-article-tools a.dimgray {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-text-3);
    transition: background-color 150ms ease, color 150ms ease;
}

body .lt-article-tools a.dimgray:hover,
body .lt-article-tools a.dimgray:focus-visible {
    color: var(--lt-brand);
    background: var(--lt-brand-soft);
}

.lt-article-tools .fa-lg {
    font-size: 1.0625rem;
}

.news_column .hometext {
    font-size: 1.125rem;
    line-height: 1.65;
    color: var(--lt-text-2);
}

/* Tệp đính kèm: tên tệp là dòng chính, nút xem trước là nút vuông cùng kiểu nút gửi/in */
body .news_column .panel:has(.news-download-file) {
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    box-shadow: none;
}

body .news_column .panel:has(.news-download-file) > .panel-heading {
    padding: 12px 16px;
    border-bottom: 1px solid var(--lt-line);
    background: var(--lt-surface-2);
    color: var(--lt-ink);
    font-size: 0.9375rem;
}

body .news-download-file .list-group-item {
    padding: 12px 16px;
    border: 0;
    font-size: 0.9375rem;
}

body .news-download-file .list-group-item + .list-group-item {
    border-top: 1px solid var(--lt-line);
}

body .news-download-file .badge {
    padding: 0;
    background: transparent;
}

body .news-download-file .badge a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin-top: -6px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-brand);
    background: var(--lt-brand-soft);
}

/* Đánh giá: câu tổng điểm, sao và lời nhắc trên một hàng */
.lt-article-rating .panel-body {
    padding: 14px 20px;
}

.lt-article-rating .h5 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 16px;
    margin: 0;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--lt-text-2);
}

.lt-article-rating #stringrating {
    margin: 0;
}

.lt-article-rating .h5 > div {
    display: flex;
    align-items: center;
    padding: 0 !important;
}

.lt-article-rating #hover-test {
    margin-left: 12px !important;
    color: var(--lt-text-3);
}

/* Ô chia sẻ không có nút nào (site chưa bật mạng xã hội): ẩn, khỏi để lại nhãn trơ trọi */
.lt-article-share:not(:has(.social-share-buttons > *)) {
    display: none;
}

/* Bình luận */
body .lt-article-comment #idcomment .comment-title {
    margin: 6px 0 0;
    font-size: 1.1875rem;
    font-weight: 800;
    color: var(--lt-ink);
}

/* comment.css tô nền trắng cho #idcomment (lộ ra ở chế độ tối); hàng tiêu đề + nút ẩn/hiện + ô sắp xếp chia đôi cố định
 * làm tiêu đề gãy dòng trên điện thoại: thành một hàng co giãn, ô sắp xếp xuống dòng khi hẹp */
body .lt-article-comment #idcomment.nv-fullbg {
    background: transparent;
}

body .lt-article-comment #idcomment > .row:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 0 0 16px;
}

body .lt-article-comment #idcomment > .row:first-child::before,
body .lt-article-comment #idcomment > .row:first-child::after {
    display: none;
}

body .lt-article-comment #idcomment > .row:first-child > div {
    float: none;
    width: auto;
    padding: 0;
}

body .lt-article-comment #idcomment > .row:first-child > div:first-child {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 10px;
}

body .lt-article-comment #idcomment > .row:first-child .btn {
    float: none !important;
    order: 1;
    margin-left: auto;
    border-color: var(--lt-line);
    background: var(--lt-surface);
    color: var(--lt-text-2);
}

body .lt-article-comment #idcomment .comment-title {
    margin: 0;
}

body .lt-article-comment #idcomment > .row:first-child select {
    width: auto;
    max-width: 100%;
}

.lt-article-comment .comment-title .fa {
    color: var(--lt-brand);
}

body .lt-article-comment .comment-form .alert {
    margin: 0;
    padding: 16px 18px;
    border: 1px solid var(--lt-line);
    border-radius: var(--lt-r-card);
    background: var(--lt-surface-2);
    color: var(--lt-text-2);
}

body .lt-article-comment .comment-form .alert a {
    color: var(--lt-text-2);
    text-decoration: none;
}

body .lt-article-comment .comment-form .alert a:hover strong {
    text-decoration: underline;
}

body .lt-article-comment .comment-form .alert strong {
    color: var(--lt-brand);
}

/* Tin khác */
body .lt-article-others .h3,
body .lt-article-others .h3 strong {
    margin: 4px 0 6px;
    font-size: 1.1875rem;
    line-height: 1.3;
    color: var(--lt-ink);
}

.lt-article-others .h3 ~ .h3 {
    margin-top: 28px;
}

body .lt-article-others .related {
    display: block;
    margin: 0;
}

body .lt-article-others .related li {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid var(--lt-line);
}

body .lt-article-others .related li:last-child {
    border-bottom: 0;
}

body .lt-article-others .related h4 {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.5;
}

body .lt-article-others .related h4 a {
    color: var(--lt-text);
}

body .lt-article-others .related h4 a:hover {
    color: var(--lt-brand);
}

.lt-other-time {
    flex-shrink: 0;
    font-size: 0.8125rem;
    color: var(--lt-text-3);
    font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px) {
    body .lt-article-others .related li {
        flex-direction: column;
        gap: 2px;
    }
}

@media (hover: hover) {
    body a.lt-event-navy:hover .lt-event-title {
        color: var(--lt-accent-on-navy);
    }

    body a.lt-event-light:hover .lt-event-title {
        color: var(--lt-brand);
    }
}

@media (max-width: 767.98px) {
    .lt-home-events {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        margin-top: 24px;
    }

    body a.lt-event {
        min-height: 0;
        padding: 20px;
    }

    .news_column .related,
    .lt-catlist ~ .related {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- Video nhỏ ở cột phụ, nạp khi bấm (modules/videoclips/block_video.tpl) ---------- */
.lt-yt,
.lt-yt-frame {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: var(--lt-r-btn);
}

.lt-yt {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: var(--lt-navy-2);
    cursor: pointer;
}

.lt-yt img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.88;
    transition: opacity 250ms ease, transform 500ms var(--lt-ease);
}

.lt-yt-play {
    position: absolute;
    left: 50%;
    top: 50%;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 999px;
    color: var(--lt-navy-2);
    background: var(--lt-amber);
    transform: translate(-50%, -50%);
    box-shadow: 0 10px 24px -8px rgba(13, 79, 168, 0.6);
    transition: transform 250ms var(--lt-ease);
}

.lt-yt-play svg {
    margin-left: 3px;
}

@media (hover: hover) {
    .lt-yt:hover img {
        opacity: 1;
        transform: scale(1.03);
    }

    .lt-yt:hover .lt-yt-play {
        transform: translate(-50%, -50%) scale(1.08);
    }
}

/* Liên kết ngoài (global.link_select.tpl, PORTAL-LOCTHAI-LIENKET)
 * Mỗi website một hàng cùng nhịp với Văn bản mới bên cạnh: ô biểu tượng theo loại cơ quan (Bộ GD&ĐT mũ tốt nghiệp,
 * Sở GD&ĐT sách, cổng thành phố quả địa cầu, UBND phường trụ sở; chọn trong global.link_select.php theo tên miền),
 * tên đậm, tên miền nhỏ bên dưới để người xem biết sẽ sang trang nào. */
.lt-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

body .panel-body .lt-links li {
    padding: 0;
    border: 0;
}

body .panel-body .lt-links li + li {
    border-top: 1px solid var(--lt-line);
}

body .panel-body .lt-links a {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 -10px;
    padding: 10px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-text);
    text-decoration: none;
    transition: background-color var(--lt-hover-dur) ease, color var(--lt-hover-dur) ease, transform 150ms ease;
}

.lt-link-ico {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--lt-r-btn);
    color: var(--lt-brand);
    background: var(--lt-brand-soft);
    font-size: 1.0625rem;
    transition: color var(--lt-hover-dur) ease, background-color var(--lt-hover-dur) ease;
}

.lt-link-text {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.lt-link-name {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.4;
}

.lt-link-host {
    overflow: hidden;
    font-size: 0.8125rem;
    line-height: 1.4;
    color: var(--lt-text-3);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lt-links em.lt-link-go {
    flex: none;
    color: var(--lt-text-3);
    font-size: 0.8125rem;
    transition: color var(--lt-hover-dur) ease, transform var(--lt-hover-dur) var(--lt-ease);
}

@media (hover: hover) {
    body .panel-body .lt-links a:hover {
        color: var(--lt-brand);
        background: var(--lt-brand-soft);
    }

    .lt-links a:hover .lt-link-ico {
        color: #fff;
        background: var(--lt-brand);
    }

    .lt-links a:hover em.lt-link-go {
        color: var(--lt-brand);
        transform: translate(2px, -2px);
    }
}

body .panel-body .lt-links a:focus-visible {
    outline: 2px solid var(--lt-brand);
    outline-offset: -2px;
}

/* ---------- Rê chuột đồng bộ (PORTAL-LOCTHAI-LIENKET) ----------
 * Trước đây mỗi khối một kiểu (thẻ tin chỉ đổi viền, sự kiện không đổi gì, ảnh phóng 1,03/1,04/1,05, thời lượng 150 đến 600ms).
 * Nay: thẻ bấm được nhấc lên --lt-lift, bóng --lt-shadow-hover, viền xanh, tiêu đề xanh; ảnh trong thẻ phóng --lt-zoom chậm hơn
 * (--lt-zoom-dur) để không giật; hàng danh sách (Thông báo, Văn bản mới, Liên kết, tab Chuyên mục) tô nền --lt-brand-soft.
 * Dùng chung --lt-hover-dur và --lt-ease nên rời chuột giữa chừng là quay về từ đúng vị trí đang dở (CSS transition tự nối).
 * Bàn phím (:focus-visible bên trong) thấy cùng trạng thái như rê chuột. */
body .lt-card,
body a.lt-event,
body .lt-catitem,
body .lt-vcard,
body .lt-hub-lead {
    /* opacity + độ trễ so le giữ cho hiệu ứng hiện khi cuộn (.lt-reveal) của chính các thẻ này */
    transition: opacity 500ms ease, transform var(--lt-hover-dur) var(--lt-ease), box-shadow var(--lt-hover-dur) var(--lt-ease),
        border-color var(--lt-hover-dur) ease, background-color var(--lt-hover-dur) ease;
    transition-delay: calc(var(--lt-i, 0) * 30ms), 0s, 0s, 0s, 0s;
}

body .lt-card-media img,
body .lt-catitem-media img,
body .lt-vcard-thumb img,
body .lt-hub-media img,
body .lt-video-poster,
body .lt-yt img {
    transition: transform var(--lt-zoom-dur) var(--lt-ease), opacity var(--lt-hover-dur) ease;
}

body .lt-card-title a,
body .lt-event-title,
body .lt-notice-title,
body .lt-hub-title a,
body .lt-hub-list a,
body .lt-home-util .block-law .law-title,
body .lt-home-util .block-law .law-code a {
    transition: color var(--lt-hover-dur) ease;
}

body .lt-notice-item,
body .lt-home-util .block-law .item {
    transition: opacity 500ms ease, background-color var(--lt-hover-dur) ease, transform 150ms ease;
    transition-delay: calc(var(--lt-i, 0) * 30ms), 0s, 0s;
}

@media (hover: hover) {
    body .lt-card:hover,
    body a.lt-event:hover,
    body .lt-catitem:hover,
    body .lt-vcard:hover,
    body .lt-hub-lead:hover {
        transform: translateY(var(--lt-lift));
        box-shadow: var(--lt-shadow-hover);
        border-color: rgba(23, 105, 209, 0.4);
    }

    body .lt-card:hover .lt-card-media img,
    body .lt-catitem:hover .lt-catitem-media img,
    body .lt-vcard:hover .lt-vcard-thumb img,
    body .lt-hub-lead:hover .lt-hub-media img,
    body .lt-video-play:hover .lt-video-poster,
    body .lt-yt:hover img {
        transform: scale(var(--lt-zoom));
    }

    body .lt-card:hover .lt-ph img {
        transform: none;
    }

    body .lt-card:hover .lt-card-title a,
    body .lt-catitem:hover a,
    body .lt-hub-lead:hover .lt-hub-title a,
    body .lt-home-util .block-law .item:hover .law-title,
    body .lt-home-util .block-law .item:hover .law-code a {
        color: var(--lt-brand);
    }

    body .lt-notice-item:hover,
    body .lt-home-util .block-law .item:hover {
        background: var(--lt-brand-soft);
    }
}

body .lt-card:has(:focus-visible),
body .lt-catitem:has(:focus-visible),
body .lt-hub-lead:has(:focus-visible),
body a.lt-event:focus-visible {
    transform: translateY(var(--lt-lift));
    box-shadow: var(--lt-shadow-hover);
    border-color: rgba(23, 105, 209, 0.4);
}

body .lt-notice-item:has(:focus-visible),
body .lt-home-util .block-law .item:has(:focus-visible) {
    background: var(--lt-brand-soft);
}

@media (prefers-reduced-motion: reduce) {
    body .lt-card:hover,
    body a.lt-event:hover,
    body .lt-catitem:hover,
    body .lt-vcard:hover,
    body .lt-hub-lead:hover,
    body .lt-card:has(:focus-visible),
    body .lt-catitem:has(:focus-visible),
    body .lt-hub-lead:has(:focus-visible),
    body a.lt-event:focus-visible {
        transform: none;
    }

    body .lt-card:hover .lt-card-media img,
    body .lt-catitem:hover .lt-catitem-media img,
    body .lt-vcard:hover .lt-vcard-thumb img,
    body .lt-hub-lead:hover .lt-hub-media img,
    body .lt-video-play:hover .lt-video-poster,
    body .lt-yt:hover img {
        transform: none;
    }
}

/* ---------- Phản hồi khi bấm, chạm (PORTAL-LOCTHAI-APPLE) ----------
 * Thẻ tin, sự kiện, chuyên mục, thông báo lún nhẹ ngay lúc ngón chạm hoặc chuột nhấn, không đợi trang mới tải:
 * điện thoại không có trạng thái rê chuột nên trước đây chạm vào không thấy gì. Nhả ra là về ngay (100ms). */
.lt-catitem,
.lt-hub-list li {
    transition: transform 150ms ease;
}

body .lt-card:active,
body .lt-catitem:active,
body a.lt-event:active,
body .lt-notice-item:active,
body .lt-home-util .block-law .item:active,
body .lt-hub-list li:active,
body .panel-body .lt-links a:active {
    transform: scale(0.985);
    transition-duration: 100ms;
}

@media (prefers-reduced-motion: reduce) {
    body .lt-card:active,
    body .lt-catitem:active,
    body a.lt-event:active,
    body .lt-notice-item:active,
    body .lt-home-util .block-law .item:active,
    body .lt-hub-list li:active,
    body .panel-body .lt-links a:active {
        transform: none;
    }
}
