/* ==========================================================================
   TRAWISE — MENU LỚN (phương án J)
   --------------------------------------------------------------------------
   Chỉ được nạp khi công tắc ở Menu lớn → Cài đặt đang bật, hoặc khi đang xem
   trước. Tắt công tắc là file này không có mặt trên trang.

   Mọi thứ nằm trong .tw-mm-it (mục menu có panel) nên không đụng tới các mục
   menu khác và không đụng tới menu trượt trên điện thoại.
   ========================================================================== */

.tw-mm-it {
	--brand: var(--tw-s-brand, #0042e8);
	--brand-d: var(--tw-s-brandd, #0034bd);
	--tint: var(--tw-s-tint, #eaf0ff);
	--ink: var(--tw-s-ink, #030712);
	--ink2: var(--tw-s-ink2, #4b5163);
	--ink3: var(--tw-s-ink3, #858b9c);
	--line: var(--tw-s-line, #e2e6ee);
	--mist: #eef1f7;
	--f: var(--tw-s-f, "Be Vietnam Pro", system-ui, -apple-system, sans-serif);
	--fh: var(--tw-s-fh, var(--f));
	--ease: cubic-bezier(.22, .61, .36, 1);
	position: relative;
}

/* Mũi tên cạnh tên mục. Flatsome vốn có mũi tên riêng; cái này chỉ hiện khi
   menu lớn đang bật, và xoay khi panel mở. */
.tw-mm-it .tw-mm-chev {
	width: 10px; height: 10px; margin-left: 5px;
	stroke: currentColor; fill: none; stroke-width: 2.4;
	stroke-linecap: round; stroke-linejoin: round;
	transition: transform .22s var(--ease);
}
.tw-mm-it.tw-mm-open .tw-mm-chev { transform: rotate(180deg); }

/* Flatsome tự dựng dropdown của nó cho mục có con. Panel của tôi thay thế nó,
   nên phải chặn cái cũ lại — nếu không hai lớp cùng bung ra chồng lên nhau. */
.tw-mm-it > .nav-dropdown,
.tw-mm-it > ul.sub-menu:not(.tw-mm-keep) { display: none !important; }

/* ==========================================================================
   PANEL
   ========================================================================== */

.tw-mm-panel {
	position: absolute; left: 0; top: 100%;
	background: #fff;
	border-top: 1px solid var(--line);
	box-shadow: 0 30px 60px -30px rgba(3, 7, 18, .28);
	font-family: var(--f);
	text-align: left;
	opacity: 0; visibility: hidden;
	/* TRƯỢT XUỐNG, KHÔNG TRƯỢT LÊN.
	   Trượt lên nghĩa là lúc bung ra panel nhô cao hơn vị trí cuối và đè lên
	   chính hàng chữ menu. Con trỏ đang ở dải đó bỗng nằm trên panel thay vì
	   trên chữ; panel lại trải hết bề ngang nên che luôn chữ của mọi mục khác.
	   Thứ nằm dưới con trỏ đổi liên tục theo nhịp hiệu ứng, kéo theo mở–đóng
	   không dứt. Đo trên trình duyệt ở bản thử: rê qua lại vài lần ở dải 5px
	   phía trên đường gạch dưới sinh ra 67 lần mở/đóng liên tiếp, tự lặp vô
	   hạn. Trượt xuống thì panel không bao giờ chạm tới hàng chữ. */
	transform: translateY(6px);
	transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
	z-index: 40;
	/* Cắt gọn phần nền tràn của cột chiến dịch, xem .tw-mm-promo::before. */
	overflow: hidden;
	cursor: default;
	/* PANEL ĐANG TẮT DẦN KHÔNG ĐƯỢC ĂN CHUỘT.
	   visibility có mặt trong danh sách transition ở trên, mà visibility nội suy
	   theo kiểu rời rạc: đi từ visible sang hidden thì nó GIỮ NGUYÊN visible
	   suốt 220ms rồi mới lật. Nghĩa là trong toàn bộ thời gian mờ dần, panel
	   vẫn nằm trên cùng và vẫn nhận sự kiện chuột.

	   Panel lại nằm bên trong chính <li class="tw-mm-it">, nên t.closest() ở
	   tw-megamenu.js vẫn khớp — đưa con trỏ xuyên qua vùng panel đang mờ dần là
	   menu bung trở lại. Đây đúng là cảnh người dùng mô tả: rê ra cho nó đóng,
	   đưa chuột lên thao tác với nội dung trang thì nó hiện lại chắn đường.

	   Tắt pointer-events lúc chưa mở thì con trỏ đi thẳng xuống nội dung bên
	   dưới — vốn là thứ người dùng đang nhắm tới. Không dùng cách rút visibility
	   khỏi transition: làm vậy panel biến mất phựt một cái ngay khi bắt đầu mờ,
	   mất luôn hiệu ứng. */
	pointer-events: none;
}
.tw-mm-it.tw-mm-open .tw-mm-panel {
	opacity: 1; visibility: visible; transform: none;
	pointer-events: auto;
}

.tw-mm-in {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	max-width: 1440px; margin: 0 auto;
}
.tw-mm-main { padding: 34px 40px 38px; min-width: 0; }
/* --------------------------------------------------------------------------
   VÌ SAO MỌI QUY TẮC CHO THẺ <p> ĐỀU CÓ TIỀN TỐ .tw-mm-panel

   Flatsome có một dòng: .nav p { margin: 0; padding-bottom: 0 }

   Panel nằm trong <ul class="header-nav nav">, nên dòng đó quét sạch margin
   của MỌI thẻ <p> trong panel: câu dẫn, nhãn, tiêu đề, mô tả, dòng phụ. Đo
   trên trang thật thấy cả năm chỗ đều về 0px trong khi tôi khai 12–30px — đó
   chính là cảm giác "dính sát" so với bản thiết kế.

   Không cần !important. Độ ưu tiên so số lớp trước số tên thẻ:
   .nav p là (1 lớp, 1 thẻ), .tw-mm-panel .tw-mm-lead là (2 lớp, 0 thẻ) — 2 > 1
   nên bên tôi thắng. Chỉ cần thêm tiền tố.
   -------------------------------------------------------------------------- */

/* Cột phải: câu dẫn + các cột nhóm. min-width:0 để nội dung dài không đẩy
   phình ô lưới ra ngoài. */
.tw-mm-right { min-width: 0; }
.tw-mm-panel .tw-mm-lead {
	font-size: 14.5px; line-height: 1.6; color: var(--ink2);
	/* 30px chứ không phải 18px. Câu dẫn và hàng tiêu đề nhóm là hai tầng nội
	   dung khác nhau, mà tiêu đề nhóm lại có gạch chân ngay bên dưới nên hai
	   thứ dính vào nhau trông như một khối. Cần khoảng hở đủ để mắt hiểu là
	   câu dẫn đã hết. */
	margin: 0 0 30px; max-width: 62ch;
}
.tw-mm-panel .tw-mm-all {
	display: inline-flex; align-items: center; gap: 7px; margin-top: 22px;
	font-size: 14px; font-weight: 600; color: var(--brand); text-transform: none;
	letter-spacing: 0; line-height: 1.4;
}
.tw-mm-panel .tw-mm-all:hover { color: var(--brand-d); }

/* ---------- thẻ nổi bật + cột nhóm ---------- */
.tw-mm-wrap {
	display: grid; grid-template-columns: 272px minmax(0, 1fr);
	gap: 34px; align-items: start;
}
/* Menu nào không chọn mục nổi bật thì cột nhóm chiếm trọn bề ngang, không để
   lại khoảng trống. */
.tw-mm-wrap--nonb { grid-template-columns: minmax(0, 1fr); }

.tw-mm-panel a.tw-mm-nb {
	/* display:block cho MỌI thẻ span dùng làm khối. Thẻ span mặc định là
	   inline: aspect-ratio, đệm trên dưới và overflow:hidden gần như không có
	   tác dụng, ảnh sẽ tràn ra ngoài khung bo góc và khối chữ trôi lệch. */
	display: block; border-radius: 18px; overflow: hidden;
	background: var(--mist); border: 1px solid var(--line);
	transition: border-color .2s var(--ease), transform .2s var(--ease);
}
.tw-mm-panel a.tw-mm-nb:hover { border-color: #c9d4f2; transform: translateY(-3px); }
.tw-mm-nb__pic { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--mist); }
.tw-mm-nb__pic img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .45s var(--ease);
}
.tw-mm-nb:hover .tw-mm-nb__pic img { transform: scale(1.05); }
.tw-mm-nb__pic--none {
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(140deg, #eaf0ff, #dde6ff);
}
.tw-mm-nb__pic--none em {
	font-style: normal; font-family: var(--fh);
	font-size: 40px; font-weight: 700; color: #9fb4ee;
}
.tw-mm-nb__b { display: block; padding: 15px 17px 18px; background: #fff; }
.tw-mm-nb__tag {
	display: block; margin-bottom: 7px;
	font-size: 10.5px; font-weight: 700; letter-spacing: .13em;
	text-transform: uppercase; color: var(--brand);
}
.tw-mm-nb__b b {
	display: block; margin-bottom: 6px;
	font-family: var(--fh); font-size: 17.5px; font-weight: 700;
	letter-spacing: -.02em; line-height: 1.28; color: var(--ink);
}
.tw-mm-nb:hover .tw-mm-nb__b b { color: var(--brand); }
.tw-mm-nb__b i {
	font-style: normal; font-size: 13px; line-height: 1.6; color: var(--ink2);
}

/* Cột có TRẦN 300px và dồn về trái, không phải 1fr.
   Với 1fr thì menu chỉ có một nhóm sẽ kéo cột dài hết bề ngang panel — bảy
   dòng chữ ngắn trải trên hơn một nghìn điểm ảnh, mắt phải quét cả quãng
   trống. Thấy rõ khi chưa kịp đặt tên nhóm cho mục nào, tức là đúng lúc mới
   bật lên lần đầu. Có trần thì một nhóm ra một cột gọn, ba nhóm ra ba cột. */
.tw-mm-cols {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(224px, 300px));
	justify-content: start;
	gap: 28px;
}
.tw-mm-col > h4 {
	margin: 0 0 12px; padding-bottom: 10px;
	border-bottom: 1px solid var(--line);
	font-family: var(--f); font-size: 11.5px; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase; color: var(--ink3);
}
.tw-mm-panel .tw-mm-col a {
	display: flex; gap: 11px; align-items: flex-start;
	padding: 9px 10px; margin: 0 -10px; border-radius: 10px;
	transition: background-color .16s var(--ease);
}
.tw-mm-panel .tw-mm-col a:hover { background: var(--tint); }
.tw-mm-p {
	width: 36px; height: 36px; flex: 0 0 36px;
	border-radius: 9px; overflow: hidden; background: var(--mist);
	display: flex; align-items: center; justify-content: center;
}
.tw-mm-p img { width: 100%; height: 100%; object-fit: cover; }
.tw-mm-p em {
	font-style: normal; font-family: var(--fh);
	font-size: 14px; font-weight: 700; color: #a8b4cc;
}

.tw-mm-col a b {
	display: block; margin-bottom: 2px;
	font-size: 14.5px; font-weight: 600; line-height: 1.35; color: var(--ink);
}
.tw-mm-col a:hover b { color: var(--brand); }
.tw-mm-col a i {
	font-style: normal; font-size: 12.5px; line-height: 1.45; color: var(--ink3);
}

/* ---------- cột chiến dịch ---------- */
.tw-mm-promo {
	position: relative;
	background: var(--mist);
	border-left: 1px solid var(--line);
	padding: 34px 32px 38px;
	display: flex; flex-direction: column;
}
/* NỀN XÁM TRÀN RA MÉP PHẢI KHUNG NHÌN.
   .tw-mm-in bị khoá max-width 1440px và canh giữa, nên trên màn rộng cột này
   dừng ở mốc đó và chừa một dải trắng, nhìn như tấm nền bị cắt cụt.

   KHÔNG dùng box-shadow: box-shadow không kéo giãn tấm nền, nó vẽ một BẢN SAO
   của cái hộp rồi dời đi. Dời 100vw là dời hẳn ra ngoài màn hình nên chẳng
   thấy gì; dời đúng bề ngang cột thì thấy, nhưng vệt nền cũng chỉ dài bằng bề
   ngang cột chứ không tới được mép.

   Thẻ phụ bắt đầu từ mép phải của cột, rộng 100vw. Chồng lấn 1px phòng làm
   tròn nửa điểm ảnh gây vệt kẻ mảnh ở chỗ nối. Phần thừa được .tw-mm-panel
   cắt gọn nên không sinh thanh cuộn ngang. */
.tw-mm-promo::before {
	content: ""; position: absolute; top: 0; bottom: 0;
	left: calc(100% - 1px); width: calc(100vw + 1px);
	background: var(--mist); pointer-events: none;
}
.tw-mm-panel .tw-mm-promo__tag {
	margin: 0 0 12px;
	font-size: 11px; font-weight: 700; letter-spacing: .14em;
	text-transform: uppercase; color: var(--brand);
}
.tw-mm-promo__pic {
	display: block; aspect-ratio: 16 / 9; border-radius: 14px;
	overflow: hidden; background: #dfe4ee; margin: 0 0 16px;
}
.tw-mm-promo__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tw-mm-panel .tw-mm-promo__t {
	margin: 0 0 8px;
	font-family: var(--fh); font-size: 19px; font-weight: 700;
	line-height: 1.28; letter-spacing: -.02em; color: var(--ink);
}
.tw-mm-panel .tw-mm-promo__d { margin: 0 0 14px; font-size: 14px; line-height: 1.65; color: var(--ink2); }
.tw-mm-panel .tw-mm-promo__meta { margin: 0 0 18px; font-size: 12.5px; color: var(--ink3); }
.tw-mm-panel a.tw-mm-promo__btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	/* KHOẢNG CÁCH CỐ ĐỊNH, KHÔNG DÙNG margin-top:auto.
	   auto đẩy nút xuống đáy cột khi còn chỗ trống. Nghe thì gọn, nhưng chiều
	   cao cột lại do bên trái quyết định: menu ít nhóm thì nút nằm sát dòng
	   phụ, menu nhiều nhóm thì nút trôi xuống tận đáy cách dòng phụ cả trăm
	   điểm ảnh. Cùng một khối chiến dịch mà mỗi menu một kiểu, và đó chính là
	   chỗ bản mẫu với bản chạy thật trông khác nhau. Cố định 20px thì khối
	   luôn đọc như một cụm liền mạch, ở đâu cũng vậy.

	   8px chứ không phải 20: lề trong hộp flex KHÔNG gộp vào nhau, mà dòng phụ
	   ngay phía trên đã có 18px lề dưới. Để 20 thì hở thật là 38px — đo trên
	   trang mới thấy. 8 cộng 18 thành 26, vừa đủ tách phần thông tin khỏi nút
	   bấm. */
	margin-top: 8px; padding: 14px 22px; border-radius: 999px;
	background: var(--brand); color: #fff;
	/* !important đúng một chỗ này, và có lý do cụ thể: style.css của theme con
	   có dòng div#wide-nav ul.header-nav li a { font-size: 14px } — chọn bằng
	   ID nên không cách nào thắng bằng tên lớp. Chỉ đúng một thuộc tính bị đè
	   nên chặn đúng một thuộc tính, không chặn cả khối. */
	font-size: 14.5px !important;
	font-weight: 600; line-height: 1;
	transition: background-color .18s var(--ease);
}
.tw-mm-panel a.tw-mm-promo__btn:hover { background: var(--brand-d); color: #fff; }

/* ==========================================================================
   MÀN HẸP — ĐIỂM NGẮT 959px, KHÔNG PHẢI 1100px
   --------------------------------------------------------------------------
   Bản trước tôi để 1100px vì tưởng site dùng mốc mặc định của Flatsome. Sai
   hai lần trong cùng một dòng.

   Thứ nhất, mặc định của Flatsome là 849/850px chứ không phải 1100.

   Thứ hai, và mới là chỗ quan trọng: site này KHÔNG dùng mốc mặc định. Trong
   style.css của theme con có một khối riêng ở max-width 959px làm việc ẩn
   thanh menu ngang và bật menu trượt:

       #header div#wide-nav .hide-for-medium { display: none }
       #header div#wide-nav .show-for-medium { display: block !important }

   Tức là từ 959px trở xuống panel không bao giờ xuất hiện — mọi quy tắc tôi
   viết dưới mốc đó là mã chết. Còn khoảng 960–1100px thì panel VẪN hiện, mà
   bản trước tôi lại ép nó xếp dọc ở đó: cột chiến dịch bị đẩy xuống dưới và
   panel cao gấp đôi, hoàn toàn không cần thiết. Đo lại: ở 1000px, phần nội
   dung còn 620px, đủ chỗ cho thẻ nổi bật 272px cộng một cột 300px.

   Nên mốc đúng là 959px, và khối này chỉ còn là lưới an toàn phòng khi ai đó
   đổi mốc trong Theme Options.
   ========================================================================== */
@media (max-width: 959px) {
	.tw-mm-in { grid-template-columns: minmax(0, 1fr); }
	.tw-mm-main { padding: 26px 20px 30px; }
	.tw-mm-wrap { grid-template-columns: minmax(0, 1fr); }
	.tw-mm-promo { border-left: 0; border-top: 1px solid var(--line); padding: 26px 20px 30px; }
	.tw-mm-promo::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.tw-mm-panel { transition: opacity .001ms; transform: none; }
	.tw-mm-panel a.tw-mm-nb:hover { transform: none; }
	.tw-mm-nb:hover .tw-mm-nb__pic img { transform: none; }
	.tw-mm-it .tw-mm-chev { transition: none; }
}

/* ==========================================================================
   CỘT CHIẾN DỊCH — KIỂU DANH SÁCH TIN
   --------------------------------------------------------------------------
   Kiểu thứ hai của khối chiến dịch: một tiêu đề nhỏ rồi vài dòng tin, mỗi
   dòng có ảnh vuông bên trái và tiêu đề + mô tả + liên kết bên phải.

   Khác kiểu "một khối lớn" ở chỗ nó đẩy được nhiều thứ cùng lúc thay vì dồn
   hết vào một thông điệp. Hợp với "Bài mới nhất" hay "Tài liệu nên đọc";
   không hợp với một chiến dịch cần dồn toàn lực vào một nút bấm.
   ========================================================================== */

.tw-mm-panel .tw-mm-promo__h {
	margin: 0 0 16px;
	font-family: var(--fh); font-size: 17px; font-weight: 700;
	line-height: 1.3; letter-spacing: -.02em; color: var(--ink);
}

.tw-mm-panel a.tw-mm-res {
	display: flex; gap: 14px; align-items: flex-start;
	padding: 10px; margin: 0 -10px 6px;
	border-radius: 14px;
	transition: background-color .16s var(--ease);
}
.tw-mm-panel a.tw-mm-res:hover { background: rgba(255, 255, 255, .74); }

.tw-mm-res__pic {
	display: block; flex: 0 0 88px; width: 88px; aspect-ratio: 4 / 3;
	border-radius: 12px; overflow: hidden; background: #dfe4ee;
}
.tw-mm-res__pic img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .45s var(--ease);
}
.tw-mm-res:hover .tw-mm-res__pic img { transform: scale(1.06); }
/* Bài chưa có ảnh vẫn chừa đúng chỗ, không thì dòng có ảnh và dòng không ảnh
   so le nhau. */
.tw-mm-res__pic--none { background: linear-gradient(140deg, #e6ebf5, #dfe4ee); }

.tw-mm-res__b { display: block; min-width: 0; }
/* TIÊU ĐỀ CẮT CÒN HAI DÒNG.
   Ô chữ trong cột 340px chỉ còn khoảng 190px, mà tiêu đề bài thì dài ngắn rất
   khác nhau — đo trên trang thật có tin vỡ tới bốn dòng, cao gấp đôi tin bên
   cạnh, cả cột nhìn xộc xệch. Cắt hai dòng thì mọi hàng cao gần bằng nhau và
   khớp với chiều cao tấm ảnh. */
.tw-mm-res__b b {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 4px;
	font-size: 14.5px; font-weight: 600; line-height: 1.35; color: var(--ink);
}
.tw-mm-res:hover .tw-mm-res__b b { color: var(--brand); }
.tw-mm-res__b i {
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
	overflow: hidden; margin: 0;
	font-style: normal; font-size: 12.5px; line-height: 1.5; color: var(--ink3);
}

/* Kiểu danh sách: đệm ngang hẹp hơn kiểu khối, để phần chữ bên phải ảnh có
   thêm chỗ thở. Cột vẫn rộng 340px nhưng ô chữ được thêm 12px — đủ để phần
   lớn tiêu đề gọn trong hai dòng thay vì ba. */
.tw-mm-promo--ds { padding: 30px 26px 32px; }
.tw-mm-promo--ds .tw-mm-promo__btn { margin-top: 18px; }
.tw-mm-promo--ds .tw-mm-res { margin-left: -8px; margin-right: -8px; padding: 10px 8px; }

/* ==========================================================================
   CỘT CHIẾN DỊCH — KIỂU ẢNH LÀM NỀN
   --------------------------------------------------------------------------
   Ảnh phủ kín cột, chữ đặt dưới đáy trên một lớp phủ chuyển dần. Ảnh và lớp
   phủ do PHP gắn thẳng vào thuộc tính style vì màu do người dùng chọn — CSS
   tĩnh không biết trước được.

   Màu chữ đọc từ biến --tw-mm-chu, cũng do PHP tính theo độ sáng của màu lớp
   phủ. Ghi cứng chữ trắng thì người chọn một màu sáng sẽ mất chữ.
   ========================================================================== */

.tw-mm-promo--nen {
	/* Nền để cho ::before vẽ, thẻ này chỉ còn giữ chữ. */
	background: transparent;
	border-left: 0;
	/* Chữ dồn xuống đáy, nơi lớp phủ đậm nhất. Đặt ở giữa thì phần chữ rơi vào
	   vùng lớp phủ còn nhạt và ảnh nền lộm nhộm phía sau. */
	justify-content: flex-end;
	padding: 34px 30px 32px;
	color: var(--tw-mm-chu, #fff);
}
/* TẤM NỀN CHẠY RA TỚI MÉP PHẢI.
   .tw-mm-in bị khoá max-width 1440px và canh giữa, nên trên màn rộng cột này
   dừng ở mốc đó và chừa một dải trắng bên phải — tấm ảnh trông như bị cắt cụt.

   Thẻ phụ rộng hơn cột đúng bằng nửa phần thừa của panel: panel rộng gần bằng
   khung nhìn nên phần thừa là (100vw - 1440px), chia đôi vì lưới canh giữa.
   max(0px, …) để dưới 1440px không sinh số âm.

   KHÔNG lấy đại 100vw cho chắc ăn. background-size:cover tính theo BỀ NGANG
   CỦA CHÍNH THẺ, không tính theo phần nhìn thấy. Thẻ rộng 340+1920 thì tấm ảnh
   bị thu nhỏ cho vừa 2260px, và trong cột chỉ còn thấy một mẩu góc ảnh phóng
   ngược — dù phần thừa vẫn bị .tw-mm-panel cắt đi. Cộng đúng khoảng cần thì
   ảnh giữ nguyên cỡ như cũ, chỉ dài thêm ra vừa đủ chạm mép.

   +2px phòng làm tròn nửa điểm ảnh gây vệt trắng mảnh ở mép. */
.tw-mm-promo--nen::before {
	display: block;
	content: "";
	top: 0; bottom: 0; left: 0;
	/* Dòng đầu là phòng hờ cho trình duyệt cũ chưa biết max() trong calc(). Bỏ
	   nó đi thì mấy trình duyệt ấy vứt luôn cả khai báo width và rơi xuống
	   dùng width của .tw-mm-promo::before, tức 100vw — tấm ảnh bị kéo giãn
	   quá tay. Có dòng phòng hờ thì tệ nhất cũng chỉ là hụt vài điểm ảnh trên
	   màn rất rộng. */
	width: calc(100% + 120px);
	width: calc(100% + max(0px, (100vw - 1440px) / 2) + 2px);
	background-color: transparent;
	background-image: var(--tw-mm-nen);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 0;
}
/* Chữ phải nổi lên trên tấm nền. Thẻ phụ vẽ sau trong cây nên mặc định nó đè
   lên chữ. */
.tw-mm-promo--nen > * { position: relative; z-index: 1; }

.tw-mm-panel .tw-mm-promo--nen .tw-mm-promo__tag { color: var(--tw-mm-chu, #fff); opacity: .75; }
.tw-mm-panel .tw-mm-promo--nen .tw-mm-promo__t { color: var(--tw-mm-chu, #fff); font-size: 21px; }
.tw-mm-panel .tw-mm-promo--nen .tw-mm-promo__d { color: var(--tw-mm-chu, #fff); opacity: .82; }
.tw-mm-panel .tw-mm-promo--nen .tw-mm-promo__meta { color: var(--tw-mm-chu, #fff); opacity: .62; }

/* Nút đảo màu: nền lấy màu chữ, chữ lấy màu lớp phủ. Nhờ vậy nút luôn tương
   phản với nền dù người dùng chọn màu nào — không phải thêm một ô chọn nữa. */
.tw-mm-panel .tw-mm-promo--nen a.tw-mm-promo__btn {
	background: var(--tw-mm-chu, #fff);
	color: var(--tw-mm-nut, #070c33);
	margin-top: 12px;
}
.tw-mm-panel .tw-mm-promo--nen a.tw-mm-promo__btn:hover {
	background: var(--tw-mm-chu, #fff);
	color: var(--tw-mm-nut, #070c33);
	opacity: .88;
}

/* ==========================================================================
   DẢI LOGO TRƯỜNG ĐỐI TÁC
   --------------------------------------------------------------------------
   Nằm dưới các cột nhóm, ngăn bằng một đường kẻ mảnh. Logo do người dùng chọn
   trong mục menu, mỗi logo có đường dẫn riêng.
   ========================================================================== */

.tw-mm-logos {
	margin-top: 26px; padding-top: 22px;
	border-top: 1px solid var(--line);
}
.tw-mm-panel .tw-mm-logos__t {
	margin: 0 0 14px;
	font-size: 11.5px; font-weight: 700; letter-spacing: .12em;
	text-transform: uppercase; color: var(--ink3);
}
.tw-mm-logos__row { display: flex; flex-wrap: wrap; gap: 12px; }

/* Ô logo dùng chung một khuôn cho cả thẻ <a> lẫn <span>: logo chưa điền đường
   dẫn vẫn nằm đúng hàng, chỉ khác là không bấm được. */
.tw-mm-panel .tw-mm-logo {
	display: flex; align-items: center; justify-content: center;
	/* 120x56 chứ không phải 98x52. Logo trường phần lớn là chữ nằm ngang, tỉ lệ
	   quãng 4:1 đến 7:1. Ô 98px trừ đệm còn 82px bề ngang, logo 7:1 co xuống
	   còn 11px cao — đo trên trình duyệt thì chữ trong logo gần như không đọc
	   được. Ô 120px cho 96px bề ngang, cùng logo ấy cao 13.4px và ô cao 56px
	   nên logo vuông cũng nhích từ 34 lên 38px. */
	width: 120px; height: 56px; padding: 8px 12px;
	border: 1px solid var(--line); border-radius: 10px; background: #fff;
	transition: border-color .18s var(--ease);
}
.tw-mm-panel a.tw-mm-logo:hover { border-color: var(--brand); }

/* object-fit:contain chứ không phải cover: logo trường mỗi cái một tỉ lệ, có
   cái nằm ngang dài, có cái gần vuông. cover sẽ cắt mất chữ trong logo. */
.tw-mm-logo img {
	max-width: 100%; max-height: 100%;
	width: auto; height: auto; object-fit: contain;
	/* Xám hoá để dải logo không tranh chú ý với phần menu chính; hiện màu thật
	   khi rê chuột vào từng cái. */
	filter: grayscale(1); opacity: .62;
	transition: filter .2s var(--ease), opacity .2s var(--ease);
}
.tw-mm-logo:hover img { filter: none; opacity: 1; }

@media (max-width: 959px) {
	.tw-mm-logos { margin-top: 20px; padding-top: 18px; }
	.tw-mm-panel .tw-mm-logo { width: 100px; height: 48px; padding: 7px 10px; }
}
