/* Google Fonts (SIL Open Font License 1.1) tự host: Lora, Playfair Display, Montserrat — chỉ khai báo mặt chữ trang giới thiệu dùng.
   THỨ TỰ MỖI MẶT: latin -> vietnamese (-> latin-ext, chỉ Montserrat). Dải latin-ext đã CẮT RỜI khỏi dải vietnamese (đ ă ơ ư…) và dải
   latin (ı Œ œ †) nên không mặt nào tranh ký tự với mặt khác. Lora + Playfair (font-display: optional) KHÔNG có mặt latin-ext (M2-PERF-02,
   03/10/2026): trên WebKit/iPhone, khi mọi mặt đã yêu cầu của một family quá 100 ms chưa về (optional hết hạn), trình duyệt quét lại các
   dải với quyền tải và vớ đúng mặt CHƯA từng tải -> mạng chậm kéo thêm 3 file latin-ext (64 KB) dù trang không có ký tự nào trong dải
   (đổi thứ tự khai báo không tránh được; đo bằng Playwright WebKit, phông trễ 400 ms). Ký tự latin-ext hiếm (ł ő…) rơi về Georgia.
   Mặt 600/700 trỏ cùng file 400 (file *-600/*-700 trong thư mục là bản sao byte của 400): trình duyệt tải 1 lần, tự làm đậm.
   Tiêu đề (Playfair 700/700i): font-display optional + <link rel=preload> ở <head>; thân trang (Lora): optional (không preload) -> không nhảy
   bố cục khi phông về (M1-PERF-03); Montserrat (nút, menu) swap — đo không gây layout shift. */
/* latin */
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(Lora-400i-latin.woff2?v=1b001151de) 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: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(Lora-400i-vietnamese.woff2?v=138ffea174) 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: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(Lora-400-latin.woff2?v=662c56ecd8) 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: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(Lora-400-vietnamese.woff2?v=e474ef68c2) 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: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(Lora-400-latin.woff2?v=662c56ecd8) 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: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(Lora-400-vietnamese.woff2?v=e474ef68c2) 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: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(Montserrat-400-latin.woff2?v=c154477b9a) 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: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(Montserrat-400-vietnamese.woff2?v=d185d272af) 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-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(Montserrat-400-latin-ext.woff2?v=f143fb4877) format('woff2');
  unicode-range: U+0100-0101, U+0104-010F, U+0112-0127, U+012A-0130, U+0132-0151, U+0154-0167, U+016A-019F, U+01A2-01AE, U+01B1-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EFA-1EFF, U+20A0-20AA, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(Montserrat-400-latin.woff2?v=c154477b9a) 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: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(Montserrat-400-vietnamese.woff2?v=d185d272af) 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-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(Montserrat-400-latin-ext.woff2?v=f143fb4877) format('woff2');
  unicode-range: U+0100-0101, U+0104-010F, U+0112-0127, U+012A-0130, U+0132-0151, U+0154-0167, U+016A-019F, U+01A2-01AE, U+01B1-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EFA-1EFF, U+20A0-20AA, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: optional;
  src: url(PlayfairDisplay-400i-latin.woff2?v=f5051d3818) 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: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: optional;
  src: url(PlayfairDisplay-400i-vietnamese.woff2?v=e41ec7df92) 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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(PlayfairDisplay-400-latin.woff2?v=6da252de0c) 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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(PlayfairDisplay-400-vietnamese.woff2?v=774586d4bc) 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;
}
/* Phông thay thế cho tiêu đề khi Playfair chưa về: Georgia Bold Italic (iOS/macOS/Windows) co lại bằng độ rộng Playfair Italic
   (đo bằng fontTools trên 5 tiêu đề thật: 0,796–0,821 -> 81%) để số dòng/vị trí nút không đổi. Máy không có Georgia -> local() bỏ qua, dùng serif. */
@font-face {
  font-family: 'Playfair Fallback';
  font-style: italic;
  font-weight: 700;
  src: local('Georgia Bold Italic'), local('Georgia-BoldItalic');
  size-adjust: 81%;
  ascent-override: 134%;
  descent-override: 31%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Playfair Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Georgia Bold'), local('Georgia-Bold');
  size-adjust: 76%;
  ascent-override: 142%;
  descent-override: 33%;
  line-gap-override: 0%;
}
/* Thân trang: Georgia co 97,8% = độ rộng Lora (đo trên đoạn lead VI + EN) khi Lora chưa về. */
@font-face {
  font-family: 'Lora Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Georgia');
  size-adjust: 97.8%;
  ascent-override: 103%;
  descent-override: 28%;
  line-gap-override: 0%;
}
/* Nút / menu / nhãn: Arial (iOS, macOS, Windows) hoặc Roboto (Android) nới 104,3% = độ rộng Montserrat 400; đậm 98,3% (đo trên chữ nút thật). */
@font-face {
  font-family: 'Montserrat Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Roboto'), local('Roboto-Regular');
  size-adjust: 104.3%;
  ascent-override: 93%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Montserrat Fallback';
  font-style: normal;
  font-weight: 600;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 98.3%;
  ascent-override: 98.5%;
  descent-override: 25.5%;
  line-gap-override: 0%;
}

/* Dancing Script (OFL) — chữ viết tay, CHỈ dùng làm điểm nhấn lãng mạn ở tiêu đề hero (thêm 09/10/2026, redesign trang chủ).
   latin -> vietnamese, font-display optional: phông chưa về thì chữ nhấn rơi về Playfair italic của h1 (không nhảy bố cục). */
/* latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(DancingScript-700-latin.woff2?v=6a68d0af64) 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: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(DancingScript-700-vietnamese.woff2?v=8433e08f60) 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;
}
