/* =========================================================
   Chiến dịch 120 ngày đêm – VNPT Tây Ninh
   Màu & khoảng cách theo thiết kế đã duyệt trên Claude Design
   ========================================================= */
:root{
  --navy:#0B2A8C;      /* xanh VNPT đậm – header, tiêu đề */
  --navy-2:#08206E;    /* footer */
  --blue:#0A5CD5;      /* xanh nhấn – số liệu lớn */
  --ink:#0D1B3E;       /* chữ chính */
  --ink-2:#26375F;     /* chữ thân */
  --muted:#3D4F7A;
  --muted-2:#5A6A8F;
  --soft:#F2F6FD;      /* nền khối xen kẽ */
  --line:#DDE6F6;
  --sky:#8EC5FF;
  --pale:#DCE8FF;
  /* trạng thái tỷ lệ */
  --ok:#149A55; --ok-t:#0E7A43; --ok-bg:#E2F6EA;
  --warn:#E8820C; --warn-t:#A14A00; --warn-bg:#FDEFDC;
  --bad:#D3333B; --bad-t:#B3222A; --bad-bg:#FDE6E7;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:'Be Vietnam Pro',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--blue)}a:hover{color:#06409A}
img{max-width:100%}
section{scroll-margin-top:64px}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
@media (min-width:768px){.wrap{padding:0 32px}}
.stack{display:flex;flex-direction:column}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:20;background:var(--navy);box-shadow:0 2px 10px rgba(8,25,90,.25)}
.site-header .wrap{display:flex;align-items:center;gap:12px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.brand img{display:block;height:36px;width:auto;border-radius:6px}
.brand span{color:#fff;font-weight:700;font-size:14px;line-height:1.2;max-width:92px}
.navlinks{flex:1 1 auto;min-width:0;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.navlinks::-webkit-scrollbar{display:none}
.navlinks a{flex-shrink:0;color:var(--pale);text-decoration:none;font-size:14px;font-weight:600;padding:0 12px;min-height:44px;display:flex;align-items:center;border-radius:8px;white-space:nowrap}
.navlinks a:hover,.navlinks a.active{background:rgba(255,255,255,.12);color:#fff}

/* ---------- Section chung ---------- */
.sec{padding:56px 0}
.sec--soft{background:var(--soft)}
.sec--dark{background:var(--navy);color:#fff}
.sec .wrap{display:flex;flex-direction:column;gap:24px}
.sec-head{display:flex;flex-direction:column;gap:10px}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--blue)}
.sec--dark .eyebrow{color:var(--sky)}
h2.title{margin:0;font-size:clamp(26px,5vw,38px);font-weight:800;color:var(--navy);line-height:1.15}
.sec--dark h2.title{color:#fff}
.lead{margin:0;font-size:16px;line-height:1.7;color:var(--ink-2);max-width:860px}
.lead b{color:var(--navy)}
.sub{margin:0;font-size:15px;color:var(--muted)}
.unit{font-size:17px;font-weight:700;color:var(--navy)}
.big{font-size:clamp(44px,10vw,72px);font-weight:800;line-height:1;color:var(--blue)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;font-weight:700;font-size:15px;text-decoration:none}
.btn-pri{background:#fff;color:var(--navy)}.btn-pri:hover{background:#E6EEFF;color:var(--navy)}
.btn-sec{border:1.5px solid rgba(255,255,255,.7);color:#fff}.btn-sec:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:#06409A;color:#fff}

/* ---------- Khối 1: Hero ---------- */
.hero{background:var(--navy);color:#fff}
.hero-banner{display:block;width:100%;height:auto;max-height:220px;object-fit:cover;object-position:left center}
.hero .wrap{padding-top:40px;padding-bottom:56px;display:flex;flex-direction:column;gap:28px}
.hero-intro{display:flex;flex-direction:column;gap:14px;max-width:820px}
.hero-tag{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--sky)}
.hero h1{margin:0;font-size:clamp(40px,9vw,76px);line-height:1.02;font-weight:800;letter-spacing:-.02em}
.hero-intro p{margin:0;font-size:clamp(16px,2.2vw,19px);line-height:1.6;color:var(--pale)}
.hero-main{background:#fff;color:var(--ink);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:6px}
.hero-main .label{font-size:14px;font-weight:600;color:var(--muted)}
.hero-main .row{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
.hero-main .val{font-size:clamp(48px,12vw,88px);font-weight:800;color:var(--blue);line-height:1;letter-spacing:-.02em}
.hero-main .unit{font-size:18px}
.hero-main .note{font-size:14px;color:var(--muted)}
.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.glass{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:6px}
.glass .k{font-size:13px;color:#B9D3FF;font-weight:600}
.glass .v{font-size:30px;font-weight:800}
.glass .d{font-size:13px;color:var(--pale)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- Khối 2: Kết quả 8 tháng ---------- */
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted);align-items:center}
.legend b{font-weight:700}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.svc{background:#fff;border-radius:16px;padding:18px;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.svc .name{font-size:15px;font-weight:700;color:var(--navy)}
.svc .th{display:flex;align-items:baseline;gap:6px}
.svc .th b{font-size:26px;font-weight:800}
.svc .th small{font-size:13px;color:var(--muted-2)}
.svc .line{display:flex;justify-content:space-between;align-items:center;font-size:13px}
.svc .line span:first-child{color:var(--muted-2)}
.bar{height:10px;border-radius:999px;background:#E6ECF7;overflow:hidden}
.bar > div{height:100%;border-radius:999px;width:0;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.pill{font-weight:800;padding:3px 10px;border-radius:999px}
.hl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.hl{background:#fff;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}
.hl--good{border:1px solid #BFE6CF}
.hl--warn{border:1px solid #F6D3AE}
.hl-head{display:flex;align-items:center;gap:10px}
.hl-head h3{margin:0;font-size:18px;font-weight:800}
.hl--good h3{color:var(--ok-t)}
.hl--warn h3{color:#B45309}
.hl-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;font-size:14px}
.hl--good .hl-row{border-top:1px solid #EAF4EE}
.hl--warn .hl-row{border-top:1px solid #FBEBDA}
.hl-row span:first-child{color:var(--ink-2)}
.hl-row small{color:var(--muted-2);font-size:14px}
.hl-row b{font-weight:800;white-space:nowrap}

/* ---------- Khối 3: Mục tiêu 4 tháng ---------- */
.k3-top{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:flex-end}
.k3-top .k{font-size:14px;color:var(--muted);font-weight:600}
.k3-top .vt{font-size:30px;font-weight:800;color:var(--navy)}
.chart-box{background:var(--soft);border-radius:20px;padding:20px 16px 16px}
.chart-box h3{margin:0 0 16px;font-size:14px;font-weight:700;color:var(--navy)}
.cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;height:260px;border-bottom:2px solid #B9C8E6}
.col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;height:100%}
.col span{font-size:clamp(12px,2.6vw,16px);font-weight:800;color:var(--navy)}
.col div{width:100%;max-width:120px;height:0;background:var(--blue);border-radius:10px 10px 0 0;transition:height 1.2s cubic-bezier(.2,.7,.2,1)}
.col.last div{background:var(--navy)}
.col-labels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:10px}
.col-labels div{text-align:center;font-size:14px;font-weight:600;color:var(--muted)}
h3.tbl-title{margin:0;font-size:18px;font-weight:800;color:var(--navy)}
h3.tbl-title small{font-weight:500;color:var(--muted-2);font-size:14px}
.tbl-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line)}
.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.tbl th{background:var(--navy);color:#fff;font-weight:600;text-align:right;padding:12px 14px;white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left;position:sticky;left:0}
.tbl td{padding:12px 14px;text-align:right;border-bottom:1px solid #E1E8F5;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl td:first-child{background:#fff;font-weight:600;white-space:normal;min-width:150px}
.tbl tr:nth-child(even) td{background:#F5F8FE}
.tbl td.tot{font-weight:800;color:var(--navy);background:#EAF1FF}
.hint{font-size:12px;color:var(--muted-2)}

/* ---------- Khối 4: Về đích ---------- */
.k4-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.k4-big .big{color:#fff}
.k4-big .unit{color:var(--pale)}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badges span{font-weight:800;font-size:15px;padding:6px 14px;border-radius:999px}
.badge-warn{background:#FFF1DF;color:#8A3F00}
.badge-ok{background:var(--ok-bg);color:#0E6B3B}
.glass-note{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:14px 16px;font-size:15px;line-height:1.6;color:#E8F0FF;max-width:780px}
.k4-box{background:#fff;color:var(--ink);border-radius:20px;padding:20px 16px;display:flex;flex-direction:column;gap:18px}
.k4-box .head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.k4-box .head b{font-size:15px;font-weight:800;color:var(--navy)}
.k4-box .head small{font-size:12px;color:var(--muted-2)}
.hbar{display:flex;flex-direction:column;gap:6px}
.hbar .meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:14px}
.hbar .meta > span:first-child{font-weight:700}
.hbar .meta > span:last-child{color:var(--muted-2)}
.hbar .meta b{color:var(--ink)}
.hbar .track{position:relative;height:26px;background:#EDF2FB;border-radius:8px}
.hbar .fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:8px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;transition:width 1.2s cubic-bezier(.2,.7,.2,1);overflow:hidden}
.hbar .fill span{font-size:13px;font-weight:800;color:#fff;white-space:nowrap}
.hbar .mark{position:absolute;top:-4px;bottom:-4px;border-left:2px dashed var(--navy)}

/* ---------- Khối 5: Phân công ---------- */
.gd-note{background:var(--navy);color:#fff;border-radius:16px;padding:18px 20px;display:flex;gap:14px;align-items:flex-start}
.gd-note svg{flex-shrink:0;margin-top:2px}
.gd-note p{margin:0;font-size:15px;line-height:1.6}
.pgd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.pgd{background:#fff;border-radius:18px;border:1px solid var(--line);border-top:6px solid var(--c);padding:20px;display:flex;flex-direction:column;gap:16px}
.pgd-top{display:flex;gap:14px;align-items:center}
.avatar{width:60px;height:60px;border-radius:50%;background:var(--c);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0}
.cap{font-size:12px;font-weight:700;color:var(--muted-2);letter-spacing:.06em}
.pgd h3{margin:0;font-size:20px;font-weight:800;color:var(--navy)}
.kpi{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:8px 12px;background:var(--soft);border-radius:10px}
.pgd .people{font-size:14px;line-height:1.6;color:var(--ink-2)}
.pgd .small{font-size:13px;color:var(--muted-2);line-height:1.5}
.more{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid #C9D7F2;background:#fff;font:inherit;font-size:14px;font-weight:700;color:var(--blue);cursor:pointer}
.more:hover{background:#EEF4FF}
.more svg{transition:transform .2s}
.more[aria-expanded="true"] svg{transform:rotate(180deg)}
ul.dots{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-2)}
ul.dots li{line-height:1.55}
[hidden]{display:none!important}

/* ---------- Khối 6: Hàng hóa thiết bị ---------- */
.hh-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.hh{background:var(--soft);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:12px}
.hh .no{font-size:32px;font-weight:800;color:var(--blue);line-height:1}
.hh h3{margin:0;font-size:18px;font-weight:800;color:var(--navy)}
.hh p{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2)}

/* ---------- Khối 7: Đơn vị (accordion) ---------- */
.acc-list{display:flex;flex-direction:column;gap:10px}
.acc-item{background:#fff;border-radius:14px;border:1px solid var(--line);overflow:hidden}
.acc{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:14px 18px;background:#fff;border:0;font:inherit;font-size:16px;font-weight:700;color:var(--ink);text-align:left;cursor:pointer}
.acc:hover{background:#F5F8FE}
.acc .sign{width:32px;height:32px;border-radius:50%;background:#EAF1FF;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}
.acc-body{padding:0 18px 18px}

/* ---------- Khối 8: Nhịp điều hành ---------- */
.rhythm{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.rh{border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:12px}
.rh .ic{width:52px;height:52px;border-radius:14px;background:var(--c);display:flex;align-items:center;justify-content:center}
.rh h3{margin:0;font-size:19px;font-weight:800;color:var(--navy)}

/* ---------- Khối 9: Căn cứ ---------- */
.sec--basis{padding:44px 0}
.sec--basis .wrap{gap:16px}
.sec--basis h2.title{font-size:clamp(22px,4vw,28px)}
.basis{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-2)}
.basis li{background:#fff;border-radius:10px;padding:12px 14px;line-height:1.55}
.basis b{color:var(--navy)}

/* ---------- Khối 10: Footer ---------- */
.site-footer{background:var(--navy-2);color:#fff;padding:44px 0 36px}
.site-footer .wrap{display:flex;flex-direction:column;gap:24px}
.contact{background:#fff;color:var(--ink);border-radius:18px;padding:20px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.contact .name{font-size:18px;font-weight:800;color:var(--navy)}
.foot-row{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.foot-brand{display:flex;align-items:center;gap:14px}
.foot-brand img{height:48px;width:auto;border-radius:8px}
.foot-brand span{font-size:17px;font-weight:800}
.foot-meta{font-size:14px;line-height:1.7;color:#C9D9FF}
.foot-meta b{color:#fff}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bar > div,.col div,.hbar .fill{transition:none}
}
