/* ==========================================================================
   Discovery Airways · /taxibay
   Theo đúng house style hiện hành của discoverygroup.vn: nền trắng, chữ mực
   #1c1d1b, phụ đề #5b5c57, nhấn vàng #9c7535, thẻ trắng viền vàng mảnh.
   subpage-shell.css chuẩn hoá mọi section subpage về nền trắng bằng
   !important, nên trang này không dựng section tối; chiều sâu đến từ ảnh
   phối cảnh full-bleed (hero, dải thương hiệu) — đúng cách các trang lĩnh vực
   khác đang làm.
   ========================================================================== */

.page-taxibay {
  --tb-ink: #1c1d1b;
  --tb-muted: #5b5c57;
  --tb-gold: #9c7535;
  --tb-gold-soft: #b79552;
  --tb-gold-lt: #e0c68d;
  --tb-ivory: #faf8f3;
  --tb-paper: #fff;
  --tb-line: rgba(157, 123, 63, .32);
  --tb-line-soft: rgba(157, 123, 63, .18);
  --tb-shadow: 0 16px 42px rgba(57, 46, 26, .08);
  --tb-shadow-lg: 0 28px 70px rgba(57, 46, 26, .14);
  --tb-shell: clamp(20px, 5.2vw, 96px);
  --tb-ease: cubic-bezier(.16, 1, .3, 1);
}

.page-taxibay *,
.page-taxibay *::before,
.page-taxibay *::after { box-sizing: border-box; }

/* subpage-shell.css trước đây ép màu chữ toàn site; giờ trang tự quy định. */
.page-taxibay main p,
.page-taxibay main li,
.page-taxibay main figcaption,
.page-taxibay main small,
.page-taxibay main dd { color: var(--tb-muted); }
.page-taxibay main h1,
.page-taxibay main h2,
.page-taxibay main h3,
.page-taxibay main h4,
.page-taxibay main strong,
.page-taxibay main blockquote { color: var(--tb-ink); }
.page-taxibay main .eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  color: var(--tb-gold);
}
.page-taxibay a { text-decoration-thickness: 1px; text-underline-offset: 3px; }

.page-taxibay main > section {
  position: relative;
  padding: clamp(60px, 6.4vw, 104px) var(--tb-shell);
  overflow: hidden;
}

.page-taxibay .page-shell { width: 100%; }
.page-taxibay .eyebrow { margin: 0 0 14px; text-transform: uppercase; }
.page-taxibay .section-lead { max-width: 64ch; }

.tb-section-head { max-width: 900px; margin-bottom: clamp(32px, 3.6vw, 60px); }
.tb-section-head h2 { margin: 0 0 16px; }

/* ---------- buttons ---------- */
.tb-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  text-decoration: none;
  text-transform: uppercase;
  border: 1px solid transparent;
  border-radius: 999px;
  transition: color .4s var(--tb-ease), background-color .4s var(--tb-ease),
              border-color .4s var(--tb-ease), transform .4s var(--tb-ease),
              box-shadow .4s var(--tb-ease);
}
.tb-btn span { transition: transform .4s var(--tb-ease); }
.tb-btn:hover span { transform: translateX(5px); }
.tb-btn-gold {
  color: #22190a !important;
  background: linear-gradient(120deg, #e2c884, #b79552 58%, #d7bc7c);
  box-shadow: 0 14px 34px rgba(120, 92, 32, .3);
}
.tb-btn-gold:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(120, 92, 32, .4); }
.tb-btn-ghost { color: #fff !important; border-color: rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .1); backdrop-filter: blur(6px); }
.tb-btn-ghost:hover { color: #1c1d1b !important; background: #fff; border-color: #fff; transform: translateY(-2px); }

/* ==========================================================================
   Splash intro
   ========================================================================== */
.tb-splash-armed body.page-taxibay { overflow: hidden; }
.tb-splash-armed body.page-taxibay > .site-topbar,
.tb-splash-armed body.page-taxibay > main,
.tb-splash-armed body.page-taxibay > .site-footer,
.tb-splash-armed body.page-taxibay > .tb-rail { visibility: hidden; }
.tb-splash-armed.tb-splash-lift body.page-taxibay > .site-topbar,
.tb-splash-armed.tb-splash-lift body.page-taxibay > main,
.tb-splash-armed.tb-splash-lift body.page-taxibay > .site-footer,
.tb-splash-armed.tb-splash-lift body.page-taxibay > .tb-rail { visibility: visible; }

.tb-splash {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
}
html:not(.tb-splash-armed) .tb-splash { display: none; }

.tb-splash-sky {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(78% 60% at 50% 42%, rgba(183, 149, 82, .22), transparent 62%),
    radial-gradient(120% 90% at 50% 118%, rgba(80, 132, 178, .16), transparent 60%),
    linear-gradient(170deg, #08111b 0%, #0d1a27 52%, #132436 100%);
  transform: scale(1.06);
}

.tb-splash-rings { position: absolute; inset: 0; display: grid; place-items: center; }
.tb-splash-rings i {
  position: absolute;
  border: 1px solid rgba(183, 149, 82, .22);
  border-radius: 50%;
  opacity: 0;
}
.tb-splash-rings i:nth-child(1) { width: 380px; height: 380px; }
.tb-splash-rings i:nth-child(2) { width: 620px; height: 620px; border-color: rgba(183, 149, 82, .14); }
.tb-splash-rings i:nth-child(3) { width: 900px; height: 900px; border-color: rgba(183, 149, 82, .08); }

.tb-splash-core { position: relative; z-index: 3; display: grid; justify-items: center; gap: 26px; padding: 0 24px; }
.tb-splash-mark { width: clamp(112px, 12vw, 168px); aspect-ratio: 296 / 436; }
.tb-splash-mark svg { width: 100%; height: 100%; overflow: visible; }
.tb-splash-mark .dw-blade { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; }

.tb-splash-word { display: grid; justify-items: center; gap: 6px; text-align: center; }
.tb-splash-word b,
.tb-splash-word s {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  background: linear-gradient(96deg, #a8813a, #f3dfa8 46%, #b08c40);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: 0;
}
.tb-splash-word b { font-size: clamp(28px, 4.4vw, 58px); letter-spacing: .1em; }
.tb-splash-word s { font-size: clamp(15px, 2.2vw, 29px); font-weight: 400; letter-spacing: .42em; text-indent: .42em; }

.tb-splash-tag {
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(232, 210, 155, .66);
  opacity: 0;
}

.tb-splash-meta {
  position: absolute;
  z-index: 3;
  left: clamp(22px, 4vw, 62px);
  right: clamp(22px, 4vw, 62px);
  bottom: clamp(38px, 5vw, 68px);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: rgba(214, 190, 137, .66);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.tb-splash-meta span { opacity: 0; }

.tb-splash-bar {
  position: absolute;
  z-index: 3;
  bottom: clamp(20px, 2.4vw, 32px);
  left: 50%;
  width: min(240px, 40vw);
  height: 1px;
  overflow: hidden;
  background: rgba(183, 149, 82, .2);
  transform: translateX(-50%);
}
.tb-splash-bar i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #8a6a26, #f0d9a0, #a8813a);
  transform: scaleX(0);
  transform-origin: left center;
}

.tb-splash-curtain { position: absolute; z-index: 4; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); pointer-events: none; }
.tb-splash-curtain i { background: #0a1420; transform: translateY(101%); }

/* ==========================================================================
   Section rail
   ========================================================================== */
.tb-rail {
  position: fixed;
  z-index: 900;
  top: 50%;
  right: clamp(10px, 1.4vw, 22px);
  display: grid;
  gap: 15px;
  padding: 18px 12px;
  transform: translateY(-50%);
  opacity: 0;
  transition: opacity .5s var(--tb-ease);
}
.tb-rail.is-on { opacity: 1; }
.tb-rail-dir {
  position: absolute;
  top: 12px;
  left: 50%;
  width: 1px;
  height: calc(100% - 24px);
  background: linear-gradient(180deg, transparent, var(--tb-line), transparent);
  transform: translateX(-50%);
}
.tb-rail-dir::after {
  content: "";
  position: absolute;
  left: 50%;
  top: var(--tb-dir-pos, 0%);
  width: 3px;
  height: 26px;
  border-radius: 3px;
  background: linear-gradient(180deg, transparent, var(--tb-gold-soft), transparent);
  opacity: var(--tb-dir-op, 0);
  transform: translateX(-50%);
  transition: top .5s var(--tb-ease), opacity .4s ease;
}
.tb-rail a {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  text-decoration: none;
}
.tb-rail a i {
  width: 7px;
  height: 7px;
  border: 1px solid var(--tb-line);
  border-radius: 50%;
  background: #fff;
  transition: transform .4s var(--tb-ease), background-color .4s var(--tb-ease);
}
.tb-rail a b {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tb-gold);
  white-space: nowrap;
  opacity: 0;
  transform: translateX(6px);
  transition: opacity .35s var(--tb-ease), transform .35s var(--tb-ease);
}
.tb-rail a:hover b,
.tb-rail a.is-active b { opacity: 1; transform: translateX(0); }
.tb-rail a.is-active i { background: var(--tb-gold-soft); transform: scale(1.5); }

/* ==========================================================================
   Hero — chiều sâu đến từ ảnh phối cảnh, không phải nền section
   ========================================================================== */
.page-taxibay .tb-hero {
  min-height: 100svh;
  padding: 0;
  display: grid;
  align-content: end;
}
.tb-hero-media { position: absolute; inset: 0; overflow: hidden; }
.tb-hero-media img { width: 100%; height: 116%; object-fit: cover; object-position: center 46%; }
.tb-hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .12) 16%, rgba(255, 255, 255, 0) 34%),
    linear-gradient(96deg, rgba(6, 13, 21, .82) 0%, rgba(6, 13, 21, .52) 42%, rgba(6, 13, 21, .06) 74%),
    linear-gradient(0deg, rgba(6, 13, 21, .88) 0%, rgba(6, 13, 21, .34) 34%, rgba(6, 13, 21, 0) 62%);
}
.tb-hero-net { position: absolute; inset: 0; width: 100%; height: 100%; }
.tb-hero-plume {
  position: absolute;
  top: 16%;
  right: clamp(-30px, 2vw, 60px);
  width: clamp(150px, 19vw, 300px);
  aspect-ratio: 296 / 436;
  background: url("assets/airways-mark.svg") center / contain no-repeat;
  opacity: .1;
}

.tb-hero-copy {
  position: relative;
  z-index: 4;
  max-width: 1080px;
  padding: 168px var(--tb-shell) 0;
}
.page-taxibay .tb-hero h1 { margin: 0 0 20px; }
.page-taxibay .tb-hero h1 span { display: block; }
.tb-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }

.tb-hero-stats {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: clamp(40px, 5vw, 72px) var(--tb-shell) clamp(28px, 3vw, 44px);
  border-top: 1px solid rgba(224, 198, 141, .3);
  background: rgba(224, 198, 141, .22);
}
.tb-hero-stats article {
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 22px 22px 26px;
  background: linear-gradient(180deg, rgba(6, 13, 21, .42), rgba(6, 13, 21, .66));
  backdrop-filter: blur(4px);
}
.tb-hero-stats b {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(28px, 3.2vw, 46px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -.03em;
}
.tb-hero-stats s { text-decoration: none; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }

.tb-scroll-cue {
  position: absolute;
  z-index: 5;
  right: var(--tb-shell);
  top: clamp(280px, 42vh, 480px);
  display: grid;
  justify-items: center;
  gap: 10px;
  text-decoration: none;
}
.tb-scroll-cue i { width: 1px; height: 46px; background: linear-gradient(180deg, transparent, #e0c68d); animation: tb-cue 2s var(--tb-ease) infinite; }
.tb-scroll-cue span { font-size: 8px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
@keyframes tb-cue { 0%, 100% { transform: scaleY(.4); opacity: .4; } 50% { transform: scaleY(1); opacity: 1; } }

/* --- chữ trên ảnh: theo đúng ngoại lệ mà shared-shell dành cho hero ảnh --- */
body.page-taxibay main > section:first-child :is(h1, h1 span, .hero-lead),
body.page-taxibay main .tb-hero-stats :is(b, p),
body.page-taxibay main .tb-scroll-cue span {
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .7);
}
body.page-taxibay main > section:first-child h1 span:last-child {
  color: #f2dda6 !important;
}
body.page-taxibay main .tb-hero-eyebrow,
body.page-taxibay main .tb-hero-stats s,
body.page-taxibay main .tb-scroll-cue i { color: #e6cf9a !important; }

/* ==========================================================================
   Tổng quan
   ========================================================================== */
.page-taxibay .tb-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  gap: clamp(34px, 4.4vw, 80px);
  align-items: center;
}
.tb-overview h2 { margin: 0 0 18px; }
.tb-facts { margin: 30px 0 26px; display: grid; }
.tb-facts > div { display: grid; grid-template-columns: minmax(120px, 30%) minmax(0, 1fr); gap: 18px; padding: 14px 0; border-top: 1px solid var(--tb-line-soft); }
.tb-facts > div:last-child { border-bottom: 1px solid var(--tb-line-soft); }
.page-taxibay .tb-facts dt { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tb-gold) !important; }
.page-taxibay .tb-facts dd { margin: 0; font-size: 13px; line-height: 1.65; color: var(--tb-ink) !important; }
.page-taxibay blockquote {
  margin: 0;
  padding-left: 20px;
  border-left: 2px solid var(--tb-gold-soft);
  font-family: "Montserrat", sans-serif;
  font-size: clamp(15px, 1.5vw, 19px);
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  color: var(--tb-gold) !important;
}

.tb-overview-visual { position: relative; }
.tb-skyframe { position: relative; overflow: hidden; border-radius: 3px; box-shadow: var(--tb-shadow-lg); }
.tb-skyframe img { display: block; width: 100%; height: clamp(300px, 38vw, 500px); object-fit: cover; }
.tb-skyframe-path { position: absolute; inset: 0; z-index: 2; }
.tb-skyframe-path svg { width: 100%; height: 100%; }
.tb-skyframe-path path { fill: none; stroke: rgba(252, 240, 210, .95); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 6px rgba(240, 217, 160, .7)); }
.tb-skyframe-path i {
  position: absolute;
  top: 0; left: 0;
  width: 9px; height: 9px;
  margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: #fff8e6;
  box-shadow: 0 0 0 4px rgba(240, 217, 160, .3), 0 0 18px rgba(240, 217, 160, .95);
  opacity: 0;
}
.tb-skyframe-tag {
  position: absolute;
  z-index: 3;
  left: 20px;
  bottom: 20px;
  margin: 0;
  display: grid;
  gap: 2px;
  padding: 12px 18px;
  background: rgba(255, 255, 255, .94);
  border-left: 2px solid var(--tb-gold-soft);
  box-shadow: var(--tb-shadow);
}
.page-taxibay .tb-skyframe-tag b { font-family: "Montserrat", sans-serif; font-size: 14px; font-weight: 600; color: var(--tb-ink); }
.page-taxibay .tb-skyframe-tag span { font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--tb-gold); }

.tb-overview-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.page-taxibay .tb-overview-chips span {
  padding: 9px 16px;
  border: 1px solid var(--tb-line);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tb-muted);
  background: var(--tb-ivory);
}

/* ==========================================================================
   Dịch vụ
   ========================================================================== */
.tb-service-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(14px, 1.5vw, 22px); }
.tb-service {
  grid-column: span 2;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid var(--tb-line);
  border-radius: 3px;
  background: var(--tb-paper);
  box-shadow: var(--tb-shadow);
  transition: transform .55s var(--tb-ease), box-shadow .55s var(--tb-ease), border-color .55s var(--tb-ease);
}
.tb-service.is-lead { grid-column: span 3; }
.tb-service:hover { transform: translateY(-6px); border-color: var(--tb-gold-soft); box-shadow: var(--tb-shadow-lg); }
.tb-service figure { position: relative; margin: 0; overflow: hidden; aspect-ratio: 16 / 9; }
.tb-service.is-lead figure { aspect-ratio: 16 / 7.6; }
.tb-service figure img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.02); transition: transform 1.1s var(--tb-ease); }
.tb-service:hover figure img { transform: scale(1.07); }
.tb-service-body { display: grid; align-content: start; gap: 11px; padding: clamp(20px, 2.2vw, 30px); }
.page-taxibay .tb-service-index { font-family: "Montserrat", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .2em; color: var(--tb-gold) !important; }
.page-taxibay .tb-service h3 { margin: 0; font-size: clamp(16px, 1.6vw, 22px); font-weight: 600; line-height: 1.22; }
.page-taxibay .tb-service p { margin: 0; font-size: 12.5px; line-height: 1.72; }
.tb-service ul { margin: 5px 0 0; padding: 13px 0 0; list-style: none; display: grid; gap: 6px; border-top: 1px solid var(--tb-line-soft); }
.page-taxibay .tb-service li { position: relative; padding-left: 16px; font-size: 11px; letter-spacing: .03em; color: var(--tb-gold) !important; }
.tb-service li::before { content: ""; position: absolute; top: 6px; left: 0; width: 7px; height: 1px; background: var(--tb-gold-soft); }

/* ==========================================================================
   Dải thương hiệu (chữ trắng trên ảnh)
   ========================================================================== */
.page-taxibay .tb-band {
  min-height: clamp(320px, 42vw, 520px);
  display: grid;
  align-content: end;
  padding: clamp(44px, 5.4vw, 88px) var(--tb-shell);
}
.tb-band-media { position: absolute; inset: 0; overflow: hidden; }
.tb-band-media img { width: 100%; height: 118%; object-fit: cover; object-position: center 36%; }
.tb-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(94deg, rgba(6, 13, 21, .88) 0%, rgba(6, 13, 21, .58) 42%, rgba(6, 13, 21, .12) 82%);
}
.tb-band-copy { position: relative; z-index: 3; max-width: 600px; }
.page-taxibay .tb-band h2 { margin: 0 0 14px; }
.page-taxibay .tb-band p { margin: 0; font-size: 13px; line-height: 1.75; }
body.page-taxibay main .tb-band-copy :is(h2, p) { color: #fff !important; text-shadow: 0 2px 14px rgba(0, 0, 0, .8); }
body.page-taxibay main .tb-band-copy .eyebrow { color: #e6cf9a !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .8); }

/* ==========================================================================
   Phương tiện
   ========================================================================== */
.page-taxibay .tb-craft { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: clamp(34px, 4.4vw, 78px); align-items: center; }
.tb-craft h2 { margin: 0 0 18px; }
.tb-spec { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 30px 0 26px; background: var(--tb-line-soft); border: 1px solid var(--tb-line-soft); }
.tb-spec > div { display: grid; align-content: start; gap: 3px; padding: 18px 16px; background: var(--tb-paper); }
.page-taxibay .tb-spec b { font-family: "Montserrat", sans-serif; font-size: clamp(23px, 2.4vw, 34px); font-weight: 600; line-height: 1; letter-spacing: -.03em; color: var(--tb-ink); }
.page-taxibay .tb-spec s { text-decoration: none; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tb-gold); }
.page-taxibay .tb-spec p { margin: 5px 0 0; font-size: 11px; }

.tb-craft-notes { margin: 0; padding: 0; list-style: none; display: grid; gap: 13px; }
.page-taxibay .tb-craft-notes li { position: relative; padding-left: 22px; font-size: 12.5px; line-height: 1.7; }
.tb-craft-notes li::before { content: ""; position: absolute; top: 9px; left: 0; width: 11px; height: 1px; background: var(--tb-gold-soft); }
.page-taxibay .tb-craft-notes b { color: var(--tb-ink); font-weight: 600; }

.tb-craft-visual { display: grid; justify-items: center; gap: 14px; }
.tb-craft-stage { position: relative; width: min(100%, 500px); aspect-ratio: 1; }
.tb-craft-svg { width: 100%; height: 100%; }
.tb-craft-rings { animation: tb-spin 48s linear infinite; transform-origin: 300px 300px; }
.tb-rotor-blades { animation: tb-spin 1.1s linear infinite; }
.tb-rotor:nth-of-type(even) .tb-rotor-blades { animation-direction: reverse; animation-duration: 1.35s; }
@keyframes tb-spin { to { transform: rotate(360deg); } }
.tb-craft-body { opacity: .55; }
.tb-craft-photo {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: 88%;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 26px 44px rgba(57, 46, 26, .2));
}
.page-taxibay .tb-craft-label {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--tb-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .95);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tb-muted);
  box-shadow: var(--tb-shadow);
  white-space: nowrap;
}
.tb-craft-label i { width: 5px; height: 5px; border-radius: 50%; background: var(--tb-gold-soft); }
.tb-craft-label-a { top: 6%; right: -2%; }
.tb-craft-label-b { bottom: 8%; left: -4%; }
.page-taxibay .tb-craft-caption { margin: 0; font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--tb-gold) !important; }

/* ==========================================================================
   Hạ tầng
   ========================================================================== */
.tb-infra-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.3vw, 18px); margin-bottom: clamp(20px, 2.4vw, 36px); }
.tb-infra-gallery figure { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--tb-line); border-radius: 3px; aspect-ratio: 4 / 3; box-shadow: var(--tb-shadow); }
.tb-infra-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--tb-ease); }
.tb-infra-gallery figure:hover img { transform: scale(1.06); }
.tb-infra-gallery figcaption {
  position: absolute;
  z-index: 2;
  inset: auto 0 0 0;
  display: grid;
  gap: 2px;
  padding: 30px 16px 14px;
  background: linear-gradient(0deg, rgba(255, 255, 255, .97) 0%, rgba(255, 255, 255, .8) 52%, rgba(255, 255, 255, 0) 100%);
}
.page-taxibay .tb-infra-gallery figcaption b { font-family: "Montserrat", sans-serif; font-size: 13px; font-weight: 600; color: var(--tb-ink); }
.page-taxibay .tb-infra-gallery figcaption span { font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tb-gold); }

.tb-infra-split { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(16px, 2vw, 30px); }
.tb-infra-split article {
  display: grid;
  align-content: start;
  gap: 16px;
  padding: clamp(24px, 2.6vw, 38px);
  border: 1px solid var(--tb-line);
  border-radius: 3px;
  background: var(--tb-paper);
  box-shadow: var(--tb-shadow);
}
.tb-infra-split header { display: flex; align-items: flex-start; gap: 15px; }
.page-taxibay .tb-infra-split header span {
  flex: 0 0 auto;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 1px solid var(--tb-gold-soft);
  border-radius: 50%;
  font-family: "Montserrat", sans-serif;
  font-size: 13px; font-weight: 600;
  color: var(--tb-gold);
}
.page-taxibay .tb-infra-split header h3 { margin: 0 0 4px; font-size: clamp(18px, 1.9vw, 25px); font-weight: 600; }
.page-taxibay .tb-infra-split header p { margin: 0; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tb-gold) !important; }
.page-taxibay .tb-infra-split > article > p { margin: 0; font-size: 12.5px; line-height: 1.75; }

.tb-infra-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--tb-line-soft); border: 1px solid var(--tb-line-soft); }
.page-taxibay .tb-infra-items span { padding: 13px 15px; background: var(--tb-ivory); font-size: 11.5px; color: var(--tb-muted); }
.page-taxibay .tb-infra-items b { display: block; font-family: "Montserrat", sans-serif; font-size: 17px; font-weight: 600; color: var(--tb-ink); }

.tb-pads { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.tb-pads i { position: relative; aspect-ratio: 1; display: block; border: 1px solid var(--tb-line); border-radius: 50%; }
.tb-pads i::before,
.tb-pads i::after { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; }
.tb-pads i::before { width: 42%; height: 42%; border: 1px solid var(--tb-line); }
.tb-pads i::after { width: 5px; height: 5px; background: var(--tb-gold-soft); opacity: .22; transition: opacity .4s ease, box-shadow .4s ease; }
.tb-pads i.is-live::after { opacity: 1; box-shadow: 0 0 0 5px rgba(183, 149, 82, .18), 0 0 14px rgba(183, 149, 82, .8); }

.tb-infra-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.page-taxibay .tb-infra-list li { position: relative; padding-left: 18px; font-size: 12px; line-height: 1.65; }
.tb-infra-list li::before { content: ""; position: absolute; top: 8px; left: 0; width: 9px; height: 1px; background: var(--tb-gold-soft); }

/* ==========================================================================
   Hành trình (băng ngang, bám tiến trình cuộn hai chiều)
   ========================================================================== */
.tb-journey-stage { position: relative; }
.tb-journey-rail { position: relative; height: 1px; margin-bottom: 26px; background: var(--tb-line-soft); overflow: hidden; }
.tb-journey-rail i { position: absolute; inset: 0; background: linear-gradient(90deg, var(--tb-gold), var(--tb-gold-lt)); transform: scaleX(0); transform-origin: left center; }
.tb-journey-track {
  display: flex;
  gap: clamp(13px, 1.5vw, 22px);
  margin: 0;
  padding: 4px 0 10px;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.tb-journey-track::-webkit-scrollbar { display: none; }
.tb-journey-track li {
  flex: 0 0 clamp(224px, 24vw, 300px);
  scroll-snap-align: start;
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 22px 22px 26px;
  border: 1px solid var(--tb-line-soft);
  border-radius: 3px;
  background: var(--tb-paper);
  transition: border-color .5s var(--tb-ease), box-shadow .5s var(--tb-ease), transform .5s var(--tb-ease);
}
.tb-journey-track li.is-on { border-color: var(--tb-gold-soft); box-shadow: var(--tb-shadow-lg); transform: translateY(-4px); }
.page-taxibay .tb-journey-track b { font-family: "Montserrat", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .22em; color: var(--tb-gold); }
.page-taxibay .tb-journey-track h3 { margin: 0; font-size: clamp(15px, 1.4vw, 19px); font-weight: 600; line-height: 1.22; }
.page-taxibay .tb-journey-track p { margin: 0; font-size: 12px; line-height: 1.7; }
.tb-journey-track figure { margin: 0; overflow: hidden; border-radius: 2px; aspect-ratio: 16 / 7; }
.tb-journey-track figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--tb-ease); }
.tb-journey-track li.is-on figure img { transform: scale(1.06); }

/* ==========================================================================
   Lộ trình
   ========================================================================== */
.tb-timeline { position: relative; margin: 0 0 clamp(28px, 3.4vw, 54px); padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--tb-line-soft); border: 1px solid var(--tb-line-soft); }
.tb-timeline li { position: relative; display: grid; align-content: start; gap: 8px; padding: clamp(22px, 2.4vw, 34px); background: var(--tb-paper); }
.tb-timeline li.is-key { background: var(--tb-ivory); }
.tb-timeline li::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--tb-gold-soft), transparent); transform: scaleX(0); transform-origin: left center; transition: transform .8s var(--tb-ease); }
.tb-timeline li.is-on::after { transform: scaleX(1); }
.page-taxibay .tb-timeline span { font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--tb-gold); }
.page-taxibay .tb-timeline h3 { margin: 0; font-size: clamp(16px, 1.5vw, 20px); font-weight: 600; }
.page-taxibay .tb-timeline p { margin: 0; font-size: 12.5px; line-height: 1.7; }

.tb-phase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 26px); }
.tb-phase article { display: grid; align-content: start; gap: 5px; padding: clamp(24px, 2.6vw, 38px); border: 1px solid var(--tb-line); border-radius: 3px; background: linear-gradient(150deg, rgba(183, 149, 82, .1), rgba(255, 255, 255, 0)); box-shadow: var(--tb-shadow); }
.page-taxibay .tb-phase b { font-family: "Montserrat", sans-serif; font-size: clamp(32px, 3.6vw, 52px); font-weight: 600; line-height: 1; letter-spacing: -.035em; color: var(--tb-ink); }
.page-taxibay .tb-phase s { text-decoration: none; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--tb-gold); }
.page-taxibay .tb-phase p:last-child { margin: 9px 0 0; font-size: 12.5px; line-height: 1.7; }

/* ==========================================================================
   Hiệu quả
   ========================================================================== */
.tb-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--tb-line-soft); border: 1px solid var(--tb-line-soft); }
.tb-value-grid article { display: grid; align-content: start; gap: 5px; padding: clamp(24px, 2.6vw, 38px); background: var(--tb-paper); transition: background-color .5s var(--tb-ease); }
.tb-value-grid article:hover { background: var(--tb-ivory); }
.page-taxibay .tb-value-grid b { font-family: "Montserrat", sans-serif; font-size: clamp(30px, 3.4vw, 48px); font-weight: 600; line-height: 1; letter-spacing: -.035em; color: var(--tb-ink); }
.page-taxibay .tb-value-grid b i { font-style: normal; font-size: .46em; letter-spacing: 0; color: var(--tb-gold); }
.page-taxibay .tb-value-grid s { text-decoration: none; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--tb-gold); }
.page-taxibay .tb-value-grid p { margin: 9px 0 0; font-size: 12px; line-height: 1.7; }

/* ==========================================================================
   Kết nối
   ========================================================================== */
.page-taxibay .tb-contact { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(30px, 4vw, 74px); align-items: start; }
.tb-contact-copy h2 { margin: 0 0 16px; }
.page-taxibay .tb-contact-copy > p { margin: 0 0 26px; font-size: 13px; line-height: 1.75; }
.tb-contact-lines { display: grid; }
.page-taxibay .tb-contact-lines a { display: grid; grid-template-columns: minmax(90px, 24%) minmax(0, 1fr); gap: 14px; padding: 14px 0; border-top: 1px solid var(--tb-line-soft); text-decoration: none; font-size: 14px; color: var(--tb-ink); transition: color .4s ease; }
.tb-contact-lines a:last-child { border-bottom: 1px solid var(--tb-line-soft); }
.page-taxibay .tb-contact-lines a:hover { color: var(--tb-gold); }
.page-taxibay .tb-contact-lines span { align-self: center; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tb-gold); }

.tb-contact-form { padding: clamp(24px, 2.8vw, 40px); border: 1px solid var(--tb-line); border-radius: 3px; background: var(--tb-ivory); box-shadow: var(--tb-shadow); }
.tb-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 17px; }
.tb-field-full { grid-column: 1 / -1; }
.tb-contact-form label { display: grid; gap: 7px; }
.page-taxibay .tb-contact-form label span { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--tb-gold) !important; }
.tb-contact-form input,
.tb-contact-form select,
.tb-contact-form textarea { width: 100%; padding: 12px 14px; border-radius: 2px; font-size: 13px; transition: border-color .35s ease; }
.tb-contact-form textarea { resize: vertical; }
.tb-contact-form input:focus,
.tb-contact-form select:focus,
.tb-contact-form textarea:focus { outline: none; border-color: var(--tb-gold-soft) !important; }
.tb-contact-form button {
  margin-top: 20px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 32px;
  color: #22190a;
  background: linear-gradient(120deg, #e2c884, #b79552 58%, #d7bc7c);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  text-transform: uppercase;
  transition: transform .4s var(--tb-ease), box-shadow .4s var(--tb-ease);
}
.tb-contact-form button:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(120, 92, 32, .34); }
.tb-contact-form button span { transition: transform .4s var(--tb-ease); }
.tb-contact-form button:hover span { transform: translateX(5px); }
.page-taxibay .tb-form-note { margin: 15px 0 0; font-size: 11px; }
.page-taxibay .tb-form-status { margin: 10px 0 0; min-height: 18px; font-size: 12px; color: var(--tb-gold) !important; }
.page-taxibay .tb-form-status.is-error { color: #b1452f !important; }

/* ==========================================================================
   Motion (dự phòng CSS khi GSAP không khả dụng — xem motion.js)
   ========================================================================== */
.page-taxibay [data-mo] { will-change: opacity, transform; }
html.tb-motion-css .page-taxibay [data-mo] { opacity: 0; transition: opacity .85s var(--tb-ease), transform .85s var(--tb-ease); transition-delay: var(--tb-mo-delay, 0s); }
html.tb-motion-css .page-taxibay [data-mo="up"] { transform: translate3d(0, 42px, 0); }
html.tb-motion-css .page-taxibay [data-mo="left"] { transform: translate3d(-42px, 0, 0); }
html.tb-motion-css .page-taxibay [data-mo="right"] { transform: translate3d(42px, 0, 0); }
html.tb-motion-css .page-taxibay [data-mo="scale"] { transform: scale(.965); }
html.tb-motion-css .page-taxibay [data-mo="mask"] { transform: translate3d(0, 34px, 0); }
html.tb-motion-css .page-taxibay [data-mo].is-in { opacity: 1; transform: none; }
html.tb-motion-css .page-taxibay [data-mo="left"].is-out-up { transform: translate3d(42px, 0, 0); }
html.tb-motion-css .page-taxibay [data-mo="right"].is-out-up { transform: translate3d(-42px, 0, 0); }
html.tb-motion-css .page-taxibay [data-mo="up"].is-out-up { transform: translate3d(0, -42px, 0); }


/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
  .tb-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tb-service, .tb-service.is-lead { grid-column: span 2; }
  .tb-timeline, .tb-value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-infra-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-craft-label-a { right: 0; }
  .tb-craft-label-b { left: 0; }
}

@media (max-width: 980px) {
  .page-taxibay .tb-overview,
  .page-taxibay .tb-craft,
  .page-taxibay .tb-contact,
  .tb-infra-split { grid-template-columns: minmax(0, 1fr); }
  .tb-rail, .tb-scroll-cue { display: none; }
  .tb-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .page-taxibay .tb-hero { min-height: 92svh; }
  .tb-hero-copy { padding-top: 128px; }
  .tb-hero-plume { top: 10%; width: 42vw; opacity: .08; }
  .tb-hero-stats article { padding: 16px 15px 20px; }
  .tb-service-grid { grid-template-columns: minmax(0, 1fr); }
  .tb-service, .tb-service.is-lead { grid-column: span 1; }
  .tb-spec { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tb-infra-gallery, .tb-infra-items { grid-template-columns: minmax(0, 1fr); }
  .tb-timeline, .tb-value-grid, .tb-phase, .tb-field-grid { grid-template-columns: minmax(0, 1fr); }
  .tb-facts > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .tb-craft-label { display: none; }
  .page-taxibay .tb-band { min-height: 400px; }
  .tb-band-media img { object-position: 64% 36%; }
  .tb-band::after { background: linear-gradient(180deg, rgba(6, 13, 21, .5) 0%, rgba(6, 13, 21, .9) 74%); }
  .tb-splash-word s { letter-spacing: .3em; text-indent: .3em; }
}

/* ==========================================================================
   Bổ sung sau khi soi trang thật
   ========================================================================== */

/* subpage-shell.css ẩn toàn bộ .eyebrow trên site. Dòng thương hiệu hero và
   nhãn giai đoạn là nội dung bắt buộc nên dùng lớp riêng, không phải .eyebrow. */
.page-taxibay .tb-hero-kicker {
  margin: 0 0 14px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #e6cf9a !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .72);
}
.page-taxibay .tb-phase-label {
  margin: 0 0 8px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--tb-gold) !important;
}

/* Dấu thanh tiếng Việt chạm nhau ở line-height .96 mà sector-system.css áp. */
body.page-taxibay main > section:first-child h1 { line-height: 1.08 !important; }
body.page-taxibay main section h2 { line-height: 1.1 !important; }

/* Ảnh render EH216-S có nền xám studio; đặt trong khay xám cùng tông để
   phần nền đọc như chủ ý thay vì như ảnh chưa tách nền. */
.tb-craft-stage {
  border-radius: 4px;
  background: radial-gradient(72% 62% at 50% 46%, #cbcbce 0%, #d5d5d8 46%, #e6e5e3 78%, #f4f2ee 100%);
  box-shadow: var(--tb-shadow-lg);
  overflow: hidden;
}
.tb-craft-svg { position: absolute; inset: 0; }
.tb-craft-photo { width: 94%; filter: none; }
.tb-craft-label-a { top: 5%; right: 4%; }
.tb-craft-label-b { bottom: 6%; left: 4%; }

/* Đơn vị "năm / tháng" trong ô hoàn vốn cần khoảng thở để đọc thành cụm. */
.page-taxibay .tb-value-grid b i { margin: 0 .16em 0 .1em; }

/* Ảnh render lấp đầy khay để không lộ mép chữ nhật của nền studio;
   vòng tròn kỹ thuật xoay phía trên như một lớp phủ. */
.tb-craft-stage { background: #cdcdd0; }
.tb-craft-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: none; }
.tb-craft-svg { z-index: 3; pointer-events: none; }
.tb-craft-rings { stroke: #6f6f74 !important; }

/* ==========================================================================
   Bộ khung nhiều trang: điều hướng phụ, hero trang con, bảng, CTA
   ========================================================================== */

/* --- Hero trang con --- */
.page-taxibay .tb-phero {
  min-height: clamp(360px, 52vh, 560px);
  padding: 0;
  display: grid;
  align-content: end;
}
.tb-phero-media { position: absolute; inset: 0; overflow: hidden; }
.tb-phero-media img { width: 100%; height: 112%; object-fit: cover; }
.tb-phero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, 0) 30%),
    linear-gradient(94deg, rgba(6, 13, 21, .86) 0%, rgba(6, 13, 21, .52) 46%, rgba(6, 13, 21, .1) 86%),
    linear-gradient(0deg, rgba(6, 13, 21, .7) 0%, rgba(6, 13, 21, 0) 52%);
}
.tb-phero-copy {
  position: relative;
  z-index: 3;
  max-width: 880px;
  padding: 150px var(--tb-shell) clamp(38px, 4.4vw, 66px);
}
.page-taxibay .tb-phero h1 { margin: 0 0 16px; }
.page-taxibay .tb-phero-lead { margin: 0; max-width: 62ch; font-size: 13.5px; line-height: 1.75; }
.tb-crumb { display: flex; align-items: center; gap: 9px; margin: 0 0 14px; }
.page-taxibay .tb-crumb a,
.page-taxibay .tb-crumb span {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  text-decoration: none;
}
body.page-taxibay main > section:first-child :is(h1, h1 span, .tb-phero-lead) {
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .72);
}
body.page-taxibay main .tb-crumb :is(a, span) { color: #e6cf9a !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .72); }
.page-taxibay .tb-crumb a:hover { color: #fff !important; }

/* --- Bảng dữ liệu --- */
.tb-table-wrap { overflow-x: auto; border: 1px solid var(--tb-line-soft); border-radius: 3px; }
.tb-table { width: 100%; min-width: 620px; border-collapse: collapse; background: var(--tb-paper); }
.page-taxibay .tb-table th {
  padding: 14px 16px;
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tb-gold) !important;
  background: var(--tb-ivory);
  border-bottom: 1px solid var(--tb-line-soft);
  white-space: nowrap;
}
.page-taxibay .tb-table td {
  padding: 13px 16px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--tb-muted);
  border-bottom: 1px solid var(--tb-line-soft);
  vertical-align: top;
}
.page-taxibay .tb-table tbody tr:last-child td { border-bottom: 0; }
.page-taxibay .tb-table tbody tr:hover td { background: #fffdf8; }
.page-taxibay .tb-table td b { color: var(--tb-ink); font-weight: 600; }
.page-taxibay .tb-table tr.is-total td { background: var(--tb-ivory); color: var(--tb-ink); font-weight: 600; }
.tb-table td.num, .tb-table th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* --- Bố cục hai cột nội dung --- */
.tb-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(26px, 3.4vw, 62px); align-items: start; }
.tb-cols-wide { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.page-taxibay .tb-prose p { margin: 0 0 15px; font-size: 13px; line-height: 1.78; }
.page-taxibay .tb-prose p:last-child { margin-bottom: 0; }
.page-taxibay .tb-prose h3 { margin: 26px 0 10px; font-size: clamp(16px, 1.5vw, 20px); font-weight: 600; }
.page-taxibay .tb-prose h3:first-child { margin-top: 0; }
.tb-figure { margin: 0; overflow: hidden; border: 1px solid var(--tb-line); border-radius: 3px; box-shadow: var(--tb-shadow); }
.tb-figure img { display: block; width: 100%; height: auto; }
.page-taxibay .tb-figure figcaption { padding: 13px 16px; background: var(--tb-ivory); font-size: 11px; letter-spacing: .04em; color: var(--tb-muted) !important; border-top: 1px solid var(--tb-line-soft); }

/* --- Dải chuyển tiếp cuối trang --- */
.page-taxibay .tb-next { padding-block: clamp(44px, 5vw, 76px); }
.tb-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(13px, 1.5vw, 20px); }
.page-taxibay .tb-next-grid a {
  display: grid;
  align-content: start;
  gap: 7px;
  padding: clamp(20px, 2.2vw, 30px);
  border: 1px solid var(--tb-line-soft);
  border-radius: 3px;
  background: var(--tb-paper);
  text-decoration: none;
  transition: transform .5s var(--tb-ease), border-color .5s var(--tb-ease), box-shadow .5s var(--tb-ease);
}
.page-taxibay .tb-next-grid a:hover { transform: translateY(-5px); border-color: var(--tb-gold-soft); box-shadow: var(--tb-shadow-lg); }
.page-taxibay .tb-next-grid span { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--tb-gold) !important; }
.page-taxibay .tb-next-grid b { font-family: "Montserrat", sans-serif; font-size: clamp(15px, 1.4vw, 19px); font-weight: 600; color: var(--tb-ink); }
.page-taxibay .tb-next-grid p { margin: 0; font-size: 12px; line-height: 1.65; }

/* --- Nút "xem chi tiết" ở trang chủ --- */
.tb-more { margin-top: clamp(22px, 2.6vw, 36px); }
.page-taxibay .tb-more a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 28px;
  border: 1px solid var(--tb-line);
  border-radius: 999px;
  text-decoration: none;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tb-gold) !important;
  transition: color .4s var(--tb-ease), background-color .4s var(--tb-ease), border-color .4s var(--tb-ease), transform .4s var(--tb-ease);
}
.page-taxibay .tb-more a:hover { color: #22190a !important; background: var(--tb-gold-lt); border-color: var(--tb-gold-lt); transform: translateY(-2px); }
.tb-more a span { transition: transform .4s var(--tb-ease); }
.tb-more a:hover span { transform: translateX(5px); }


@media (max-width: 980px) {
  .tb-cols, .tb-cols-wide { grid-template-columns: minmax(0, 1fr); }
  .tb-next-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .tb-phero-copy { padding-top: 122px; }
}

/* Tiêu đề khối trong bố cục hai cột là tiêu đề phụ, không phải tiêu đề section —
   sector-system.css ép mọi h2 lên 42–58px nên phải hạ riêng cho nhóm này. */
.page-taxibay .tb-cols .tb-prose h2 {
  font-size: clamp(23px, 2.3vw, 33px) !important;
  line-height: 1.16 !important;
  letter-spacing: -.02em !important;
}

/* Trên mobile, các bảng 2 cột đặt min-width:0 bị ép co làm số bị cắt và nhãn
   vỡ dòng — cho chúng cuộn ngang trong khung thay vì bóp lại. */
@media (max-width: 720px) {
  .page-taxibay .tb-table { min-width: 440px !important; }
  .page-taxibay .tb-table th,
  .page-taxibay .tb-table td { padding: 11px 13px; }
}
