/* Editorial templates follow the supplied bv-* layouts. CMS text and media remain native. */
.tw-sidebar-widget.tw-sidebar-search > h2 { margin: 0 0 14px; padding: 0; border: 0; }
.tw-article-search { display: flex; align-items: center; height: 48px; border: 1px solid var(--border-subtle); border-radius: 4px; background: var(--white); }
.tw-article-search:focus-within { border-color: var(--teal-700); }
.tw-article-search > label { flex: 1; min-width: 0; margin: 0; }
.tw-article-search input[type="search"] { display: block; width: 100%; min-width: 0; height: 46px; padding: 10px 12px; border: 0; outline: 0; border-radius: 4px; box-shadow: none; appearance: none; -webkit-appearance: none; background: transparent; color: var(--text-heading); font: var(--fw-regular) 16px/1.4 var(--font-sans); }
.tw-article-search input::placeholder { color: var(--text-muted); opacity: 1; }
.tw-article-search input::-webkit-search-cancel-button, .tw-article-search input::-webkit-search-decoration { -webkit-appearance: none; }
.tw-article-search > button { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 4px; box-shadow: none; background: transparent; color: var(--text-heading); cursor: pointer; }
.tw-article-search > button:hover { color: var(--teal-700); }
.tw-article-search > button:focus-visible { outline: 2px solid var(--teal-700); outline-offset: -3px; }
.tw-editorial{background:var(--teal-100);padding:clamp(var(--space-10),5vw,var(--space-12)) 0}.tw-editorial-wrap{max-width:1440px;margin:0 auto;padding:0 clamp(16px,2vw,32px)}.tw-editorial-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,24vw,350px);gap:clamp(20px,1.8vw,28px);align-items:start}.tw-editorial-main{min-width:0}.tw-editorial .tw-post-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tw-editorial .tw-post-card{border:0;border-radius:10px;box-shadow:0 3px 12px rgb(0 0 0/.08);transition:box-shadow .25s,transform .25s}.tw-editorial .tw-post-card:hover{box-shadow:0 6px 18px rgb(0 0 0/.12);transform:translateY(-2px)}.tw-editorial .tw-post-cover{display:block;position:relative;aspect-ratio:5/3;background:var(--surface-sunken)}.tw-editorial .tw-post-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.tw-editorial .tw-post-card-copy{padding:var(--space-6) var(--space-6) var(--space-5);gap:0}.tw-editorial .tw-post-card h3{font:var(--fw-semibold) calc(clamp(15px,1.15vw,16.5px) - 1px)/1.45 var(--font-sans);text-transform:uppercase;padding-bottom:var(--space-5);border-bottom:1px dashed #dadada;margin:0}.tw-editorial .tw-post-card-copy>p{font:var(--fw-regular) calc(var(--fs-small) + 1px)/1.6 var(--font-sans);margin:var(--space-5) 0 var(--space-4);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4.8em}.tw-post-read-more{align-self:flex-start;font:var(--fw-semibold) var(--fs-small)/1.4 var(--font-sans);color:var(--teal-800)}.tw-post-card-meta{margin-top:auto;padding-top:var(--space-6);display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);font:var(--type-meta);color:var(--text-muted)}.tw-post-card-meta>span,.tw-post-card-meta>time{display:inline-flex;align-items:center;gap:6px}.tw-inline-icon{color:var(--teal-700);flex:0 0 auto}.tw-post-card-meta .tw-meta-divider{width:1px;height:12px;background:#cfcfcf}
.tw-editorial-sidebar{display:grid;gap:clamp(18px,2vw,24px);align-content:start;position:sticky;top:24px;min-width:0}.tw-sidebar-widget{background:var(--white);border-radius:10px;box-shadow:0 3px 12px rgb(0 0 0/.08);padding:var(--space-6) var(--space-5)}.tw-sidebar-widget>h2{margin:0 0 var(--space-5);padding-bottom:var(--space-4);border-bottom:2px solid var(--teal-700);font:var(--fw-bold) 15px/1.3 var(--font-sans);color:var(--text-heading);text-transform:uppercase}.tw-sidebar-category{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:11px 0;font:var(--fw-medium) var(--fs-small)/1.4 var(--font-sans);color:var(--text-strong)}.tw-sidebar-category+.tw-sidebar-category{border-top:1px solid #ededed}.tw-sidebar-category svg{width:14px;height:14px;color:inherit}.tw-sidebar-banner{display:block;border-radius:10px;overflow:hidden;box-shadow:0 3px 12px rgb(0 0 0/.08)}.tw-sidebar-banner img{width:100%;height:auto}.tw-editorial-sidebar .tw-sidebar-post{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;margin:0;padding:12px 0;border-top:1px solid #ededed}.tw-editorial-sidebar .tw-sidebar-post:first-of-type{border-top:0;padding-top:0}.tw-editorial-sidebar .tw-sidebar-post img{width:92px;height:auto;max-width:100%;object-fit:contain;align-self:start;border-radius:5px}.tw-sidebar-post strong{display:block;font:var(--fw-medium) 13px/1.45 var(--font-sans);color:var(--text-heading)}.tw-sidebar-post time{display:block;font:var(--fw-regular) 11px/1.4 var(--font-sans);color:var(--text-muted);margin-top:6px}
.tw-article{background:var(--white);border-radius:10px;box-shadow:0 3px 12px rgb(0 0 0/.08);padding:clamp(var(--space-7),3vw,48px);min-width:0}.tw-article>header h1{margin:0 0 var(--space-5);font:var(--fw-bold) calc(clamp(24px,2.4vw,34px) - 1px)/1.3 var(--font-sans);color:var(--text-heading);text-transform:uppercase}.tw-article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding-bottom:var(--space-6);margin-bottom:var(--space-7);border-bottom:1px solid #ededed;font:var(--fw-regular) 13px/1.3 var(--font-sans);color:var(--text-muted)}.tw-article-meta>a,.tw-article-meta>time,.tw-article-meta>span{display:inline-flex;align-items:center;gap:6px}.tw-article-meta>a{color:inherit}.tw-article-content{font:var(--fw-medium) 16px/1.75 var(--font-sans);color:var(--text-body);overflow-wrap:break-word}.tw-article-content p{font:inherit;margin:0 0 var(--space-6)}.tw-article-content>p:first-child{font:italic var(--fw-medium) 17px/1.75 var(--font-sans);color:var(--text-strong);margin-bottom:var(--space-7)}.tw-article-content h2{scroll-margin-top:170px;margin:clamp(var(--space-8),2.5vw,var(--space-9)) 0 var(--space-5);font:var(--fw-bold) calc(clamp(20px,1.7vw,24px) - 1px)/1.35 var(--font-sans);color:var(--text-heading)}.tw-article-content h3{font:var(--fw-semibold) 19px/1.4 var(--font-sans);margin:var(--space-7) 0 var(--space-5);color:var(--text-heading)}.tw-article-content ul,.tw-article-content ol{padding-left:22px;margin:0 0 var(--space-6)}.tw-article-content li{margin-bottom:8px}.tw-article-content figure,.tw-article-content .wp-caption{margin:0 0 var(--space-7);max-width:100%!important}.tw-article-content img{height:auto;max-width:100%;border-radius:8px}.tw-article-content figcaption,.tw-article-content .wp-caption-text{margin-top:8px;text-align:center;font-size:13px;color:var(--text-muted)}.tw-article-content table{border-collapse:collapse;max-width:100%;width:100%;font-size:15px}.tw-article-content table td,.tw-article-content table th{padding:12px;border:1px solid var(--border-subtle);text-align:left}.tw-article-content .tw-toc{background:var(--teal-100);border-left:3px solid var(--teal-700);border-radius:8px;padding:var(--space-6) var(--space-7);margin:0 0 var(--space-8)}.tw-article-content .tw-toc summary{font:var(--fw-bold) 13px/1.3 var(--font-sans);text-transform:uppercase;list-style:none}.tw-article-content .tw-toc summary::-webkit-details-marker{display:none}.tw-article-content .tw-toc ol{margin:var(--space-4) 0 0;padding-left:20px;font:var(--fw-regular) 14px/1.6 var(--font-sans)}.tw-article-content .tw-toc li{margin-bottom:3px}.tw-article-rating{display:flex;justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-7)}
.tw-post-author{margin-top:var(--space-8);padding-top:var(--space-7);border-top:1px solid #ededed}.tw-post-author>h2{font:var(--fw-medium) 17px/1.3 var(--font-sans);color:var(--text-muted);margin:0 0 var(--space-6)}.tw-post-author-grid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--space-7);align-items:center}.tw-post-author-logo{display:flex;align-items:center;justify-content:center;width:120px;height:120px;border:1px solid #ededed;border-radius:12px;padding:10px;background:var(--white)}.tw-post-author-logo img{width:100%;height:auto}.tw-post-author p{font:var(--fw-regular) 16px/1.65 var(--font-sans);margin:0 0 var(--space-5)}.tw-post-author strong{display:block;font:var(--fw-semibold) 18px/1.3 var(--font-sans);color:var(--text-heading);margin-bottom:var(--space-5)}.tw-author-divider{display:block;width:56px;height:1px;background:#cfcfcf;margin-bottom:var(--space-5)}.tw-author-social{display:flex;flex-wrap:wrap;gap:14px}.tw-author-social a{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#1877f2;box-shadow:0 4px 10px rgb(0 0 0/.14);color:var(--white)}.tw-author-social a:nth-child(2){background:linear-gradient(45deg,#f9a43a,#e1306c 50%,#833ab4)}.tw-author-social a:nth-child(3){background:#f00}.tw-author-social a:nth-child(4){background:#111}.tw-related-news{background:var(--white)}.tw-related-news .tw-section-heading{justify-content:center}.tw-editorial-rail{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;padding-bottom:var(--space-3)}
@media(max-width:1180px){.tw-editorial .tw-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.tw-editorial-layout{grid-template-columns:minmax(0,1fr)}.tw-editorial-sidebar{position:static;grid-template-columns:repeat(auto-fit,minmax(min(280px, 100%), 1fr))}}
@media(max-width:600px){.tw-editorial .tw-post-grid{grid-template-columns:minmax(0,1fr)}}
.tw-article-content .tw-toc summary{font:var(--fw-bold) 15px/1.3 var(--font-sans)}.tw-article-content .tw-toc ol{display:grid;gap:6px;padding-left:1.3em;font:var(--fw-regular) 15px/1.55 var(--font-sans)}.tw-article-content .tw-toc li{margin-bottom:0}.tw-article-content>p:first-child strong{font-weight:inherit}.tw-policy .tw-article-content h2{text-transform:uppercase}.tw-policy-note{background:var(--teal-100);border-left:3px solid var(--teal-700);border-radius:8px;padding:var(--space-6) var(--space-7);margin:0 0 var(--space-7);font:var(--fw-regular) 15px/1.65 var(--font-sans)}

.tw-policy-note{display:flex;gap:var(--space-5);align-items:flex-start;margin-bottom:var(--space-6)}.tw-policy-note>svg{flex:0 0 auto;margin-top:2px;color:var(--teal-700)}.tw-policy-note>p{margin:0;font:var(--fw-medium) 16px/1.7 var(--font-sans)}.tw-policy-note strong{color:var(--text-strong)}

/* Classic tables need the same trailing space as figures; block tables use their figure's margin. */
.tw-article-content table { margin-bottom: var(--space-7); }
.tw-article-content figure > table { margin-bottom: 0; }

/* Reading pages share the homepage content edge; card padding stays outside it. */
:is(body.single-post .tw-editorial, .tw-editorial.tw-policy, .tw-editorial.tw-blog-index) { --tw-reading-gutter: 16px; }
:is(body.single-post .tw-editorial, .tw-editorial.tw-policy, .tw-editorial.tw-blog-index) .tw-editorial-wrap { max-width: var(--container-max); padding-inline: var(--tw-reading-gutter); }
:is(body.single-post .tw-editorial, .tw-editorial.tw-policy) .tw-article { margin-inline: calc(-1 * var(--tw-reading-gutter)); padding-inline: var(--tw-reading-gutter); }
@media (min-width: 768px) and (max-width: 1024px) {
  :is(body.single-post .tw-editorial, .tw-editorial.tw-policy, .tw-editorial.tw-blog-index) { --tw-reading-gutter: 24px; }
}
@media (max-width: 359px) {
  :is(body.single-post .tw-editorial, .tw-editorial.tw-policy) { --tw-reading-gutter: 12px; }
}
/* Mobile: the card sits inside the page gutter (inset like the policy pages) and keeps its own inner reading gutter. */
@media (max-width: 767px) {
  :is(body.single-post .tw-editorial, .tw-editorial.tw-policy) .tw-article { margin-inline: 0; }
  /* Keep the parent trail on mobile; the article title is already shown in the main heading. */
  body.single-post .tw-page-hero .rank-math-breadcrumb :is(.last, .separator:has(+ .last)) { display: none; }
  :is(body.single-post .tw-editorial, .tw-editorial.tw-policy) { padding-top: var(--tw-reading-gutter); } /* hero → card = side margin */
}
:is(body.single-post .tw-editorial, .tw-editorial.tw-policy) .tw-editorial-layout { column-gap: max(clamp(20px, 1.8vw, 28px), calc(var(--tw-reading-gutter) + 16px)); }

/* Policy/post titles share the homepage section-title scale. */
:is(body.single-post, body:has(main.tw-policy)) .tw-page-hero .d-e32e76e47f, :is(body.single-post .tw-editorial, .tw-editorial.tw-policy) .tw-article > header h1 { font-size: var(--tw-type-section-title); line-height: var(--tw-type-section-title-line); }

/* Article header: title followed by a single wrapping metadata row. */
.tw-article > header:has(.tw-post-header-meta) h1 { margin-bottom: 24px; }
.tw-article .tw-post-header-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; color: var(--text-heading); font: var(--fw-regular) 14px/1.5 var(--font-sans); }
.tw-post-header-meta .tw-post-meta-item { display: inline-flex; align-items: flex-start; gap: 6px; min-width: 0; max-width: 100%; }
.tw-post-header-meta .tw-inline-icon { color: var(--teal-800); width: 20px; height: 20px; flex: 0 0 20px; margin-top: 1px; }
.tw-post-header-meta a { color: var(--teal-800); overflow-wrap: anywhere; }
.tw-post-header-meta a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) {
  .tw-article > header:has(.tw-post-header-meta) h1 { margin-bottom: 16px; }
  .tw-article .tw-post-header-meta { font-size: 12px; gap: 10px 14px; }
  .tw-post-header-meta .tw-inline-icon { width: 18px; height: 18px; flex-basis: 18px; margin-top: 0; }
}

/* Table of contents: unnumbered nested list, entries show the heading text as written (h3 nested under h2). */
.tw-toc .tw-toc-list,.tw-toc .tw-toc-list ul{list-style:none;margin:0;padding:0}
.tw-article-content .tw-toc .tw-toc-list{display:grid;gap:6px;margin-top:var(--space-4);font:var(--fw-regular) 15px/1.55 var(--font-sans)}
.tw-article-content .tw-toc .tw-toc-list ul{display:grid;gap:6px;margin-top:6px;padding-left:20px}
.tw-toc .tw-toc-list li{margin:0}
.tw-toc .tw-toc-list .tw-toc-level-3{margin-left:0}
/* TOC "Xem thêm": entries past the 10th fold away until expanded. */
.tw-toc.is-collapsed .tw-toc-extra{display:none}
.tw-toc.is-collapsed .tw-toc-list ul:not(:has(> li:not(.tw-toc-extra))){display:none}
.tw-article-content .tw-toc{position:relative}
.tw-article-content .tw-toc summary{padding-right:48px}
.tw-toc .tw-toc-more{all:unset;box-sizing:border-box;cursor:pointer;position:absolute;top:var(--space-5);right:var(--space-5);display:inline-flex;align-items:center;justify-content:center;width:38px;height:30px;border:1px solid #CDD5D9;border-radius:7px;background:var(--white);color:#5B6472;transition:border-color 160ms var(--ease-out),color 160ms var(--ease-out),box-shadow 160ms var(--ease-out)}
.tw-toc .tw-toc-more svg{display:block}
.tw-toc .tw-toc-more:hover,.tw-toc .tw-toc-more[aria-expanded="true"]{border-color:var(--teal-700);color:var(--teal-700)}
.tw-toc .tw-toc-more:focus-visible{outline:2px solid var(--teal-700);outline-offset:2px}

/* Article pages: the sidebar scrolls with the page instead of sticking beside the article
   (blog index, category and policy pages keep the sticky sidebar). */
body.single-post .tw-editorial:not(.tw-policy) .tw-editorial-sidebar{position:static}

/* FAQ page: numbered questions separated by hairlines, every answer open below its question. */
.tw-faq-list{margin:0 0 var(--space-7)}
.tw-faq-item{border-bottom:1px solid var(--border-subtle)}
.tw-faq-item:last-child{border-bottom:0}
.tw-faq-item>summary{display:block;list-style:none;cursor:pointer;padding:16px 0}
.tw-faq-item>summary::-webkit-details-marker{display:none}
.tw-faq-item>summary:focus-visible{outline:2px solid var(--teal-700);outline-offset:2px;border-radius:4px}
.tw-article-content .tw-faq-item h3{margin:0;font:var(--fw-bold) 17px/1.45 var(--font-sans);color:var(--text-heading);transition:color 160ms var(--ease-out)}
.tw-faq-item>summary:hover h3{color:var(--teal-700)}
.tw-faq-item-answer{padding:2px 0 20px}
.tw-faq-item-answer p:last-child{margin-bottom:0}

/* Post category pages (.tw-blog-index), mobile: only the search widget above two post cards per row. Each card: cover,
   title (2 lines), excerpt (4 lines), "Xem ngay!", then author left / date right on one small row. */
@media (max-width: 767px) {
  .tw-editorial.tw-blog-index .tw-editorial-sidebar { display: block; grid-row: 1; }
  .tw-editorial.tw-blog-index .tw-editorial-sidebar > :not(.tw-sidebar-search) { display: none; }
  .tw-editorial.tw-blog-index .tw-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
  .tw-editorial.tw-blog-index .tw-post-card-copy { padding: var(--space-5); gap: var(--space-4); }
  .tw-editorial.tw-blog-index .tw-post-card h3 { margin: 0; padding-bottom: var(--space-4); font-size: var(--tw-c-body); line-height: 1.4; }
  .tw-editorial.tw-blog-index .tw-post-card h3 a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .tw-editorial.tw-blog-index .tw-post-card-copy > p { margin: 0; font-size: 13px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .tw-editorial.tw-blog-index .tw-post-read-more { font-size: 12px; font-weight: var(--fw-bold); }
  .tw-editorial.tw-blog-index .tw-post-card-meta { margin-top: auto; padding-top: var(--space-3); display: flex; flex-wrap: nowrap; justify-content: space-between; gap: var(--space-3); font-size: 10px; }
  .tw-editorial.tw-blog-index .tw-post-card-meta > :is(span, time) { min-width: 0; gap: 3px; white-space: nowrap; }
  .tw-editorial.tw-blog-index .tw-post-card-meta > span:first-child { display: block; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; }
  .tw-editorial.tw-blog-index .tw-post-card-meta > span:first-child svg { display: inline-block; margin-right: 3px; vertical-align: -2px; }
  .tw-editorial.tw-blog-index .tw-post-card-meta > time { flex: 0 0 auto; }
  .tw-editorial.tw-blog-index .tw-post-card-meta .tw-meta-divider { display: none; }
  .tw-editorial.tw-blog-index .tw-post-card-meta svg { flex: 0 0 auto; width: 12px; height: 12px; }
}

/* Article and policy body paragraphs are justified (29/10/2026); paragraphs the editor aligned themselves (inline
   text-align, e.g. centred captions) keep their alignment. */
.tw-article-content p:not([style*="text-align"]) { text-align: justify; text-justify: inter-word; }
/* Policy posts (body.tw-policy-page): list items and paragraphs pasted with an inline left alignment are justified too;
   centred lines (captions, image notes) keep their alignment. */
.tw-policy-page .tw-article-content :is(p, li):not([style*="center"]) { text-align: justify !important; text-justify: inter-word; }

/* Author box: the logo and the name link to /gioi-thieu/. */
.tw-post-author-logo { transition: border-color .2s ease, box-shadow .2s ease; }
.tw-post-author-logo:hover, .tw-post-author-logo:focus-visible { border-color: var(--teal-700); box-shadow: 0 6px 16px -8px rgb(15 74 92 / .35); }
.tw-post-author strong a { color: inherit; text-decoration: none; transition: color .2s ease; }
.tw-post-author strong a:hover, .tw-post-author strong a:focus-visible { color: var(--teal-700); }

/* Mobile: wide content tables (4+ columns) scroll inside their own box instead of widening the page (10/11/2026). */
@media (max-width: 767px) {
  .tw-article-content table:has(tr > :nth-child(4)) { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  .tw-article-content table:has(tr > :nth-child(4)) :is(td, th) { min-width: 9.5em; }
}
