/* Global design system — Vietnam-first, mobile-first, no external font dependency. */
.ttp-theme { background: var(--ttp-bg); color: var(--ttp-ink); }
.ttp-theme #main { background: var(--ttp-bg); }
.ttp-container { width: min(calc(100% - (2 * var(--ttp-gutter))), var(--ttp-container)); margin-inline: auto; }
.ttp-reading { width: min(100%, var(--ttp-reading)); margin-inline: auto; }
/* When an element is both a container and a reading column, preserve mobile gutters. */
.ttp-container.ttp-reading { width:min(calc(100% - (2 * var(--ttp-gutter))),var(--ttp-reading)); }
.ttp-section { padding-block: var(--ttp-section); position: relative; }
.ttp-section--tight { padding-block: clamp(36px,6vw,72px); }
.ttp-surface { background: var(--ttp-surface-alt); }
.ttp-kicker {
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
  color:var(--ttp-primary);
  font-family:var(--ttp-font-sans) !important;
  font-size:.76rem;
  line-height:1.25;
  font-style:normal !important;
  font-weight:700 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase;
  font-variant:normal;
  font-synthesis:none;
}
.ttp-kicker::before { content:""; width:26px; height:1px; background:currentColor; }
.ttp-lead { max-width:760px; color:var(--ttp-muted); font-size:clamp(1.05rem,2.2vw,1.3rem); line-height:1.66; }
.ttp-small { font-size:.86rem; color:var(--ttp-soft-text); }
.ttp-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:28px; }
.ttp-button,.ttp-theme .button.ttp-button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:14px 22px; border:1px solid transparent; border-radius:var(--ttp-radius-pill); font-weight:750; line-height:1; text-decoration:none; transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.ttp-button:hover { transform:translateY(-1px); box-shadow:var(--ttp-shadow-soft); }
.ttp-button--primary { background:var(--ttp-primary); color:#fff !important; }
.ttp-button--primary:hover { background:var(--ttp-primary-hover); }
.ttp-button--secondary { background:transparent; color:var(--ttp-ink) !important; border-color:var(--ttp-line); }
.ttp-button--secondary:hover { border-color:var(--ttp-primary); color:var(--ttp-primary) !important; }
.ttp-button--light { background:#fff; color:var(--ttp-primary) !important; }
.ttp-text-link { color:var(--ttp-primary); font-weight:750; text-decoration:none; }
.ttp-text-link:hover { color:var(--ttp-primary-hover); text-decoration:underline; }
.ttp-grid { display:grid; gap:20px; }
.ttp-grid--3 { grid-template-columns:1fr; }
.ttp-card { overflow:hidden; border:1px solid var(--ttp-line-soft); border-radius:var(--ttp-radius-lg); background:var(--ttp-surface); box-shadow:0 8px 30px rgba(38,51,49,.04); }
.ttp-card__body { padding:24px; }
.ttp-card__media { display:block; overflow:hidden; background:var(--ttp-primary-soft); aspect-ratio:3/2; }
.ttp-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ttp-card:hover .ttp-card__media img { transform:scale(1.025); }
.ttp-card__title { margin:.45rem 0 .75rem; font-size:clamp(1.28rem,3vw,1.62rem); line-height:1.18; }
.ttp-card__title a { color:inherit; text-decoration:none; }
.ttp-card__meta,.ttp-card__eyebrow { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; color:var(--ttp-soft-text); font-size:.78rem; }
.ttp-media-placeholder { display:block; width:100%; height:100%; background:radial-gradient(circle at 72% 28%,rgba(123,110,230,.18),transparent 25%),radial-gradient(circle at 30% 80%,rgba(142,201,196,.5),transparent 32%),linear-gradient(145deg,var(--ttp-primary-soft),#f3eee7); }
.ttp-badge { display:inline-flex; align-items:center; min-height:28px; padding:5px 10px; border-radius:var(--ttp-radius-pill); font-weight:750; }
.ttp-badge--free { color:var(--ttp-primary); background:var(--ttp-primary-soft); }
.ttp-badge--paid { color:#5a4ac7; background:var(--ttp-accent-soft); }
.ttp-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.ttp-chip { display:inline-flex; padding:7px 11px; border:1px solid var(--ttp-line); border-radius:var(--ttp-radius-pill); color:var(--ttp-muted); background:rgba(255,255,255,.55); font-size:.82rem; }
.ttp-section-head { display:flex; gap:24px; align-items:end; justify-content:space-between; margin-bottom:32px; }
.ttp-section-head h2 { max-width:760px; margin:0; font-size:clamp(2rem,5vw,3.6rem); line-height:1.04; }
.ttp-section-head p { max-width:620px; }
.ttp-page-hero { padding-block:clamp(54px,9vw,118px); background:var(--ttp-bg); }
.ttp-page-hero--soft { background:var(--ttp-surface-alt); }
.ttp-page-hero--compact { padding-block:clamp(44px,7vw,82px); }
.ttp-page-hero__inner { max-width:900px; }
.ttp-page-hero h1 { max-width:900px; margin:0 0 20px; font-size:clamp(2.55rem,8vw,5.7rem); line-height:.98; }
.ttp-breadcrumbs { width:min(calc(100% - (2 * var(--ttp-gutter))),var(--ttp-container)); margin:18px auto 0; display:flex; gap:8px; flex-wrap:wrap; color:var(--ttp-soft-text); font-size:.78rem; }
.ttp-breadcrumbs a { color:var(--ttp-muted); }
.ttp-richtext { color:var(--ttp-ink); }
.ttp-richtext p,.ttp-richtext li { color:var(--ttp-muted); font-size:1.02rem; line-height:1.78; }
.ttp-richtext h2 { margin-top:2.1em; font-size:clamp(1.8rem,4vw,2.6rem); }
.ttp-richtext h3 { margin-top:1.8em; font-size:clamp(1.4rem,3vw,1.9rem); }
.ttp-richtext a { color:var(--ttp-primary); text-decoration:underline; }
.ttp-richtext blockquote { margin:2em 0; padding:8px 0 8px 24px; border-left:3px solid var(--ttp-aqua); color:var(--ttp-ink); }
.ttp-empty-state { padding:28px; border:1px dashed var(--ttp-line); border-radius:var(--ttp-radius-lg); background:rgba(255,255,255,.55); color:var(--ttp-muted); }
.ttp-education-notice,.ttp-disclosure,.ttp-legal-draft-note,.ttp-crisis-note { margin:26px 0; padding:18px 20px; border-radius:var(--ttp-radius-md); background:var(--ttp-surface-alt); color:var(--ttp-muted); font-size:.92rem; line-height:1.65; }
.ttp-disclosure { background:var(--ttp-accent-soft); }
.ttp-legal-draft-note { border:1px solid rgba(138,104,52,.25); background:#fbf5e8; color:#6a552e; }
.ttp-crisis-note { border:1px solid rgba(154,76,76,.2); background:#fbefef; color:#714141; }
.ttp-topic-grid { display:grid; gap:12px; grid-template-columns:1fr; }
.ttp-topic-card { display:grid; grid-template-columns:1fr auto; gap:4px 18px; align-items:center; min-height:92px; padding:20px; border:1px solid var(--ttp-line-soft); border-radius:var(--ttp-radius-md); background:var(--ttp-surface); color:var(--ttp-ink); text-decoration:none; }
.ttp-topic-card > span:first-child { font-weight:800; font-size:1.05rem; }
.ttp-topic-card small { color:var(--ttp-soft-text); }
.ttp-topic-card > span:last-child { grid-column:2; grid-row:1/3; color:var(--ttp-primary); }
.ttp-topic-card:hover { border-color:var(--ttp-aqua); box-shadow:var(--ttp-shadow-soft); }
.ttp-topic-card.is-placeholder { opacity:.65; }
.ttp-credential-row,.ttp-trust-line { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:22px; color:var(--ttp-muted); font-size:.88rem; font-weight:650; }
.ttp-credential-row span,.ttp-trust-line span { display:inline-flex; align-items:center; gap:7px; }
.ttp-credential-row span::before,.ttp-trust-line span::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--ttp-aqua); }

/* Pagination — centered, touch-friendly and SEO-safe. */
.ttp-theme .navigation.pagination { width:100%; margin:42px auto 0; text-align:center; }
.ttp-theme .navigation.pagination .nav-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; }
.ttp-theme .navigation.pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:42px; min-height:42px; padding:8px 13px; border:1px solid var(--ttp-line); border-radius:var(--ttp-radius-pill); background:var(--ttp-surface); color:var(--ttp-muted); font-size:.9rem; font-weight:750; line-height:1; text-decoration:none; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }
.ttp-theme .navigation.pagination a.page-numbers:hover { border-color:var(--ttp-primary); color:var(--ttp-primary); transform:translateY(-1px); }
.ttp-theme .navigation.pagination .page-numbers.current { border-color:var(--ttp-primary); background:var(--ttp-primary); color:#fff; }
.ttp-theme .navigation.pagination .page-numbers.dots { min-width:auto; padding-inline:4px; border-color:transparent; background:transparent; }
.ttp-theme .navigation.pagination .prev.page-numbers,.ttp-theme .navigation.pagination .next.page-numbers { padding-inline:16px; }
@media (max-width:767px) {
  .ttp-theme .navigation.pagination { margin-top:32px; }
  .ttp-theme .navigation.pagination .nav-links { gap:6px; }
  .ttp-theme .navigation.pagination .page-numbers { min-width:44px; min-height:44px; padding:8px 11px; }
  .ttp-theme .navigation.pagination .prev.page-numbers,.ttp-theme .navigation.pagination .next.page-numbers { max-width:132px; }
}

/* Flatsome shell refinements */
.ttp-theme .header-wrapper { background:rgba(253,252,249,.96); backdrop-filter:saturate(130%) blur(12px); }
.ttp-theme .header-main .nav > li > a { color:var(--ttp-ink); font-size:.86rem; font-weight:750; letter-spacing:.02em; }
.ttp-theme .header-main .nav > li > a:hover { color:var(--ttp-primary); }
.ttp-theme .off-canvas .sidebar-menu,.ttp-theme .mfp-content .mobile-sidebar { background:var(--ttp-surface); }
.ttp-theme .mobile-sidebar .nav > li > a { min-height:52px; padding-block:14px; color:var(--ttp-ink); font-weight:700; letter-spacing:.01em; }
.ttp-theme .mobile-sidebar .searchform { margin-bottom:12px; }
.ttp-theme .mobile-sidebar .search-field { min-height:48px; border-radius:var(--ttp-radius-md) 0 0 var(--ttp-radius-md); }
.ttp-theme .mobile-sidebar .ux-search-submit { border-radius:0 var(--ttp-radius-md) var(--ttp-radius-md) 0; }
.ttp-theme input[type=text],.ttp-theme input[type=email],.ttp-theme input[type=tel],.ttp-theme input[type=url],.ttp-theme input[type=search],.ttp-theme input[type=password],.ttp-theme textarea,.ttp-theme select { min-height:50px; border-color:var(--ttp-line); border-radius:12px; box-shadow:none; }
.ttp-theme input:focus,.ttp-theme textarea:focus,.ttp-theme select:focus { border-color:var(--ttp-primary); box-shadow:0 0 0 4px rgba(47,102,98,.08); }

/* Footer — compact editorial layout. */
.ttp-footer { padding:46px 0 0; background:#213532; color:rgba(255,255,255,.82); }
.ttp-footer__grid { display:grid; grid-template-columns:1fr 1fr; gap:30px 22px; align-items:start; }
.ttp-footer__brand { grid-column:1 / -1; max-width:460px; }
.ttp-footer .ttp-wordmark { color:#fff; font-size:1.42rem; line-height:1.15; font-weight:850; letter-spacing:-.012em; text-decoration:none; }
.ttp-footer__tagline { margin:5px 0 12px; color:var(--ttp-aqua); font-size:.92rem; line-height:1.45; font-weight:700; }
.ttp-footer__bio { margin:0 0 12px; max-width:460px; color:rgba(255,255,255,.66); font-size:.9rem; line-height:1.62; }
.ttp-footer__credential { color:#fff; font-size:.82rem; font-weight:700; }
.ttp-footer__heading { margin:0 0 8px; color:#fff; font-size:.92rem; line-height:1.3; letter-spacing:.01em; }
.ttp-footer-menu { margin:0; list-style:none; }
.ttp-footer-menu li { margin:0; border:0; }
.ttp-footer-menu a { display:inline-block; padding:4px 0; color:rgba(255,255,255,.7); font-size:.88rem; line-height:1.4; text-decoration:none; }
.ttp-footer-menu a:hover { color:#fff; text-decoration:underline; }
.ttp-business-info { margin-top:12px; color:rgba(255,255,255,.62); font-size:.78rem; line-height:1.55; }
.ttp-footer__legal { margin-top:28px; padding-top:18px; border-top:1px solid rgba(255,255,255,.11); }
.ttp-footer__legal ul { display:flex; flex-wrap:wrap; gap:7px 18px; margin:0; list-style:none; }
.ttp-footer__legal li { margin:0; }
.ttp-footer__legal a { color:rgba(255,255,255,.58); font-size:.76rem; line-height:1.4; text-decoration:none; }
.ttp-footer__legal a:hover { color:#fff; text-decoration:underline; }
.ttp-footer__bottom { display:flex; flex-direction:column; gap:5px; padding-block:15px 18px; color:rgba(255,255,255,.46); font-size:.74rem; line-height:1.5; }

@media (max-width:767px) {
  .ttp-footer { padding-top:38px; }
  .ttp-footer__grid { gap:26px 18px; }
  .ttp-footer__brand { max-width:none; }
  .ttp-footer .ttp-wordmark { font-size:1.36rem; }
  .ttp-footer__bio { display:none; }
  .ttp-footer__tagline { margin-bottom:10px; }
  .ttp-footer__legal { margin-top:24px; padding-top:16px; }
  .ttp-footer__legal ul { gap:7px 14px; }
  .ttp-footer__bottom { padding-block:13px 18px; }
}

/* Mobile fixed actions */
.ttp-mobile-cta { position:fixed; z-index:9990; right:10px; bottom:max(10px,env(safe-area-inset-bottom)); left:10px; display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:7px; border:1px solid rgba(255,255,255,.7); border-radius:18px; background:rgba(253,252,249,.94); box-shadow:0 14px 40px rgba(18,32,29,.18); backdrop-filter:blur(14px); transition:opacity .18s ease,transform .18s ease,visibility .18s ease; }
.ttp-mobile-cta a { display:flex; align-items:center; justify-content:center; gap:7px; min-height:48px; padding:10px; border-radius:13px; background:var(--ttp-primary); color:#fff; font-size:.82rem; font-weight:800; text-decoration:none; }
.ttp-mobile-cta a:last-child { border:1px solid var(--ttp-line); background:var(--ttp-surface); color:var(--ttp-ink); }
body.ttp-mobile-drawer-open .ttp-mobile-cta,
body.ttp-footer-visible .ttp-mobile-cta,
body.ttp-home-hero-visible .ttp-mobile-cta { opacity:0; visibility:hidden; transform:translateY(110%); pointer-events:none; }
body.ttp-no-mobile-cta .ttp-mobile-cta { display:none; }
@media (max-width:767px) { body.ttp-theme:not(.ttp-no-mobile-cta) { padding-bottom:76px; } .mobile-sidebar { padding-bottom:calc(32px + env(safe-area-inset-bottom)); } }
@media (min-width:768px) { .ttp-mobile-cta { display:none; } .ttp-grid--3 { grid-template-columns:repeat(2,minmax(0,1fr)); } .ttp-topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ttp-footer__grid { grid-template-columns:minmax(0,1.55fr) minmax(150px,.55fr) minmax(150px,.6fr); gap:36px; } .ttp-footer__brand { grid-column:auto; } .ttp-footer__bottom { flex-direction:row; justify-content:space-between; align-items:center; } }
@media (min-width:1024px) { .ttp-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); } .ttp-topic-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:767px) { .ttp-section-head { align-items:start; flex-direction:column; } .ttp-actions .ttp-button { width:100%; } .ttp-card__body { padding:20px; } }


/* RC7 — Knowledge architecture: Pillars first, discovery Topics second. */
.ttp-knowledge-hero { padding-bottom:clamp(38px,5vw,64px); }
.ttp-knowledge-section { padding-block:clamp(52px,6vw,82px); }
.ttp-knowledge-section .ttp-section-head { margin-bottom:24px; }
.ttp-pillar-card > span:first-child { font-weight:850; }
@media (max-width:767px) {
  .ttp-knowledge-hero { padding-bottom:32px; }
  .ttp-knowledge-section { padding-block:44px; }
  .ttp-knowledge-section .ttp-section-head { margin-bottom:18px; }
}
