/* ===== 03/09/2026 — GỠ toàn bộ khối latin-ext (owner chốt).
   Đo trên prod: font chiếm 332 KB/trang (19 tệp), nặng hơn cả ảnh. latin-ext phục vụ ký tự Đông Âu
   (ā ą ć č ł ń ř ś ž…) mà go365 bán cho khách Việt/Anh/Hàn/Trung/Nga — tiếng Nga dùng Cyrillic,
   không phải latin-ext. Quét 6 trang chính: KHÔNG có ký tự nào thuộc dải này.
   Trình duyệt vẫn tải chúng chỉ vì khối latin-ext khai trùng vài dấu TỔ HỢP (U+0304, U+0308, U+0329)
   với tiếng Việt dạng NFD — tải về rồi không dùng chữ nào.
   Tiếng Việt KHÔNG bị ảnh hưởng: ă đ ĩ ũ ơ ư và toàn bộ dấu nằm trong khối "vietnamese"
   (U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9).
   File .woff2 vẫn nằm trong wwwroot/fonts/, chỉ gỡ khai báo — cần thì khai lại là dùng được. */

/* Font tự host — thay fonts.googleapis.com (07/08/2026).
   07/08 chiều: Spline Sans Mono đổi font-display optional -> swap. Lý do: với
   'optional' trình duyệt chỉ chờ ~100ms, không kịp thì dùng font dự phòng cho
   CẢ lượt tải đó — nên khách vào lần đầu (cache trống) thấy con số KHÔNG phải
   font máy đánh chữ, vào lần hai mới đúng. Đo được: bề rộng chữ số "0" @200px
   là 117,2px khi cache trống và 120,0px khi cache ấm. Kèm preload file
   spline-400-700-latin.woff2 trong App.razor để font về kịp.
   Be Vietnam Pro và Fraunces GIỮ NGUYÊN 'optional' — đó là font thân bài và
   tiêu đề, đổi sang swap sẽ nháy cả trang.
   Sinh từ CSS gốc Google Fonts, giữ nguyên unicode-range + font-display:optional.
   File woff2 nằm ở /fonts/. Sửa file này PHẢI bump ?v= (CF Browser Cache TTL 1 năm). */

/* latin */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('/fonts/bvp-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url('/fonts/bvp-400-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url('/fonts/bvp-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url('/fonts/bvp-500-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url('/fonts/bvp-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url('/fonts/bvp-600-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url('/fonts/bvp-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url('/fonts/bvp-700-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 800;
  font-display: optional;
  src: url('/fonts/bvp-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-weight: 800;
  font-display: optional;
  src: url('/fonts/bvp-800-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Fraunces NGHIÊNG đã bỏ (21/08/2026) — đo trên /tour-listing ở khổ điện thoại: 3 file
   nghiêng (latin 80KB + latin-ext 70KB + vietnamese 22KB = 172KB trên tổng 514KB font) tải về
   chỉ để in vài chữ trang trí kiểu "hot nhất". Trình duyệt tự nghiêng từ bản đứng — vẫn là
   Fraunces, chỉ khác chút dáng chữ. Bỏ CẢ BA subset chứ không bỏ lẻ: giữ lại một subset thì
   một cụm chữ Việt lẫn ASCII sẽ nửa nghiêng thật nửa nghiêng máy, nhìn lệch hẳn.
   File .woff2 vẫn nằm trong /fonts nên muốn lùi chỉ cần dán lại 3 khối @font-face này. */

/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 900;
  font-display: optional;
  src: url('/fonts/fraunces-500-900-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500 900;
  font-display: optional;
  src: url('/fonts/fraunces-500-900-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* ---------------------------------------------------------------------------
   IBM Plex Mono — thay Spline Sans Mono (17/08/2026)

   VÌ SAO ĐỔI: Spline Sans Mono thiếu 91/103 chữ có dấu tiếng Việt, và thiếu
   luôn hai dấu gốc để ghép là dấu hỏi (U+0309) và dấu râu (U+031B, cho ơ ư).
   Bản vá 12/08 (mượn file Be Vietnam Pro rồi gắn tên 'Spline Sans Mono') KHÔNG
   ăn: đo trên prod 17/08, badge trang chủ được vẽ 50/50 ký tự bằng DejaVu Sans
   Mono của hệ điều hành, chữ ra "QUÔĆ TÊ´ HÀNG ĐÂÙ". Thử tách bạch: đặt một
   dòng chữ font này thì chỉ 3 ký tự SỐ lấy được từ font mình, 24 chữ cái rơi
   hết ra ngoài họ font.

   IBM Plex Mono có ĐỦ 103/103 ký tự tiếng Việt, có cả ₫ (U+20AB). Owner chọn
   bộ này ngày 17/08 sau khi so bằng mắt với Roboto Mono và JetBrains Mono.
   Vẫn là font máy đánh chữ nên giữ được dáng con số/giá như cũ.

   Weight: Plex Mono chỉ tới 700. Chỗ nào CSS xin 800/900 thì khai lại chính
   file 700 để trình duyệt KHÔNG tự bôi đậm giả (synthetic bold) làm bệt chữ.
   --------------------------------------------------------------------------- */

/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/plexmono-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/plexmono-400-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/plexmono-500-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/plexmono-500-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/plexmono-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fonts/plexmono-600-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/plexmono-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/plexmono-700-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* --- 800/900 dùng lại chính file 700: chặn trình duyệt bôi đậm giả --- */
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 800 900;
  font-display: swap;
  src: url('/fonts/plexmono-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 800 900;
  font-display: swap;
  src: url('/fonts/plexmono-700-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
