/* Trang dịch vụ GEO — lớp riêng, tiền tố geo-. Màu lấy từ biến của theme. */
.geo-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:center}
.geo-nt{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.geo-nt span{font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--vien,#D8E2DB);background:#fff;color:var(--muc,#16241C);white-space:nowrap}
.geo-khung{background:#fff;border:1px solid var(--vien,#D8E2DB);border-radius:16px;overflow:hidden;box-shadow:0 18px 44px rgba(11,72,36,.14);margin:0}
.geo-khung-dau{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--vien,#D8E2DB);background:#F4F6F4}
.geo-khung-dau i{width:9px;height:9px;border-radius:50%;background:#C9D3CC;display:block}
.geo-khung-dau b{margin-left:8px;font-size:12px;font-weight:600;color:var(--phu,#5C6B62);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.geo-khung img{display:block;width:100%;height:auto}
.geo-hero .geo-khung img{aspect-ratio:4/3.5;object-fit:cover;object-position:top}
.geo-luoi{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.geo-the{background:#fff;border:1px solid var(--vien,#D8E2DB);border-radius:16px;padding:22px;min-width:0}
.geo-the h3{margin:14px 0 8px;font-size:18px;line-height:1.35}
.geo-the p{margin:0;font-size:15px;line-height:1.6;color:var(--muc-2,#35483D)}
.geo-bt{width:46px;height:46px;border-radius:12px;background:var(--rung-nhat,#E9F0EB);display:flex;align-items:center;justify-content:center}
.geo-bt svg{width:24px;height:24px;stroke:var(--rung,#0B4824);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.geo-so{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.1em;color:var(--phu,#5C6B62)}
.geo-doi{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.geo-doi .geo-the.moi{border-color:var(--rung,#0B4824);box-shadow:inset 0 4px 0 var(--rung,#0B4824)}
.geo-doi ul{margin:12px 0 0;padding:0;list-style:none}
.geo-doi li{position:relative;padding:7px 0 7px 22px;font-size:15px;line-height:1.5;border-top:1px solid var(--vien,#D8E2DB)}
.geo-doi li::before{content:"";position:absolute;left:2px;top:15px;width:8px;height:8px;border-radius:50%;background:var(--rung,#0B4824)}
.geo-doi .cu li::before{background:#C9D3CC}
/* ── Bằng chứng: ảnh chụp thật ── */
.geo-loc{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.geo-loc button{min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--vien,#D8E2DB);background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--muc,#16241C);cursor:pointer}
.geo-loc button[aria-pressed="true"]{background:var(--rung,#0B4824);border-color:var(--rung,#0B4824);color:#fff}
.geo-anh{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:20px}
.geo-anh figure{margin:0;min-width:0}
.geo-anh figure[hidden]{display:none}
.geo-anh button.mo{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;text-align:left}
.geo-anh .geo-khung img{aspect-ratio:16/11;object-fit:cover;object-position:top left}
.geo-anh figcaption{margin-top:12px}
.geo-anh figcaption b{display:block;font-size:15.5px;line-height:1.4;color:var(--muc,#16241C)}
.geo-anh figcaption span{display:block;margin-top:4px;font-size:13.5px;line-height:1.5;color:var(--phu,#5C6B62)}
.geo-nhan{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--rung-nhat,#E9F0EB);color:var(--rung,#0B4824);margin-bottom:8px}
.geo-ghi{font-size:13px;color:var(--phu,#5C6B62);margin:18px 0 0;line-height:1.55}
dialog.geo-phong{border:0;padding:0;border-radius:14px;max-width:min(1100px,94vw);max-height:92vh;overflow:auto;background:#fff}
dialog.geo-phong::backdrop{background:rgba(6,43,22,.72)}
dialog.geo-phong img{display:block;width:100%;height:auto}
dialog.geo-phong form{position:sticky;top:0;display:flex;justify-content:flex-end;padding:8px;background:rgba(255,255,255,.92)}
dialog.geo-phong button{min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--vien,#D8E2DB);background:#fff;font:inherit;font-weight:600;cursor:pointer}
/* ── Ca điển hình ── */
.geo-ca{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.geo-ca .geo-the h3{margin-top:6px;font-size:20px}
.geo-ba{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:16px 0}
.geo-ba div{background:var(--rung-nhat,#E9F0EB);border-radius:12px;padding:12px 14px;min-width:0;display:grid;grid-template-columns:minmax(0,138px) minmax(0,1fr);gap:12px;align-items:center}
.geo-ba b{display:block;font-family:Montserrat,sans-serif;font-size:22px;line-height:1.2;color:var(--rung,#0B4824);overflow-wrap:anywhere}
.geo-ba span{display:block;font-size:13.5px;line-height:1.45;color:var(--muc-2,#35483D);overflow-wrap:anywhere}
/* ── Gói ── */
.geo-goi .geo-the{display:flex;flex-direction:column}
.geo-goi .geo-the.noi{border-color:var(--rung,#0B4824);box-shadow:0 14px 34px rgba(11,72,36,.12)}
.geo-goi .gia{margin:6px 0 12px;font-family:Montserrat,sans-serif;font-weight:700;font-size:17px;color:var(--rung,#0B4824)}
.geo-goi ul{margin:0 0 18px;padding:0;list-style:none;flex:1}
.geo-goi li{position:relative;padding:6px 0 6px 24px;font-size:14.5px;line-height:1.5}
.geo-goi li::before{content:"";position:absolute;left:3px;top:11px;width:10px;height:6px;border-left:2px solid var(--rung,#0B4824);border-bottom:2px solid var(--rung,#0B4824);transform:rotate(-45deg)}
.geo-cuoi{background:var(--rung,#0B4824);color:#fff;border-radius:20px;padding:32px 24px;text-align:center}
.geo-cuoi h2{color:#fff;margin:0 0 10px}
.geo-cuoi p{margin:0 auto 20px;max-width:56ch;color:rgba(255,255,255,.88);line-height:1.6}
.geo-cuoi .nut{background:#fff;color:var(--rung,#0B4824)}
@media (min-width:720px){
  .geo-luoi.c3,.geo-anh,.geo-ca,.geo-doi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .geo-luoi.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1000px){
  .geo-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px}
  .geo-luoi.c3,.geo-anh{grid-template-columns:repeat(3,minmax(0,1fr))}
  .geo-luoi.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .geo-cuoi{padding:48px}
}
.geo-anh figcaption .geo-nhan{display:inline-block;margin-top:0}

/* ── Băng chuyền bằng chứng: ảnh chạy ngang, thẻ giữa nổi lên ── */
.geo-bc{overflow:hidden}
.geo-bang{margin-top:28px}
.geo-ray{--rong:min(84vw,560px);position:relative;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding:14px calc(50% - var(--rong)/2) 26px;-webkit-overflow-scrolling:touch;outline-offset:-4px}
.geo-ray::-webkit-scrollbar{display:none}
.geo-sl{flex:0 0 var(--rong);scroll-snap-align:center;background:#fff;border:1px solid var(--vien,#DBE4DD);border-radius:20px;
  padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;
  opacity:.8;transform:scale(.94);transition:opacity .45s ease,transform .45s ease,box-shadow .45s ease}
.geo-sl.dang{opacity:1;transform:none;box-shadow:0 22px 50px rgba(11,72,36,.16);border-color:var(--rung,#0B4824)}
.geo-sl-dau{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.geo-sl-dau .nt{font-family:Montserrat,sans-serif;font-weight:700;font-size:17px;color:var(--muc,#12211A)}
.geo-sl-dau .th{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--rung-nhat,#E4EFE8);color:var(--rung,#0B4824);white-space:nowrap}
.geo-sl small{display:block;font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--phu,#5C6E64);margin-bottom:3px}
.geo-sl-hoi{margin:0;align-self:flex-end;max-width:92%;background:var(--rung,#0B4824);color:#fff;border-radius:16px 16px 4px 16px;padding:10px 14px;font-size:15px;line-height:1.45}
.geo-sl-hoi small{color:rgba(255,255,255,.72)}
.geo-sl button.mo{display:block;padding:0;border:1px solid var(--vien,#DBE4DD);border-radius:12px;overflow:hidden;background:#fff;cursor:zoom-in}
.geo-sl button.mo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:top left}
.geo-sl-dap{margin:0;font-size:15px;line-height:1.5;color:var(--muc,#12211A);font-weight:600}
.geo-dk{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.geo-mt{width:44px;height:44px;border-radius:50%;border:1px solid var(--vien,#DBE4DD);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.geo-mt svg{width:20px;height:20px;fill:none;stroke:var(--rung,#0B4824);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.geo-cham{display:flex;align-items:center}
.geo-cham button{width:24px;height:44px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.geo-cham button::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:999px;background:#C5D2C9;transition:width .3s,margin .3s,background .3s}
.geo-cham button[aria-current="true"]::after{width:20px;margin-left:-10px;background:var(--rung,#0B4824)}
.geo-dung{min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid var(--vien,#DBE4DD);background:#fff;font:inherit;font-size:13.5px;font-weight:600;color:var(--muc-2,#3B4E44);cursor:pointer}
.geo-mt:focus-visible,.geo-cham button:focus-visible,.geo-dung:focus-visible,.geo-sl button.mo:focus-visible,.geo-ray:focus-visible{outline:2px solid var(--rung,#0B4824);outline-offset:2px}
.geo-moi{margin-top:26px;display:flex;flex-direction:column;gap:16px;background:var(--rung-nhat,#E4EFE8);border-radius:18px;padding:22px}
.geo-moi h3{margin:0 0 6px;font-size:20px;line-height:1.35}
.geo-moi p{margin:0;font-size:15.5px;line-height:1.6;color:var(--muc-2,#3B4E44);max-width:60ch}
.geo-moi .nut{align-self:flex-start;white-space:normal;text-align:center}
@media (min-width:900px){.geo-moi{flex-direction:row;align-items:center;justify-content:space-between;padding:28px 32px}.geo-moi .nut{flex:none;align-self:center}}
@media (prefers-reduced-motion: reduce){.geo-sl{transition:none}}

/* ── Sửa tràn khung trên điện thoại (đo 320–430px ngày 09/10) ── */
/* Tỉ lệ ảnh ngang đặt bằng style ngay trên thẻ img. KHÔNG dùng aspect-ratio:auto với ảnh lazy: ảnh chưa tải sẽ chỉ cao 2px. */
.geo-sl button.mo img.ngang{height:auto;object-fit:contain}
.geo-sl-dap{margin-top:auto}
.geo-chon{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:24px}
.geo-chon .geo-the{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}
.geo-chon .geo-the h3{margin:6px 0 4px}
.geo-chon .geo-the.moi{border-color:var(--rung,#0B4824);box-shadow:inset 0 4px 0 var(--rung,#0B4824)}
.geo-chon .di{margin-top:auto;padding-top:10px;font-weight:700;font-size:14.5px;color:var(--rung,#0B4824);min-height:44px;display:flex;align-items:center}
.geo-chon a.geo-the:hover{border-color:var(--rung,#0B4824)}
.geo-chon a.geo-the:focus-visible{outline:2px solid var(--rung,#0B4824);outline-offset:2px}
@media (min-width:860px){.geo-chon{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Ba ô số: dưới 560px xếp dọc, số bên trái — ô 73px không chứa nổi "5 nền tảng" cỡ 24px. */
@media (max-width:559px){
  .geo-ba div{grid-template-columns:minmax(0,112px) minmax(0,1fr)}
  .geo-ba b{font-size:20px}
  /* Băng chuyền: một thẻ vừa khít màn hình, thẻ bên cạnh không ló mép. */
  /* 100% của vùng nội dung băng chuyền, KHÔNG dùng 100vw: 100vw tính cả thanh cuộn dọc nên thẻ sẽ rộng hơn khung. */
  .geo-ray{gap:36px;padding-left:18px;padding-right:18px}
  .geo-sl{flex:0 0 100%;padding:14px;transform:none;opacity:1}
  .geo-sl-hoi{font-size:14.5px}
  .geo-the{padding:18px}
  .geo-cuoi{padding:26px 18px}
  .geo-khung-dau b{white-space:normal}
}

.geo-dn{max-width:72ch;margin:16px 0 0;font-size:17px;line-height:1.65;color:var(--muc,#12211A);border-left:3px solid var(--rung,#0B4824);padding-left:16px}
.geo-dung[aria-pressed="true"]::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--rung,#0B4824);margin-right:8px;vertical-align:1px}
.geo-dung[aria-pressed="false"]{color:var(--phu,#5C6E64)}
.geo-luoi.c2{max-width:920px;margin-left:auto;margin-right:auto}
@media (min-width:720px){.geo-luoi.c2{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Tô màu cụm giá trị trong tiêu đề. Đỏ logo chỉ làm NỀN (chữ trắng, cỡ lớn); xanh dùng nét bút dạ phía dưới. */
.geo-nb{color:var(--rung,#0B4824);background:linear-gradient(transparent 62%,#BFE5CF 62%);padding:0 .08em;border-radius:.12em}
.geo-do{background:#EE334C;color:#fff;padding:0 .2em .06em;border-radius:.18em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.geo-cuoi .geo-do{background:#fff;color:var(--rung,#0B4824)}
/* Màn rất hẹp (≤360px): khối tô đỏ được phép xuống dòng và bớt đệm — đo 320px thấy tràn 3–5px trong tiêu đề. */
@media (max-width:360px){.geo-do,.cum.geo-do{white-space:normal;padding-left:.1em;padding-right:.1em}.geo-cuoi h2{overflow-wrap:anywhere}}
/* ── Điện thoại: canh giữa cho dễ xem (CEO yêu cầu 09/10). Danh sách gạch đầu dòng và hỏi–đáp vẫn canh trái để dễ đọc. ── */
@media (max-width:719px){
  main > .co > .bc{text-align:center}
  .dau-trang .geo-hero > div:first-child{text-align:center}
  .dau-trang .dan{margin-left:auto;margin-right:auto}
  .dau-trang .cta,.geo-nt{justify-content:center}
  section.kh > .co > h2.hd{text-align:center}
  section.kh > .co > h2.hd:first-child::before{left:50%;transform:translateX(-50%)}
  section.kh > .co > .dan{margin-left:auto;margin-right:auto;text-align:center}
  .geo-dn{border-left:0;padding-left:0;border-top:3px solid var(--rung,#0B4824);padding-top:14px;text-align:center}
  .geo-ghi{text-align:center}
  .geo-the{text-align:center}
  .geo-the .geo-bt{margin-left:auto;margin-right:auto}
  .geo-doi ul,.geo-goi ul,.geo-ba{text-align:left}
  .geo-chon .geo-the{align-items:center}
  .geo-chon .di{justify-content:center}
  .geo-moi{text-align:center;align-items:center}
  .geo-moi .nut{align-self:center}
  .geo-moi p{margin-left:auto;margin-right:auto}
  .geo-sl-dap{text-align:center}
  .qt.qt-5 > div{text-align:center}
  .canh{text-align:center}
}

/* Năm bước quy trình dùng h3 (đúng thứ bậc dưới h2) nhưng giữ cỡ chữ của h4 trong theme. */
.qt h3.hd{font-size:17px;margin:0 0 7px}

/* Form đăng ký ngay trên trang: chừa chỗ cho thanh menu dính khi nhảy tới */
#dang-ky{scroll-margin-top:96px}
#dang-ky .fm{min-width:0}
