    :root {
      /* Brand colors pulled from Figma */
      --link: #0077fa;
      /* blue accent / numbers */
      --main: #3db137;
      /* green accent */
      --blue-deep: #008cb7;
      /* gradient start (deep blue) */
      --green-light: #76d46e;
      /* gradient end (light green) */
      --violet: #5a40ff;
      --warning: #ff8800;
      --text-black: #121416;
      --text-secondary: rgba(18, 20, 22, 0.64);
      --text-muted: #4a5565;
      --process-text: #423d3d;
      --border: rgba(18, 20, 22, 0.09);
      --grad-brand: linear-gradient(90deg, #0077fa 0%, #3db137 100%);
      --grad-pill: linear-gradient(105deg, #008cb7 0%, #1a9c8f 46%, #4fbc40 76%, #6cce2d 92%, #76d46e 100%);
      --content-width: 1280px;
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: "Plus Jakarta Sans", "Google Sans Flex", system-ui, sans-serif;
      color: var(--text-black);
      background: #ffffff;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    img {
      display: block;
      max-width: 100%;
    }

    .wrap {
      width: 100%;
      max-width: var(--content-width);
      margin: 0 auto;
      padding: 0 64px;
    }

    a {
      text-decoration: none;
      color: inherit;
    }

    .text-gradient {
      background: var(--grad-brand);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    /* ========================= HERO BAND (header + hero) ========================= */
    .hero-band {
      position: relative;
      width: 100%;
      overflow: hidden;
      background: #ffffff;
    }

    /* big decorative ellipse top-right */
    .hero-ellipse {
      position: absolute;
      top: -100px;
      left: 549px;
      width: 924px;
      height: 200px;
      border-radius: 50%;
      background: radial-gradient(closest-side, rgba(118, 212, 110, 0.35), rgba(0, 140, 183, 0.10) 70%, transparent);
      filter: blur(8px);
      pointer-events: none;
      z-index: 0;
    }

    /* hero photo full-bleed on the right */
    .hero-photo {
      position: absolute;
      top: 0;
      right: -54px;
      width: 1578px;
      max-width: none;
      height: 789px;
      object-fit: cover;
      z-index: 0;
    }

    /* white fade overlay over left part of photo */
    .hero-fade {
      position: absolute;
      top: 0;
      left: 0;
      width: 1100px;
      height: 789px;
      z-index: 1;
      pointer-events: none;
      background: linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 12%, rgba(255, 255, 255, 0.92) 20%, #fff 25%, #fff 100%);
    }

    /* ---------- Header ---------- */
    header.site-header {
      position: sticky;
      top: 0;
      z-index: 50;
      width: 100%;
    }

    .header-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 24px 64px;
      max-width: var(--content-width);
      margin: 0 auto;
    }

    .logo-lockup {
      display: flex;
      align-items: center;
      gap: 24px;
    }

    .logo-block {
      position: relative;
      width: 209px;
      height: 56px;
    }

    .logo-block .logo-new {
      position: absolute;
      left: 81px;
      top: 0;
      width: 47px;
    }

    .logo-block .logo-text {
      position: absolute;
      left: 0;
      top: 18px;
      width: 209px;
    }

    .logo-block .powered {
      position: absolute;
      left: 64px;
      top: 47px;
      width: 82px;
    }

    .catphcm {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
    }

    .catphcm img {
      height: 41px;
      width: auto;
    }

    .catphcm span {
      font-size: 8px;
      font-weight: 800;
      line-height: 1.4;
      text-align: center;
      max-width: 142px;
      background: linear-gradient(79deg, #d7ac01 6%, #ffff73 38%, #f3d631 90%, #d0b100 115%);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      text-shadow: 0 0.5px 0.5px rgba(0, 0, 0, 0.4);
      opacity: 0.9;
    }

    nav.main-nav {
      display: flex;
      align-items: center;
      gap: 12px;
      background: rgba(16, 16, 16, 0.55);
      backdrop-filter: blur(15px);
      -webkit-backdrop-filter: blur(15px);
      border-radius: 990px;
      padding: 8px;
    }

    nav.main-nav a {
      font-size: 16px;
      font-weight: 500;
      color: #fff;
      padding: 8px 14px;
      border-radius: 999px;
      white-space: nowrap;
      transition: background .2s, color .2s;
    }

    nav.main-nav a.active {
      background: #fff;
      color: #000;
    }

    nav.main-nav a:hover:not(.active):not(.btn-find) {
      background: rgba(255, 255, 255, 0.12);
    }

    .btn-find {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--grad-pill);
      color: #fff !important;
      font-weight: 500;
      padding: 8px 16px !important;
      border-radius: 120px !important;
      box-shadow: 0 -0.6px 0.6px rgba(0, 0, 0, 0.1);
    }

    .btn-find svg {
      width: 20px;
      height: 20px;
    }

    /* ---------- Hero content ---------- */
    .hero-content {
      position: relative;
      z-index: 2;
      max-width: var(--content-width);
      margin: 0 auto;
      padding: 63px 64px 0;
      min-height: 633px;
    }

    .hero-left {
      width: 654px;
      display: flex;
      flex-direction: column;
      gap: 24px;
    }

    .tag-pill {
      display: inline-flex;
      align-items: center;
      align-self: flex-start;
      background: #fff;
      /* border: 1px solid var(--link); */
      border-radius: 120px;
      overflow: hidden;
    }

    .tag-pill .tag-24 {
      background: var(--grad-pill);
      color: #fff;
      font-weight: 700;
      font-size: 20px;
      line-height: 22px;
      padding: 8px 16px;
      border-radius: 24px;
    }

    .tag-pill .tag-label {
      padding: 12px 24px 12px 12px;
      font-size: 16px;
      font-weight: 600;
      background: linear-gradient(90deg, var(--link), var(--main));
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero-h1 {
      font-size: 40px;
      font-weight: 700;
      line-height: 1.22;
      padding-top: 0.08em;
      width: 547px;
      background: linear-gradient(90deg, #0077fa, #3db137);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .hero-sub {
      font-size: 20px;
      line-height: 28px;
      color: var(--text-muted);
      max-width: 654px;
    }

    .hero-features {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      width: 490px;
    }

    .feat-item {
      display: flex;
      gap: 16px;
      align-items: center;
      padding: 8px 12px;
    }

    .feat-item img,
    .feat-item>svg {
      width: 32px;
      height: 32px;
      flex-shrink: 0;
    }

    .feat-item .feat-title {
      font-size: 16px;
      font-weight: 600;
      color: var(--text-black);
      margin-bottom: 8px;
      line-height: 22px;
    }

    .feat-item .feat-sub {
      font-size: 14px;
      color: var(--text-secondary);
      line-height: 22px;
    }

    /* ========================= STATS BAR ========================= */
    .stats-section {
      position: relative;
      z-index: 5;
      margin-top: -70px;
    }

    .stats-section .wrap {
      max-width: 1380px;
      padding: 0 30px;
    }

    .stats-card {
      background: #fff;
      border-radius: 120px;
      box-shadow: 0 6px 24px rgba(83, 83, 83, 0.12);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      margin: 0 auto;
    }

    .stats-row {
      width: 100%;
      max-width: 1152px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .stat {
      display: flex;
      gap: 14px;
      align-items: center;
      padding: 24px 0;
    }

    .stat .stat-icon {
      width: 61.6px;
      height: 61.6px;
      border-radius: 15.4px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .stat .stat-icon img,
    .stat .stat-icon svg {
      width: 32px;
      height: 32px;
    }

    .stat .stat-icon.blue {
      background: var(--link);
    }

    .stat .stat-icon.green {
      background: var(--main);
    }

    .stat .stat-icon.violet {
      background: var(--violet);
    }

    .stat .stat-icon.orange {
      background: var(--warning);
    }

    .stat-label {
      font-size: 15.4px;
      color: var(--text-muted);
      line-height: 22px;
    }

    .stat-number {
      font-size: 32px;
      font-weight: 700;
      line-height: 1.1;
      margin: 8px 0;
    }

    .stat-number.blue {
      color: var(--link);
    }

    .stat-number.green {
      color: var(--main);
    }

    .stat-number.violet {
      color: var(--violet);
    }

    .stat-number.orange {
      color: var(--warning);
    }

    /* ========================= SECTION TITLE ========================= */
    .section {
      padding-top: 96px;
    }

    .section-head {
      text-align: center;
      margin-bottom: 36px;
    }

    .section-head h2 {
      font-size: 32px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.4px;
      line-height: 1.35;
      padding: 0.1em 0 0.05em;
      background: linear-gradient(90deg, #0077fa, #3db137);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .section-underline {
      display: none;
    }

    /* ========================= SERVICES (HUB & SPOKE) ========================= */
    .svc-subtitle {
      text-align: center;
      font-size: 16px;
      color: var(--text-muted);
      margin: -18px auto 8px;
      max-width: 560px;
    }

    .services-hub {
      position: relative;
      width: 100%;
      max-width: 1160px;
      height: 560px;
      margin: 24px auto 0;
    }

    /* bg.webp ở lớp riêng + mask radial → mép ảnh fade mềm vào nền trắng */
    .services-hub::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 0;
      background: url('../assets/bg.webp') center center / contain no-repeat;
      -webkit-mask-image: radial-gradient(ellipse 98% 82% at 50% 46%, #000 66%, rgba(0, 0, 0, 0) 100%);
      mask-image: radial-gradient(ellipse 98% 82% at 50% 46%, #000 66%, rgba(0, 0, 0, 0) 100%);
      pointer-events: none;
    }

    /* bg.webp đã có vòng sáng + icon rải + skyline → ẩn phần CSS tự gen */
    .hub-decor,
    .hub-orb-glow,
    .hub-orb-ring,
    .hub-orb-float,
    .hub-connectors {
      display: none !important;
    }

    /* Connector + decoration layers */
    .hub-connectors,
    .hub-decor {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }

    .hub-connectors {
      z-index: 1;
    }

    .hub-decor svg {
      position: absolute;
      width: 30px;
      height: 30px;
      opacity: 0.5;
    }

    /* ---- Center orb ---- */
    .hub-orb {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) translateY(26px);
      width: 320px;
      height: 320px;
      border-radius: 50%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      z-index: 3;
    }

    .hub-orb-ring {
      position: absolute;
      inset: 6px;
      border-radius: 50%;
      pointer-events: none;
    }

    .hub-orb-glow {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 360px;
      height: 360px;
      border-radius: 50%;
      z-index: 2;
      background: radial-gradient(circle, rgba(0, 119, 250, 0.18) 0%, rgba(0, 178, 230, 0.10) 40%, rgba(255, 255, 255, 0) 70%);
      filter: blur(4px);
      pointer-events: none;
    }

    /* Tâm: đĩa tròn + 2 vòng xoay (animation) quanh logo VNeID */
    .hub-orb-disc {
      position: relative;
      width: 148px;
      height: 148px;
      flex-shrink: 0;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 26px;
      background: #fff;
      box-shadow: 0 6px 20px rgba(20, 50, 90, 0.14);
    }

    .hub-orb-disc::before {
      content: "";
      position: absolute;
      inset: -8px;
      border-radius: 50%;
      border: 2px dashed rgba(0, 119, 250, 0.40);
      animation: hubspin 22s linear infinite;
    }

    .hub-orb-disc::after {
      content: "";
      position: absolute;
      inset: -22px;
      border-radius: 50%;
      border: 2px solid rgba(38, 171, 136, 0.16);
      border-top-color: rgba(0, 119, 250, 0.55);
      border-right-color: rgba(38, 171, 136, 0.5);
      animation: hubspin 9s linear infinite reverse;
    }

    @keyframes hubspin {
      to {
        transform: rotate(360deg);
      }
    }

    @keyframes hubpulse {

      0%,
      100% {
        transform: scale(1);
      }

      50% {
        transform: scale(1.06);
      }
    }

    .hub-vneid-img {
      width: 92px;
      height: auto;
      display: block;
      position: relative;
      top: 0;
      filter: drop-shadow(0 5px 12px rgba(0, 0, 0, 0.20));
      animation: hubpulse 3.6s ease-in-out infinite;
    }

    .hub-orb-title {
      font-size: 20px;
      font-weight: 800;
      letter-spacing: 0.6px;
      color: var(--text-black);
    }

    .hub-orb-tag {
      font-size: 12.5px;
      font-weight: 600;
      color: var(--main);
      margin-top: 4px;
    }

    .hub-orb-sub {
      font-size: 11px;
      color: var(--text-muted);
      margin-top: 3px;
    }

    .hub-orb-float {
      position: absolute;
      opacity: 0.22;
    }

    .hub-orb-float.f1 {
      top: 6%;
      left: -2%;
    }

    .hub-orb-float.f2 {
      top: 14%;
      right: -4%;
    }

    .hub-orb-float.f3 {
      bottom: 8%;
      left: 8%;
    }

    /* ---- Service cards ---- */
    .hub-card {
      position: absolute;
      width: 244px;
      background: #fff;
      border-radius: 18px;
      padding: 12px 24px;
      box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--acc, #9aa6c4) 30%, transparent);
      z-index: 4;
      backdrop-filter: blur(12px) saturate(1.15);
      -webkit-backdrop-filter: blur(12px) saturate(1.15);
    }

    .hub-card-badge {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 2px 10px rgba(20, 24, 31, 0.10);
      margin-bottom: 14px;
    }

    .hub-card-badge svg {
      width: 30px;
      height: 30px;
    }

    .hub-card h3 {
      font-size: 17px;
      font-weight: 700;
      color: var(--text-black);
      text-transform: uppercase;
      line-height: 1.4;
      margin-bottom: 8px;
    }

    .hub-card p {
      font-size: 13.5px;
      line-height: 19px;
      color: var(--text-muted);
    }

    /* card accent colors */
    .hub-card.acc-blue {
      --acc: #0077fa;
      border: 1px solid rgba(0, 119, 250, 0.28);
      background: linear-gradient(160deg, rgba(0, 119, 250, 0.05), rgba(255, 255, 255, 0.6) 60%);
    }

    .hub-card.acc-orange {
      --acc: #ff8800;
      border: 1px solid rgba(255, 136, 0, 0.30);
      background: linear-gradient(160deg, rgba(255, 136, 0, 0.06), rgba(255, 255, 255, 0.6) 60%);
    }

    .hub-card.acc-purple {
      --acc: #7c3aed;
      border: 1px solid rgba(124, 58, 237, 0.28);
      background: linear-gradient(160deg, rgba(124, 58, 237, 0.05), rgba(255, 255, 255, 0.6) 60%);
    }

    .hub-card.acc-green {
      --acc: #3db137;
      border: 1px solid rgba(61, 177, 55, 0.28);
      background: linear-gradient(160deg, rgba(61, 177, 55, 0.05), rgba(255, 255, 255, 0.6) 60%);
    }

    .hub-card.acc-red {
      --acc: #e11d48;
      border: 1px solid rgba(225, 29, 72, 0.26);
      background: linear-gradient(160deg, rgba(225, 29, 72, 0.05), rgba(255, 255, 255, 0.6) 60%);
    }

    /* Card layout: icon trái — content phải (grid, badge span 2 hàng) */
    .hub-card {
      display: grid;
      grid-template-columns: auto 1fr;
      column-gap: 14px;
      align-items: center;
      align-content: center;
      width: 276px;
      min-height: 158px;
    }

    .hub-card .hub-card-badge {
      grid-row: 1 / span 2;
      align-self: center;
      margin-bottom: 0;
    }

    .hub-card h3 {
      grid-column: 2;
      grid-row: 1;
      margin-bottom: 4px;
    }

    .hub-card p {
      grid-column: 2;
      grid-row: 2;
    }

    /* card positions (around the orb) */
    /* Ngũ giác — neo theo TÂM mỗi box (translate -50%,-50%) đặt đúng đỉnh, độc lập chiều cao box */
    .hub-card {
      transform: translate(-50%, -50%);
    }

    .hub-card.p-finance {
      top: 98px;
      left: 50%;
    }

    .hub-card.p-medical {
      top: 319px;
      left: 23.8%;
    }

    .hub-card.p-market {
      top: 319px;
      left: 76.2%;
    }

    .hub-card.p-admin {
      top: 677px;
      left: 33.8%;
    }

    .hub-card.p-security {
      top: 677px;
      left: 66.2%;
    }

    /* 5 card xếp hàng ngang, kéo lên đè nửa trên nền bg */
    .hub-cards-flow {
      display: flex;
      gap: 14px;
      justify-content: center;
      align-items: stretch;
      max-width: 1160px;
      margin: -92px auto 0;
      position: relative;
      z-index: 5;
    }

    .hub-cards-flow .hub-card {
      position: static;
      transform: none;
      width: auto;
      flex: 1 1 0;
      min-width: 0;
      padding: 20px 22px;
    }

    /* ---- Bottom trust badge pill ---- */
    .hub-trust {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 12px 34px;
      margin: 8px auto 0;
      width: fit-content;
      max-width: 100%;
      padding: 16px 36px;
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 999px;
      box-shadow: 0 10px 28px rgba(20, 24, 31, 0.08);
    }

    .hub-trust-item {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      font-size: 14px;
      font-weight: 600;
      color: var(--text-black);
    }

    .hub-trust-item svg {
      width: 20px;
      height: 20px;
      flex-shrink: 0;
    }

    /* ---- Responsive: collapse to grid ---- */
    @media (max-width: 1100px) {
      .services-hub {
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 26px;
      }

      .hub-connectors,
      .hub-decor,
      .hub-orb-glow {
        display: none;
      }

      .hub-orb {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        width: auto;
        height: auto;
        margin-bottom: 6px;
      }

      .hub-cards-flow {
        display: grid;
        grid-template-columns: repeat(2, minmax(220px, 280px));
        gap: 20px;
        width: 100%;
        justify-content: center;
      }

      .hub-card {
        position: static !important;
        transform: none !important;
        width: 100%;
        inset: auto !important;
      }
    }

    @media (max-width: 620px) {
      .hub-cards-flow {
        grid-template-columns: 1fr;
        max-width: 360px;
      }

      .hub-trust {
        border-radius: 24px;
        padding: 16px 22px;
      }
    }

    /* ========================= LOCATIONS ========================= */
    .loc-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 26px;
    }

    .loc-card {
      display: flex;
      flex-direction: column;
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid var(--border);
      background: #fff;
    }

    .loc-photo {
      width: 100%;
      height: 200px;
      object-fit: cover;
    }

    .loc-body {
      padding: 16px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      height: 180px;
    }

    .loc-name {
      font-size: 16px;
      font-weight: 600;
      color: var(--text-black);
      line-height: 22px;
    }

    .loc-addr {
      display: flex;
      gap: 8.8px;
      align-items: flex-start;
    }

    .loc-addr svg {
      width: 17.6px;
      height: 17.6px;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .loc-addr p {
      font-size: 11px;
      color: var(--text-secondary);
      line-height: 18.7px;
    }

    .btn-direction {
      margin-top: auto;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      height: 40px;
      border: 1.5px solid transparent;
      border-radius: 120px;
      background: linear-gradient(#fff, #fff) padding-box, var(--grad-pill) border-box;
      box-shadow: 0 -0.6px 1.14px rgba(0, 0, 0, 0.1);
      font-size: 18px;
      font-weight: 600;
      cursor: pointer;
    }

    .btn-direction .bd-label {
      background: var(--grad-pill);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }

    .btn-direction svg {
      width: 20px;
      height: 20px;
    }

    /* ========================= PROCESS ========================= */
    .process-wrap {
      position: relative;
      counter-reset: proc;
      max-width: 1185px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }

    .proc-set {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
      counter-increment: proc;
    }

    /* dashed line nối các bước */
    .proc-set:not(:nth-of-type(4))::before {
      content: "";
      position: absolute;
      top: 63px;
      left: calc(50% + 64px);
      width: calc(100% - 128px);
      border-top: 2px dashed color-mix(in srgb, var(--acc) 55%, #d4dde2);
      z-index: 0;
    }

    /* Per-step màu: lá → teal → xanh dương → tím */
    .proc-set:nth-of-type(1) {
      --acc: #3db137;
    }

    .proc-set:nth-of-type(2) {
      --acc: #15a884;
    }

    .proc-set:nth-of-type(3) {
      --acc: #0077fa;
    }

    .proc-set:nth-of-type(4) {
      --acc: #7c3aed;
    }

    .proc-tile {
      position: relative;
      width: 118px;
      height: 128px;
      border-radius: 22px 22px 22px 4px;
      background: linear-gradient(160deg, color-mix(in srgb, var(--acc) 9%, #fff), #fff 72%);
      border: 1.5px solid color-mix(in srgb, var(--acc) 34%, transparent);
      box-shadow: 0 8px 18px -12px color-mix(in srgb, var(--acc) 30%, transparent);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .proc-tile svg * {
      stroke: var(--acc);
    }

    /* số thứ tự 01-04 ở góc trên-trái */
    .proc-tile::after {
      content: counter(proc, decimal-leading-zero);
      position: absolute;
      top: -14px;
      left: -14px;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--acc);
      color: #fff;
      font-size: 14px;
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 0 0 5px color-mix(in srgb, var(--acc) 16%, #fff), 0 6px 14px -4px var(--acc);
    }

    /* nút play nối giữa các bước */
    .proc-set:not(:nth-of-type(4)) .proc-tile::before {
      content: "▶";
      position: absolute;
      right: -102px;
      top: 51px;
      width: 26px;
      height: 26px;
      border-radius: 50%;
      background: #fff;
      color: var(--acc);
      font-size: 9px;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.14);
      z-index: 2;
    }

    .proc-tile img,
    .proc-tile svg {
      width: 46px;
      height: 46px;
    }

    .proc-txt {
      text-align: center;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .proc-txt h4 {
      font-size: 18px;
      font-weight: 700;
      color: var(--acc);
      text-transform: uppercase;
      line-height: 1.4;
    }

    .proc-arc {
      display: none !important;
    }

    /* pill thời gian (dùng cho quy trình triển khai) */
    .proc-pill {
      align-self: center;
      margin-top: 2px;
      font-size: 13px;
      font-weight: 700;
      color: var(--acc);
      background: color-mix(in srgb, var(--acc) 13%, #fff);
      padding: 6px 18px;
      border-radius: 999px;
    }

    .proc-txt p {
      font-size: 16px;
      color: var(--process-text);
      line-height: 20px;
      max-width: 200px;
      margin: 0 auto;
    }

    .proc-arc {
      position: absolute;
      width: 201px;
      height: 28px;
      pointer-events: none;
    }

    .proc-arc img {
      width: 100%;
      height: 100%;
    }

    .arc-1 {
      left: 16%;
      top: 22px;
    }

    .arc-2 {
      left: 41%;
      top: 72px;
    }

    .arc-3 {
      left: 66.5%;
      top: 36px;
    }

    /* ========================= DEPLOY — đơn vị triển khai ========================= */
    /* Lợi ích: panel gradient nổi bật + lưới 2×2 nhiều màu */
    .benefit-wrap {
      display: grid;
      grid-template-columns: 0.82fr 1.18fr;
      gap: 32px;
      align-items: stretch;
    }

    .benefit-feature {
      border-radius: 24px;
      padding: 40px;
      color: #fff;
      position: relative;
      overflow: hidden;
      background: linear-gradient(45deg, #0061d6 0%, #0a86f0 55%, #46abf2 100%);
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .benefit-feature::after {
      content: none;
    }

    .benefit-feature::before {
      content: "";
      position: absolute;
      left: -30px;
      top: -30px;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      pointer-events: none;
      background: rgba(255, 255, 255, .06);
    }

    .benefit-feature .bf-eyebrow {
      position: relative;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      opacity: .92;
    }

    .benefit-feature h2 {
      position: relative;
      font-size: 30px;
      font-weight: 800;
      line-height: 1.18;
      margin-top: 12px;
    }

    .benefit-feature .bf-desc {
      position: relative;
      font-size: 15px;
      opacity: .95;
      margin-top: 16px;
      line-height: 23px;
      max-width: 360px;
    }

    .benefit-feature .bf-stat {
      position: relative;
      margin-top: 28px;
    }

    .benefit-feature .bf-stat .num {
      font-size: 44px;
      font-weight: 800;
      line-height: 1;
    }

    .benefit-feature .bf-stat .lbl {
      font-size: 14px;
      opacity: .92;
      margin-top: 6px;
    }

    .benefit-cards {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    .bcard {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 24px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      transition: transform .2s, box-shadow .2s;
    }

    .bcard:hover {
      transform: translateY(-4px);
    }

    .bcard .bc-icon {
      width: 50px;
      height: 50px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .bcard .bc-icon svg {
      width: 26px;
      height: 26px;
    }

    .bcard h3 {
      font-size: 16px;
      font-weight: 700;
      color: var(--text-black);
      text-transform: uppercase;
      line-height: 1.4;
    }

    .bcard p {
      font-size: 13.5px;
      color: var(--text-secondary);
      line-height: 20px;
    }

    .bcard.b1 .bc-icon {
      background: #0077fa;
    }

    .bcard.b1:hover {
      box-shadow: 0 16px 30px -12px rgba(0, 119, 250, .4);
    }

    .bcard.b2 .bc-icon {
      background: #3db137;
    }

    .bcard.b2:hover {
      box-shadow: 0 16px 30px -12px rgba(61, 177, 55, .4);
    }

    .bcard.b3 .bc-icon {
      background: #5a40ff;
    }

    .bcard.b3:hover {
      box-shadow: 0 16px 30px -12px rgba(90, 64, 255, .4);
    }

    .bcard.b4 .bc-icon {
      background: #ff8800;
    }

    .bcard.b4:hover {
      box-shadow: 0 16px 30px -12px rgba(255, 136, 0, .4);
    }

    /* tiêu đề: gradient 2 dòng + divider chấm */
    .aud-head {
      text-align: center;
      margin-bottom: 36px;
    }

    .aud-head h2 {
      font-size: 42px;
      font-weight: 800;
      letter-spacing: .5px;
      text-transform: uppercase;
      background: linear-gradient(90deg, #0077fa, #3db137);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      line-height: 1.4;
      padding: 0.12em 0 0.06em;
    }

    .aud-sub {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin-top: 10px;
      font-size: 17px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
    }

    .aud-sub .txt {
      background: linear-gradient(90deg, #0077fa, #3db137);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .aud-sub .ln {
      width: 86px;
      height: 2px;
      border-radius: 2px;
      background: linear-gradient(90deg, transparent, #0077fa);
      position: relative;
    }

    .aud-sub .ln:last-child {
      background: linear-gradient(90deg, #3db137, transparent);
    }

    .aud-sub .ln::after {
      content: "";
      position: absolute;
      top: 50%;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      transform: translateY(-50%);
    }

    .aud-sub .ln:first-child::after {
      right: 0;
      background: #0077fa;
    }

    .aud-sub .ln:last-child::after {
      left: 0;
      background: #3db137;
    }

    /* Đối tượng: 4 card 4 màu quây quanh vùng ảnh kiosk ở giữa */
    .audience-grid {
      position: relative;
      height: 620px;
    }

    /* kiosk panel hẹp ở giữa */
    .aud-center {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 600px;
      height: 600px;
      max-width: 56vw;
      border-radius: 50%;
      background: url('../assets/bg-tcds.webp') center / cover no-repeat;
      z-index: 0;
    }

    /* vòng công nghệ xoay quanh trạm */
    .aud-center::before {
      content: "";
      position: absolute;
      inset: -26px;
      border-radius: 50%;
      border: 1.5px dashed rgba(0, 119, 250, .18);
      animation: audSpin 26s linear infinite;
    }

    .aud-center::after {
      content: "";
      position: absolute;
      inset: -50px;
      border-radius: 50%;
      border: 1.5px solid rgba(124, 58, 237, .07);
      border-top-color: rgba(0, 119, 250, .3);
      border-left-color: rgba(61, 177, 55, .24);
      animation: audSpin 16s linear infinite reverse;
    }

    @keyframes audSpin {
      to {
        transform: rotate(360deg);
      }
    }

    .aud-orbit {
      position: absolute;
      top: 50%;
      left: 50%;
      border-radius: 50%;
      pointer-events: none;
      z-index: 1;
    }

    .aud-orbit::before {
      content: "";
      position: absolute;
      top: -7px;
      left: 50%;
      width: 13px;
      height: 13px;
      margin-left: -6.5px;
      border-radius: 50%;
    }

    .aud-orbit.o1 {
      width: 652px;
      height: 652px;
      margin: -326px 0 0 -326px;
      animation: audSpin 13s linear infinite;
    }

    .aud-orbit.o2 {
      width: 700px;
      height: 700px;
      margin: -350px 0 0 -350px;
      animation: audSpin 20s linear infinite reverse;
    }

    .aud-orbit.o3 {
      width: 652px;
      height: 652px;
      margin: -326px 0 0 -326px;
      animation: audSpin 30s linear infinite;
    }

    .aud-orbit.o1::before {
      background: #0077fa;
      box-shadow: 0 0 10px 1px rgba(0, 119, 250, .32);
      opacity: .75;
    }

    .aud-orbit.o2::before {
      background: #3db137;
      box-shadow: 0 0 10px 1px rgba(61, 177, 55, .32);
      opacity: .75;
    }

    .aud-orbit.o3 {
      transform: rotate(140deg);
    }

    .aud-orbit.o3::before {
      background: #7c3aed;
      box-shadow: 0 0 10px 1px rgba(124, 58, 237, .32);
      opacity: .75;
    }

    .aud-center span {
      display: none;
    }

    /* các card float absolute ở 4 góc, đè/dư ra ngoài kiosk */
    @keyframes audFloat {

      0%,
      100% {
        transform: translateY(0);
      }

      50% {
        transform: translateY(-9px);
      }
    }

    .aud-card {
      --acc: #0077fa;
      --acc-dark: #005bc4;
      position: absolute;
      z-index: 2;
      width: 322px;
      background: linear-gradient(165deg, color-mix(in srgb, var(--acc) 9%, #fff), #fff 62%);
      border-radius: 18px;
      border: 1px solid color-mix(in srgb, var(--acc) 26%, transparent);
      box-shadow: 0 12px 28px -20px color-mix(in srgb, var(--acc) 24%, rgba(16, 24, 40, .16));
      padding: 24px 24px 22px;
      display: flex;
      flex-direction: column;
      gap: 16px;
      animation: audFloat 4.5s ease-in-out infinite;
    }

    .aud-card .aud-badge {
      width: 60px;
      height: 60px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      background: linear-gradient(135deg, var(--acc), var(--acc-dark));
      box-shadow: 0 8px 18px -6px color-mix(in srgb, var(--acc) 55%, transparent);
    }

    .aud-card .aud-badge svg {
      width: 30px;
      height: 30px;
      stroke: #fff;
      fill: none;
    }

    .aud-card .aud-title {
      font-size: 15px;
      font-weight: 800;
      letter-spacing: .3px;
      text-transform: uppercase;
      color: var(--acc);
      line-height: 1.3;
    }

    .aud-card .aud-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .aud-card .aud-li {
      display: flex;
      align-items: flex-start;
      gap: 9px;
      font-size: 14px;
      line-height: 19px;
      color: var(--text-muted);
    }

    .aud-card .aud-li svg {
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      margin-top: 1px;
      stroke: var(--acc);
      fill: none;
    }

    .aud-card.a1 {
      --acc: #0077fa;
      --acc-dark: #005bc4;
      top: 14px;
      left: 0;
    }

    .aud-card.a2 {
      --acc: #7c3aed;
      --acc-dark: #5b21b6;
      top: 14px;
      right: 0;
      animation-delay: -1.1s;
    }

    .aud-card.a3 {
      --acc: #3db137;
      --acc-dark: #2a8a26;
      bottom: 14px;
      left: 0;
      animation-delay: -2.2s;
    }

    .aud-card.a4 {
      --acc: #ff8800;
      --acc-dark: #cc6a00;
      bottom: 14px;
      right: 0;
      animation-delay: -3.3s;
    }

    /* yếu tố đồ hoạ */
    .aud-connectors {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      z-index: 1;
      pointer-events: none;
      opacity: .75;
    }

    .aud-glow {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 640px;
      height: 440px;
      transform: translate(-50%, -48%);
      z-index: 0;
      pointer-events: none;
      background: radial-gradient(ellipse at center, rgba(0, 119, 250, .10), rgba(124, 58, 237, .05) 42%, transparent 70%);
      filter: blur(6px);
    }

    /* Quy trình hợp tác: timeline ngang — marker tròn + arc + chevron + pill */
    .partner-steps {
      position: relative;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
    }

    /* đường gradient chạy qua tâm các marker */
    .partner-steps::before {
      content: "";
      position: absolute;
      top: 46px;
      left: 11%;
      right: 11%;
      height: 3px;
      background: linear-gradient(90deg, #0077fa 0%, #3db137 38%, #15a884 68%, #7c3aed 100%);
      border-radius: 3px;
      z-index: 0;
    }

    /* chấm màu cuối đường line bên phải */
    .partner-steps::after {
      content: "";
      position: absolute;
      top: 41px;
      right: calc(11% - 6px);
      width: 12px;
      height: 12px;
      border-radius: 50%;
      background: #7c3aed;
      box-shadow: 0 0 0 4px color-mix(in srgb, #7c3aed 18%, #fff);
      z-index: 1;
    }

    .pstep {
      --acc: #0077fa;
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 18px;
      text-align: center;
    }

    /* chevron ">" giữa các marker */
    .pstep:not(:first-child)::before {
      content: "";
      position: absolute;
      top: 36px;
      left: -12px;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: #fff;
      box-shadow: 0 2px 6px rgba(16, 24, 40, .12);
      z-index: 2;
    }

    .pstep:not(:first-child)::after {
      content: "";
      position: absolute;
      top: 42px;
      left: -4px;
      width: 7px;
      height: 7px;
      border-top: 2px solid var(--text-muted);
      border-right: 2px solid var(--text-muted);
      transform: rotate(45deg);
      z-index: 3;
    }

    .pstep .pmarker {
      position: relative;
      width: 92px;
      height: 92px;
      border-radius: 50%;
      background: #fff;
      border: 1px solid var(--border);
      box-shadow: 0 10px 24px -10px rgba(16, 24, 40, .22);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
    }

    /* arc màu nửa trên của marker (SVG overlay) */
    .pstep .pmarker .parc {
      position: absolute;
      inset: -1px;
      width: calc(100% + 2px);
      height: calc(100% + 2px);
      pointer-events: none;
    }

    .pstep .pmarker .parc circle {
      fill: none;
      stroke: var(--acc);
      stroke-width: 3;
      stroke-linecap: round;
    }

    .pstep .pmarker .pnum {
      font-size: 17px;
      font-weight: 800;
      color: var(--acc);
      line-height: 1;
    }

    .pstep .pmarker .picon svg {
      width: 22px;
      height: 22px;
      stroke: var(--acc);
      fill: none;
      display: block;
    }

    .pstep .pbody {
      background: #fff;
      border: 1px solid color-mix(in srgb, var(--acc) 24%, transparent);
      border-radius: 16px;
      padding: 18px 16px 16px;
      width: 100%;
      box-shadow: 0 12px 28px -18px rgba(16, 24, 40, .25);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
    }

    .pstep h3 {
      font-size: 16px;
      font-weight: 800;
      color: var(--acc);
    }

    .pstep p {
      font-size: 13.5px;
      color: var(--text-secondary);
      line-height: 20px;
    }

    .pstep .ppill {
      margin-top: 4px;
      align-self: center;
      font-size: 12.5px;
      font-weight: 700;
      padding: 5px 14px;
      border-radius: 999px;
      color: var(--acc);
      background: color-mix(in srgb, var(--acc) 14%, #fff);
    }

    .pstep.s1 {
      --acc: #0077fa;
    }

    .pstep.s2 {
      --acc: #3db137;
    }

    .pstep.s3 {
      --acc: #15a884;
    }

    .pstep.s4 {
      --acc: #7c3aed;
    }

    .partner-note {
      text-align: center;
      font-size: 13px;
      color: var(--text-muted);
      line-height: 21px;
      max-width: 820px;
      margin: 36px auto 0;
    }

    .deploy-cta-section {
      position: relative;
      z-index: 10;
      margin-top: 72px;
      margin-bottom: -46px;
    }

    .deploy-cta {
      border-radius: 999px;
      padding: 20px 56px;
      color: var(--text-black);
      background: #fff;
      box-shadow: 0 18px 44px -16px rgba(16, 24, 40, .22);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 28px;
      flex-wrap: wrap;
    }

    .deploy-cta h2 {
      font-size: 21px;
      font-weight: 800;
      line-height: 1.3;
      max-width: 480px;
    }

    .deploy-cta .cta-actions {
      display: flex;
      align-items: center;
      gap: 22px;
      flex-wrap: wrap;
    }

    .deploy-cta .cta-contacts {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .deploy-cta .cta-line {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 15px;
      font-weight: 700;
      color: var(--text-muted);
    }

    .deploy-cta .cta-line svg {
      width: 19px;
      height: 19px;
      stroke: #4a5565;
    }

    .deploy-cta .cta-btn {
      display: inline-flex;
      align-items: center;
      white-space: nowrap;
      background: linear-gradient(105deg, #f9730e 0%, #ff9418 55%, #ffb13a 100%);
      color: #fff;
      font-weight: 700;
      font-size: 15px;
      padding: 12px 26px;
      border-radius: 120px;
      box-shadow: 0 8px 18px -6px rgba(249, 115, 14, .45);
    }

    @media (max-width: 1100px) {
      .benefit-wrap {
        grid-template-columns: 1fr;
      }

      /* Section 1: bỏ cột giữa, dồn 4 card 2x2, ẩn placeholder kiosk */
      .audience-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
      }

      .aud-center {
        display: none;
      }

      /* Section 2: wrap 2x2, ẩn line ngang + chevron + chấm cuối */
      .partner-steps {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 24px;
      }

      .partner-steps::before,
      .partner-steps::after,
      .pstep:not(:first-child)::before,
      .pstep:not(:first-child)::after {
        display: none;
      }
    }

    @media (max-width: 620px) {

      .benefit-cards,
      .audience-grid,
      .partner-steps {
        grid-template-columns: 1fr;
      }

      .deploy-cta {
        padding: 32px 24px;
      }
    }

    /* ========================= APP CTA ========================= */
    .app-cta-section {
      padding-top: 96px;
    }

    .app-cta {
      position: relative;
      overflow: hidden;
      border-radius: 45px;
      background: linear-gradient(256deg, rgba(0, 140, 183, 0.12) 17%, rgba(118, 212, 110, 0.12) 101%);
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 10px;
      padding: 32px;
      min-height: 289px;
    }

    .app-cta .phone-mockup {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 278px;
      z-index: 1;
    }

    .poly {
      position: absolute;
      pointer-events: none;
      mix-blend-mode: plus-lighter;
    }

    .poly-big {
      left: 64%;
      top: 77px;
      width: 204px;
      opacity: 0.5;
    }

    .poly-s1 {
      right: -8px;
      top: -18px;
      width: 100px;
      opacity: 0.4;
    }

    .poly-s2 {
      right: -38px;
      top: 25px;
      width: 100px;
      opacity: 0.4;
    }

    .cta-text {
      width: 473px;
      display: flex;
      flex-direction: column;
      gap: 24px;
      z-index: 2;
    }

    .cta-text h2 {
      font-size: 27px;
      font-weight: 700;
      line-height: 42px;
      color: #101828;
    }

    .cta-text p {
      font-size: 20px;
      font-weight: 300;
      line-height: 1.286;
      color: #101828;
      max-width: 423px;
    }

    .btn-app {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      align-self: flex-start;
      background: var(--main);
      color: #fff;
      font-family: "Manrope", sans-serif;
      font-weight: 700;
      font-size: 18px;
      padding: 11px 32px;
      border-radius: 55px;
    }

    .btn-app svg {
      width: 24px;
      height: 14px;
    }

    .cta-download {
      display: flex;
      align-items: center;
      gap: 24px;
      z-index: 2;
    }

    .qr-code {
      width: 200px;
      height: 200px;
      border-radius: 24px;
    }

    .store-btns {
      display: flex;
      flex-direction: column;
      gap: 16px;
      width: 188px;
    }

    .store-btn {
      display: flex;
      align-items: center;
      gap: 16px;
      background: #000;
      border-radius: 14px;
      padding: 16px 24px;
      box-shadow: 0 10px 7.5px rgba(0, 0, 0, 0.1), 0 4px 3px rgba(0, 0, 0, 0.1);
    }

    .store-btn img {
      width: 32px;
      height: 32px;
    }

    .store-btn .store-small {
      font-family: "Inter", sans-serif;
      font-size: 12px;
      color: #fff;
      opacity: 0.75;
      line-height: 16px;
    }

    .store-btn .store-big {
      font-family: "Inter", sans-serif;
      font-size: 16px;
      font-weight: 700;
      color: #fff;
      line-height: 24px;
      letter-spacing: -0.3px;
    }

    /* ========================= FOOTER ========================= */
    footer.site-footer {
      position: relative;
      overflow: hidden;
      margin-top: 0;
      background: radial-gradient(120% 160% at 100% 0%, #008cb7 0%, #0d94a3 18%, #1a9c8f 30%, #34ac67 48%, #4fbc40 62%, #6cce2d 78%, #76d46e 100%);
      padding-top: 92px;
      padding-bottom: 24px;
    }

    .footer-topo {
      position: absolute;
      right: 8%;
      bottom: -40%;
      width: 720px;
      opacity: 0.25;
      pointer-events: none;
      transform: rotate(-8deg);
    }

    .footer-inner {
      position: relative;
      z-index: 2;
      max-width: var(--content-width);
      margin: 0 auto;
      padding: 0 64px;
      display: flex;
      gap: 48px;
    }

    .footer-logo-col {
      width: 263px;
    }

    .footer-logo-col .f-logo {
      width: 246px;
      margin-bottom: 6px;
    }

    .footer-logo-col .f-powered {
      width: 186px;
      margin-left: 64px;
    }

    .footer-cols {
      display: flex;
      gap: 32px;
      flex: 1;
    }

    .footer-col {
      width: 263px;
    }

    .footer-col h3 {
      font-size: 21px;
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.5px;
      margin-bottom: 19px;
    }

    .footer-col ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .footer-col ul li {
      font-size: 16.5px;
      color: #fff;
    }

    .footer-contact li {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .footer-contact svg {
      width: 24px;
      height: 24px;
      flex-shrink: 0;
    }

    .footer-deploy {
      display: flex;
      flex-direction: column;
      gap: 24px;
    }

    .footer-deploy .ecityzen {
      width: 100px;
    }

    .footer-deploy .longchau {
      width: 130px;
    }

    .footer-copy {
      position: relative;
      z-index: 2;
      text-align: center;
      color: #fff;
      font-size: 18px;
      margin-top: 56px;
      letter-spacing: -0.15px;
    }

    /* ========================= RESPONSIVE ========================= */
    @media (max-width: 1320px) {
      .wrap {
        padding: 0 32px;
      }

      .header-inner {
        padding: 20px 32px;
      }

      .hero-content {
        padding: 48px 32px 0;
      }

      .footer-inner {
        padding: 0 32px;
      }
    }

    @media (max-width: 1100px) {
      .nav-toggle {
        display: flex;
        order: 3;
        margin-left: auto;
      }

      .header-inner {
        position: relative;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
      }

      header.site-header.nav-open .nav-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
      }

      header.site-header.nav-open .nav-toggle span:nth-child(2) {
        opacity: 0;
      }

      header.site-header.nav-open .nav-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
      }

      nav.main-nav {
        display: none;
        position: absolute;
        top: 100%;
        right: 32px;
        left: auto;
        min-width: 240px;
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
        padding: 12px;
        border-radius: 18px;
        z-index: 60;
      }

      header.site-header.nav-open nav.main-nav {
        display: flex;
      }

      nav.main-nav a {
        text-align: center;
        padding: 12px 14px;
      }

      .services-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .loc-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .hero-photo {
        opacity: 0.35;
        right: -200px;
      }

      .hero-fade {
        width: 100%;
      }

      .footer-cols {
        flex-wrap: wrap;
      }
    }

    @media (max-width: 860px) {
      .stats-card {
        flex-wrap: wrap;
        border-radius: 36px;
      }

      .stat {
        width: 50%;
      }

      .process-wrap {
        grid-template-columns: 1fr 1fr;
        gap: 40px 0;
      }

      .proc-arc {
        display: none;
      }

      .app-cta {
        flex-direction: column;
        align-items: flex-start;
        padding-bottom: 320px;
      }

      .cta-download {
        flex-wrap: wrap;
      }

      .phone-mockup {
        left: 50% !important;
        transform: translateX(-50%);
      }

      .footer-inner {
        flex-direction: column;
      }
    }

    @media (max-width: 620px) {
      .hero-h1 {
        font-size: 30px;
        width: 100%;
      }

      .hero-left,
      .hero-features,
      .hero-sub {
        width: 100%;
      }

      .hero-features {
        grid-template-columns: 1fr;
      }

      .services-grid {
        grid-template-columns: 1fr;
      }

      .loc-grid {
        grid-template-columns: 1fr;
      }

      .stat {
        width: 100%;
      }

      .process-wrap {
        grid-template-columns: 1fr;
      }

      .cta-text {
        width: 100%;
      }

      .cta-text h2 {
        font-size: 22px;
        line-height: 1.3;
      }

      .section-head h2 {
        font-size: 24px;
      }
    }

    /* ============================================================= */
    /* ============ MOBILE / TABLET RESPONSIVE (mở rộng) =========== */
    /* Chỉ override ở ≤1024px — desktop ≥1100px giữ nguyên hoàn toàn  */
    /* ============================================================= */

    /* nút hamburger ẩn mặc định (desktop) */
    .nav-toggle {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 44px;
      height: 44px;
      padding: 10px;
      border: none;
      border-radius: 12px;
      background: rgba(16, 16, 16, 0.55);
      backdrop-filter: blur(15px);
      -webkit-backdrop-filter: blur(15px);
      cursor: pointer;
    }

    .nav-toggle span {
      display: block;
      height: 2px;
      width: 100%;
      border-radius: 2px;
      background: #fff;
      transition: transform .25s, opacity .2s;
    }

    /* ---- Tablet (~1024px): kiểm tra layout 2 cột ---- */
    @media (max-width: 1024px) {
      .stats-row {
        flex-wrap: wrap;
        gap: 12px 0;
      }

      .stat {
        width: 50%;
        justify-content: center;
      }

      .benefit-cards {
        grid-template-columns: 1fr 1fr;
      }
    }

    /* ---- Audience: gỡ absolute → stacked (quan trọng nhất) ---- */
    @media (max-width: 900px) {
      .audience-grid {
        position: static;
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 20px;
      }

      .aud-card {
        position: static !important;
        width: 100%;
        inset: auto !important;
        animation: none !important;
        transform: none !important;
      }

      .aud-glow,
      .aud-orbit,
      .aud-center::before,
      .aud-center::after {
        display: none !important;
      }

      .aud-center {
        position: static;
        display: block;
        transform: none;
        width: 100%;
        max-width: 340px;
        height: 280px;
        max-height: none;
        margin: 0 auto;
        border-radius: 20px;
        order: -1;
      }
    }

    /* ---- Phone (≤768px) ---- */
    @media (max-width: 768px) {

      /* Global: padding section nhỏ lại */
      .wrap {
        padding: 0 18px;
      }

      .section {
        padding-top: 64px;
      }

      .header-inner {
        padding: 14px 16px;
        justify-content: space-between;
        flex-wrap: nowrap;
        gap: 10px;
        position: relative;
      }

      /* Header: hiện hamburger, nav thành dropdown */
      .nav-toggle {
        display: flex;
        order: 3;
        margin-left: auto;
      }

      header.site-header.nav-open .nav-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
      }

      header.site-header.nav-open .nav-toggle span:nth-child(2) {
        opacity: 0;
      }

      header.site-header.nav-open .nav-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
      }

      nav.main-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 18px;
        right: 18px;
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
        padding: 12px;
        border-radius: 18px;
        z-index: 60;
      }

      header.site-header.nav-open nav.main-nav {
        display: flex;
      }

      nav.main-nav a {
        text-align: center;
        padding: 12px 14px;
      }

      .btn-find {
        justify-content: center;
      }

      .logo-lockup {
        gap: 10px;
        flex-shrink: 1;
        min-width: 0;
      }

      .logo-block {
        zoom: 0.72;
        flex-shrink: 0;
      }

      .catphcm {
        flex-shrink: 0;
      }

      .catphcm span {
        display: none;
      }

      .catphcm img {
        height: 40px;
      }

      /* Hero mobile: header trên cùng → banner ảnh → text (flex + order) */
      .hero-band {
        display: flex;
        flex-direction: column;
        overflow: visible;
      }

      header.site-header {
        order: 1;
        position: static;
        background: #fff;
      }

      .hero-ellipse {
        display: none;
      }

      .hero-photo {
        order: 2;
        position: static;
        display: block;
        opacity: 1;
        right: auto;
        width: 100%;
        height: auto;
        object-fit: cover;
      }

      .hero-fade {
        display: none;
      }

      .hero-content {
        order: 3;
        padding: 22px 18px 0;
        min-height: 0;
      }

      .hero-h1 {
        font-size: 27px;
        line-height: 1.28;
        width: 100%;
      }

      .hero-sub {
        font-size: 16px;
        line-height: 24px;
      }

      .hero-features {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        width: 100%;
      }

      .feat-item {
        padding: 6px 4px;
        gap: 10px;
      }

      /* Stats: 2×2, card thường thay vì pill rộng */
      .stats-section {
        margin-top: 28px;
      }

      .stats-section .wrap {
        padding: 0 18px;
      }

      .stats-card {
        flex-wrap: wrap;
        border-radius: 28px;
        padding: 8px 16px;
      }

      .stats-row {
        flex-wrap: wrap;
        gap: 4px 0;
      }

      .stat {
        width: 50%;
        padding: 16px 6px;
        gap: 10px;
      }

      .stat .stat-icon {
        width: 48px;
        height: 48px;
        border-radius: 12px;
      }

      .stat .stat-icon svg {
        width: 26px;
        height: 26px;
      }

      .stat-number {
        font-size: 24px;
      }

      .stat-label {
        font-size: 13px;
        line-height: 18px;
      }

      /* Services hub: 1 cột (đã có grid ở 620px nhưng đảm bảo) */
      .hub-cards-flow {
        grid-template-columns: 1fr;
        max-width: 420px;
        margin-top: 8px;
      }

      .hub-orb {
        width: auto;
        height: auto;
      }

      .hub-orb-disc {
        width: 188px;
        height: 188px;
      }

      .hub-vneid-img {
        width: 130px;
      }

      .hub-trust {
        display: none;
      }

      /* Locations: 1 cột */
      .loc-grid {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .loc-body {
        height: auto;
      }

      /* Process: 1 cột, ẩn connector + play arrow */
      .process-wrap {
        grid-template-columns: 1fr;
        gap: 36px 0;
      }

      .proc-set:not(:nth-of-type(4))::before,
      .proc-set:not(:nth-of-type(4)) .proc-tile::before {
        display: none;
      }

      /* Benefit: 1 cột */
      .benefit-feature {
        padding: 28px 24px;
      }

      .benefit-feature h2 {
        font-size: 24px;
      }

      .benefit-cards {
        grid-template-columns: 1fr;
      }

      /* Audience title nhỏ lại */
      .aud-head h2 {
        font-size: 26px;
      }

      .aud-sub {
        font-size: 13px;
        letter-spacing: 1.5px;
        gap: 10px;
      }

      .aud-sub .ln {
        width: 40px;
      }

      .aud-card {
        width: 100%;
        padding: 20px;
      }

      /* Deploy CTA: stack dọc, giảm overlap */
      .deploy-cta-section {
        margin-top: 48px;
        margin-bottom: -30px;
      }

      .deploy-cta {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        border-radius: 28px;
        padding: 28px 22px;
        gap: 18px;
      }

      .deploy-cta h2 {
        font-size: 19px;
        max-width: 100%;
      }

      .deploy-cta .cta-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
      }

      .deploy-cta .cta-contacts {
        align-items: center;
      }

      .deploy-cta .cta-btn {
        justify-content: center;
      }

      /* App CTA: stack, ẩn phone mockup */
      .app-cta-section {
        padding-top: 64px;
      }

      .app-cta {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
        padding: 28px 22px;
        min-height: 0;
      }

      .app-cta .phone-mockup {
        display: none;
      }

      .poly {
        display: none;
      }

      .cta-text {
        width: 100%;
      }

      .cta-text h2 {
        font-size: 21px;
        line-height: 1.32;
      }

      .cta-text p {
        font-size: 16px;
      }

      .cta-download {
        flex-wrap: wrap;
        justify-content: center;
        gap: 18px;
      }

      .qr-code {
        width: 160px;
        height: 160px;
      }

      /* Footer: 1 cột, căn giữa */
      footer.site-footer {
        padding-top: 64px;
      }

      .footer-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 32px;
      }

      .footer-logo-col {
        width: auto;
      }

      .footer-logo-col .f-logo {
        margin: 0 auto 6px;
      }

      .footer-logo-col .f-powered {
        margin: 0 auto;
      }

      .footer-cols {
        flex-direction: column;
        align-items: center;
        gap: 28px;
        width: 100%;
      }

      .footer-col {
        width: 100%;
        text-align: center;
      }

      .footer-contact li {
        justify-content: center;
      }

      .footer-deploy {
        align-items: center;
      }

      .footer-copy {
        font-size: 15px;
        margin-top: 40px;
        padding: 0 18px;
      }

      .footer-topo {
        display: none;
      }
    }

    /* ---- Small phone (≤480px) ---- */
    @media (max-width: 480px) {
      .hero-features {
        grid-template-columns: 1fr;
      }

      .stat {
        width: 100%;
      }

      .stats-card {
        border-radius: 24px;
      }

      .section-head h2 {
        font-size: 22px;
        line-height: 1.4;
      }

      .aud-head h2 {
        font-size: 22px;
      }

      .hero-h1 {
        font-size: 25px;
      }

      .benefit-feature .bf-stat .num {
        font-size: 36px;
      }

      .cta-download {
        flex-direction: column;
      }

      .store-btns {
        width: 100%;
        max-width: 240px;
      }
    }
