/* =========================================================================
 * HUB "Khóa học BIM" — BIM Modeler · BIM Coordinator · BIM Manager
 * Toàn bộ selector nằm dưới .vdt-bim-hub-page nên không ảnh hưởng trang khác.
 *
 * NGÔN NGỮ THỊ GIÁC: "Digital Construction Academy" — nền navy + lưới bản vẽ mảnh,
 * mỗi vai trò một màu nhận diện, luôn kèm nhãn chữ (không dùng màu làm tín hiệu duy nhất):
 *   Modeler = cyan (CREATE) · Coordinator = gold (COORDINATE) · Manager = blue (MANAGE)
 *
 * QUY ƯỚC: cỡ chữ tiêu đề kế thừa theme; chỉ font-weight 400/600/700;
 * `body.vdt-page h1..h6` = (0,1,2) nên rule màu tiêu đề có tiền tố .vdt-bim-hub-page.
 * ========================================================================= */

.vdt-bim-hub-page {
  --bim-navy: #0b1f3a;
  --bim-navy-deep: #06162b;
  --bim-blue: #1e5bff;
  --bim-blue-ink: #1442c8;
  --bim-cyan: #00b8d9;
  --bim-cyan-ink: #05677a;
  --bim-cyan-soft: #e3f6fb;
  --bim-gold: #f5b842;
  --bim-gold-ink: #7a5405;
  --bim-gold-soft: #fdf3dd;
  --bim-manager: #7ea6ff;
  --bim-manager-ink: #1f46b8;
  --bim-manager-soft: #e8efff;
  --bim-soft: #f3f7fc;
  --bim-ink: #172033;
  --bim-muted: #56617a;
  --bim-line: #dbe4f0;
  --bim-radius: 20px;
  --bim-radius-sm: 14px;
  --bim-shadow: 0 18px 46px rgba(11, 31, 58, .08);
  --bim-shadow-sm: 0 8px 22px rgba(11, 31, 58, .06);
  --bim-grid-line: rgba(0, 184, 217, .09);
  --bim-toc-top: 0px;
}

/* ------------------------------------------------------------------ Base */

.vdt-bim-main { background: #fff; color: var(--bim-ink); font-family: var(--vdt-font-main); font-size: var(--vdt-fs-body); line-height: var(--vdt-lh-body); overflow-x: clip; }
.vdt-bim-main button,
.vdt-bim-main input,
.vdt-bim-main select,
.vdt-bim-main textarea,
.vdt-bim-sticky { font-family: var(--vdt-font-main); }
.vdt-bim-hub-page .vdt-bim-main p { margin: 0 0 14px; color: var(--bim-ink); }
.vdt-bim-hub-page .vdt-bim-main p:last-child { margin-bottom: 0; }
.vdt-bim-hub-page .vdt-bim-main a { color: var(--bim-blue-ink); }
.vdt-bim-hub-page .vdt-bim-main a:hover { color: var(--bim-navy); }
.vdt-bim-hub-page .vdt-bim-main h2,
.vdt-bim-hub-page .vdt-bim-main h3 { color: var(--bim-navy); }
.vdt-bim-hub-page .vdt-bim-main ul,
.vdt-bim-hub-page .vdt-bim-main ol { margin: 0; padding: 0; list-style: none; }

.vdt-bim-main a:focus-visible,
.vdt-bim-main button:focus-visible,
.vdt-bim-main input:focus-visible,
.vdt-bim-main select:focus-visible,
.vdt-bim-main textarea:focus-visible,
.vdt-bim-main [role="tabpanel"]:focus-visible,
.vdt-bim-sticky a:focus-visible {
  outline: 3px solid var(--bim-cyan);
  outline-offset: 2px;
  border-radius: 6px;
}

.vdt-bim-narrow { max-width: 900px; }
.vdt-bim-center { text-align: center; }

/* --------------------------------------------------------------- Buttons */

.vdt-bim-hub-page .vdt-bim-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: var(--vdt-fs-body);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}

.vdt-bim-btn svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--primary { background: var(--bim-gold); color: var(--bim-navy); box-shadow: 0 12px 28px rgba(245, 184, 66, .3); }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--primary:hover { background: #ffc75a; color: var(--bim-navy); transform: translateY(-2px); }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--ghost { border-color: rgba(255, 255, 255, .36); background: rgba(255, 255, 255, .06); color: #fff; }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .14); color: #fff; }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--dark { background: var(--bim-navy); color: #fff; }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--dark:hover { background: var(--bim-blue-ink); color: #fff; transform: translateY(-2px); }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--line { border-color: var(--bim-line); background: #fff; color: var(--bim-navy); }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-btn--line:hover { border-color: var(--bim-navy); color: var(--bim-navy); }

/* ------------------------------------------------------------ Breadcrumb */

.vdt-bim-breadcrumb { background: var(--bim-navy-deep); font-size: var(--vdt-fs-sm); line-height: 1.5; }
.vdt-bim-breadcrumb .vdt-container { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding-top: 12px; padding-bottom: 12px; color: rgba(255, 255, 255, .72); }
.vdt-bim-hub-page .vdt-bim-breadcrumb a { color: rgba(255, 255, 255, .86); text-decoration: none; }
.vdt-bim-hub-page .vdt-bim-breadcrumb a:hover { color: #fff; text-decoration: underline; }
.vdt-bim-breadcrumb [aria-current="page"] { color: #fff; font-weight: 600; }

/* ------------------------------------------------------------------ Hero */

.vdt-bim-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 64px 0 108px;
  color: #fff;
  background:
    radial-gradient(900px 480px at 88% 18%, rgba(0, 184, 217, .20), transparent 60%),
    radial-gradient(700px 420px at 0% 100%, rgba(30, 91, 255, .22), transparent 60%),
    linear-gradient(160deg, var(--bim-navy) 0%, var(--bim-navy-deep) 70%);
}

.vdt-bim-hero__photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.vdt-bim-hero.has-photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(6, 22, 43, .95) 0%, rgba(6, 22, 43, .84) 50%, rgba(6, 22, 43, .6) 100%); }

.vdt-bim-hero__grid {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(var(--bim-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--bim-grid-line) 1px, transparent 1px);
  background-size: 36px 36px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .35) 80%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, .35) 80%, transparent 100%);
}

.vdt-bim-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 48px;
  align-items: center;
}

.vdt-bim-hero__content { min-width: 0; }

.vdt-bim-hub-page .vdt-bim-hero .vdt-bim-badge {
  display: inline-flex;
  max-width: 100%;
  margin: 0 0 18px;
  padding: 7px 14px;
  border: 1px solid rgba(0, 184, 217, .45);
  border-radius: 999px;
  background: rgba(0, 184, 217, .12);
  color: #bdf3ff;
  font-size: var(--vdt-fs-xs);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.4;
}

.vdt-bim-hub-page .vdt-bim-hero h1 {
  margin: 0 0 18px;
  color: #fff;
  font-size: var(--vdt-fs-h1);
  overflow-wrap: break-word;
}

.vdt-bim-hub-page .vdt-bim-hero .vdt-bim-hero__lead { max-width: 640px; margin: 0 0 26px; color: rgba(255, 255, 255, .88); }

.vdt-bim-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }

.vdt-bim-trust { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px !important; }
.vdt-bim-trust li { padding: 6px 12px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 8px; background: rgba(255, 255, 255, .05); color: rgba(255, 255, 255, .9); font-size: var(--vdt-fs-sm); line-height: 1.4; }

/* ---------------------------------------------------- BIM Learning Portal */

.vdt-bim-portal {
  min-width: 0;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(7, 19, 35, .88), rgba(12, 47, 72, .7));
  box-shadow: 0 28px 70px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .16);
  backdrop-filter: blur(18px) saturate(130%);
}

.vdt-bim-portal__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.vdt-bim-portal__eyebrow { padding: 5px 10px; border: 1px solid rgba(125, 211, 252, .34); border-radius: 999px; background: rgba(14, 116, 144, .22); color: #dff8ff; font-size: var(--vdt-fs-xs); font-weight: 700; }

/* Dòng chạy MODEL → COORDINATE → MANAGE */
.vdt-bim-portal__flow { display: flex; align-items: center; gap: 6px; font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .04em; }
.vdt-bim-portal__flow li { position: relative; color: rgba(255, 255, 255, .55); }
.vdt-bim-portal__flow li + li { padding-left: 22px; }
.vdt-bim-portal__flow li + li::before { content: ""; position: absolute; top: 50%; left: 2px; width: 16px; height: 2px; background: linear-gradient(90deg, var(--bim-cyan), var(--bim-gold)); background-size: 200% 100%; animation: vdt-bim-flow 3s ease-in-out 2 both; }

@keyframes vdt-bim-flow {
  from { background-position: 100% 0; opacity: .4; }
  to { background-position: 0 0; opacity: 1; }
}

.vdt-bim-portal__tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 5px; border-radius: 14px; background: rgba(255, 255, 255, .06); }

.vdt-bim-portal__tabs button,
.vdt-bim-reg__tabs button {
  min-height: 48px;
  padding: 8px 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: rgba(255, 255, 255, .78);
  font: inherit;
  font-size: var(--vdt-fs-sm);
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease;
}

.vdt-bim-portal__tabs button:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.vdt-bim-portal__tabs button[aria-selected="true"] { background: #fff; color: var(--bim-navy); box-shadow: 0 6px 16px rgba(0, 0, 0, .18); }
.vdt-bim-portal__step { display: block; color: var(--bim-cyan); font-size: var(--vdt-fs-xs); letter-spacing: .04em; }
.vdt-bim-portal__tabs button[aria-selected="true"] .vdt-bim-portal__step { color: var(--bim-cyan-ink); }

.vdt-bim-portal__panel { padding-top: 18px; animation: vdt-bim-fade .35s ease both; }
.vdt-bim-portal__panel[hidden] { display: none; }

@keyframes vdt-bim-fade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.vdt-bim-portal__title { display: grid; gap: 4px; margin-bottom: 14px; }
.vdt-bim-portal__verb { color: var(--bim-cyan); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .04em; }
.vdt-bim-portal__title strong { color: #fff; font-size: var(--vdt-fs-h3); line-height: 1.35; }

.vdt-bim-status {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(245, 184, 66, .16);
  color: #ffe2a6;
  font-size: var(--vdt-fs-xs);
  font-weight: 700;
}

.vdt-bim-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.vdt-bim-status.is-open { background: #c9f7df; color: #06452c; }

.vdt-bim-portal__info { display: grid; gap: 0; margin: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
.vdt-bim-portal__info div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.vdt-bim-portal__info dt { color: rgba(255, 255, 255, .66); font-size: var(--vdt-fs-sm); }
.vdt-bim-portal__info dd { margin: 0; color: #fff; font-size: var(--vdt-fs-body); font-weight: 600; overflow-wrap: anywhere; }
.vdt-bim-portal__info dd.is-strong { color: #ffe2a6; font-size: var(--vdt-fs-body-lg); }

.vdt-bim-portal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-portal__note { margin: 14px 0 0; color: rgba(255, 255, 255, .66); font-size: var(--vdt-fs-xs); }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-portal__note a { color: #bdf3ff; }

/* ------------------------------------------------------------ Quick stats */

.vdt-bim-stats { position: relative; z-index: 2; margin-top: -60px; }

.vdt-bim-stats__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--bim-line);
  border-radius: var(--bim-radius);
  background: #fff;
  box-shadow: var(--bim-shadow);
}

.vdt-bim-stats__list li { min-width: 0; padding: 20px 22px; border-right: 1px solid var(--bim-line); }
.vdt-bim-stats__list li:last-child { border-right: 0; }
.vdt-bim-stats__list strong { display: block; color: var(--bim-navy); font-size: var(--vdt-fs-h3); }
.vdt-bim-stats__list span { color: var(--bim-muted); font-size: var(--vdt-fs-sm); }

/* ------------------------------------------------------------------ TOC */

.vdt-bim-toc {
  position: sticky;
  top: var(--bim-toc-top);
  z-index: 30;
  margin-top: 28px;
  border-top: 1px solid var(--bim-line);
  border-bottom: 1px solid var(--bim-line);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px);
}

.vdt-bim-toc ul { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.vdt-bim-toc ul::-webkit-scrollbar { display: none; }
.vdt-bim-hub-page .vdt-bim-toc a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 14px; border-bottom: 3px solid transparent; color: var(--bim-muted); font-size: var(--vdt-fs-body); font-weight: 600; text-decoration: none; white-space: nowrap; }
.vdt-bim-hub-page .vdt-bim-toc a:hover,
.vdt-bim-hub-page .vdt-bim-toc a.is-active { border-bottom-color: var(--bim-cyan); color: var(--bim-navy); }

/* -------------------------------------------------------------- Sections */

.vdt-bim-section { padding: 88px 0; scroll-margin-top: 72px; }

.vdt-bim-section--soft {
  background:
    linear-gradient(var(--bim-grid-line) 1px, transparent 1px) 0 0 / 48px 48px,
    linear-gradient(90deg, var(--bim-grid-line) 1px, transparent 1px) 0 0 / 48px 48px,
    var(--bim-soft);
}

.vdt-bim-section--dark {
  background:
    radial-gradient(700px 360px at 100% 0%, rgba(0, 184, 217, .16), transparent 60%),
    linear-gradient(160deg, var(--bim-navy), var(--bim-navy-deep));
  color: #fff;
}

.vdt-bim-heading { max-width: 800px; margin-bottom: 36px; }
.vdt-bim-heading--center { margin-right: auto; margin-left: auto; text-align: center; }
.vdt-bim-hub-page .vdt-bim-heading h2 { margin: 0 0 12px; }
.vdt-bim-hub-page .vdt-bim-heading p { color: var(--bim-muted); }
.vdt-bim-hub-page .vdt-bim-heading--invert h2 { color: #fff; }
.vdt-bim-hub-page .vdt-bim-heading--invert p { color: rgba(255, 255, 255, .8); }

.vdt-bim-label { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--bim-cyan-ink); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.vdt-bim-label::before { content: ""; width: 22px; height: 2px; background: currentColor; }
.vdt-bim-heading--invert .vdt-bim-label { color: #7fe3f5; }

.vdt-bim-hub-page .vdt-bim-main .vdt-bim-more { margin-top: 16px; color: var(--bim-muted); font-size: var(--vdt-fs-body); }

.vdt-bim-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: center; }
.vdt-bim-hub-page .vdt-bim-prose h2 { margin: 0 0 16px; }
.vdt-bim-hub-page .vdt-bim-prose p { font-size: var(--vdt-fs-body-lg); }

/* Chips */
.vdt-bim-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.vdt-bim-chips li { padding: 4px 10px; border-radius: 999px; background: var(--bim-soft); color: var(--bim-navy); font-size: var(--vdt-fs-xs); font-weight: 600; line-height: 1.5; }
.vdt-bim-chips--gold li { background: var(--bim-gold-soft); color: var(--bim-gold-ink); }

/* ----------------------------------------------------- Layers (tổng quan) */

.vdt-bim-layers { margin: 0; }
.vdt-bim-layers ol { display: grid; gap: 14px; }

.vdt-bim-layers__item {
  --role: var(--bim-cyan);
  position: relative;
  display: grid;
  gap: 2px;
  padding: 20px 22px 20px 26px;
  border: 1px solid var(--bim-line);
  border-left: 5px solid var(--role);
  border-radius: var(--bim-radius-sm);
  background: #fff;
  box-shadow: var(--bim-shadow-sm);
}

.vdt-bim-layers__item:nth-child(2) { margin-left: 22px; }
.vdt-bim-layers__item:nth-child(3) { margin-left: 44px; }
.vdt-bim-layers__item--coordinator { --role: var(--bim-gold); }
.vdt-bim-layers__item--manager { --role: var(--bim-manager); }
.vdt-bim-layers__verb { color: var(--bim-muted); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .04em; }
.vdt-bim-layers__item strong { color: var(--bim-navy); font-size: var(--vdt-fs-h3); }
.vdt-bim-layers__item span:last-child { color: var(--bim-muted); font-size: var(--vdt-fs-body); }
.vdt-bim-layers figcaption { margin-top: 14px; color: var(--bim-muted); font-size: var(--vdt-fs-sm); text-align: center; }

/* ------------------------------------------------------------ Role cards */

.vdt-bim-roles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }

.vdt-bim-role {
  --role: var(--bim-cyan);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--bim-line);
  border-radius: var(--bim-radius);
  background: #fff;
  box-shadow: var(--bim-shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease;
}

.vdt-bim-role--coordinator { --role: var(--bim-gold); }
.vdt-bim-role--manager { --role: var(--bim-manager); }
.vdt-bim-role:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px var(--role), var(--bim-shadow); }

.vdt-bim-role__media {
  position: relative;
  aspect-ratio: 16 / 9;
  background:
    linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(150deg, var(--bim-navy), var(--bim-navy-deep));
}

.vdt-bim-role__media svg { position: absolute; inset: 14% 12% 8%; width: 76%; height: 78%; fill: none; stroke: var(--role); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vdt-bim-role__media svg > :first-child { fill: var(--role); fill-opacity: .1; }
.vdt-bim-role__media svg .is-alt { stroke-dasharray: 6 5; }
.vdt-bim-role__media svg .is-mark { fill: var(--role); fill-opacity: .35; }

.vdt-bim-role__verb {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 4px 10px;
  border: 1px solid var(--role);
  border-radius: 999px;
  background: rgba(6, 22, 43, .6);
  color: #fff;
  font-size: var(--vdt-fs-xs);
  font-weight: 700;
  letter-spacing: .04em;
}

.vdt-bim-role__body { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 24px; }
.vdt-bim-hub-page .vdt-bim-role h3 { margin: 0; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-role__one { margin: 0; color: var(--bim-ink); font-weight: 600; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-role__fit { margin: 0; color: var(--bim-muted); font-size: var(--vdt-fs-body); }
.vdt-bim-role__cta { display: grid; gap: 10px; margin-top: auto; padding-top: 6px; }

/* ------------------------------------------------------------- Path */

.vdt-bim-path {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  max-width: 980px;
  margin: 0 auto 28px !important;
}

.vdt-bim-path::before {
  content: "";
  position: absolute;
  top: 34px;
  right: 16%;
  left: 16%;
  height: 2px;
  background: linear-gradient(90deg, var(--bim-cyan), var(--bim-gold), var(--bim-manager));
}

.vdt-bim-path__item { position: relative; display: grid; justify-items: center; gap: 4px; text-align: center; }
.vdt-bim-path__no { display: grid; place-items: center; width: 68px; height: 68px; border: 2px solid var(--bim-cyan); border-radius: 50%; background: var(--bim-navy-deep); color: #fff; font-size: var(--vdt-fs-h3); font-weight: 700; }
.vdt-bim-path__item:nth-child(2) .vdt-bim-path__no { border-color: var(--bim-gold); }
.vdt-bim-path__item:nth-child(3) .vdt-bim-path__no { border-color: var(--bim-manager); }
.vdt-bim-path__item strong { margin-top: 8px; color: #fff; font-size: var(--vdt-fs-h3); }
.vdt-bim-path__verb { color: rgba(255, 255, 255, .7); font-size: var(--vdt-fs-sm); }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-path__note { max-width: 760px; margin: 0 auto 24px; color: rgba(255, 255, 255, .8); text-align: center; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-path__note a { color: #bdf3ff; }

/* ---------------------------------------------------- Course detail + accordion */

.vdt-bim-course { --role: var(--bim-cyan); }
.vdt-bim-course--coordinator { --role: var(--bim-gold); }
.vdt-bim-course--manager { --role: var(--bim-manager); }

.vdt-bim-course__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 48px; align-items: start; }
.vdt-bim-course__intro { position: sticky; top: calc(var(--bim-toc-top) + 72px); }
.vdt-bim-course .vdt-bim-label { color: var(--bim-navy); }
.vdt-bim-course .vdt-bim-label::before { height: 4px; background: var(--role); }
.vdt-bim-hub-page .vdt-bim-course h2 { margin: 0 0 14px; }
.vdt-bim-course__outputs { margin: 20px 0; }
.vdt-bim-course__outputs > span { display: block; margin-bottom: 8px; color: var(--bim-muted); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.vdt-bim-course__cta { display: flex; flex-wrap: wrap; gap: 10px; }

.vdt-bim-figure { margin: 18px 0 0; overflow: hidden; border-radius: var(--bim-radius-sm); box-shadow: var(--bim-shadow-sm); }
.vdt-bim-figure img { display: block; width: 100%; height: auto; }
.vdt-bim-figure figcaption { padding: 8px 12px; background: #fff; color: var(--bim-muted); font-size: var(--vdt-fs-xs); }

.vdt-bim-lessons { display: grid; gap: 10px; }
.vdt-bim-lesson { border: 1px solid var(--bim-line); border-radius: var(--bim-radius-sm); background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.vdt-bim-lesson.is-open { border-color: var(--role); box-shadow: var(--bim-shadow-sm); }
.vdt-bim-hub-page .vdt-bim-lesson .vdt-bim-lesson__head { margin: 0; font-size: inherit; line-height: inherit; }

.vdt-bim-lesson__head button,
.vdt-bim-faq__q button {
  display: grid;
  width: 100%;
  min-height: 56px;
  align-items: center;
  border: 0;
  background: transparent;
  color: var(--bim-navy);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.vdt-bim-lesson__head button { grid-template-columns: auto minmax(0, 1fr) 24px; gap: 14px; padding: 14px 18px; }
.vdt-bim-lesson__no { padding: 4px 10px; border-radius: 8px; background: var(--bim-navy); color: #fff; font-size: var(--vdt-fs-xs); font-weight: 700; white-space: nowrap; }
.vdt-bim-lesson.is-open .vdt-bim-lesson__no { box-shadow: inset 0 -3px 0 var(--role); }
.vdt-bim-lesson__title { font-size: var(--vdt-fs-body-lg); font-weight: 700; line-height: 1.4; }

.vdt-bim-lesson__head svg,
.vdt-bim-faq__q svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.vdt-bim-lesson__head button[aria-expanded="true"] svg,
.vdt-bim-faq__q button[aria-expanded="true"] svg { transform: rotate(180deg); }

.vdt-bim-lesson__panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 4px 18px 18px; }
.vdt-bim-lesson__panel[hidden],
.vdt-bim-faq__a[hidden] { display: none; }
.vdt-bim-lesson__tag { display: inline-block; margin-bottom: 8px; padding: 2px 9px; border-radius: 999px; background: var(--bim-cyan-soft); color: var(--bim-cyan-ink); font-size: var(--vdt-fs-xs); font-weight: 700; }
.vdt-bim-lesson__tag--practice { background: var(--bim-gold-soft); color: var(--bim-gold-ink); }
.vdt-bim-lesson__col ul { display: grid; gap: 6px; }
.vdt-bim-lesson__col li { position: relative; padding-left: 20px; font-size: var(--vdt-fs-body); line-height: 1.55; }
.vdt-bim-lesson__col li::before { content: ""; position: absolute; top: .6em; left: 2px; width: 8px; height: 8px; border: 2px solid var(--role); transform: rotate(45deg); }

/* --------------------------------------------------------------- Matrix */

.vdt-bim-matrix { overflow: hidden; border: 1px solid var(--bim-line); border-radius: var(--bim-radius); background: #fff; box-shadow: var(--bim-shadow-sm); }
.vdt-bim-matrix table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.vdt-bim-matrix th,
.vdt-bim-matrix td { padding: 14px 18px; border-bottom: 1px solid var(--bim-line); text-align: left; vertical-align: top; font-size: var(--vdt-fs-body); line-height: 1.55; }
.vdt-bim-matrix tbody tr:last-child th,
.vdt-bim-matrix tbody tr:last-child td { border-bottom: 0; }
.vdt-bim-matrix thead th { padding-top: 18px; color: var(--bim-navy); font-size: var(--vdt-fs-body-lg); border-bottom: 3px solid var(--bim-cyan); }
.vdt-bim-matrix thead th.is-coordinator { border-bottom-color: var(--bim-gold); }
.vdt-bim-matrix thead th.is-manager { border-bottom-color: var(--bim-manager); }
.vdt-bim-matrix thead th span { display: block; color: var(--bim-muted); font-size: var(--vdt-fs-xs); letter-spacing: .04em; }
.vdt-bim-matrix thead td { width: 19%; }
.vdt-bim-matrix tbody th { background: var(--bim-soft); color: var(--bim-navy); font-weight: 700; }
.vdt-bim-matrix tbody tr:hover td { background: #fbfdff; }
.vdt-bim-matrix-cards { display: none; }

/* ----------------------------------------------------------------- Why */

.vdt-bim-why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.vdt-bim-why li { padding: 24px; border: 1px solid var(--bim-line); border-radius: var(--bim-radius-sm); background: #fff; transition: transform .25s ease, border-color .25s ease; }
.vdt-bim-why li:hover { transform: translateY(-3px); border-color: rgba(0, 184, 217, .5); }
.vdt-bim-why__no { color: var(--bim-cyan-ink); font-weight: 700; }
.vdt-bim-hub-page .vdt-bim-why h3 { margin: 8px 0; font-size: var(--vdt-fs-h3); }
.vdt-bim-hub-page .vdt-bim-why p { color: var(--bim-muted); font-size: var(--vdt-fs-body); }

/* -------------------------------------------------------- Deliverables */

.vdt-bim-deliv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.vdt-bim-deliv__col { --role: var(--bim-cyan); padding: 24px; border: 1px solid rgba(255, 255, 255, .12); border-top: 3px solid var(--role); border-radius: var(--bim-radius-sm); background: rgba(255, 255, 255, .04); }
.vdt-bim-deliv__col--coordinator { --role: var(--bim-gold); }
.vdt-bim-deliv__col--manager { --role: var(--bim-manager); }
.vdt-bim-hub-page .vdt-bim-deliv h3 { margin: 0 0 14px; color: #fff; font-size: var(--vdt-fs-h3); }
.vdt-bim-deliv h3 span { display: block; color: var(--role); font-size: var(--vdt-fs-xs); letter-spacing: .04em; }
.vdt-bim-deliv ul { display: grid; gap: 10px; }
.vdt-bim-deliv li { display: flex; gap: 10px; align-items: center; color: rgba(255, 255, 255, .9); }
.vdt-bim-deliv svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: var(--role); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* ------------------------------------------------------------ Schedule */

.vdt-bim-schedule { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

.vdt-bim-sched {
  --role: var(--bim-cyan);
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--bim-line);
  border-top: 4px solid var(--role);
  border-radius: var(--bim-radius);
  background: #fff;
  box-shadow: var(--bim-shadow-sm);
}

.vdt-bim-sched--coordinator { --role: var(--bim-gold); }
.vdt-bim-sched--manager { --role: var(--bim-manager); }
.vdt-bim-sched header { display: grid; gap: 6px; }
.vdt-bim-sched__verb { color: var(--bim-muted); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .04em; }
.vdt-bim-hub-page .vdt-bim-sched h3 { margin: 0; font-size: var(--vdt-fs-h3); line-height: 1.4; }
.vdt-bim-sched .vdt-bim-status { background: var(--bim-gold-soft); color: var(--bim-gold-ink); }
.vdt-bim-sched .vdt-bim-status.is-open { background: #dcfae9; color: #06452c; }
.vdt-bim-sched dl { display: grid; margin: 0; }
.vdt-bim-sched dl div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--bim-line); }
.vdt-bim-sched dt { color: var(--bim-muted); font-size: var(--vdt-fs-sm); }
.vdt-bim-sched dd { margin: 0; color: var(--bim-navy); font-size: var(--vdt-fs-body); font-weight: 600; overflow-wrap: anywhere; }
.vdt-bim-sched .vdt-bim-btn { margin-top: auto; }

/* ---------------------------------------------------------------- Cert */

.vdt-bim-section--cert { background: radial-gradient(620px 420px at 78% 55%, rgba(245, 184, 66, .15), transparent 70%), linear-gradient(180deg, #fff 0%, #fffaf0 100%); }
.vdt-bim-cert { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; align-items: center; }
.vdt-bim-cert.has-image { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 56px; }
.vdt-bim-cert__side { display: grid; gap: 16px; }
.vdt-bim-cert__list { display: grid; gap: 12px; }

.vdt-bim-cert__item {
  --role: var(--bim-cyan);
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  width: 100%;
  padding: 16px 18px;
  border: 1px solid rgba(245, 184, 66, .4);
  border-radius: var(--bim-radius-sm);
  background: rgba(255, 255, 255, .85);
  color: inherit;
  font: inherit;
  text-align: left;
}

.vdt-bim-cert__item--coordinator { --role: var(--bim-gold); }
.vdt-bim-cert__item--manager { --role: var(--bim-manager); }
button.vdt-bim-cert__item { min-height: 72px; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
button.vdt-bim-cert__item:hover { border-color: var(--bim-gold); transform: translateX(3px); }
button.vdt-bim-cert__item[aria-selected="true"] { border-color: var(--bim-gold); border-left: 5px solid var(--role); background: #fff; box-shadow: 0 12px 28px rgba(122, 84, 5, .12); }

.vdt-bim-cert__seal { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bim-gold-soft); }
.vdt-bim-cert__seal svg { width: 20px; height: 20px; fill: none; stroke: var(--bim-gold-ink); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.vdt-bim-cert__item small { display: block; color: var(--bim-muted); font-size: var(--vdt-fs-xs); font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.vdt-bim-cert__item strong { color: var(--bim-navy); font-size: var(--vdt-fs-body-lg); font-weight: 600; line-height: 1.45; }
.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-cert__lookup { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }

.vdt-bim-cert__stage { min-width: 0; perspective: 1400px; }
.vdt-bim-cert__figure { margin: 0; animation: vdt-bim-fade .35s ease both; }
.vdt-bim-cert__figure[hidden] { display: none; }
.vdt-bim-cert__frame { display: block; padding: 10px; border-radius: 14px; background: #fff; box-shadow: 0 2px 0 rgba(245, 184, 66, .6), 0 30px 60px rgba(11, 31, 58, .18); transform: rotateY(-6deg) rotateX(2deg) rotate(.8deg); transition: transform .45s ease; }
.vdt-bim-cert__frame:hover,
.vdt-bim-cert__frame:focus-visible { transform: none; }
.vdt-bim-cert__img { display: block; width: 100%; height: auto; border-radius: 6px; }
.vdt-bim-cert__figure figcaption { margin-top: 16px; color: var(--bim-muted); font-size: var(--vdt-fs-sm); text-align: center; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-cert__note { max-width: 860px; margin: 32px auto 0; color: var(--bim-muted); font-size: var(--vdt-fs-sm); text-align: center; }

/* --------------------------------------------- Ưu đãi trọn lộ trình 3 khóa */

.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-portal__combo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  padding: 12px 16px;
  border: 1px dashed rgba(245, 184, 66, .6);
  border-radius: 14px;
  background: rgba(245, 184, 66, .1);
  color: #fff;
  text-decoration: none;
  transition: background-color .2s ease;
}

.vdt-bim-hub-page .vdt-bim-main a.vdt-bim-portal__combo:hover { background: rgba(245, 184, 66, .18); color: #fff; }
.vdt-bim-portal__combo small { display: block; color: rgba(255, 255, 255, .72); font-size: var(--vdt-fs-xs); }
.vdt-bim-portal__combo strong { color: #ffe2a6; font-size: var(--vdt-fs-body-lg); }
.vdt-bim-portal__combo svg { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: #ffe2a6; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.vdt-bim-combo {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr);
  gap: 32px;
  align-items: center;
  margin-top: 28px;
  padding: 28px 32px;
  border: 1px solid rgba(245, 184, 66, .45);
  border-radius: var(--bim-radius);
  background:
    linear-gradient(90deg, var(--bim-cyan), var(--bim-gold), var(--bim-manager)) top / 100% 4px no-repeat,
    linear-gradient(135deg, #fff 0%, #fffaf0 100%);
  box-shadow: var(--bim-shadow);
}

.vdt-bim-combo__tag { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 999px; background: var(--bim-gold-soft); color: var(--bim-gold-ink); font-size: var(--vdt-fs-xs); font-weight: 700; }
.vdt-bim-hub-page .vdt-bim-combo h3 { margin: 0 0 8px; font-size: var(--vdt-fs-h2); }
.vdt-bim-hub-page .vdt-bim-combo p { color: var(--bim-muted); }
.vdt-bim-combo__price { display: grid; justify-items: start; gap: 6px; }
.vdt-bim-combo__price strong { color: var(--bim-navy); font-size: var(--vdt-fs-h1); line-height: 1.1; }
.vdt-bim-combo__price > span { color: var(--bim-muted); font-weight: 600; }
.vdt-bim-combo__price small { color: #06452c; font-size: var(--vdt-fs-sm); font-weight: 600; }
.vdt-bim-combo__price .vdt-bim-btn { margin-top: 8px; }

.vdt-bim-hub-page .vdt-bim-main .vdt-bim-schedule__combo { margin-top: 20px; padding: 14px 18px; border: 1px dashed rgba(245, 184, 66, .6); border-radius: var(--bim-radius-sm); background: var(--bim-gold-soft); color: var(--bim-navy); }

/* ----------------------------------------------------------------- B2B */

.vdt-bim-b2b { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; align-items: center; }
.vdt-bim-hub-page .vdt-bim-b2b h2 { margin: 0 0 14px; }
.vdt-bim-b2b__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.vdt-bim-b2b__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.vdt-bim-b2b__list li { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 12px 16px; border: 1px solid var(--bim-line); border-radius: 12px; background: #fff; color: var(--bim-navy); font-weight: 600; }
.vdt-bim-b2b__list li::before { content: ""; width: 9px; height: 9px; flex: 0 0 auto; border-radius: 2px; background: var(--bim-cyan); transform: rotate(45deg); }

/* ------------------------------------------------------------- Gallery */

.vdt-bim-gallery { margin: 0; }
.vdt-bim-gallery + .vdt-bim-gallery { margin-top: 36px; }
.vdt-bim-gallery__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-auto-rows: 180px; gap: 12px; }
.vdt-bim-gallery__grid img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--bim-radius-sm); }
.vdt-bim-gallery__grid img:first-child { grid-row: span 2; }
.vdt-bim-gallery--ai .vdt-bim-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; }
.vdt-bim-gallery--ai .vdt-bim-gallery__grid img { aspect-ratio: 16 / 9; height: auto; grid-row: auto; }
.vdt-bim-gallery figcaption { margin-top: 12px; color: var(--bim-muted); font-size: var(--vdt-fs-sm); }

/* ----------------------------------------------------------------- FAQ */

.vdt-bim-faq { display: grid; gap: 10px; }
.vdt-bim-faq__item { border: 1px solid var(--bim-line); border-radius: var(--bim-radius-sm); background: #fff; }
.vdt-bim-hub-page .vdt-bim-faq .vdt-bim-faq__q { margin: 0; font-size: var(--vdt-fs-body-lg); line-height: 1.45; }
.vdt-bim-faq__q button { grid-template-columns: minmax(0, 1fr) 24px; gap: 16px; padding: 16px 20px; font-weight: 600; }
.vdt-bim-faq__a { padding: 0 20px 18px; }
.vdt-bim-hub-page .vdt-bim-faq__a p { color: var(--bim-muted); }

/* ------------------------------------------------------ Registration */

.vdt-bim-section--form { background: linear-gradient(180deg, var(--bim-soft), #fff); }
.vdt-bim-form-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; align-items: start; }
.vdt-bim-hub-page .vdt-bim-form-intro h2 { margin: 0 0 12px; }
.vdt-bim-contact { display: grid; gap: 10px; margin-top: 20px !important; }
.vdt-bim-contact a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; }
.vdt-bim-contact svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }

.vdt-bim-reg { min-width: 0; padding: 24px; border: 1px solid var(--bim-line); border-radius: var(--bim-radius); background: #fff; box-shadow: var(--bim-shadow); }
.vdt-bim-reg__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 18px; padding: 5px; border-radius: 14px; background: var(--bim-soft); }
.vdt-bim-reg__tabs button { color: var(--bim-muted); }
.vdt-bim-reg__tabs button small { display: block; font-size: var(--vdt-fs-xs); letter-spacing: .04em; }
.vdt-bim-reg__tabs button:hover { color: var(--bim-navy); background: rgba(255, 255, 255, .7); }
.vdt-bim-reg__tabs button[aria-selected="true"] { background: var(--bim-navy); color: #fff; }
.vdt-bim-reg__tabs button.is-combo { box-shadow: inset 0 0 0 1px rgba(245, 184, 66, .7); }
.vdt-bim-reg__tabs button.is-combo[aria-selected="true"] { background: var(--bim-gold); color: var(--bim-navy); }
.vdt-bim-reg__panel[hidden] { display: none; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-reg__summary { margin-bottom: 16px; padding: 10px 14px; border-radius: 10px; background: var(--bim-soft); color: var(--bim-navy); font-size: var(--vdt-fs-sm); }
.vdt-bim-reg .vdt-form { opacity: 1; transform: none; }
.vdt-bim-hub-page .vdt-bim-reg [data-vdt-course-other-wrap][hidden] { display: none !important; }
.vdt-bim-hub-page .vdt-bim-reg .vdt-form__full { grid-column: 1 / -1; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-reg__privacy { margin-top: 12px; color: var(--bim-muted); font-size: var(--vdt-fs-sm); }

/* ------------------------------------------------------------ Final */

.vdt-bim-section--final {
  background:
    linear-gradient(var(--bim-grid-line) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(90deg, var(--bim-grid-line) 1px, transparent 1px) 0 0 / 36px 36px,
    linear-gradient(135deg, var(--bim-navy), #0d3a5a);
  text-align: center;
}

.vdt-bim-hub-page .vdt-bim-final h2 { margin: 0 0 14px; color: #fff; }
.vdt-bim-hub-page .vdt-bim-final p { margin-bottom: 24px; color: rgba(255, 255, 255, .84); }
.vdt-bim-final__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-final__links { margin: 26px 0 0; font-size: var(--vdt-fs-sm); }
.vdt-bim-hub-page .vdt-bim-main .vdt-bim-final__links a { color: #bdf3ff; }

.vdt-bim-sticky { display: none; }

/* ----------------------------------------------------------- Responsive */

@media (max-width: 1100px) {
  .vdt-bim-roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vdt-bim-roles .vdt-bim-role:last-child { grid-column: 1 / -1; }
  .vdt-bim-why,
  .vdt-bim-schedule { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .vdt-bim-hero__inner,
  .vdt-bim-split,
  .vdt-bim-course__grid,
  .vdt-bim-b2b,
  .vdt-bim-form-wrap,
  .vdt-bim-cert.has-image { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .vdt-bim-portal { max-width: 640px; }
  .vdt-bim-course__intro { position: static; }
  .vdt-bim-cert__figure { max-width: 680px; }
  .vdt-bim-cert__frame { transform: rotate(-1deg); }
  .vdt-bim-matrix { display: none; }
  .vdt-bim-matrix-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .vdt-bim-mcard { --role: var(--bim-cyan); padding: 20px; border: 1px solid var(--bim-line); border-top: 4px solid var(--role); border-radius: var(--bim-radius-sm); background: #fff; }
  .vdt-bim-mcard--coordinator { --role: var(--bim-gold); }
  .vdt-bim-mcard--manager { --role: var(--bim-manager); }
  .vdt-bim-hub-page .vdt-bim-mcard h3 { margin: 0 0 10px; font-size: var(--vdt-fs-h3); }
  .vdt-bim-mcard h3 span { display: block; color: var(--bim-muted); font-size: var(--vdt-fs-xs); letter-spacing: .04em; }
  .vdt-bim-mcard dl { display: grid; gap: 10px; margin: 0; }
  .vdt-bim-mcard dt { color: var(--bim-muted); font-size: var(--vdt-fs-xs); font-weight: 700; }
  .vdt-bim-mcard dd { margin: 0; font-size: var(--vdt-fs-body); }
  .vdt-bim-deliv { grid-template-columns: minmax(0, 1fr); }
  .vdt-bim-combo { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}

@media (max-width: 768px) {
  .vdt-bim-section { padding: 60px 0; }
  .vdt-bim-hero { padding: 40px 0 92px; }
  .vdt-bim-hero__cta { flex-direction: column; align-items: stretch; }
  .vdt-bim-hero__cta .vdt-bim-btn { width: 100%; }
  .vdt-bim-portal { padding: 16px; }
  .vdt-bim-portal__flow { display: none; }
  .vdt-bim-portal__info div { grid-template-columns: 96px minmax(0, 1fr); }
  .vdt-bim-portal__actions { grid-template-columns: minmax(0, 1fr); }
  .vdt-bim-stats { margin-top: -52px; }
  .vdt-bim-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vdt-bim-stats__list li:nth-child(2) { border-right: 0; }
  .vdt-bim-stats__list li:nth-child(-n+2) { border-bottom: 1px solid var(--bim-line); }
  .vdt-bim-toc { position: static; margin-top: 20px; }
  .vdt-bim-roles,
  .vdt-bim-why,
  .vdt-bim-schedule,
  .vdt-bim-matrix-cards { grid-template-columns: minmax(0, 1fr); }
  .vdt-bim-layers__item:nth-child(n) { margin-left: 0; }
  .vdt-bim-path { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .vdt-bim-path::before { top: 34px; bottom: 34px; left: 50%; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--bim-cyan), var(--bim-gold), var(--bim-manager)); }
  .vdt-bim-lesson__head button { grid-template-columns: minmax(0, 1fr) 24px; padding: 14px 16px; }
  .vdt-bim-lesson__no { justify-self: start; }
  .vdt-bim-lesson__title { grid-column: 1 / 2; }
  .vdt-bim-lesson__head svg { grid-column: 2; grid-row: 1 / span 2; }
  .vdt-bim-lesson__panel { grid-template-columns: minmax(0, 1fr); padding: 4px 16px 16px; }
  .vdt-bim-b2b__list { grid-template-columns: minmax(0, 1fr); }
  .vdt-bim-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 140px; }
  .vdt-bim-gallery__grid img:first-child { grid-column: 1 / -1; grid-row: span 2; }
  .vdt-bim-gallery--ai .vdt-bim-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vdt-bim-reg { padding: 16px; }
  .vdt-bim-reg__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vdt-bim-reg__tabs button { padding: 6px; }
  .vdt-bim-combo { padding: 22px 18px; }
  .vdt-bim-combo__price .vdt-bim-btn { width: 100%; }
  .vdt-bim-cert__frame { padding: 6px; transform: none; }
  .vdt-bim-course__cta .vdt-bim-btn,
  .vdt-bim-b2b__cta .vdt-bim-btn,
  .vdt-bim-final__cta .vdt-bim-btn { width: 100%; }

  .vdt-bim-hub-page { padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px)); }

  .vdt-bim-sticky {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 60;
    display: grid;
    grid-template-columns: 1fr 1fr 1.3fr;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--bim-line);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -10px 30px rgba(11, 31, 58, .12);
    transition: transform .25s ease;
  }

  .vdt-bim-sticky.is-hidden { transform: translateY(120%); }

  .vdt-bim-hub-page .vdt-bim-sticky a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    border: 1px solid var(--bim-line);
    border-radius: 12px;
    background: #fff;
    color: var(--bim-navy);
    font-size: var(--vdt-fs-body);
    font-weight: 700;
    text-decoration: none;
  }

  .vdt-bim-sticky svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  .vdt-bim-hub-page .vdt-bim-sticky a.vdt-bim-sticky__cta { border-color: var(--bim-gold); background: var(--bim-gold); }

  /* Có thanh liên hệ toàn site (.bcnt-dock đã có Gọi/Zalo): chỉ giữ nút "Khóa học" nổi phía trên. */
  .vdt-bim-sticky.vdt-bim-sticky--compact { right: 12px; bottom: calc(var(--bim-sitebar, 0px) + 10px); left: auto; grid-template-columns: auto; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .vdt-bim-sticky--compact a:not(.vdt-bim-sticky__cta) { display: none !important; }
  .vdt-bim-hub-page .vdt-bim-sticky.vdt-bim-sticky--compact a.vdt-bim-sticky__cta { padding: 0 22px; border-radius: 999px; box-shadow: 0 10px 26px rgba(11, 31, 58, .22); }
  .vdt-bim-sticky.vdt-bim-sticky--compact.is-hidden { transform: translateY(calc(100% + var(--bim-sitebar, 0px) + 20px)); }
}

@media (max-width: 420px) {
  .vdt-bim-stats__list { grid-template-columns: minmax(0, 1fr); }
  .vdt-bim-stats__list li { border-right: 0; border-bottom: 1px solid var(--bim-line); }
  .vdt-bim-stats__list li:last-child { border-bottom: 0; }
  .vdt-bim-portal__tabs button { font-size: var(--vdt-fs-xs); padding: 6px 4px; }
}

/* --------------------------------------------------------- Reduced motion */

@media (prefers-reduced-motion: reduce) {
  .vdt-bim-portal__flow li + li::before,
  .vdt-bim-portal__panel { animation: none; }
  .vdt-bim-role,
  .vdt-bim-why li,
  .vdt-bim-cert__frame,
  .vdt-bim-hub-page .vdt-bim-btn,
  .vdt-bim-sticky { transition: none; }
  .vdt-bim-role:hover,
  .vdt-bim-why li:hover { transform: none; }
  .vdt-bim-cert__frame { transform: none; }
}
