/* ===== ctec theme v1.0.0 — Đại học từ xa · Đại học Trà Vinh (ctec.tvu.edu.vn)
   Dựng từ cấu trúc caodangstc v2.3. Quy ước: mỗi vùng giao diện ĐÚNG MỘT khối, template chỉ chứa HTML + class ===== */

/* ---------- 1. Nền tảng ---------- */
:root{--navy:#0b3b84;--navy-2:#1452a8;--navy-3:#072a5f;--navy-4:#05204a;--accent:#d9480f;--accent-2:#b93a0b;--accent-bg:#fff0e6;--accent-text:#9a3412;--gold:#fcd34d;--ink:#14213d;--ink-2:#374357;--muted:#5b6678;--line:#e3e8f0;--grey:#f4f7fb;--grey-2:#eaf0f8;--sky:#c8d7ee;--ok:#15803d;--r:16px;--shadow:0 14px 34px rgba(11,59,132,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.tv-body{margin:0;font-family:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px;line-height:1.6;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
.tv-body img{max-width:100%;height:auto}
.tv-content a:not([class]),.tv-faq a:not([class]){color:var(--navy-2);text-decoration:underline}
.tv-wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.tv-main{display:block}
.tv-center{text-align:center;margin-top:28px}
.tv-muted{color:var(--muted)}
.tv-accent{color:var(--accent)!important}
.tv-show-m{display:none}

/* ---------- 2. Chữ ---------- */
.tv-h1{font-size:44px;line-height:1.15;font-weight:800;letter-spacing:-.6px;color:var(--navy);margin:0}
.tv-h1--light{color:#fff}
.tv-h1--sm{font-size:34px}
.tv-h1 a{color:inherit;text-decoration:none}
.tv-h2{font-size:28px;line-height:1.25;font-weight:800;letter-spacing:-.3px;color:var(--navy);margin:0}
.tv-h2 a{color:inherit;text-decoration:none}
.tv-h2--light{color:#fff}
.tv-h2--sm{font-size:21px;margin:28px 0 14px}
.tv-kicker{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.tv-kicker::before{content:"";width:22px;height:3px;border-radius:3px;background:currentColor}
.tv-kicker--light{color:var(--gold)}
.tv-tag{display:inline-flex;align-items:center;gap:8px;background:rgba(252,211,77,.16);color:var(--gold);border:1px solid rgba(252,211,77,.4);font-weight:700;font-size:13px;padding:6px 14px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}
.tv-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(252,211,77,.25);animation:tvPulse 1.8s infinite}
.tv-link{font-weight:700;color:var(--navy-2);text-decoration:none;white-space:nowrap}
.tv-link:hover{color:var(--accent)}

/* ---------- 3. Nút ---------- */
.tv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:12px 24px;border-radius:10px;font-weight:700;font-size:15px;line-height:1.2;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-family:inherit;transition:background .15s,color .15s,transform .15s,box-shadow .15s;text-align:center}
.tv-btn:active{transform:translateY(1px)}
.tv-btn--accent{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(217,72,15,.28)}
.tv-btn--accent:hover{background:var(--accent-2);color:#fff}
.tv-btn--outline{background:#fff;color:var(--navy);border-color:var(--navy)}
.tv-btn--outline:hover{background:var(--grey-2);color:var(--navy)}
.tv-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.tv-btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.tv-btn--white{background:#fff;color:var(--navy)}
.tv-btn--white:hover{background:var(--grey-2);color:var(--navy)}
.tv-btn--block{width:100%}
.tv-btn--lg{min-height:54px;font-size:16px;padding:14px 28px}
.tv-btn__loading{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:999px;animation:tvSpin .8s linear infinite}
.tv-btn.is-loading .tv-btn__loading{display:inline-block}
.tv-btn.is-loading{opacity:.85;cursor:wait}

/* ---------- 4. Topbar ---------- */
.tv-topbar{background:var(--navy-4);color:#cdd9ec;font-size:13px}
.tv-topbar .tv-wrap{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:16px}
.tv-topbar__left,.tv-topbar__right{display:flex;gap:16px;align-items:center}
.tv-topbar a{color:#fff;text-decoration:none;font-weight:600}
.tv-topbar__right a{color:#cdd9ec;font-weight:500}
.tv-topbar__right a:hover{color:#fff}
.tv-topbar__badge{background:var(--accent);color:#fff;font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:3px 10px;border-radius:999px}

/* ---------- 5. Header + menu ---------- */
.tv-header-wrap{position:sticky;top:0;z-index:50}
.tv-header{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 18px rgba(11,59,132,.06)}
.tv-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:20px;position:relative}
.tv-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy);flex:0 0 auto}
.tv-logo__img{height:54px;width:auto;display:block}
.tv-logo__badge{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;letter-spacing:.5px}
.tv-logo__text{display:flex;flex-direction:column;line-height:1.25}
.tv-logo__text strong{font-size:16px;font-weight:800}
.tv-logo__text small{font-size:12px;color:var(--muted)}
.tv-nav{display:flex;align-items:center;gap:22px;flex-wrap:nowrap}
.tv-nav__item{position:relative;display:flex;align-items:center}
.tv-nav__link{color:var(--navy);text-decoration:none;font-weight:600;font-size:15px;white-space:nowrap;padding:26px 0}
.tv-nav__link:hover,.tv-nav__link.is-active{color:var(--accent)}
.tv-nav__caret{font-size:11px;margin-left:3px}
.tv-nav__sub{display:none;position:absolute;top:100%;left:-12px;min-width:290px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:10px;z-index:60;flex-direction:column}
.tv-nav__item.has-sub:hover .tv-nav__sub,.tv-nav__item.has-sub.is-open .tv-nav__sub{display:flex}
.tv-nav__subgroup{display:flex;flex-direction:column}
.tv-nav__sublink{display:block;padding:9px 12px;border-radius:8px;color:var(--navy);text-decoration:none;font-weight:600;font-size:14px}
.tv-nav__sublink:hover{background:var(--grey-2);color:var(--accent)}
.tv-nav__sublink.is-group{color:var(--accent);text-transform:uppercase;font-size:12px;letter-spacing:.5px;margin-top:4px}
.tv-nav__sublink--child{padding-left:22px;font-weight:500}
.tv-nav__phone{display:flex;flex-direction:column;line-height:1.2;text-decoration:none;padding-left:18px;border-left:1px solid var(--line)}
.tv-nav__phone small{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.tv-nav__phone b{font-size:17px;color:var(--accent);font-weight:800;white-space:nowrap}
.tv-nav__cta{min-height:44px;padding:10px 20px;white-space:nowrap;flex:0 0 auto}
.tv-burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.tv-burger span{width:22px;height:2px;background:var(--navy);display:block;border-radius:2px}

/* ---------- 6. Breadcrumb + đầu trang ---------- */
.tv-crumb{font-size:13px;color:var(--sky)}
.tv-crumb a{color:var(--sky);text-decoration:none}
.tv-crumb a:hover{text-decoration:underline}
.tv-crumb--dark,.tv-crumb--dark a{color:var(--muted)}
.tv-pagehead{background:linear-gradient(180deg,var(--grey),#fff);padding:36px 0 28px;border-bottom:1px solid var(--line)}
.tv-pagehead .tv-wrap{display:flex;flex-direction:column;gap:10px}
.tv-pagehead .tv-muted{margin:0;max-width:760px}

/* ---------- 7. Hero trang chủ ---------- */
.tv-hero{position:relative;color:#fff;padding:64px 0 72px;background:radial-gradient(900px 420px at 85% 10%,rgba(56,120,220,.45),transparent 60%),radial-gradient(700px 360px at 0% 100%,rgba(217,72,15,.22),transparent 60%),linear-gradient(135deg,var(--navy-4),var(--navy) 55%,var(--navy-2));overflow:hidden}
.tv-hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
.tv-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.tv-hero__text{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.tv-hero__desc{font-size:17px;color:#dbe6f6;max-width:560px}
.tv-hero__desc p{margin:0}
.tv-hero__actions{display:flex;gap:12px;flex-wrap:wrap}
.tv-hero__ticks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;font-size:15px;font-weight:600;color:#fff}
.tv-hero__ticks li{position:relative;padding-left:30px}
.tv-hero__ticks li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:var(--navy-4);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tv-hero__form{scroll-margin-top:100px}

/* ---------- 8. Form đăng ký ---------- */
.tv-form{display:flex;flex-direction:column;gap:10px}
.tv-form--card{background:#fff;border-radius:18px;padding:26px;box-shadow:0 24px 60px rgba(5,32,74,.28);color:var(--ink);border-top:5px solid var(--accent)}
.tv-form__title{margin:0;font-size:21px;line-height:1.3;font-weight:800;color:var(--navy)}
.tv-form__sub{font-size:13px;color:var(--muted);margin-top:-4px}
.tv-form__group{display:flex;flex-direction:column;gap:4px}
.tv-form__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tv-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2)}
.tv-form input,.tv-form select{height:48px;border:1px solid #cdd5e1;border-radius:10px;padding:0 14px;font-size:15px;font-family:inherit;background:#fff;width:100%;color:var(--ink)}
.tv-form textarea{border:1px solid #cdd5e1;border-radius:10px;padding:10px 14px;font-size:15px;font-family:inherit;width:100%;resize:vertical}
.tv-form input:focus,.tv-form select:focus,.tv-form textarea:focus{outline:2px solid var(--navy-2);outline-offset:0;border-color:var(--navy-2)}
.tv-form input:disabled{background:var(--grey);color:var(--muted)}
.tv-form input.is-invalid,.tv-form select.is-invalid{border-color:var(--accent);outline-color:var(--accent)}
.tv-form__error{font-size:12px;color:var(--accent);display:block}
.tv-form__error:empty{display:none}
.tv-form__note{font-size:12px;color:var(--muted);text-align:center}
.tv-form__msg{font-size:14px;font-weight:600}
.tv-form__msg:empty{display:none}
.tv-form__msg.ok{color:var(--ok)}.tv-form__msg.err{color:var(--accent)}
.tv-form__success{display:none;background:#e7f6ec;color:var(--ok);border:1px solid #bfe3c9;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:600}
.tv-form__success.show{display:block;animation:tvSlide .3s ease}
.tv-side .tv-form--card,.tv-content .tv-form--card{box-shadow:var(--shadow)}
.tv-embed-form{margin:24px 0}
.tv-embed-form .tv-form--card{max-width:560px}

/* ---------- 9. Lưới + thẻ ---------- */
.tv-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tv-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tv-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.tv-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:6px}
.tv-card strong,.tv-card h3{font-size:17px;font-weight:800;color:var(--navy);margin:0;line-height:1.3}
.tv-card span{font-size:14px;color:var(--muted)}
.tv-card--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.tv-card--dark strong,.tv-card--dark h3{color:#fff}
.tv-card--dark span{color:var(--sky)}
.tv-card--ic{position:relative;padding-top:74px;box-shadow:0 10px 30px rgba(11,59,132,.08)}
.tv-card--ic::before{content:"";position:absolute;left:22px;top:22px;width:40px;height:40px;border-radius:12px;background:var(--accent-bg)}
.tv-card--ic::after{content:"";position:absolute;left:31px;top:31px;width:22px;height:22px;background:var(--accent);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.tv-ic-degree{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 1 9l11 6 9-4.9V17h2V9L12 3zm-7 9.2V16l7 4 7-4v-3.8L12 16l-7-3.8z'/%3E%3C/svg%3E")}
.tv-ic-online{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-6v2h3v2H7v-2h3v-2H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm6 3v6l5-3-5-3z'/%3E%3C/svg%3E")}
.tv-ic-check{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm4.5 14.6 6-6-1.4-1.4-4.6 4.6-2.1-2.1-1.4 1.4 3.5 3.5z'/%3E%3C/svg%3E")}
.tv-ic-calendar{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10.4 3.6 2.1-1 1.7L11 13V6h2v6.4z'/%3E%3C/svg%3E")}
.tv-trust{position:relative;z-index:2;margin-top:-40px;padding-bottom:16px}
.tv-trust .tv-card{background:#fff}

/* ---------- 10. Khối section ---------- */
.tv-section{padding:64px 0}
.tv-section--grey{background:var(--grey)}
.tv-section--tight{padding:40px 0 8px}
.tv-section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;flex-wrap:wrap}
.tv-section__head--center{justify-content:center;text-align:center}
.tv-section__head--center .tv-kicker{justify-content:center}
.tv-section__head--center p{margin:6px auto 0;max-width:640px}
.tv-section__head--sp{margin-top:40px}
.tv-filter{display:flex;gap:8px;flex-wrap:wrap}
.tv-chip{padding:9px 16px;border-radius:999px;background:var(--grey-2);color:var(--navy);font-weight:600;font-size:14px;border:0;cursor:pointer;font-family:inherit;text-decoration:none}
.tv-chip.is-active,.tv-chip:hover{background:var(--navy);color:#fff}
.tv-tags{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}

/* ---------- 11. Chọn lộ trình theo đối tượng ---------- */
.tv-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tv-path__item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:var(--r);padding:20px 20px 18px;cursor:pointer;font-family:inherit;color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .15s;position:relative;overflow:hidden}
.tv-path__item::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:var(--grey-2);transition:background .15s}
.tv-path__item:hover,.tv-path__item.is-active{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}
.tv-path__item:hover::after,.tv-path__item.is-active::after{background:var(--accent-bg)}
.tv-path__item small{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);position:relative;z-index:1}
.tv-path__item b{font-size:22px;font-weight:800;color:var(--navy);position:relative;z-index:1}
.tv-path__time{font-size:26px;font-weight:800;color:var(--accent);margin:6px 0 2px;letter-spacing:-.5px}
.tv-path__item em{font-style:normal;font-size:13px;font-weight:700;color:var(--navy-2)}

/* ---------- 12. Thẻ ngành ---------- */
.tv-major{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;color:var(--ink);text-decoration:none;transition:box-shadow .15s,transform .15s}
.tv-major:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.tv-major__img{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--navy),var(--navy-2));display:flex;align-items:center;justify-content:center;overflow:hidden}
.tv-major__img img{width:100%;height:100%;object-fit:cover;display:block}
.tv-major__img::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px);background-size:16px 16px}
.tv-major__ic{position:relative;width:64px;height:64px;background:#fff;-webkit-mask:var(--ic,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 1 9l11 6 9-4.9V17h2V9L12 3zm-7 9.2V16l7 4 7-4v-3.8L12 16l-7-3.8z'/%3E%3C/svg%3E")) center/contain no-repeat;mask:var(--ic,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 1 9l11 6 9-4.9V17h2V9L12 3zm-7 9.2V16l7 4 7-4v-3.8L12 16l-7-3.8z'/%3E%3C/svg%3E")) center/contain no-repeat;opacity:.95}
.tv-major__body{padding:18px;display:flex;flex-direction:column;gap:6px;flex:1}
.tv-major__group{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.4px}
.tv-major__name{font-size:18px;line-height:1.3;font-weight:800;color:var(--navy);margin:0}
.tv-major__desc{font-size:14px;color:var(--muted)}
.tv-major__meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.tv-major__meta em{font-style:normal;font-size:12px;font-weight:600;background:var(--grey-2);padding:4px 9px;border-radius:6px;color:var(--ink-2)}
.tv-major__more{font-weight:700;font-size:14px;color:var(--navy-2);margin-top:auto;padding-top:6px}
.tv-major:hover .tv-major__more{color:var(--accent)}
.tv-major--cta{background:linear-gradient(160deg,var(--accent),#ef6c1f);border-color:transparent}
.tv-major--cta .tv-major__body{justify-content:center;padding:24px}
.tv-major--cta .tv-major__group{color:#ffe1cc}
.tv-major--cta .tv-major__name{color:#fff;font-size:20px}
.tv-major--cta .tv-major__desc{color:#fff1e6}
.tv-major--cta .tv-major__more{color:#fff}
.tv-major--cong-nghe-thong-tin .tv-major__img{background:linear-gradient(135deg,#0b3b84,#2563eb)}
.tv-major--cong-nghe-thong-tin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-7v2h3v2H7v-2h3v-2H3a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zm6.3 4.3L6.6 11l2.7 2.7 1.4-1.4L9.4 11l1.3-1.3-1.4-1.4zm5.4 0-1.4 1.4 1.3 1.3-1.3 1.3 1.4 1.4 2.7-2.7-2.7-2.7z'/%3E%3C/svg%3E")}
.tv-major--luat .tv-major__img{background:linear-gradient(135deg,#3b1d6e,#6d28d9)}
.tv-major--luat{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v2h6v2h-1.2l2.8 6.5c0 1.9-1.6 3.5-3.6 3.5s-3.6-1.6-3.6-3.5L16.2 7H13v12h4v2H7v-2h4V7H7.8l2.8 6.5c0 1.9-1.6 3.5-3.6 3.5S3.4 15.4 3.4 13.5L6.2 7H5V5h6V3zm6 6.5-1.7 4h3.4l-1.7-4zm-10 0-1.7 4h3.4L7 9.5z'/%3E%3C/svg%3E")}
.tv-major--quan-tri-kinh-doanh .tv-major__img{background:linear-gradient(135deg,#7c2d12,#ea580c)}
.tv-major--quan-tri-kinh-doanh{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 20h18v2H3v-2zm2-2v-6h3v6H5zm5 0V8h3v10h-3zm5 0V4h3v14h-3z'/%3E%3C/svg%3E")}
.tv-major--ngon-ngu-anh .tv-major__img{background:linear-gradient(135deg,#0f5132,#16a34a)}
.tv-major--ngon-ngu-anh{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 3h11a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H9l-4 4v-4H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm15 6h1a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-1v3l-3-3h-5a2 2 0 0 1-2-2v-1h6a3 3 0 0 0 3-3V9z'/%3E%3C/svg%3E")}
.tv-major--y-te-cong-cong .tv-major__img{background:linear-gradient(135deg,#0e5e6f,#0891b2)}
.tv-major--y-te-cong-cong{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2h6v7h7v6h-7v7H9v-7H2V9h7V2z'/%3E%3C/svg%3E")}
.tv-major--ke-toan .tv-major__img{background:linear-gradient(135deg,#1e3a8a,#0ea5e9)}
.tv-major--ke-toan{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h12a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm1 3v4h10V5H7zm0 7v2h2v-2H7zm4 0v2h2v-2h-2zm4 0v6h2v-6h-2zm-8 4v2h2v-2H7zm4 0v2h2v-2h-2z'/%3E%3C/svg%3E")}
.tv-major--quan-tri-van-phong .tv-major__img{background:linear-gradient(135deg,#713f12,#ca8a04)}
.tv-major--quan-tri-van-phong{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3h6a2 2 0 0 1 2 2v1h3a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3V5a2 2 0 0 1 2-2zm0 3h6V5H9v1zm-5 5v2h16v-2H4z'/%3E%3C/svg%3E")}
.tv-majors .tv-major.is-hidden{display:none}

/* ---------- 13. Vì sao chọn ---------- */
.tv-why{background:linear-gradient(135deg,var(--navy-4),var(--navy));color:#fff;padding:72px 0}
.tv-why__grid{display:grid;grid-template-columns:1fr 1.5fr;gap:56px;align-items:center}
.tv-why__text{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.tv-why__text p{color:var(--sky);margin:0;font-size:16px}
.tv-why__text .tv-kicker{font-size:24px;letter-spacing:0;text-transform:none;line-height:1.3}
.tv-why__text .tv-kicker::before{display:none}

/* ---------- 14. Quy trình ---------- */
.tv-steps{counter-reset:none}
.tv-step{align-items:center;text-align:center;position:relative}
.tv-step i{font-style:normal;width:52px;height:52px;border-radius:999px;background:var(--navy);color:#fff;font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;box-shadow:0 0 0 6px var(--grey-2)}

/* ---------- 15. Bài viết ---------- */
.tv-post{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:box-shadow .15s}
.tv-post:hover{box-shadow:var(--shadow)}
.tv-post__img{aspect-ratio:16/9;background:var(--sky)}
.tv-post__img img{width:100%;height:100%;object-fit:cover;display:block}
.tv-post__body{padding:18px;display:flex;flex-direction:column;gap:6px}
.tv-post__body small{color:var(--muted);font-size:12px}
.tv-post__body strong{font-size:17px;line-height:1.35;font-weight:800;color:var(--navy)}
.tv-post__body span{font-size:14px;color:var(--muted)}
.tv-postlist{display:flex;flex-direction:column;gap:24px;min-width:0}
.tv-postrow{display:grid;grid-template-columns:260px 1fr;gap:22px;color:var(--ink);text-decoration:none;padding-bottom:24px;border-bottom:1px solid var(--line)}
.tv-postrow__img{aspect-ratio:16/10;border-radius:12px;background:var(--sky);overflow:hidden}
.tv-postrow__img img{width:100%;height:100%;object-fit:cover;display:block}
.tv-postrow__body{display:flex;flex-direction:column;gap:6px;justify-content:center}
.tv-postrow__body small{color:var(--muted);font-size:12px}
.tv-postrow__body strong{font-size:20px;font-weight:800;color:var(--navy);line-height:1.3}
.tv-postrow__body span{font-size:14px;color:var(--muted)}
.tv-mini{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center;text-decoration:none;color:var(--ink);padding:6px 0;border-bottom:1px solid var(--line)}
.tv-mini:last-child{border-bottom:0}
.tv-mini__img{aspect-ratio:4/3;background:var(--sky);border-radius:8px;overflow:hidden}
.tv-mini__img img{width:100%;height:100%;object-fit:cover;display:block}
.tv-mini span{font-size:13px;font-weight:600;color:var(--navy);line-height:1.35}

/* ---------- 16. FAQ ---------- */
.tv-faq__grid{display:grid;grid-template-columns:1fr 1.5fr;gap:56px;align-items:start}
.tv-faq__grid>div:first-child{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.tv-faq__grid>div:first-child p{margin:0}
.tv-faq{display:flex;flex-direction:column;gap:12px}
.tv-faq details{border:1px solid var(--line);border-radius:12px;padding:16px 20px;background:#fff;transition:box-shadow .15s}
.tv-faq details[open]{box-shadow:0 8px 22px rgba(11,59,132,.08);border-color:#cfdaea}
.tv-faq summary{font-weight:700;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.tv-faq summary::-webkit-details-marker{display:none}
.tv-faq summary::after{content:"+";color:var(--accent);font-weight:800;font-size:18px;line-height:1}
.tv-faq details[open] summary::after{content:"–"}
.tv-faq p{margin:8px 0 0;font-size:14px;color:var(--ink-2)}

/* ---------- 17. Dải CTA cuối trang ---------- */
.tv-cta{background:radial-gradient(700px 300px at 10% 0%,rgba(255,255,255,.12),transparent 60%),linear-gradient(135deg,var(--accent-2),var(--accent) 60%,#ef6c1f);color:#fff;padding:64px 0;scroll-margin-top:80px}
.tv-cta__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.tv-cta__text{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.tv-cta__text h4{font-size:30px}
.tv-cta__text p,.tv-cta__text div{color:#fff1e6;font-size:16px;margin:0}
.tv-cta__ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-weight:600}
.tv-cta__ticks li::before{content:"✓  ";font-weight:800}
.tv-cta__phone{display:flex;flex-direction:column;text-decoration:none;color:#fff;background:rgba(0,0,0,.14);border:1px solid rgba(255,255,255,.35);border-radius:12px;padding:10px 18px}
.tv-cta__phone small{font-size:12px;opacity:.85}
.tv-cta__phone b{font-size:24px;font-weight:800;letter-spacing:.3px}
.tv-cta a:not([class]){color:#fff}

/* ---------- 18. Landing ngành ---------- */
.tv-lhero{color:#fff;padding:40px 0 60px;background:radial-gradient(800px 380px at 90% 0%,rgba(56,120,220,.4),transparent 60%),linear-gradient(135deg,var(--navy-4),var(--navy) 60%,var(--navy-2))}
.tv-lhero__grid{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:start}
.tv-lhero__text{display:flex;flex-direction:column;gap:16px;align-items:flex-start;padding-top:8px}
.tv-lhero__desc{font-size:17px;color:#fff;opacity:.92;max-width:640px;text-align:justify}
.tv-lhero__facts{gap:12px;width:100%}
.tv-lhero__facts div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}
.tv-lhero__facts small{font-size:12px;color:var(--sky)}
.tv-lhero__facts strong{font-size:16px;font-weight:800}
.tv-lhero__form{scroll-margin-top:100px}
.tv-lhero a:not([class]){color:#fff}
.tv-lbody{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
.tv-side{display:flex;flex-direction:column;gap:20px;min-width:0}
.tv-side__box{gap:10px}
.tv-side__box a:not(.tv-btn){font-size:14px;color:var(--navy);text-decoration:none;font-weight:500;padding:4px 0;border-bottom:1px dashed var(--line)}
.tv-side__box a:not(.tv-btn):hover{color:var(--accent)}
.tv-side__box--grey{background:var(--grey)}
.tv-side__title{font-size:16px;font-weight:800;color:var(--navy)}
.tv-side__title a{color:inherit!important;border:0!important}
.tv-side__link{font-weight:700!important}
.tv-kv{display:flex;justify-content:space-between;font-size:14px;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}
.tv-kv span{color:var(--muted)}
.tv-kv b{font-weight:700;text-align:right;color:var(--ink)}
.tv-inline-cta{margin:36px 0 8px;background:var(--accent-bg);border-left:4px solid var(--accent);border-radius:12px;padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.tv-inline-cta strong{display:block;color:var(--navy);font-size:17px}
.tv-inline-cta span{font-size:14px;color:var(--ink-2)}

/* ---------- 19. Nội dung bài / landing (category_description, static) ---------- */
.tv-content{font-size:16px;color:var(--ink-2);min-width:0}
.tv-content--sp{margin-top:32px}
.tv-content h2{font-size:25px;font-weight:800;color:var(--navy);margin:36px 0 14px;letter-spacing:-.2px;line-height:1.3}
.tv-content h2:first-child{margin-top:0}
.tv-content h3{font-size:18px;font-weight:700;color:var(--navy);margin:22px 0 10px;padding-left:12px;border-left:4px solid var(--accent)}
.tv-content p{margin:0 0 12px}
.tv-content p,.tv-content li{text-align:justify}
.tv-content ul,.tv-content ol{padding-left:20px}
.tv-content img{border-radius:10px}
.tv-content table{width:100%;border-collapse:collapse;font-size:15px;margin:12px 0 20px;display:table}
.tv-content th,.tv-content td{border:1px solid var(--line);padding:12px 14px;text-align:left}
.tv-content th{background:var(--navy);color:#fff;font-weight:700}
.tv-content tr:nth-child(even) td{background:var(--grey)}
.tv-content td b,.tv-content td strong{color:var(--accent)}
.tv-content__cover{width:100%;border-radius:12px;margin-bottom:20px}
.tv-content__lead{font-size:18px;font-weight:500;color:var(--ink)}
.tv-content details{border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:10px}
.tv-content summary{font-weight:700;color:var(--navy);cursor:pointer}
.tv-content details p{margin:8px 0 0}
.tv-content .tv-l-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:8px 0 20px}
.tv-content .tv-l-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tv-content .tv-l-card{border:1px solid var(--line);border-radius:12px;padding:16px 16px 16px 46px;background:#fff;display:flex;flex-direction:column;gap:4px;position:relative}
.tv-content .tv-l-card::before{content:"✓";position:absolute;left:16px;top:16px;width:20px;height:20px;border-radius:999px;background:var(--accent-bg);color:var(--accent-text);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tv-content .tv-l-card b{color:var(--navy);font-size:15px;line-height:1.35}
.tv-content .tv-l-card span{font-size:14px;color:var(--muted);text-align:left}
.tv-content .tv-l-steps{display:flex;flex-direction:column;gap:12px;margin:8px 0 20px}
.tv-content .tv-l-step{display:flex;gap:14px;align-items:flex-start;background:var(--grey);border-radius:12px;padding:14px 16px}
.tv-content .tv-l-step i{flex:0 0 34px;width:34px;height:34px;border-radius:999px;background:var(--navy);color:#fff;font-style:normal;font-weight:800;display:flex;align-items:center;justify-content:center}
.tv-content .tv-l-step b{display:block;color:var(--navy)}
.tv-content .tv-l-step span{font-size:14px;color:var(--ink-2)}
.tv-content ul.tv-l-check,.tv-l-check{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;margin:8px 0 16px}
.tv-l-check li{position:relative;padding-left:24px;text-align:left!important}
.tv-l-check li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:800}
.tv-l-note{background:var(--accent-bg);color:var(--accent-text);border-radius:10px;padding:12px 16px;margin:8px 0 16px;font-size:14px}

/* ---------- 20. Trang cảm ơn ---------- */
.tv-thanks{text-align:center;max-width:720px;padding-top:40px;padding-bottom:40px}
.tv-thanks__icon{width:76px;height:76px;border-radius:50%;background:#e7f6ec;color:var(--ok);font-size:38px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
.tv-thanks__body{margin:12px auto 22px;font-size:17px}
.tv-thanks__body p,.tv-thanks__body .tv-l-note{text-align:center}
.tv-thanks__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ---------- 21. Vote sao (bài viết) ---------- */
.tv-vote{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:26px 0 10px;padding:14px 16px;background:var(--grey);border-radius:12px}
.tv-vote__label{font-weight:700;font-size:14px}
.tv-vote__stars{display:inline-flex;gap:2px}
.tv-vote__star{background:none;border:0;cursor:pointer;font-size:26px;line-height:1;color:#cbd3dd;padding:0 2px;transition:color .15s,transform .15s}
.tv-vote__star.is-on,.tv-vote__star.is-hover{color:#f5a623}
.tv-vote__star:hover{transform:scale(1.15)}
.tv-vote.is-voted .tv-vote__star{cursor:default}
.tv-vote__sum{font-size:13px;color:var(--muted)}
.tv-vote__sum b{color:var(--ink);font-size:15px}
.tv-vote__msg{font-size:13px;color:var(--accent);font-weight:600}

/* ---------- 22. Trang liên hệ ---------- */
.tv-contact{align-items:start}
.tv-contact__main{min-width:0;display:flex;flex-direction:column;gap:20px}
.tv-contact__quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tv-contact__q{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;text-decoration:none;color:var(--ink);box-shadow:0 6px 18px rgba(11,59,132,.06);transition:transform .15s,box-shadow .15s}
.tv-contact__q:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.tv-contact__q small{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
.tv-contact__q b{font-size:18px;color:var(--navy);word-break:break-all}
.tv-contact__q span{font-size:13px;color:var(--accent);font-weight:700;margin-top:4px}
.tv-q__ic{width:40px;height:40px;border-radius:10px;background:var(--accent-bg);display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px;flex:0 0 auto}
.tv-q__ic::before{content:"";width:20px;height:20px;background:var(--accent);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.tv-q__ic--phone{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/%3E%3C/svg%3E")}
.tv-q__ic--zalo{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3C6.5 3 2 6.6 2 11c0 2.4 1.3 4.5 3.4 6L4.5 21l4.3-2.1c1 .3 2.1.4 3.2.4 5.5 0 10-3.6 10-8S17.5 3 12 3z'/%3E%3C/svg%3E")}
.tv-q__ic--mail{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2zm8 7 8-5V7l-8 5-8-5v2z'/%3E%3C/svg%3E")}
.tv-q__ic--pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E")}
.tv-contact__card{padding:22px 24px}
.tv-contact__card .tv-h2--sm{margin:0 0 14px}
.tv-contact__addr{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:var(--ink);margin:0 0 16px}
.tv-contact__addr .tv-q__ic{margin:0;width:34px;height:34px}
.tv-contact__h3{font-size:14px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 10px;font-weight:700}
.tv-contact__phones p{margin:0;padding:10px 0;border-top:1px solid #eef2f6;font-size:15px;color:var(--ink);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tv-contact__phones a{color:var(--navy);font-weight:800;text-decoration:none;font-size:16px}
.tv-contact__phones .tv-ic{padding-left:0}
.tv-contact__phones .tv-ic::before{display:none}
.tv-contact__social{margin-top:14px}
.tv-contact__social .tv-social a{color:var(--navy);background:var(--grey);padding:6px 12px;border-radius:999px}
.tv-contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tv-contact__grid .tv-btn{margin-top:8px}
.tv-contact__hours{width:100%;border-collapse:collapse;font-size:15px}
.tv-contact__hours td{padding:9px 0;border-bottom:1px solid #eef2f6}
.tv-contact__hours td:first-child{color:var(--muted)}
.tv-contact__hours td:last-child{text-align:right;font-weight:700;color:var(--navy)}
.tv-contact__map{border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.tv-contact__map iframe{display:block;width:100%;min-height:340px}

/* ---------- 23. Slider + banner ---------- */
.tv-slider{position:relative;overflow:hidden;background:var(--navy)}
.tv-slider__track{display:flex;transition:transform .5s ease;will-change:transform}
.tv-slide{flex:0 0 100%;min-width:100%}
.tv-slide--img img{width:100%;height:auto;display:block;max-height:520px;object-fit:cover}
.tv-slider__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;border:0;background:rgba(255,255,255,.9);color:var(--navy);font-size:26px;line-height:1;cursor:pointer;z-index:2}
.tv-slider__nav--prev{left:16px}.tv-slider__nav--next{right:16px}
.tv-slider__dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:8px;z-index:2}
.tv-slider__dots button{width:10px;height:10px;border-radius:999px;border:0;background:rgba(255,255,255,.45);cursor:pointer;padding:0}
.tv-slider__dots button.is-active{background:#fff;width:24px}
.tv-ads{display:flex;flex-direction:column;gap:12px;margin:16px 0}
.tv-ads img{width:100%;height:auto;border-radius:10px;display:block}
.tv-ads--cpanel{flex-direction:row;max-width:1200px;margin:0 auto 32px;padding:0 20px}
.tv-partners{display:flex;gap:16px;flex-wrap:wrap}

/* ---------- 24. Footer ---------- */
.tv-footer{background:var(--navy-4);color:var(--sky);padding:56px 0 24px;font-size:14px}
.tv-footer__grid{display:grid;gap:40px}
.tv-footer__grid--3{grid-template-columns:1.3fr 1.1fr 1fr}
.tv-footer__col{display:flex;flex-direction:column;gap:8px}
.tv-footer__col p{margin:0}
.tv-footer a{color:#dbe6f3;text-decoration:none}
.tv-footer a:hover{color:#fff;text-decoration:underline}
.tv-footer__logo{display:inline-block}
.tv-footer__logo img{max-width:300px;max-height:90px;width:auto;height:auto;background:#fff;padding:8px 12px;border-radius:10px}
.tv-footer__logo strong{color:#fff;font-size:18px}
.tv-footer__intro{font-size:14px;line-height:1.7;margin-top:10px}
.tv-footer__intro b,.tv-footer__intro strong{color:#fff}
.tv-footer__title{color:#fff;font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.5px;padding-top:12px;border-top:2px solid rgba(255,255,255,.35);margin-bottom:8px}
.tv-footer__contact p{margin:0 0 8px;font-size:14px;line-height:1.6;padding-left:24px;position:relative;color:#dbe6f3}
.tv-ic::before{position:absolute;left:0;top:3px;width:15px;height:15px;content:"";background-repeat:no-repeat;background-size:contain;opacity:.9}
.tv-ic--pin::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M12 22s7-7 7-12a7 7 0 0 0-14 0c0 5 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}
.tv-ic--phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E")}
.tv-ic--mail::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E")}
.tv-ic--building::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2M10 21v-3h4v3'/%3E%3C/svg%3E")}
.tv-footer__links{display:flex;flex-direction:column;gap:7px}
.tv-footer__all{margin-top:6px;font-weight:700;color:#fff!important}
.tv-footer__col .tv-footer__links{margin-top:4px}
.tv-footer__bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:12px;flex-wrap:wrap;gap:8px}
.tv-footer__menu{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tv-footer__menu .tv-footer__links{flex-direction:row;gap:6px;flex-wrap:wrap}
.tv-footer__menu .tv-footer__links a+a::before{content:"· ";color:#8fa6c2}
.tv-social{display:flex;gap:12px;flex-wrap:wrap}
.tv-social a{font-size:13px;text-decoration:none;color:inherit;font-weight:600}
.tv-stickybar{display:none}

/* ---------- 25. Phân trang lõi ($datapage: .limit + ul.pagination + .limit) ---------- */
.tv-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:24px 0 8px;padding:12px 0 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.tv-pager>*{margin:0}
.tv-pager .limit{order:1;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px;color:var(--muted)}
.tv-pager .limit:last-child{order:3}
.tv-pager ul.pagination{order:2;flex:1 1 auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;list-style:none;margin:0;padding:0;border:0;background:none}
.tv-pager ul.pagination li{list-style:none;margin:0;padding:0;display:inline-flex;float:none;border:0;background:none}
.tv-pager ul.pagination li:empty{display:none}
.tv-pager ul.pagination li a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;margin:0!important;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:600;font-size:13px;line-height:1;text-decoration:none!important;float:none;position:static}
.tv-pager ul.pagination li a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.tv-pager ul.pagination li.active a{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700;cursor:default}
.tv-pager ul.pagination li.disabled a{color:#9aa6b5;background:#f5f7fa;cursor:default;pointer-events:none}
.tv-pager ul.pagination input[type=hidden]{display:none}
.tv-pager select{height:30px;border:1px solid var(--line);border-radius:6px;padding:0 8px;background:#fff;color:var(--ink);font-size:13px;margin:0;width:auto}

/* ---------- 26. Hiệu ứng ---------- */
@keyframes tvSpin{to{transform:rotate(360deg)}}
@keyframes tvSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes tvPulse{0%,100%{box-shadow:0 0 0 0 rgba(252,211,77,.45)}50%{box-shadow:0 0 0 6px rgba(252,211,77,0)}}

/* ---------- 27. Responsive: ≤1100 / ≤1024 ---------- */
@media (max-width:1180px){
  .tv-nav{gap:16px}.tv-nav__link{font-size:14px}.tv-nav__phone{display:none}
}
@media (max-width:1024px){
  .tv-grid-4,.tv-path{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tv-hero__grid,.tv-why__grid,.tv-lhero__grid,.tv-cta__grid,.tv-faq__grid{grid-template-columns:1fr;gap:32px}
  .tv-lbody{grid-template-columns:1fr}
  .tv-footer__grid--3{grid-template-columns:1fr 1fr}
  .tv-h1{font-size:36px}.tv-h2{font-size:24px}
  .tv-content .tv-l-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tv-trust{margin-top:-28px}
}
/* ---------- 28. Responsive: mobile ≤900 (menu gập) ---------- */
@media (max-width:900px){
  .tv-burger{display:flex}
  .tv-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px 20px 20px;gap:0;box-shadow:0 14px 28px rgba(0,0,0,.1);max-height:calc(100vh - 120px);overflow-y:auto}
  .tv-nav.is-open{display:flex}
  .tv-nav__item{flex-direction:column;align-items:stretch}
  .tv-nav__link{padding:13px 4px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
  .tv-nav__caret{padding:0 8px;font-size:14px}
  .tv-nav__sub{position:static;box-shadow:none;border:0;padding:4px 0 8px 12px;min-width:0}
  .tv-nav__item.has-sub:hover .tv-nav__sub{display:none}
  .tv-nav__item.has-sub.is-open .tv-nav__sub{display:flex}
  .tv-nav__phone{display:flex;border:0;padding:14px 4px 0}
  .tv-nav__cta{margin-top:12px}
  .tv-contact__quick,.tv-contact__grid{grid-template-columns:1fr}
}
@media (max-width:767px){
  body.tv-body{font-size:15px;padding-bottom:66px}
  .tv-hide-m{display:none!important}
  .tv-show-m{display:inline}
  .tv-topbar .tv-wrap{justify-content:center;min-height:34px}
  .tv-header__inner{min-height:62px}
  .tv-logo__img{height:42px}
  .tv-logo__badge{width:40px;height:40px;font-size:14px;border-radius:10px}
  .tv-logo__text strong{font-size:14px}.tv-logo__text small{font-size:11px}
  .tv-h1{font-size:28px;letter-spacing:-.3px}.tv-h1--sm{font-size:25px}.tv-h2{font-size:21px}
  .tv-hero{padding:26px 0 56px}
  .tv-hero__text{gap:14px}
  .tv-hero__desc{font-size:15px}
  .tv-hero__ticks{font-size:14px;gap:8px 12px}
  .tv-hero__ticks li{padding-left:26px}
  .tv-hero__actions{display:none}
  .tv-hero__grid,.tv-lhero__grid,.tv-cta__grid,.tv-faq__grid,.tv-why__grid{gap:20px}
  .tv-form--card{padding:20px 18px}
  .tv-form__row{grid-template-columns:1fr}
  .tv-form__group--note{display:none}
  .tv-trust{margin-top:-36px}
  .tv-trust .tv-grid-4{gap:10px}
  .tv-card{padding:16px}
  .tv-card--ic{padding:60px 14px 14px}
  .tv-card--ic::before{left:14px;top:14px;width:36px;height:36px}
  .tv-card--ic::after{left:22px;top:22px;width:20px;height:20px}
  .tv-card strong,.tv-card h3{font-size:15px}
  .tv-card span{font-size:13px}
  .tv-section{padding:36px 0}
  .tv-section--tight{padding:28px 0 0}
  .tv-section__head{margin-bottom:16px;gap:10px}
  .tv-path{gap:10px}
  .tv-path__item{padding:14px}
  .tv-path__item b{font-size:18px}.tv-path__time{font-size:20px}
  .tv-path__item em{font-size:12px}
  .tv-grid-3{grid-template-columns:1fr;gap:14px}
  .tv-grid-4{gap:12px}
  .tv-majors{grid-template-columns:1fr}
  .tv-major{flex-direction:row}
  .tv-major__img{aspect-ratio:auto;width:96px;flex:0 0 96px}
  .tv-major__ic{width:40px;height:40px}
  .tv-major__body{padding:14px}
  .tv-major__name{font-size:16px}
  .tv-major__desc{font-size:13px}
  .tv-major__meta{display:none}
  .tv-major--cta .tv-major__body{padding:18px}
  .tv-why{padding:40px 0}
  .tv-why__text .tv-kicker{font-size:20px}
  .tv-grid-2{grid-template-columns:1fr;gap:10px}
  .tv-cta{padding:36px 0}
  .tv-cta__text h4{font-size:23px}
  .tv-lhero{padding:22px 0 30px}
  .tv-lhero__desc{font-size:15px}
  .tv-lhero__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tv-lhero .tv-hero__actions{display:flex}
  .tv-pagehead{padding:22px 0 18px}
  .tv-postrow{grid-template-columns:110px 1fr;gap:12px;padding-bottom:16px}
  .tv-postrow__body strong{font-size:15px}.tv-postrow__body span{display:none}
  .tv-content{font-size:15px}
  .tv-content h2{font-size:21px}
  .tv-content table{font-size:13px}
  .tv-content th,.tv-content td{padding:9px 10px}
  .tv-content .tv-l-cards,.tv-content .tv-l-cards--2,.tv-l-check,.tv-content ul.tv-l-check{grid-template-columns:1fr}
  .tv-inline-cta{flex-direction:column;align-items:flex-start;margin:20px 0}
  .tv-footer{padding:32px 0 20px}
  .tv-footer__grid--3{grid-template-columns:1fr;gap:20px}
  .tv-footer__bottom{flex-direction:column;align-items:flex-start}
  .tv-footer__menu{justify-content:flex-start}
  .tv-slider__nav{display:none}
  .tv-ads--cpanel{flex-direction:column}
  .tv-stickybar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:9px 12px calc(9px + env(safe-area-inset-bottom));z-index:60;box-shadow:0 -6px 20px rgba(0,0,0,.08);transition:transform .2s}
  .tv-stickybar.is-hidden{transform:translateY(110%)}
  .tv-stickybar .tv-btn{flex:1;min-height:46px;padding:8px;font-size:14px}
  .tv-pager{justify-content:center}
  .tv-pager ul.pagination{order:1;flex-basis:100%}
  .tv-pager .limit{order:2}
}

/* ---------- 29. Ảnh thay thế khi bài chưa có ảnh đại diện ---------- */
.tv-post__img,.tv-postrow__img,.tv-mini__img{display:block;position:relative}
.tv-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:800;letter-spacing:2px;color:rgba(255,255,255,.85);font-size:22px;background:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(135deg,var(--navy),var(--navy-2))}
.tv-mini .tv-ph{font-size:12px;letter-spacing:1px}
.tv-post__body,.tv-postrow__body{min-width:0}

/* ---------- 30. Sửa nhỏ sau render thử ---------- */
.tv-nav__phone small{white-space:nowrap}
.tv-footer .tv-stickybar a.tv-btn--outline{color:var(--navy);text-decoration:none;border-color:var(--navy)}
.tv-footer .tv-stickybar a.tv-btn--accent{color:#fff;text-decoration:none}
.tv-footer__col--brand{padding-top:14px}
.tv-lfaq{margin-top:36px}
.tv-lfaq h2{margin-bottom:14px}
.tv-content .tv-form__title{padding-left:0;border-left:0;margin:0;font-size:21px}
.tv-side .tv-form__row{grid-template-columns:1fr}

/* ---------- 31. v1.1.0: logo ngang (ctec-logo.png 4,5:1) — tăng độ ưu tiên vì .tv-body img{height:auto} ---------- */
.tv-body .tv-logo img.tv-logo__img{height:54px;width:auto;max-width:260px;display:block}
.tv-footer__logo img{max-width:280px;max-height:none;padding:10px 14px}
@media (max-width:1180px){.tv-body .tv-logo img.tv-logo__img{height:46px}}
@media (max-width:767px){.tv-body .tv-logo img.tv-logo__img{height:40px;max-width:190px}}
