/* VNPT Phú Nhuận – aaaweb.vn/vnpt. Màu lấy từ logo VNPT (#1571BA) trên nền trắng. */
:root{
  --blue:#1571BA; --blue-d:#0E5A97; --blue-dd:#0A4677; --cyan:#12A3DD;
  --ink:#13243A; --mut:#5B6B80; --line:#E2E9F1; --tint:#F2F7FC; --tint2:#E7F0FA;
  --hot:#E5462F; --w:86%; --maxw:1320px; --r:14px;
  --imgh:55vh; /* ảnh nội dung cao tối đa 55% màn hình, giữ đúng tỉ lệ gốc: --ar (rộng/cao) do trình dựng ghi theo ảnh thật */
  --fd:"Montserrat",system-ui,sans-serif; --fb:"Inter",system-ui,sans-serif;
  --gap-sec:120px;--gs:calc(var(--gap-sec) * var(--rh-gap, 1));--gh:calc(160px * var(--rh-hero, 1));--hh:80px;--gt:52px;--qt:calc(16px * var(--rh-gap, 1));--qf:calc(56px * var(--rh-hero, 1));
}
@supports (height:1svh){:root{--imgh:55svh}} /* điện thoại: tính theo màn hình lúc thanh địa chỉ đang hiện */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{font:300 15px/1.7 var(--fb);color:var(--ink);background:#fff;letter-spacing:.005em;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
ul,ol{list-style:none}
b,strong{font-weight:600}
.ic{width:20px;height:20px;flex:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 24px;border-radius:999px;
  font:500 14px/1 var(--fd);letter-spacing:.01em;border:1.5px solid transparent;cursor:pointer;white-space:nowrap}
.btn-p{background:var(--blue);color:#fff}
.btn-o{background:#fff;color:var(--blue);border-color:var(--blue)}


/* ---------- header ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;height:80px}
.hdr.solid{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 6px 24px rgba(19,36,58,.07)}
/* nội dung header thẳng hàng với khung 86% của các section */
.hdr-in{width:var(--w);max-width:var(--maxw);height:100%;margin:0 auto;display:flex;align-items:center;gap:24px}
.logo{display:flex;align-items:center;gap:12px;flex:none}
.logo img{height:30px;width:auto}
.logo-t{display:flex;flex-direction:column;gap:4px;padding-left:12px;border-left:1px solid rgba(21,113,186,.35)}
.logo-t b{font:600 15px/1 var(--fd);color:var(--blue);letter-spacing:.01em}
.logo-t small{font:500 10px/1 var(--fd);color:var(--mut);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
/* menu gom trong khung kính mờ để luôn đọc rõ trên ảnh banner */
.nav{display:flex;flex:none;gap:2px;margin:0 auto;padding:5px;border-radius:999px;background:rgba(255,255,255,.74);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);box-shadow:0 4px 18px rgba(19,36,58,.07);
}
.hdr.solid .nav{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav a{position:relative;font:500 14px/1 var(--fd);color:var(--ink);padding:11px 14px;border-radius:999px;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--blue);transform:scaleX(0)}
.nav a:hover,.nav a.on{color:var(--blue)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.hdr-r{display:flex;align-items:center;gap:14px;flex:none}
/* khối Gọi ngay + 2 số hotline thay cho nút Liên hệ (yêu cầu khách) */
.call{display:flex;align-items:center;gap:12px;padding:5px 18px 5px 5px;border-radius:999px;background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);transition:background .3s,border-color .3s}
.hdr.solid .call{background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.call-l{display:flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 14px;border-radius:999px;background:var(--hot);color:#fff;white-space:nowrap;transition:background .2s}
.call-l:hover{background:#C93A25}
.call-l .ic{width:17px;height:17px;flex:none}
.call-l b{font:600 13px/1 var(--fd);letter-spacing:.06em;text-transform:uppercase}
.call-n{display:flex;flex-direction:column;gap:5px}
.call-n a{font:600 15px/1 var(--fd);color:var(--blue);letter-spacing:.01em;white-space:nowrap;transition:color .2s}
.call-n a:hover{color:var(--hot)}
.burger{display:none;width:44px;height:44px;border-radius:50%;place-items:center;cursor:pointer;color:var(--ink);
  background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);transition:background .3s,border-color .3s}
.hdr.solid .burger{background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.drawer{position:fixed;inset:0;z-index:60;background:rgba(19,36,58,.35);overflow:hidden}
.dr-in{position:absolute;top:0;right:0;bottom:0;width:min(320px,86%);background:#fff;padding:72px 28px 28px;display:flex;flex-direction:column;gap:4px;overflow:auto}
.dr-in a:not(.btn){font:500 16px/1 var(--fd);padding:14px 0;border-bottom:1px solid var(--line)}
.dr-in .btn{margin-top:20px}
.dr-x{position:absolute;top:18px;right:18px;background:none;border:0;width:40px;height:40px;display:grid;place-items:center;cursor:pointer}
.dr-x .ic{width:24px;height:24px}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:center;background:#eef4fa}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.55) 38%,rgba(255,255,255,0) 60%)}
/* màn hẹp: ảnh lấn vào vùng chữ nên phủ trắng đậm hơn */
@media (max-width:1280px) and (min-width:761px){.hero::before{background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.86) 45%,rgba(255,255,255,.35) 66%,rgba(255,255,255,0) 80%)}}
.hero-c{position:relative;z-index:2;margin-left:max(7%,calc((100% - var(--maxw))/2));max-width:min(820px,62%)}
.kicker{font:500 12px/1.4 var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.hero h1{font:500 56px/1.15 var(--fd);letter-spacing:-.01em;margin:18px 0 20px;color:var(--ink)}
.hero h1 span{color:var(--blue)}
.hero-p{font-size:17px;color:var(--mut);max-width:480px}
.hero-a{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
/* hero hiện đại: nền xanh đậm VNPT, chữ trắng, dải thông số */
.hero-dk{background:#082E54}
/* không phủ lớp màu lên ảnh: nền xanh đã nằm sẵn trong ảnh ở vùng chữ */
.hero-dk::before{display:none}
/* màn 761–1280: thu hẹp khối chữ, dịch ảnh sang phải để chữ nằm trên vùng nền xanh */
@media (max-width:1280px) and (min-width:761px){.hero-dk .hero-bg{object-position:72% center}.hero-dk .hero-c{max-width:min(500px,46%)}.hero-dk h1{font-size:40px}.hero-dk .hero-p{font-size:15px}.hero-st li{padding:0 18px}.hero-st b{font-size:22px}.hero-st span{font-size:12px}}
/* máy tính bảng dựng dọc: chữ nửa trên, ảnh thiết bị nửa dưới (mờ dần ở mép trên, không phủ màu) */
@media (min-width:761px) and (max-width:1100px) and (orientation:portrait){.hero-dk{align-items:flex-start}.hero-dk .hero-c{max-width:none;margin-right:7%;padding-top:130px}.hero-dk h1{font-size:46px}.hero-dk .hero-p{font-size:16px;max-width:560px}.hero-dk .hero-bg{top:auto;bottom:0;height:50%;object-position:right bottom;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 28%);mask-image:linear-gradient(180deg,transparent 0,#000 28%)}}
.hero-dk .kicker,.hero-dk h1,.hero-dk .hero-p,.hero-st b,.hero-st span{text-shadow:0 1px 10px rgba(4,24,46,.45)}
.hero-dk .kicker{color:#8FD8F8}
.hero-dk h1{color:#fff;font-weight:600}
.hero-dk h1 span{color:#fff}
.hero-dk h1 .h1-hl,.hero-dk h1 .h1-hl span{color:#5CCBF5}
.hero-dk .hero-p{color:rgba(255,255,255,.82)}
.hero-dk .btn-p{background:#fff;color:var(--blue-dd);border-color:#fff}
.hero-dk .btn-p:hover{color:#fff;border-color:var(--blue)}
.hero-dk .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.hero-dk .btn-o:hover{border-color:var(--blue)}
.hero-st{display:flex;gap:0;margin-top:44px;list-style:none}
.hero-st li{display:flex;flex-direction:column;gap:4px;padding:0 28px;border-left:1px solid rgba(255,255,255,.22)}
.hero-st li:first-child{padding-left:0;border-left:0}
.hero-st b{font:600 28px/1 var(--fd);color:#fff;letter-spacing:-.01em}
.hero-st span{font-size:13px;color:rgba(255,255,255,.7);white-space:nowrap}
/* header trong suốt nằm trên hero tối: logo trắng */
body[data-page=home] .hdr:not(.solid) .logo img{filter:brightness(0) invert(1)}
body[data-page=home] .hdr:not(.solid) .logo-t{border-left-color:rgba(255,255,255,.35)}
body[data-page=home] .hdr:not(.solid) .logo-t b{color:#fff}
body[data-page=home] .hdr:not(.solid) .logo-t small{color:rgba(255,255,255,.72)}
.mq{position:absolute;left:0;right:0;bottom:0;z-index:2;height:50px;background:#fff;color:var(--blue);border-top:1px solid var(--line);overflow:hidden;display:flex;align-items:center;contain:layout paint}
.mq-t{display:flex;width:max-content;animation:mq var(--mqd,45s) linear infinite;will-change:transform;backface-visibility:hidden}
.mq-t span{display:inline-flex;align-items:center;gap:8px;padding:0 28px;font:500 14px/1 var(--fd);white-space:nowrap}
.mq-t .ic{width:16px;height:16px;color:var(--cyan)}
@keyframes mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ---------- banner trang con ---------- */
.phero{position:relative;background:var(--tint);padding:128px 7% 50px;min-height:640px;display:flex;flex-direction:column;justify-content:center}
.phero-in{width:100%;max-width:var(--maxw);margin:0 auto 40px;display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.phero h1{font:500 48px/1.18 var(--fd);letter-spacing:-.01em;margin:14px 0 16px;color:var(--ink)}
.phero-s{font-size:17px;color:var(--mut);max-width:540px}
.phero-f{display:inline-block;margin-top:20px;padding:10px 18px;border-radius:999px;background:#fff;color:var(--mut);font-size:14px}
.phero-f b{font:600 20px/1 var(--fd);color:var(--blue)}
.phero .hero-a{margin-top:26px}
.phero-img{width:100%;max-width:calc(var(--imgh) * var(--ar,1.5));margin-inline:auto}
.phero-img img{width:100%;height:auto;border-radius:18px;box-shadow:0 24px 50px rgba(19,36,58,.12)}

/* quy trình 4 bước (trang con) */
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:none}
.proc li{position:relative;padding:30px 22px 26px;border-radius:var(--r);border:1px solid var(--line);text-align:center;background:#fff}
.proc .sn{position:absolute;top:14px;left:16px;width:28px;height:28px;font-size:13px;margin:0}
.proc-i{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--tint2);color:var(--blue);margin-bottom:14px}
.proc-i .ic{width:26px;height:26px}
.proc h3{font:500 18px/1.3 var(--fd);margin-bottom:6px}
.proc p{font-size:14px;color:var(--mut)}

/* ---------- sections ---------- */
.sec{width:var(--w);max-width:var(--maxw);margin:0 auto calc(var(--spg, var(--gs)) * var(--spb, 1) * var(--spn, 1))}
.sec-first{margin-top:calc(var(--gh) * var(--spt, 1))}
.sh{text-align:center;margin-bottom:calc(48px * var(--rh-pad, 1))}
.sh h2{font:500 42px/1.2 var(--fd);letter-spacing:-.01em;margin:0;white-space:nowrap;color:var(--blue)}
.sub{color:var(--mut);max-width:720px;margin:0 auto}
.sub-h{font:500 26px/1.3 var(--fd);text-align:center;margin:64px 0 24px}
.mini{font:600 15px/1.3 var(--fd);margin:26px 0 12px;color:var(--ink)}
.lead{font-size:16px;color:var(--ink)}
.from{margin-top:16px;padding:12px 18px;border-radius:10px;background:var(--tint);color:var(--mut);font-size:14px}
.from b{font:600 18px/1 var(--fd);color:var(--blue)}
.note{font-size:13px;color:var(--mut);margin-top:12px}

/* intro row */
.intro{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-bottom:40px}
.obox{margin-top:22px;padding:22px 24px 14px;border-radius:var(--r);border:1px solid var(--line);border-left:4px solid var(--blue);background:#fff}
.obox .mini{margin-top:0}
/* Điểm nổi bật: lưới thẻ 3 cột, hàng lẻ tự căn giữa */
.hlw{margin:40px 0 56px}.intro+.hlw{margin-top:0}
.hlw>.mini{text-align:center;margin:0 0 16px;font-size:17px}
/* thẻ gọn: icon trái, tên + mô tả phải */
.hl{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.hl li{flex:0 0 calc((100% - 28px)/3);display:grid;grid-template-columns:32px 1fr;align-items:start;align-content:start;column-gap:12px;row-gap:1px;margin:0;padding:14px 16px;border-radius:12px;background:var(--tint)}
.hl .hl-i{grid-row:span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff}
.hl .hl-i .ic{width:15px;height:15px;margin:0;color:#fff}
.hl b{font:600 14px/1.4 var(--fd);color:var(--ink);padding-top:1px}
.hl span{font-size:13px;line-height:1.5;color:var(--mut)}
@media (max-width:1024px){.hl{gap:10px}.hl li{flex-basis:calc((100% - 10px)/2)}}
@media (min-width:761px) and (max-width:1024px){.perks li{flex-basis:calc((100% - 14px)/2)}}
.intro-1{grid-template-columns:1fr}
.ifig{width:100%;max-width:calc(var(--imgh) * var(--ar,1.78));margin-inline:auto}
.ifig img{width:100%;height:auto;border-radius:18px}
.ol li,.ways li,.ff li,.bpts li{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
.ol .ic,.ways .ic,.ff .ic,.bpts .ic{width:18px;height:18px;margin-top:4px;color:var(--blue)}
.ol li{font-weight:400}
.hl b{font-weight:600}

/* services */
.svcs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.svc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding-bottom:22px;border-radius:var(--r);background:var(--tint);overflow:hidden}
.svc-p{display:block;width:100%;max-width:calc(var(--imgh) * var(--ar,1.5));aspect-ratio:var(--ar,1.5);margin-bottom:14px;background:var(--tint2)}
.svc-p img{width:100%;height:100%;object-fit:cover}
.svc b{font:500 17px/1.3 var(--fd);padding:0 12px}
.svc-f{font-size:13px;color:var(--mut)}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.quick a{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:var(--r);color:#fff;
  box-shadow:0 12px 28px rgba(10,70,119,.22);transition:transform .3s var(--vm-ease,ease),box-shadow .3s var(--vm-ease,ease)}
.quick a::after{content:"";position:absolute;right:-30px;top:-50px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.09);pointer-events:none}
.quick .q-reg{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-d) 100%)}
.quick .q-hot{background:linear-gradient(135deg,var(--blue-d) 0%,var(--blue-dd) 100%)}
.quick .q-zalo{background:linear-gradient(135deg,var(--cyan) 0%,var(--blue) 100%)}
.q-i{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;color:var(--blue-d);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.q-i .ic{width:20px;height:20px}
.q-zalo .q-i .ic{width:26px;height:26px}
.quick span{flex:1;min-width:0}
.quick b{display:block;font:600 15px/1.25 var(--fd);color:#fff;white-space:nowrap}
.quick small{display:block;margin-top:2px;font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.85);white-space:nowrap}
@media (min-width:761px) and (max-width:1024px){.quick{gap:12px}.quick a{padding:12px 12px;gap:10px}.q-i{width:34px;height:34px}.q-i .ic{width:17px;height:17px}.q-zalo .q-i .ic{width:22px;height:22px}.quick b{font-size:13.5px}.quick small{font-size:11.5px}}
@media (hover:hover){.quick a:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(10,70,119,.25)}}

/* tabs */
.tbar{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:28px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;min-width:0;max-width:100%}
.tb{height:42px;padding:0 20px;border-radius:999px;border:1px solid var(--line);background:#fff;font:500 14px/1 var(--fd);cursor:pointer;transition:all .2s;white-space:nowrap}
.tb:hover{border-color:var(--blue);color:var(--blue)}
.tb.on{background:var(--blue);border-color:var(--blue);color:#fff}
.tp{display:none}.tp.on{display:block}
.tdesc{text-align:center;color:var(--mut);margin-bottom:22px}
/* chọn khu vực: viền xanh, nhãn rõ, nút đang chọn tô xanh và trượt */
.rg-w{display:inline-flex;align-items:center;gap:12px;padding:5px 5px 5px 16px;border-radius:999px;border:1.5px solid var(--blue);background:#fff;box-shadow:0 6px 20px rgba(21,113,186,.14)}
.rg-lab{display:inline-flex;align-items:center;gap:6px;font:600 13px/1 var(--fd);color:var(--blue);white-space:nowrap}
.rg-lab .ic{width:18px;height:18px}
.rg{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:var(--tint)}
.rg-k{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--blue);box-shadow:0 4px 12px rgba(21,113,186,.35);transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.rg.out .rg-k{transform:translateX(100%)}
.rg button{position:relative;z-index:1;height:38px;padding:0 18px;border:0;border-radius:999px;background:none;font:600 14px/1 var(--fd);color:var(--mut);cursor:pointer;transition:color .3s;white-space:nowrap}
.rg button.on{color:#fff}
@keyframes rg-flash{from{opacity:.2}to{opacity:1}}
.pr.flash{animation:rg-flash .45s ease-out}

/* carousel + package cards */
.car{position:relative}
.track{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:24px 20px;padding:4px 0 10px}
.track>.pc{flex:0 0 calc((100% - 60px)/4);min-width:0}
.cnav{position:absolute;top:42%;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--blue);
  display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(19,36,58,.08);transition:opacity .2s}
.cnav.prev{left:-22px}.cnav.next{right:-22px}
.cnav[disabled]{opacity:0;pointer-events:none}
.pc{scroll-snap-align:start;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;text-align:center}
.pv{position:relative;background:var(--blue);color:#fff;padding:44px 16px 16px;display:flex;flex-direction:column;align-items:center}
.pv::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.07);right:-70px;top:-90px}
.pv-k{max-width:100%;font:500 11px/1.3 var(--fd);letter-spacing:.12em;text-transform:uppercase;opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* tên gói luôn chiếm đủ 2 dòng để phần đầu xanh của mọi thẻ cao bằng nhau */
.pv-n{font:600 22px/1.25 var(--fd);margin:6px 0 10px;letter-spacing:.01em;min-height:2.5em;display:flex;align-items:center;justify-content:center}
.pv-s{font:600 13px/1 var(--fd);padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.16)}
.pv-d{height:86px;display:grid;place-items:center;margin-top:12px}
.pv-d img{height:86px;width:auto;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}
.pv-ic{width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center}
.pv-ic .ic{width:32px;height:32px}
.tag{position:absolute;top:12px;right:12px;z-index:1;font:600 11px/1 var(--fd);padding:6px 10px;border-radius:999px;background:var(--hot);color:#fff;letter-spacing:.02em}
.tag-new{background:var(--cyan)}.tag-g{background:#16A34A}
.pb{padding:18px 18px 22px;display:flex;flex-direction:column;flex:1}
.plab{font-size:12px;color:var(--mut)}
.price{margin:2px 0 12px}
.price b{font:600 24px/1.2 var(--fd);color:var(--blue)}
.price span{font-size:13px;color:var(--mut);margin-left:2px}
.cyc{display:grid;gap:4px;margin:-4px 0 12px;padding:10px;border-radius:10px;background:var(--tint);font-size:13px}
.cyc p{display:flex;justify-content:space-between;gap:8px}
.cyc b{font-weight:600;color:var(--ink)}
.fl{flex:1;display:grid;gap:6px;align-content:start;width:fit-content;max-width:100%;margin:0 auto 18px;text-align:left}
.fl li{display:flex;gap:8px;justify-content:flex-start;align-items:flex-start;font-size:14px;line-height:1.5}
.fl .ic{flex:none;width:16px;height:16px;margin-top:3px;color:var(--blue)}
.pa{display:flex;flex-direction:column;align-items:center;gap:10px}
.pa .btn{width:100%}
.lnk{display:inline-flex;align-items:center;gap:6px;font:500 13px/1 var(--fd);color:var(--blue)}
.lnk .ic{width:15px;height:15px}

/* mobile combo */
.duo{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.duo-c{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* vinaphone perks */
/* khối ưu đãi VinaPhone: nền xanh VNPT, từng ưu đãi là thẻ trắng (yêu cầu nổi bật) */
.perks{position:relative;overflow:hidden;margin-top:40px;padding:32px;border-radius:var(--r);background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dd) 100%);color:#fff;box-shadow:0 16px 36px rgba(10,70,119,.22)}
.perks::before{content:"";position:absolute;right:-80px;top:-120px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.perks-h{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 22px;font:600 22px/1.3 var(--fd);color:#fff;text-align:center}
.perks-h i{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--hot);color:#fff}
.perks-h .ic{width:20px;height:20px}
.perks ul{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.perks li{flex:0 0 calc((100% - 28px)/3);display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:#fff;color:var(--ink);font-weight:500;line-height:1.45;box-shadow:0 6px 16px rgba(4,24,46,.12)}
.pk-i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--tint2);color:var(--blue)}
.pk-i .ic{width:16px;height:16px}

/* add-on devices */
.dvs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.dv{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);padding:0 18px 22px;text-align:center;display:flex;flex-direction:column;align-items:center}
.dv-p{width:calc(100% + 36px);height:220px;background:var(--tint);display:grid;place-items:center;margin-bottom:18px}
.dv-p img{height:170px;width:auto;object-fit:contain}
.dv-ic{width:96px;height:96px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center}
.dv-ic .ic{width:44px;height:44px}
.dv h3{font:500 18px/1.3 var(--fd)}
.dv-f{margin-top:4px;color:var(--mut);font-size:14px}
.dv-f b{font:600 18px/1 var(--fd);color:var(--blue)}
.dv-b{font-size:13px;color:var(--mut);margin:4px 0 10px}
.dv ul{flex:1;font-size:14px;margin-bottom:16px}
.dv li{margin:4px 0}
.dv .btn{align-self:stretch}

/* tables */
.tcap{font:600 15px/1.3 var(--fd);margin:26px 0 12px;text-align:center}
.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table.pt{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.pt th{background:var(--blue);color:#fff;font:500 13px/1.3 var(--fd);text-align:left;padding:13px 16px;white-space:nowrap}
.pt td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:top}
.pt tbody tr:nth-child(even) td{background:var(--tint)}
.pt td:first-child{font-weight:500;white-space:nowrap}
.pt td:nth-child(n+3){white-space:nowrap}

/* business */
.bpts{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px;margin-top:18px}
.bpts li{font-weight:400;font-size:14px}
#doanhnghiep .itxt .btn{display:flex;width:fit-content;margin:20px auto 0}

/* family safe */
.fam-top{max-width:860px;margin:0 auto 34px;text-align:center}
.award{display:inline-flex;gap:8px;align-items:center;margin-top:16px;padding:10px 18px;border-radius:999px;background:var(--tint);font:500 14px/1.4 var(--fd);color:var(--blue)}
.fps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.fp{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:26px 14px 20px;text-align:center}
.fp-on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}
.fp .tag{left:50%;transform:translateX(-50%);top:-11px;white-space:nowrap}
.fp-n{font:500 16px/1.3 var(--fd)}
.fp-t{font-size:13px;color:var(--mut)}
.fp-p{font:600 24px/1.3 var(--fd);color:var(--blue);margin-top:8px}
.fp-x{font-size:13px;color:var(--hot);font-weight:500}
.ffs{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.ff{padding:24px 22px;border-radius:var(--r);background:var(--tint)}
.ff h3{font:500 17px/1.3 var(--fd);margin-bottom:10px;text-align:center}
.ff li{font-size:14px;line-height:1.55}
.steps ol{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.steps li{text-align:center;padding:0 12px}
.sn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;font:600 17px/1 var(--fd);margin-bottom:12px}
.apps{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:32px}
.contact-box{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 20px;border-radius:var(--r);background:var(--tint);text-align:center}
.contact-box p{font:500 18px/1.4 var(--fd)}
.contact-box .btn{min-width:220px}

/* why */
.whys{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.why{padding:30px 26px;border-radius:var(--r);border:1px solid var(--line);text-align:center}
.why-i{width:54px;height:54px;border-radius:50%;background:var(--tint2);color:var(--blue);display:inline-grid;place-items:center;margin-bottom:14px}
.why-i .ic{width:26px;height:26px}
.why h3{font:500 18px/1.3 var(--fd);margin-bottom:6px}
.why p{color:var(--mut);font-size:14px}

/* register */
.reg-wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.reg-info .mini:first-child{margin-top:0}
.ways a{color:var(--blue);font-weight:500}
.reg-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:32px;border-radius:18px;background:var(--tint)}
.reg-form label{display:grid;gap:6px;font:500 13px/1.3 var(--fd)}
.reg-form label:nth-of-type(3){grid-column:1/-1}
.reg-form input,.reg-form select{height:48px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 14px;font:400 15px/1 var(--fb);outline:none;transition:border-color .2s;width:100%}
.reg-form input:focus,.reg-form select:focus{border-color:var(--blue)}
.reg-form input.bad{border-color:var(--hot)}
.reg-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.reg-form button{grid-column:1/-1;height:52px}
.fmsg{grid-column:1/-1;font-size:14px;text-align:center;min-height:1.5em}
.fmsg.ok{color:#137A3E;font-weight:500}.fmsg.err{color:var(--hot);font-weight:500}

/* footer — nền xanh VNPT đậm, dải kêu gọi + 3 cột + thanh bản quyền */
.ft{position:relative;overflow:hidden;color:rgba(255,255,255,.78);padding:64px 7% 0;
  background:radial-gradient(900px 420px at 88% -10%,rgba(18,163,221,.28),transparent 60%),linear-gradient(180deg,var(--blue-d) 0%,var(--blue-dd) 100%)}
.ft-cta{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;max-width:var(--maxw);margin:0 auto 56px;padding:28px 36px;border-radius:calc(var(--r) + 4px);
  background:linear-gradient(120deg,var(--blue) 0%,#1A82CF 100%);box-shadow:0 18px 40px rgba(4,30,56,.28)}
.ft-cta h2{font:700 24px/1.3 var(--fd);color:#fff;margin:0}
.ft-cta p{margin:6px 0 0;font-size:15px;color:rgba(255,255,255,.86)}
.ft-cta-b{display:flex;gap:12px;flex:none}
.ft-cta .btn{height:50px;padding:0 26px;font-weight:600}
.ft-call{background:#fff;color:var(--blue-dd);border-color:#fff}
.ft-call .ic{width:18px;height:18px;color:var(--blue)}
.ft-reg{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
@media (hover:hover){.ft-call:hover{background:var(--tint2);border-color:var(--tint2)}.ft-reg:hover{background:#fff;color:var(--blue-dd);border-color:#fff}}
.ft-in{display:grid;grid-template-columns:1.5fr 1.25fr 1fr;gap:56px;max-width:var(--maxw);margin:0 auto;padding-bottom:48px}
.ft-b p{font-size:14px;line-height:1.7;max-width:420px;margin:0 0 6px}
.ft-b p b{color:#fff;font-weight:600}
.ft-c{display:flex;flex-direction:column;gap:12px;font-size:14px}
.ft-c h3{position:relative;font:600 15px/1.3 var(--fd);color:#fff;margin:0 0 10px;padding-bottom:12px;letter-spacing:.02em}
.ft-c h3::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:3px;border-radius:2px;background:var(--cyan)}
.ft-c a{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.78);transition:color .2s}
.ft-c a:hover{color:#fff}
.ft-ct a{gap:12px}
.ft-c .ic{flex:none;width:32px;height:32px;padding:8px;border-radius:50%;background:rgba(255,255,255,.1);color:#8FD8F7}
.ft-svc{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;align-content:start}.ft-svc h3{grid-column:1/-1}
/* dải cuối trang: tràn ngang, nền đậm, chữ căn giữa (bản quyền + tuyên bố website vệ tinh) */
.ft-bot{margin:0 calc(50% - 50vw);padding:18px 7% 22px;background:#06244A;text-align:center}
.ft-n{margin:6px auto 0;max-width:1000px;font-size:14px;line-height:1.65;color:rgba(255,255,255,.9)}
.ft-copy{margin:0;font-size:14px;color:rgba(255,255,255,.6)}
@media (min-width:761px) and (max-width:1100px){.ft-in{grid-template-columns:1.25fr 1fr;gap:40px 48px}.ft-b{grid-column:1/-1}.ft-b p{max-width:640px}}

/* floating */
.fab{position:fixed;right:18px;bottom:86px;z-index:40;display:grid;gap:12px;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .35s,transform .35s var(--vm-ease,ease)}
.fab.on{opacity:1;transform:none;pointer-events:auto}
.fab a{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 6px 18px rgba(19,36,58,.2)}
.fab-z{background:#fff;color:var(--blue)!important}
.fab-z .ic{width:34px;height:34px}
.fab-p{background:var(--blue)}
.fab-p .ic{width:24px;height:24px}
.totop{position:fixed;right:18px;bottom:22px;z-index:40;width:52px;height:52px;border-radius:50%;border:0;background:var(--blue);color:#fff;
  display:grid;place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s;box-shadow:0 6px 18px rgba(19,36,58,.12)}
.totop.on{opacity:1;pointer-events:auto}


/* ---------- responsive ---------- */
/* các mốc thu gọn header (đo theo khung 86%) */
@media (max-width:1500px){.call-l{width:40px;padding:0;justify-content:center}.call-l b{display:none}.call{gap:10px;padding-right:16px}}
@media (max-width:1240px){
  .nav a{font-size:13px;padding:10px 11px}.nav a::after{left:11px;right:11px}
  .logo-t small{display:none}
}
@media (max-width:1160px){
  .nav{display:none}.burger{display:grid}
  .hdr-r{margin-left:auto}.call-l{width:auto;padding:0 16px 0 14px}.call-l b{display:inline}.call{gap:12px;padding-right:18px}.logo-t small{display:block}
}
@media (max-width:1024px){
  .phero-in{grid-template-columns:1fr;gap:32px}.phero{min-height:0}
  .proc{grid-template-columns:repeat(2,1fr)}
  .hero-c{max-width:70%}
  .track>.pc{flex-basis:calc((100% - 40px)/3)}
  .ffs{grid-template-columns:repeat(2,1fr)}
  .fps{grid-template-columns:repeat(3,1fr)}
  .duo{grid-template-columns:1fr}
  .dvs{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  :root{--gap-sec:60px;--gh:calc(60px * var(--rh-hero, 1));--hh:64px;--gt:32px;--qt:calc(36px * var(--rh-gap, 1));--qf:calc(36px * var(--rh-hero, 1));--r:12px}
  body{font-size:14px}
  .hdr{height:64px}.hdr-in{gap:10px}
  .logo{gap:9px}.logo img{height:24px}
  .logo-t{padding-left:9px;gap:3px}.logo-t b{font-size:13px}.logo-t small{font-size:8.5px;letter-spacing:.06em}
  .hdr-r{gap:8px}
  .call{gap:8px;padding:4px 12px 4px 4px}.call-l{width:32px;height:32px;padding:0;justify-content:center}.call-l b{display:none}.call-l .ic{width:15px;height:15px}
  .call-n{gap:4px}.call-n a{font-size:12.5px}
  .hero{align-items:flex-start;min-height:560px}
  .hero-bg{object-position:center bottom}
  .hero::before{display:none}
  .hero-st{justify-content:center;margin-top:24px}.hero-st li{padding:0 14px;align-items:center}
  .hero-st b{font-size:20px}.hero-st span{font-size:11px;color:rgba(255,255,255,.88)}
  .hero-st b,.hero-st span{text-shadow:0 1px 8px rgba(4,24,46,.7)}
  .hero-c{max-width:100%;margin-left:0;padding:96px 7% 0;text-align:center}
  .hero h1{font-size:30px;margin:12px 0 12px}
  .hero-p{font-size:14px;margin:0 auto}
  .hero-a{justify-content:center;margin-top:20px;gap:10px}
  .hero-a .btn{height:42px;padding:0 18px}
  .mq{height:42px}.mq-t span{font-size:12.5px;padding:0 18px}
  .phero{padding:88px 7% 30px}.phero-in{margin-bottom:28px;gap:24px}

  .phero h1{font-size:30px;margin:10px 0 12px}.phero-s{font-size:14px}
  .phero-f{font-size:13px;margin-top:14px}.phero-f b{font-size:17px}
  .phero .hero-a{margin-top:18px}.phero .hero-a .btn{height:42px;padding:0 18px}
  .proc{gap:12px}.proc li{padding:22px 10px 16px}.proc-i{width:46px;height:46px}.proc-i .ic{width:22px;height:22px}
  .proc h3{font-size:14.5px}.proc p{font-size:12px}.proc .sn{top:10px;left:10px;width:24px;height:24px;font-size:11px}
  .sh{margin-bottom:calc(28px * var(--rh-pad, 1))}
  .sh h2{font-size:26px}
  .sub{font-size:13.5px}
  .sub-h{font-size:21px;margin:40px 0 18px}
  .lead{font-size:14.5px}
  .intro{grid-template-columns:1fr;gap:24px;margin-bottom:32px}
  .obox{padding:18px 18px 10px}
  .hlw{margin:24px 0 32px}.hlw>.mini{font-size:16px;margin-bottom:12px}
  .hl{gap:8px}.hl li{flex-basis:100%;padding:12px 14px}
  .svcs{grid-template-columns:repeat(2,1fr);gap:12px}
  .svc{padding-bottom:14px}.svc-p{margin-bottom:10px}
  .svc b{font-size:14px;padding:0 6px}.svc-f{font-size:12px}
  .quick{grid-template-columns:1fr;gap:10px}
  .quick a{padding:12px 14px;gap:12px}.q-i{width:38px;height:38px}.quick b{font-size:14.5px}.quick small{font-size:12px}
  .tbar{align-items:stretch}
  /* căn giữa khi vừa, cuộn ngang từ trái khi tràn */
  .tabs{justify-content:flex-start}.tabs>:first-child{margin-left:auto}.tabs>:last-child{margin-right:auto}
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:2px}
  .tabs::-webkit-scrollbar{display:none}
  .tb{flex:none;height:38px;padding:0 14px;font-size:13px}
  .rg-w{align-self:stretch;justify-content:space-between;gap:8px;padding-left:12px}
  .rg-lab{font-size:12px}.rg button{height:34px;padding:0 12px;font-size:13px}
  .track{gap:14px 12px}.track>.pc{flex-basis:calc((100% - 12px)/2)}
  .cnav{width:34px;height:34px;top:30%}.cnav.prev{left:-17px}.cnav.next{right:-17px}.cnav .ic{width:16px;height:16px}
  .pv{padding:30px 8px 12px}.pv-k{font-size:9px;letter-spacing:.08em}
  .pv-n{font-size:15px;margin:4px 0 8px}.pv-s{font-size:11px;padding:5px 10px}
  .pv-d{height:58px;margin-top:8px}.pv-d img{height:58px}.pv-ic{width:46px;height:46px}.pv-ic .ic{width:22px;height:22px}
  .tag{top:8px;right:8px;font-size:9.5px;padding:4px 7px}
  .pb{padding:12px 10px 14px}
  .price b{font-size:17px}.price span{font-size:11px}
  .cyc{font-size:11px;padding:8px}.cyc p{flex-direction:column;gap:0}
  .fl li{font-size:12px;gap:4px}.fl .ic{width:13px;height:13px}
  .pa .btn{height:38px;font-size:12.5px;padding:0 8px}.lnk{font-size:12px}
  .duo{gap:28px}.duo-c{gap:12px}
  .perks{padding:22px 16px}.perks-h{font-size:17px;gap:10px;margin-bottom:16px}.perks-h i{width:34px;height:34px}.perks ul{gap:10px}.perks li{flex-basis:100%;padding:12px 14px}
  .dvs{grid-template-columns:repeat(2,1fr);gap:12px}
  .dv{padding:0 10px 16px}.dv-p{width:calc(100% + 20px);height:140px}.dv-p img{height:110px}
  .dv h3{font-size:14.5px}.dv-f,.dv ul{font-size:12px}.dv-f b{font-size:15px}.dv-b{font-size:11.5px}
  .dv .btn{height:38px;padding:0 8px;font-size:12.5px}
  table.pt{font-size:13px}.pt th,.pt td{padding:10px 12px}
  .tcap{font-size:14px}
  .bpts{grid-template-columns:1fr}
  .fps{grid-template-columns:repeat(2,1fr);gap:12px}
  .fp:last-child{grid-column:1/-1}
  .fp-p{font-size:20px}
  .ffs{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:32px}
  .ff{padding:16px 12px}.ff h3{font-size:14px}.ff li{font-size:12px}.ff .ic{width:14px;height:14px;margin-top:2px}
  .steps ol{grid-template-columns:1fr;gap:12px}
  .steps li{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:var(--r);background:var(--tint)}
  .steps .sn{flex:none;width:40px;height:40px;margin:0}
  .steps li p{margin:0}
  .apps .btn{width:100%}
  .whys{grid-template-columns:repeat(2,1fr);gap:12px}
  .why{padding:20px 12px}.why h3{font-size:14.5px}.why p{font-size:12.5px}.why-i{width:44px;height:44px}
  .reg-wrap{grid-template-columns:1fr;gap:28px}
  .reg-form{grid-template-columns:1fr;padding:20px}
  .ft{padding:40px 7% 76px}
  .ft-cta{flex-direction:column;align-items:stretch;text-align:center;padding:24px 20px;margin-bottom:40px}
  .ft-cta h2{font-size:19px}.ft-cta p{font-size:14px}
  .ft-cta-b{flex-direction:column}.ft-cta .btn{width:100%}
  .ft-in{grid-template-columns:1fr;gap:32px;padding-bottom:32px}
  .ft-svc{gap:10px 16px}
  .ft{padding-bottom:0}.ft-bot{padding:18px 6% 84px}.ft-n{font-size:13px}
  .fab{right:12px;bottom:70px;gap:10px}.fab a{width:46px;height:46px}
  .totop{right:12px;bottom:14px;width:46px;height:46px}
}

/* header màn rất nhỏ */
@media (max-width:400px){
  .hdr-in{width:calc(100% - 32px)}
  .logo-t small{display:none}.logo-t b{white-space:nowrap}
  .hdr-r{gap:6px}.call-l{display:none}.call{padding:5px 11px}.call-n a{font-size:12px}
  .burger{width:38px;height:38px}
}
@media (max-width:340px){.logo-t{display:none}}
@media (max-width:440px){
  .rg-w{flex-direction:column;align-items:stretch;gap:8px;padding:10px;border-radius:18px}
  .rg-lab{justify-content:center}
  .rg button{padding:0 8px}
}

/* nút Đăng ký lắp đặt trên banner: sóng toả ra liên tục (yêu cầu khách) */
@keyframes btn-pulse{0%{box-shadow:0 0 0 0 rgba(92,203,245,.75)}70%{box-shadow:0 0 0 16px rgba(92,203,245,0)}100%{box-shadow:0 0 0 0 rgba(92,203,245,0)}}
.btn-pulse{animation:btn-pulse 1.8s ease-out infinite}

/* nút Zalo nổi: sóng toả liên tục (yêu cầu khách) */
@keyframes fab-z-ring{0%,60%,100%{transform:none}65%{transform:rotate(-12deg)}70%{transform:rotate(12deg)}75%{transform:rotate(-8deg)}80%{transform:rotate(8deg)}85%{transform:none}}
/* sóng toả của nút Zalo: vòng tròn phía sau phóng to + mờ dần (transform/opacity chạy trên GPU, không vẽ lại mỗi khung hình) — hình giống hệt box-shadow cũ */
.fab-z{position:relative;isolation:isolate;--zw:1.54}
.fab-z::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background:rgba(21,113,186,.55);opacity:0;pointer-events:none;animation:fab-z-wave 1.8s ease-out infinite}
@keyframes fab-z-wave{0%{transform:scale(1);opacity:1}70%,100%{transform:scale(var(--zw));opacity:0}}
@media (max-width:760px){.fab-z{--zw:1.61}}
.fab-z.no-pulse::after{animation:none}
.fab-z .ic{animation:fab-z-ring 1.8s ease-in-out infinite}

/* ---------- Banner trang chủ: vị trí khối chữ / hàng nút theo 9 ô (CMS lưu tên ô: tl tc tr · ml mc mr · bl bc br) ---------- */
@media (min-width:761px){
  .hero[data-cell^="t"]{align-items:flex-start}.hero[data-cell^="t"] .hero-c{padding-top:128px}
  .hero[data-cell^="b"]{align-items:flex-end}.hero[data-cell^="b"] .hero-c{padding-bottom:96px}
  .hero[data-cell$="c"] .hero-c{margin-left:auto;margin-right:auto;text-align:center}
  .hero[data-cell$="c"] .hero-p{margin-left:auto;margin-right:auto}
  .hero[data-cell$="c"] .hero-c .hero-a,.hero[data-cell$="c"] .hero-st{justify-content:center}
  .hero[data-cell$="r"] .hero-c{margin-left:auto;margin-right:max(7%,calc((100% - var(--maxw))/2));text-align:right}
  .hero[data-cell$="r"] .hero-p{margin-left:auto}
  .hero[data-cell$="r"] .hero-c .hero-a,.hero[data-cell$="r"] .hero-st{justify-content:flex-end}
  .hero[data-cell$="r"] .hero-st li:first-child{padding-left:28px}.hero[data-cell$="r"] .hero-st li:last-child{padding-right:0}
  /* hàng nút đặt riêng một ô (chỉ máy tính & tablet ngang; điện thoại nút luôn nằm dưới khối chữ) */
  .hero-cta-cell{position:absolute;z-index:3;inset:128px max(7%,calc((100% - var(--maxw))/2)) 96px;display:flex;pointer-events:none}
  .hero-cta-cell .hero-a{margin:0;pointer-events:auto}
  .hero[data-cta-cell^="t"] .hero-cta-cell{align-items:flex-start}.hero[data-cta-cell^="m"] .hero-cta-cell{align-items:center}.hero[data-cta-cell^="b"] .hero-cta-cell{align-items:flex-end}
  .hero[data-cta-cell$="l"] .hero-cta-cell{justify-content:flex-start}.hero[data-cta-cell$="c"] .hero-cta-cell{justify-content:center}.hero[data-cta-cell$="r"] .hero-cta-cell{justify-content:flex-end}
}
@media (max-width:760px){
  .hero[data-cta-cell]{flex-direction:column;align-items:stretch}
  .hero-cta-cell{position:relative;z-index:2;padding:0 7%}
}

/* ---------- Định dạng chữ từ CMS (thanh định dạng kiểu Word): cỡ chữ theo ô (zoom giữ đúng tỉ lệ chữ + khoảng dòng), kiểu chữ ---------- */
[data-fz="70"]{zoom:.7}[data-fz="80"]{zoom:.8}[data-fz="90"]{zoom:.9}[data-fz="110"]{zoom:1.1}[data-fz="120"]{zoom:1.2}[data-fz="130"]{zoom:1.3}[data-fz="140"]{zoom:1.4}[data-fz="150"]{zoom:1.5}[data-fz="160"]{zoom:1.6}
@media (max-width:760px){[data-fz-m="70"]{zoom:.7}[data-fz-m="80"]{zoom:.8}[data-fz-m="90"]{zoom:.9}[data-fz-m="100"]{zoom:1}[data-fz-m="110"]{zoom:1.1}[data-fz-m="120"]{zoom:1.2}[data-fz-m="130"]{zoom:1.3}[data-fz-m="140"]{zoom:1.4}[data-fz-m="150"]{zoom:1.5}[data-fz-m="160"]{zoom:1.6}}
[data-fs="b"],[data-fs="b"] *{font-weight:700!important}
[data-fs="n"],[data-fs="n"] *{font-weight:400!important}
[data-fs="i"]{font-style:italic}
[data-fs="u"]{text-transform:uppercase}
u{text-decoration-thickness:1px;text-underline-offset:.15em}
.hero h1>.h1-a,.hero h1>.h1-hl{display:block}
h1 b,h2 b,h3 b,.kicker b{font-weight:700}
/* Điện thoại: thẻ liên hệ nhanh xếp dọc → căn giữa biểu tượng + chữ trong thẻ (chữ cùng một cột để 3 biểu tượng thẳng hàng) */
@media (max-width:760px){.quick a{justify-content:center}.quick span{flex:0 0 auto;min-width:150px}}
/* Khung “Ưu đãi đặc biệt”: tiêu đề căn giữa (thanh định dạng của CMS vẫn đổi được — data-ta dùng !important) */
.obox .mini{text-align:center}
/* Thẻ ảnh dọc dịch vụ (trang chủ, khối “services” kiểu cards): chữ trên nền màu VNPT, ảnh mờ dần lên trên, nút Khám phá ngay */
.vcs{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.vc{position:relative;display:block;width:100%;max-width:calc(var(--imgh) * var(--ar,.625));aspect-ratio:var(--ar,.625);justify-self:center;align-self:start;border-radius:18px;overflow:hidden;color:#fff;isolation:isolate;box-shadow:0 10px 26px rgba(10,70,119,.16)}
.vc-blue{background:linear-gradient(165deg,#1E86D6 0%,var(--blue) 45%,var(--blue-d) 100%)}
.vc-cyan{background:linear-gradient(165deg,#3CC0EE 0%,var(--cyan) 45%,#0B83C0 100%)}
.vc-navy{background:linear-gradient(165deg,#145C99 0%,var(--blue-dd) 45%,#06305A 100%)}
.vc::before{content:"";position:absolute;z-index:-1;top:-10%;right:-18%;width:62%;height:70%;transform:skewX(-16deg);background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,0));border-radius:22px}
.vc-t{position:absolute;z-index:2;left:0;right:0;top:0;padding:20px 18px 0;text-transform:uppercase;font-family:var(--fd);text-shadow:0 2px 10px rgba(0,0,0,.12)}
.vc-t small{display:block;font:700 14px/1.15 var(--fd);letter-spacing:.02em;opacity:.92}
.vc-t b{display:block;margin-top:4px;font:800 22px/1.1 var(--fd);letter-spacing:.005em}
.vc-p{position:absolute;z-index:1;left:0;right:0;bottom:0;height:68%}
.vc-p img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 30%);mask-image:linear-gradient(180deg,transparent 0,#000 30%)}
.vc-p::after{content:"";position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(180deg,transparent,rgba(4,30,56,.45))}
.vc-b{position:absolute;z-index:3;left:16px;bottom:16px;display:flex;align-items:stretch;height:30px;border-radius:7px;overflow:hidden;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.vc-b>span{display:flex;align-items:center;padding:0 12px;background:#fff;color:var(--blue-dd);font:700 11px/1 var(--fd);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.vc-b i{display:grid;place-items:center;width:34px;background:var(--cyan);color:#fff}
.vc-cyan .vc-b i{background:var(--blue)}
.vc-b .ic{width:16px;height:16px}
.vc-t b{font-size:clamp(16px,1.55vw,22px)}
@media (max-width:1100px){.vcs{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -8.14%;padding:4px 8.14% 14px;scroll-padding:0 7vw}.vcs::-webkit-scrollbar{display:none}.vc{flex:0 0 200px;scroll-snap-align:start}.vc-t b{font-size:20px}}
@media (max-width:760px){.vc{flex-basis:44vw;border-radius:14px}.vc-t{padding:14px 12px 0}.vc-t small{font-size:11.5px}.vc-t b{font-size:17px}.vc-b{left:10px;bottom:10px;height:26px}.vc-b>span{padding:0 8px;font-size:9.5px}.vc-b i{width:26px}.vc-b .ic{width:13px;height:13px}}
/* Thẻ gói cước (2026-10-30, theo mẫu capquangvnpt24h): viền xanh, đầu thẻ xanh hoạ tiết lục giác + mạch,
   tên gói in hoa có phần nhấn, tốc độ trong khung viền trắng; thân thẻ căn trái: tên gói, “Giá chỉ từ”, tính năng */
.pc{border:2px solid var(--blue);border-radius:12px;text-align:left;box-shadow:0 8px 22px rgba(10,70,119,.08)}
.pv{min-height:200px;justify-content:center;padding:34px 16px 22px;text-align:center;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='92' fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='1.4'%3E%3Cpath d='M22 4l16 9v18l-16 9-16-9V13zM56 4l16 9v18l-16 9-16-9V13zM39 33l16 9v18l-16 9-16-9V42zM5 33l16 9v18l-16 9'/%3E%3Cpath d='M22 12l9 5v10l-9 5-9-5V17zM39 41l9 5v10l-9 5-9-5V46z' stroke-opacity='.3'/%3E%3Cpath d='M72 17h30l8-8M72 27h22' stroke-opacity='.18'/%3E%3Ccircle cx='112' cy='7' r='2.5'/%3E%3C/svg%3E") left 6px top 6px/120px auto no-repeat,
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='110' fill='none' stroke='%237FD8FF' stroke-opacity='.45' stroke-width='1.4'%3E%3Cpath d='M118 14H86l-14 14v20M118 34H96l-8 8v30M118 56h-14l-6 6v40M60 108V82l12-12h20M30 108V96l10-10h14'/%3E%3Cg fill='%237FD8FF' fill-opacity='.7' stroke='none'%3E%3Ccircle cx='72' cy='50' r='3'/%3E%3Ccircle cx='88' cy='74' r='3'/%3E%3Ccircle cx='98' cy='104' r='3'/%3E%3Ccircle cx='94' cy='70' r='2.5'/%3E%3Ccircle cx='56' cy='86' r='2.5'/%3E%3C/g%3E%3C/svg%3E") right 0 bottom 0/120px auto no-repeat,
  linear-gradient(160deg,#1C7DCB 0%,var(--blue) 40%,var(--blue-dd) 100%)}
.pv::after{display:none}
.pv-k{opacity:.85}
.pv-n{min-height:0;margin:8px 0 12px;font:800 24px/1.15 var(--fd);text-transform:uppercase;letter-spacing:.01em;display:block}
.pv-a{color:#7FD8FF}
.pv-s{display:inline-block;padding:7px 22px;border:3px solid #fff;border-radius:12px;background:rgba(255,255,255,.06);font:800 22px/1.1 var(--fd);letter-spacing:.01em}
.pb{padding:16px 18px 20px}
.pb .pt{font:700 17px/1.3 var(--fd);color:var(--blue-d);margin:0 0 8px;overflow-wrap:anywhere;text-align:center}
.price{display:flex;align-items:center;gap:8px;margin:0 0 12px;line-height:1.3}
.price .pv-x,.price .pm,.price .rgl{margin:0;font-size:inherit;color:inherit}
.pv-x{min-width:0}.pm{white-space:nowrap}.price .plab{display:block}
.pt-i{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--blue));color:#fff;box-shadow:0 4px 10px rgba(18,163,221,.3);margin-right:2px}
.pt-i .ic{width:16px;height:16px}
.price .plab{font:600 14px/1.3 var(--fd);color:var(--blue)}
.price b{font:700 20px/1.2 var(--fd);color:var(--hot)}
.price .pu{font-size:13px;color:var(--mut);margin-left:2px}
.fl{width:auto;margin:0 0 18px}
.fl li{font-size:14px}
@media (max-width:760px){
  .pc{border-width:1.5px;border-radius:10px}
  .pv{min-height:150px;padding:28px 8px 14px;background-size:80px auto,80px auto,auto}
  .pv-n{font-size:16px;margin:4px 0 8px}
  .pv-s{padding:4px 10px;border-width:2px;border-radius:9px;font-size:14px}
  .pb{padding:12px 10px 14px}
  .pb .pt{font-size:13.5px;margin-bottom:6px}
  .price{gap:6px;margin-bottom:10px}.pt-i{width:22px;height:22px}.pt-i .ic{width:12px;height:12px}
  .price .plab{font-size:11.5px}.price b{font-size:15px}.price .pu{font-size:11px}
  .fl li{font-size:12px}
}
/* 3 thẻ liên hệ nhanh đặt ngay dưới banner (services › Vị trí = Ngay dưới banner) */
.quick-top{margin:0 0 72px}
@media (max-width:760px){.quick-top{margin:0 0 44px}}

/* ===== 2026-10-30: banner trượt ảnh (khối slider) ===== */
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vs{position:relative;padding-top:80px;background:#fff}
.vs-v{position:relative;width:100%;aspect-ratio:var(--ar,2.9538);max-height:var(--imgh);overflow:hidden;background:var(--tint2)}
.vs-s{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility 0s .7s}
.vs-s.on{opacity:1;visibility:visible;z-index:1;transition:opacity .7s ease}
.vs-s{--b:var(--bd)}
/* ảnh nằm trọn trong khung (không cắt); khung bị giới hạn 55% màn hình thì phần dư hai bên là mép ảnh kéo dài + làm mờ. Slide khác chỉ nạp nền sau khi trang tải xong (.vs-rdy, app.js) */
.vs-s::before,.vs-s::after{content:"";position:absolute;top:-40px;bottom:-40px;width:calc(50% + 40px);background-repeat:no-repeat;background-size:2000% 100%;filter:blur(14px)}
.vs-s::before{left:-40px;background-position:left center}
.vs-s::after{right:-40px;background-position:right center}
.vs-s.on::before,.vs-s.on::after,.vs-rdy .vs-s::before,.vs-rdy .vs-s::after{background-image:var(--b)}
.vs-s picture{position:relative;z-index:1;display:block;width:100%;height:100%}
.vs-s img{display:block;width:100%;height:100%;object-fit:contain}
.vs-a{position:absolute;top:50%;z-index:3;width:44px;height:44px;margin-top:-22px;border:0;border-radius:50%;background:rgba(255,255,255,.88);color:var(--blue);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.15);opacity:0;transition:opacity .25s}
.vs-a .ic{width:20px;height:20px}
.vs-v:hover .vs-a,.vs-a:focus-visible{opacity:1}
.vs-prev{left:18px}.vs-next{right:18px}
.vs-d{position:absolute;left:0;right:0;bottom:14px;z-index:3;display:flex;justify-content:center;gap:6px}
.vs-d button{width:26px;height:4px;padding:0;border:0;border-radius:2px;background:rgba(255,255,255,.55);cursor:pointer;transition:width .3s,background .3s}
.vs-d button.on{width:44px;background:#fff}
.vs .mq{position:relative}
@media (max-width:760px){.vs{padding-top:64px}.vs-v{aspect-ratio:var(--arm,.7702)}.vs-s{--b:var(--bm,var(--bd))}.vs-nm{display:none!important}.vs-a{display:none}.vs-d{bottom:10px}}

/* ===== 2026-10-30: header nền trắng — logo trái, menu chữ xanh đậm bên phải (khách gửi mẫu) ===== */
.hdr,.hdr.solid{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 2px 16px rgba(19,36,58,.07)}
body[data-page=home] .hdr:not(.solid) .logo img{filter:none}
.logo img{height:34px}
.nav,.hdr.solid .nav{margin:0 0 0 auto;padding:0;gap:4px;background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.nav a{font:700 15.5px/1 var(--fd);color:var(--blue-d);padding:12px 12px;border-radius:8px}
.nav a::after{left:12px;right:12px;bottom:2px}
.nav a:hover,.nav a.on{color:var(--blue);background:var(--tint)}
.call,.hdr.solid .call,.burger,.hdr.solid .burger{background:transparent;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
@media (min-width:1161px){.hdr-nocall .hdr-r{display:none}}
@media (max-width:1300px){.nav a{font-size:14.5px;padding:12px 9px}.nav a::after{left:9px;right:9px}}
@media (max-width:1240px){.nav{gap:0}.nav a{font-size:13.5px;padding:12px 8px}.nav a::after{left:8px;right:8px}}
/* nút “Khám phá ngay” trên 6 thẻ: gọn, giữa đáy thẻ — ô chữ trắng + ô mũi tên tách rời (mẫu khách gửi) */
.vc-b,.vc-b>span,.vc-b i{border-radius:5px}
.vc-b{left:50%;bottom:14px;transform:translateX(-50%);height:24px;gap:4px;overflow:visible;box-shadow:none}
.vc-b>span{padding:0 9px;font:800 10.5px/1 var(--fd);letter-spacing:.01em;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.vc-blue .vc-b>span{color:var(--blue)}.vc-cyan .vc-b>span{color:#0B83C0}.vc-navy .vc-b>span{color:var(--blue-dd)}
.vc-b i{width:30px;background:#2FA8F0;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.vc-cyan .vc-b i{background:var(--blue)}.vc-navy .vc-b i{background:var(--cyan)}
.vc-b .ic{width:17px;height:17px}
@media (max-width:760px){.vc-b{left:50%;bottom:10px;height:22px;gap:3px}.vc-b>span{padding:0 7px;font-size:9px}.vc-b i{width:24px}.vc-b .ic{width:14px;height:14px}}

/* ===== 2026-10-30: khối Tin tức — nền xanh đậm tràn viền, nhãn tab, thẻ trượt ngang ===== */
.news{width:auto;max-width:none;padding:64px 0 72px;color:#fff;position:relative;overflow:hidden;
  background:radial-gradient(700px 360px at 12% 0%,rgba(18,163,221,.28),transparent 60%),radial-gradient(800px 420px at 95% 100%,rgba(21,113,186,.45),transparent 60%),linear-gradient(135deg,#071F45 0%,var(--blue-dd) 55%,#0B4F8A 100%)}
.nw-in{width:var(--w);max-width:var(--maxw);margin:0 auto}
.nw-h{display:flex;align-items:flex-end;border-bottom:2px solid rgba(255,255,255,.85);margin-bottom:36px}
.nw-tab{position:relative;margin:0 30px 0 0;padding:16px 26px;background:var(--blue);color:#fff;font:600 22px/1 var(--fd);text-transform:uppercase;letter-spacing:.03em}
.nw-tab::after{content:"";position:absolute;top:0;right:-24px;width:24px;height:100%;background:var(--blue-d);clip-path:polygon(0 0,35% 0,100% 100%,0 100%)}
.nw-car{position:relative}
.nw-t{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.nw-t::-webkit-scrollbar{display:none}
.nw-c{display:flex;flex-direction:column;align-items:center;text-align:center;scroll-snap-align:start;color:#fff}
.nw-p{position:relative;display:block;width:100%;max-width:calc(var(--imgh) * var(--ar,1.6));aspect-ratio:var(--ar,1.6);border-radius:10px;overflow:hidden;background:rgba(255,255,255,.08);box-shadow:0 12px 28px rgba(0,0,0,.25)}
.nw-p img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
@media (hover:hover){.nw-c:hover .nw-p img{transform:scale(1.04)}.nw-c:hover .nw-tt{color:#8FD8F7}}
.nw-d{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:52px;height:56px;padding:0 6px;border-radius:6px;background:rgba(255,255,255,.94);border:2px solid rgba(255,255,255,.6);color:var(--mut);font:600 13px/1 var(--fd);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.nw-d b{font:700 22px/1 var(--fd);color:var(--blue-dd);margin-bottom:3px}
.nw-tt{margin-top:18px;font:700 16.5px/1.4 var(--fd);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s}
.nw-s{margin-top:8px;font-size:14px;line-height:1.55;color:rgba(255,255,255,.7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nw-a{position:absolute;top:31%;z-index:2;width:44px;height:64px;margin-top:-32px;border:0;background:none;color:#fff;cursor:pointer;display:grid;place-items:center;opacity:.9;transition:opacity .2s}
.nw-a .ic{width:40px;height:40px;stroke-width:1.2;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.nw-prev{left:-52px}.nw-next{right:-52px}
.nw-a[disabled]{opacity:0;pointer-events:none}
@media (max-width:1460px){.nw-prev{left:-8px}.nw-next{right:-8px}}
@media (max-width:1024px){.nw-t{grid-auto-columns:calc((100% - 20px)/2);gap:20px}}
@media (max-width:760px){.news{padding:44px 0 52px}.nw-h{margin-bottom:24px}.nw-tab{font-size:17px;padding:13px 18px}.nw-tab::after{right:-18px;width:18px}
  .nw-t{grid-auto-columns:84%;gap:14px}.nw-tt{font-size:15px;margin-top:14px}.nw-s{font-size:13px}.nw-a{display:none}.nw-d{min-width:46px;height:50px}.nw-d b{font-size:19px}}
/* 6 thẻ dịch vụ: bỏ lớp mờ dưới chữ (dải sáng chéo + ảnh mờ dần) — chữ trên nền màu trơn, ảnh bắt đầu ngay dưới chữ, không chồng lên chữ */
.vc{display:flex;flex-direction:column}
.vc::before{display:none}
.vc-t{position:relative;flex:none;padding:20px 18px 16px;text-shadow:none}
.vc-p{position:relative;flex:1;height:auto;min-height:0}
.vc-p img{position:absolute;inset:0;-webkit-mask-image:none;mask-image:none}
@media (max-width:760px){.vc-t{padding:14px 12px 12px}}
.vc-t{min-height:112px}
@media (max-width:760px){.vc-t{min-height:84px}}
/* 6 thẻ dịch vụ: bỏ luôn nền xanh — ảnh phủ kín thẻ, chữ trắng nằm trên ảnh (bóng chữ để đọc rõ, không có lớp phủ) */
.vc,.vc-blue,.vc-cyan,.vc-navy{background:var(--tint2)}
.vc{display:block}
.vc-t{position:absolute;z-index:2;left:0;right:0;top:0;min-height:0;padding:20px 18px 0;text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 14px rgba(0,0,0,.45)}
.vc-p{position:absolute;inset:0;height:auto}
.vc-p::after{display:none}
@media (max-width:760px){.vc-t{min-height:0;padding:14px 12px 0}}
/* tên dịch vụ: nhãn trắng nhỏ góc trên (cùng kiểu nút Khám phá ngay) để đọc rõ trên mọi ảnh */
.vc-t{left:14px;right:auto;top:14px;max-width:calc(100% - 28px);padding:9px 12px 10px;border-radius:8px;background:rgba(255,255,255,.95);color:var(--blue-dd);text-shadow:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.vc-t small{color:var(--blue);opacity:1;font-size:11.5px}
.vc-t b{margin-top:3px;font-size:clamp(15px,1.25vw,18px);line-height:1.15}
@media (max-width:1100px){.vc-t b{font-size:16px}}
@media (max-width:760px){.vc-t{left:10px;top:10px;max-width:calc(100% - 20px);padding:7px 9px 8px;border-radius:7px}.vc-t small{font-size:9.5px}.vc-t b{font-size:13.5px}}
/* chữ viết thẳng lên ảnh, không nền (khách yêu cầu) — chỉ dùng bóng chữ đậm để vẫn đọc được trên ảnh sáng */
.vc-t{left:0;right:0;top:0;max-width:none;padding:20px 18px 0;border-radius:0;background:none;box-shadow:none;color:#fff;
  text-shadow:0 0 2px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.65),0 2px 16px rgba(0,0,0,.6)}
.vc-t small{color:#fff;font-size:13px}
.vc-t b{margin-top:4px;font-size:clamp(17px,1.5vw,22px);font-weight:800}
@media (max-width:1100px){.vc-t b{font-size:19px}}
@media (max-width:760px){.vc-t{left:0;top:0;max-width:none;padding:14px 12px 0;border-radius:0}.vc-t small{font-size:11px}.vc-t b{font-size:16px}}
/* điện thoại: hàng thẻ dịch vụ hiện 2,15 thẻ; mỗi lần vuốt sang đúng 2 thẻ (chỉ thẻ lẻ là điểm dừng) */
@media (max-width:760px){
  .vcs{--cw:calc((93vw - 24px) / 2.15);gap:12px;padding-right:calc(93vw - 2 * var(--cw) - 12px)}
  .vc{flex-basis:var(--cw);scroll-snap-align:none}
  .vc:nth-child(odd){scroll-snap-align:start;scroll-snap-stop:always}
}
/* trang dịch vụ: 2 nút trên banner chuyển động liên tục (yêu cầu khách) — sóng toả ra + vệt sáng lướt qua, hai nút lệch nhịp */
@keyframes ph-wave{0%{box-shadow:0 0 0 0 rgba(21,113,186,.55)}70%,100%{box-shadow:0 0 0 15px rgba(21,113,186,0)}}
@keyframes ph-shine{0%,50%{transform:translateX(-130%) skewX(-20deg)}85%,100%{transform:translateX(360%) skewX(-20deg)}}
.phero .hero-a .btn{position:relative;overflow:hidden;animation:ph-wave 2s ease-out infinite}
.phero .hero-a .btn-o{animation-delay:1s}
.phero .hero-a .btn::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:translateX(-130%) skewX(-20deg);animation:ph-shine 3s ease-in-out infinite}
.phero .hero-a .btn-o::after{background:linear-gradient(90deg,transparent,rgba(21,113,186,.22),transparent);animation-delay:1.5s}
/* trang không có banner: khối đầu tiên nằm ngay dưới header cố định (80px / 64px) */

/* trang chủ: nút “Xem thêm” dưới danh sách gói (mở trang dịch vụ, đúng tab) */
.svc-more{display:flex;justify-content:center;margin-top:28px}
.svc-more .btn{min-width:180px}
/* footer: địa chỉ (tên đơn vị đậm trên một dòng) + dòng liên hệ “Nhãn: nội dung” */
.ft-loc b{display:block}
.ft-r{display:flex;align-items:center;gap:12px;margin:0;line-height:1.5}
.ft-c .ft-r a{display:inline;color:#fff;white-space:nowrap}
.ft-c .ft-r a:hover{text-decoration:underline}
/* nút Facebook nổi */
.fab-f{background:#1877F2}
.fab-f .ic{width:24px;height:24px}
/* footer: cột Fanpage Facebook (khung nhúng của Facebook, tải khi cuộn tới) */
.ft-fbw{width:300px;max-width:100%;height:130px;border-radius:10px;overflow:hidden;background:#fff}.ft-fbw-p{height:300px}
.ft-fbw iframe{display:block;width:100%;height:100%;border:0}
/* footer: thẻ Fanpage tự thiết kế (nền kính mờ trên nền xanh footer) */
.ft-c .ft-fbc{display:flex;flex-direction:column;align-items:stretch;gap:16px;width:100%;max-width:320px;padding:20px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none;transition:background .2s}
.ft-c .ft-fbc:hover{background:rgba(255,255,255,.13);color:#fff}
.ft-fbc-h{display:flex;align-items:center;gap:14px}
.ft-fbc-i{flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#1877F2;box-shadow:0 0 0 3px rgba(255,255,255,.9)}
.ft-c .ft-fbc-i .ic{width:30px;height:30px;padding:0;border-radius:0;background:none;color:#fff}
.ft-fbc-n{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.ft-fbc-n b{font-size:18px;font-weight:700;color:#fff}
.ft-fbc-n small{font-size:13.5px;color:rgba(255,255,255,.72);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ft-fbc-t{font-size:15px;line-height:1.55;color:rgba(255,255,255,.86)}
.ft-fbc-b{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:10px;background:#fff;color:#1877F2;font-weight:700;font-size:15.5px}
.ft-c .ft-fbc-b .ic{width:20px;height:20px;padding:0;border-radius:0;background:none;color:#1877F2}
@media (min-width:1101px){.ft-in.has-fb{grid-template-columns:1.3fr .8fr 1.2fr 300px;gap:44px}.has-fb .ft-svc{grid-template-columns:1fr}}
/* màu nền section (CMS › Bố cục › Màu nền): nền tràn hết chiều ngang, có đệm trên/dưới; CMS chỉ cho màu sáng nên chữ giữ màu gốc */
[data-bg]{position:relative;isolation:isolate;padding-top:calc(72px * var(--rh-pad, 1));padding-bottom:calc(72px * var(--rh-pad, 1))}
[data-bg]::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sec-bg);box-shadow:0 0 0 100vmax var(--sec-bg);clip-path:inset(0 -100vmax)}
@media (max-width:760px){[data-bg]{padding-top:calc(44px * var(--rh-pad, 1));padding-bottom:calc(44px * var(--rh-pad, 1))}}

/* footer: ảnh “Thương hiệu của VNPT” (CMS › Footer › Ảnh thương hiệu) ở đầu cột địa chỉ */
.ft-brand{display:block;height:38px;width:auto;max-width:100%;object-fit:contain;object-position:left center;margin:0 0 26px}
@media (max-width:760px){.ft-brand{height:34px;margin-bottom:20px}}
/* CMS v4 › khoảng cách (Bố cục › Khoảng trắng trên / dưới + Nhịp trang). Không dùng margin âm → không bao giờ đè nhau.
   Khoảng hở giữa section A và B = margin-bottom của A = --spg (chuẩn: --gs, hoặc --qt khi B mở đầu bằng dải liên kết nhanh)
   × --spb (mức “khoảng dưới” của A) × --spn (mức “khoảng trên” của B, đọc bằng :has). Section đầu trang: --gh / --qf sau banner,
   hoặc --hh + --gt dưới header khi trang không có banner, × --spt (mức “khoảng trên” của chính nó).
   Mức: 0 không có · 1 sát hơn (×0,5) · 2 chuẩn (không có thuộc tính) · 3 thoáng hơn (×1,5) · 4 rất thoáng (×2); hậu tố -t tablet 761–1099px, -m điện thoại ≤760px. */
.sec:has(+ .sec[data-qt]){--spg:var(--qt)}
.sec-first[data-qt]{margin-top:calc(var(--qf) * var(--spt, 1))}
.sec-first.sec-top{margin-top:calc(var(--hh) + var(--gt) * var(--spt, 1))}
[data-sp-b="0"]{--spb:0}[data-sp-t="0"]{--spt:0}.sec:has(+ [data-sp-t="0"]){--spn:0}[data-sp-b="1"]{--spb:0.5}[data-sp-t="1"]{--spt:0.5}.sec:has(+ [data-sp-t="1"]){--spn:0.5}[data-sp-b="3"]{--spb:1.5}[data-sp-t="3"]{--spt:1.5}.sec:has(+ [data-sp-t="3"]){--spn:1.5}[data-sp-b="4"]{--spb:2}[data-sp-t="4"]{--spt:2}.sec:has(+ [data-sp-t="4"]){--spn:2}
@media (min-width:761px) and (max-width:1099px){[data-sp-b-t="0"]{--spb:0}[data-sp-t-t="0"]{--spt:0}.sec:has(+ [data-sp-t-t="0"]){--spn:0}[data-sp-b-t="1"]{--spb:0.5}[data-sp-t-t="1"]{--spt:0.5}.sec:has(+ [data-sp-t-t="1"]){--spn:0.5}[data-sp-b-t="3"]{--spb:1.5}[data-sp-t-t="3"]{--spt:1.5}.sec:has(+ [data-sp-t-t="3"]){--spn:1.5}[data-sp-b-t="4"]{--spb:2}[data-sp-t-t="4"]{--spt:2}.sec:has(+ [data-sp-t-t="4"]){--spn:2}}
@media (max-width:760px){[data-sp-b-m="0"]{--spb:0}[data-sp-t-m="0"]{--spt:0}.sec:has(+ [data-sp-t-m="0"]){--spn:0}[data-sp-b-m="1"]{--spb:0.5}[data-sp-t-m="1"]{--spt:0.5}.sec:has(+ [data-sp-t-m="1"]){--spn:0.5}[data-sp-b-m="3"]{--spb:1.5}[data-sp-t-m="3"]{--spt:1.5}.sec:has(+ [data-sp-t-m="3"]){--spn:1.5}[data-sp-b-m="4"]{--spb:2}[data-sp-t-m="4"]{--spt:2}.sec:has(+ [data-sp-t-m="4"]){--spn:2}}

/* phân loại giá của danh mục (CMS › Quản lý sản phẩm › Phân loại): nút chọn cùng kiểu nút khu vực, 2–4 lựa chọn */
.vg{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-radius:999px;background:var(--tint)}
.vg button{height:38px;padding:0 18px;border:0;border-radius:999px;background:none;font:600 14px/1 var(--fd);color:var(--mut);cursor:pointer;transition:background .3s,color .3s,box-shadow .3s;white-space:nowrap}
.vg button.on{background:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(21,113,186,.35)}
.tbar .rg-w+.vg-w{margin-top:-4px}
@media (max-width:1024px){.vg button{height:34px;padding:0 12px;font-size:13px}}
@media (max-width:760px){.vg-w .vg{justify-content:center;border-radius:16px}.vg button{flex:1 1 auto;padding:0 8px}}

/* nút ⓘ cạnh nút chọn khu vực: bấm (hoặc rê chuột) hiện các quận thuộc nội thành / ngoại thành — chữ sửa ở CMS › Chữ dùng chung */
.rg-w{position:relative}
.rg-i{position:absolute;left:100%;top:50%;margin-left:10px;transform:translateY(-50%);display:flex}
.rg-ib{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1.5px solid var(--blue);border-radius:50%;background:#fff;color:var(--blue);cursor:pointer;box-shadow:0 4px 14px rgba(21,113,186,.14);transition:background .2s,color .2s}
.rg-ib .ic{width:20px;height:20px}
.rg-i.open .rg-ib{background:var(--blue);color:#fff}
.rg-tip{position:absolute;top:calc(100% + 12px);right:-10px;z-index:30;display:block;width:360px;max-width:calc(100vw - 32px);padding:14px 16px;border:0;border-radius:14px;background:linear-gradient(180deg,var(--blue),var(--blue-d));box-shadow:0 18px 40px rgba(10,70,119,.35);font:400 14px/1.55 var(--fb);color:#fff;text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s,transform .2s,visibility .2s}
.rg-tip::before{content:"";position:absolute;top:-7px;right:22px;width:12px;height:12px;background:var(--blue);transform:rotate(45deg)}
.rg-tip::after{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.rg-i.open .rg-tip{opacity:1;visibility:visible;transform:none}
@media (hover:hover){.rg-i:hover .rg-tip{opacity:1;visibility:visible;transform:none}}
.rg-tl{display:block}
.rg-tl+.rg-tl{margin-top:9px;padding-top:9px;border-top:1px dashed rgba(255,255,255,.35)}
.rg-tl b{display:inline-block;margin-right:3px;padding:0 7px;border-radius:6px;background:#fff;font-weight:700;color:var(--hot)}
.rg-tl.on{color:#fff}.rg-tl:not(.on){color:rgba(255,255,255,.85)}
.tbar:has(.rg-i){position:relative;z-index:6}
/* gói không có giá ở khu vực đang chọn thì ẩn (ô giá trống trong CMS) */
html:not([data-rg="out"]) .pc[data-noin],html[data-rg="out"] .pc[data-noout]{display:none}
@media (max-width:760px){
  .rg-w .rg{margin-left:auto}
  .rg-i{position:static;margin:0;transform:none}
  .rg-ib{width:34px;height:34px}
  .rg-tip{left:0;right:0;width:auto;max-width:none}
  .rg-tip::before{right:16px}
}
@media (max-width:440px){
  .rg-w:has(.rg-i){display:grid;grid-template-columns:34px 1fr 34px;align-items:center}
  .rg-w:has(.rg-i) .rg-lab{grid-column:2;grid-row:1}
  .rg-w:has(.rg-i) .rg{grid-column:1/-1;grid-row:2;margin-left:0}
  .rg-w:has(.rg-i) .rg-i{grid-column:3;grid-row:1}
  .rg-ib{width:30px;height:30px}.rg-ib .ic{width:18px;height:18px}
  .rg-tip::before{right:14px}
}
/* hiệu năng: section ngoài màn hình tạm không vẽ (app.js đo chiều cao thật trước rồi mới bật → vị trí cuộn, neo #dangky giữ nguyên) */
.sec.cv{content-visibility:auto}
/* hiệu ứng lặp vô hạn tạm dừng khi không nhìn thấy (banner đã cuộn qua, nút nổi đang ẩn) */
.off .mq-t,.phero.off .hero-a .btn,.phero.off .hero-a .btn::after,.fab:not(.on) .fab-z::after,.fab:not(.on) .fab-z .ic{animation-play-state:paused}

/* ===== 2026-11-02: Tin tức — trang chủ 4 thẻ/hàng + Xem thêm; trang tin-tuc/ (mọi bài); trang bài viết ===== */
.nw-t.nw-g{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;overflow:visible}
.nw-g .nw-tt{font-size:15.5px}
.nw-more{display:flex;justify-content:center;margin-top:36px}
.nw-mb{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 30px;border-radius:999px;background:#fff;color:var(--blue-dd);font:600 15px/1 var(--fd);box-shadow:0 8px 20px rgba(0,0,0,.18);transition:background .2s,color .2s}
.nw-mb .ic{width:18px;height:18px}
@media (hover:hover){.nw-mb:hover{background:var(--cyan);color:#fff}}
.nw-empty{margin:0;text-align:center;color:rgba(255,255,255,.75)}
.nw-t.nw-g{row-gap:40px}
/* máy tính bảng: lướt ngang 3,25 bài/màn hình; điện thoại: 2,25 bài/màn hình */
@media (max-width:1024px){.nw-t.nw-g{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3.25);gap:16px;overflow-x:auto;overscroll-behavior-x:contain}}
@media (max-width:600px){.nw-t.nw-g{grid-auto-columns:calc((100% - 24px)/2.25);gap:12px}.nw-more{margin-top:26px}
  .nw-g .nw-tt{margin-top:10px;font-size:13.5px;line-height:1.4;-webkit-line-clamp:3}.nw-g .nw-s{display:none}
  .nw-g .nw-p{border-radius:8px}.nw-g .nw-d{top:6px;left:6px;min-width:36px;height:40px;padding:0 4px;font-size:10.5px;border-width:1px}.nw-g .nw-d b{font-size:16px;margin-bottom:2px}}

/* đường dẫn trang (breadcrumb) */
.art-bc{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;font:500 13.5px/1.4 var(--fd);color:var(--mut)}
.art-bc a{color:var(--blue)}.art-bc a:hover{text-decoration:underline}
.art-bc b{font-weight:600;color:var(--ink)}
.art-bc span{color:#A7B4C4}

/* trang tin-tuc/: lưới mọi bài, thẻ chữ tối trên nền trắng */
.nl-h{font:600 36px/1.2 var(--fd);color:var(--ink);margin:0 0 32px;text-align:center}
.nl-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px}
.nl-g .nw-c{color:var(--ink)}
.nl-g .nw-p{box-shadow:0 10px 24px rgba(10,70,119,.14);background:var(--tint)}
.nl-g .nw-tt{font-size:16px;margin-top:16px}
.nl-g .nw-s{color:var(--mut)}
@media (hover:hover){.nl-g .nw-c:hover .nw-tt{color:var(--blue)}}
@media (max-width:1024px){.nl-g{grid-template-columns:repeat(2,minmax(0,1fr))}.nl-h{font-size:30px}}
@media (max-width:600px){.nl-g{grid-template-columns:1fr;gap:28px}.nl-h{font-size:25px;margin-bottom:22px}}

/* thẻ bài viết: hàng lọc trên trang tin-tuc/ + tag/<thẻ>/, dưới ngày đăng trong trang bài */
.nl-tags,.art-tags{display:flex;flex-wrap:wrap;gap:8px}
.nl-tags{justify-content:center;margin:-12px 0 32px}
.art-tags{margin:-6px 0 20px}
.nl-tags a,.art-tags a{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--blue);font:500 14px/1 var(--fd)}
.art-tags a{min-height:30px;padding:0 12px;font-size:13px;background:var(--tint);border-color:transparent}
.nl-tags a[aria-current]{background:var(--blue);border-color:var(--blue);color:#fff}
@media (hover:hover){.nl-tags a:not([aria-current]):hover,.art-tags a:hover{border-color:var(--blue)}}
@media (max-width:600px){.nl-tags{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin:-6px -16px 24px;padding:0 16px;scrollbar-width:none}.nl-tags::-webkit-scrollbar{display:none}.nl-tags a{flex:none}}

/* trang bài viết */
.art-in{max-width:820px;margin:0 auto}
.art-draft{margin:0 0 16px;padding:10px 14px;border-radius:10px;background:#FFF6E5;color:#8A4B08;font:600 14px/1.4 var(--fd)}
.art-h{font:600 36px/1.25 var(--fd);color:var(--ink);margin:0 0 12px;letter-spacing:-.005em}
.art-m{display:flex;align-items:center;gap:7px;margin:0 0 18px;font:500 14px/1 var(--fd);color:var(--mut)}
.art-m .ic{width:16px;height:16px}
.art-sum{margin:0 0 24px;font:500 18px/1.6 var(--fb);color:#2C3E55}
.art-f{max-width:calc(var(--imgh) * var(--ar,1.6));margin:0 auto 30px;border-radius:var(--r);overflow:hidden;aspect-ratio:var(--ar,1.6);background:var(--tint)}
.art-f img{width:100%;height:100%;object-fit:cover}
.art-b{font:400 17px/1.8 var(--fb);color:#24364C}
.art-b>*{margin:0 0 1.1em}
.art-b h2{font:600 25px/1.35 var(--fd);color:var(--ink);margin:1.6em 0 .6em}
.art-b h3{font:600 20px/1.4 var(--fd);color:var(--ink);margin:1.4em 0 .5em}
.art-b h4{font:600 17px/1.4 var(--fd);color:var(--ink);margin:1.2em 0 .4em}
.art-b strong,.art-b b{font-weight:600;color:var(--ink)}
.art-b a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.art-b ul,.art-b ol{padding-left:1.4em}
.art-b li{margin:.35em 0}
.art-b li::marker{color:var(--blue)}
.art-b img{width:auto;max-width:100%;height:auto;max-height:var(--imgh);object-fit:contain;margin-inline:auto;border-radius:10px}
.art-b figure{margin:1.4em 0}.art-b figcaption{margin-top:8px;font-size:14px;color:var(--mut);text-align:center}
.art-b blockquote{margin:1.4em 0;padding:16px 20px;border-left:4px solid var(--blue);border-radius:0 10px 10px 0;background:var(--tint);color:#24364C}
.art-b blockquote>*:last-child{margin-bottom:0}
.art-b hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.art-b table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.5} /* mọi bảng trong bài rộng bằng nhau = bề ngang bài */
.art-b th,.art-b td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.art-b th{background:var(--tint);font:600 14.5px/1.4 var(--fd);color:var(--ink)}
.art-b iframe{max-width:100%;border:0;border-radius:10px}
.art-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:40px 0 0;padding:22px 26px;border-radius:var(--r);background:linear-gradient(135deg,var(--blue-dd),var(--blue));color:#fff}
.art-cta>div:first-child{display:grid;gap:4px}
.art-cta b{font:600 18px/1.35 var(--fd)}
.art-cta span{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.85)}
.art-cta-a{display:flex;flex-wrap:wrap;gap:10px;flex:none}
.art-cta .nw-mb{min-height:44px;padding:0 20px;box-shadow:none;white-space:nowrap}
.art-cta .art-reg{background:var(--hot);color:#fff}
@media (hover:hover){.art-cta .art-reg:hover{background:#C93A25}}
.art-more{margin-top:20px}
@media (max-width:760px){.art-b table{display:block;overflow-x:auto}.art-h{font-size:26px}.art-sum{font-size:16.5px}.art-b{font-size:16px}.art-b h2{font-size:21px}.art-b h3{font-size:18px}.art-f{margin-bottom:22px;border-radius:12px}
  .art-cta{flex-direction:column;align-items:stretch;padding:20px}.art-cta-a .nw-mb{flex:1}}
