/* =====================================================================
   KYYEU.VN — Lớp chuẩn hoá chữ cho mọi trang thiệp mời
   (thiệp từng lớp .kyinvite · demo hoàn chỉnh .demo-invite · 24 demo .k24-demo).
   Nạp sau CSS riêng của từng trang. Chỉ chỉnh chữ — không đổi bố cục/màu của từng mẫu.
   Font có đủ dấu tiếng Việt: Playfair Display (tiêu đề) · Be Vietnam Pro (nội dung).
   ===================================================================== */
:is(.kyinvite, .demo-invite, .k24-demo) {
  font-family: "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif;
  font-kerning: normal;
  font-synthesis: none;              /* không tự "làm đậm/nghiêng giả" — tránh vỡ dấu */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Tiêu đề: serif sang trọng, giãn dòng đủ cho dấu chồng (ấ, ề, ở, ữ…) */
:is(.kyinvite, .demo-invite, .k24-demo) :is(h1, h2, h3) {
  font-family: "Playfair Display", "Noto Serif", Georgia, serif !important;
  font-weight: 500;
  letter-spacing: -.005em !important;
  text-wrap: balance;
  font-variant-numeric: lining-nums;
}
:is(.kyinvite, .demo-invite, .k24-demo) h1 { line-height: 1.14 !important; padding-top: .06em; }
:is(.kyinvite, .demo-invite, .k24-demo) :is(h2, h3) { line-height: 1.22 !important; }

/* Ngày giờ, tên sự kiện: chữ số đều, gọn */
:is(.kyinvite-date, .demo-event-title, .demo-date) {
  font-family: "Playfair Display", "Noto Serif", Georgia, serif !important;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.2 !important;
}

/* Nội dung: dễ đọc trên điện thoại */
:is(.kyinvite, .demo-invite, .k24-demo) :is(p, li, dd, td, label, input, select, textarea, button) {
  font-family: "Be Vietnam Pro", "Noto Sans", "Segoe UI", Arial, sans-serif;
}
:is(.kyinvite, .demo-invite, .k24-demo) p { line-height: 1.7; text-wrap: pretty; }

/* Nhãn nhỏ viết hoa: giãn chữ vừa phải, không bị dính dấu */
:is(.kyinvite-kicker, .kyinvite-label, .demo-kicker, .k24-kicker) {
  letter-spacing: .16em !important;
  line-height: 1.5 !important;
}

/* Ô nhập liệu (form xác nhận tham dự) */
:is(.kyinvite, .demo-invite, .k24-demo) :is(input, select, textarea) { font-size: max(16px, 1em); } /* iPhone không tự phóng to */

/* =====================================================================
   Thang cỡ chữ & căn lề thống nhất cho mọi trang thiệp (bản 2)
   - Bìa: tiêu đề tối đa 72px, căn giữa, tối đa 2–3 dòng.
   - Phần giới thiệu giữa trang: căn giữa.
   - Trong các thẻ nội dung: căn trái; ngày tổ chức nằm DƯỚI tiêu đề (không dạt sang phải).
   ===================================================================== */
.kyinvite h1, .demo-cover h1, .k24-cover h1 {
  font-size: clamp(38px, 5.6vw, 72px) !important; line-height: 1.12 !important;
  letter-spacing: -.01em !important; max-width: 14ch; margin-left: auto !important; margin-right: auto !important;
}
.kyinvite h2, .demo-intro h2, .demo-section h2, .k24-intro h2, .k24-card h2 {
  font-size: clamp(26px, 3.2vw, 40px) !important; line-height: 1.22 !important; letter-spacing: -.005em !important;
}
.k24-intro, .demo-intro { text-align: center; }
.k24-intro h2, .demo-intro h2 { max-width: 20ch; margin-left: auto !important; margin-right: auto !important; }
.k24-card h2, .demo-section h2 { max-width: 22ch; text-align: left; }
.k24-head { display: block !important; }
.k24-date, .demo-date {
  margin-top: 14px; text-align: left !important;
  font-size: clamp(22px, 2.4vw, 30px) !important; line-height: 1.2 !important;
}
.k24-date small, .demo-date small { display: block; margin-bottom: 4px; }
.demo-event-title { font-size: clamp(24px, 3vw, 36px) !important; line-height: 1.2 !important; }
.k24-lead, .demo-section p, .kyinvite p { font-size: 16.5px; line-height: 1.7; }
.k24-label, .k24-kicker { white-space: nowrap; }
@media (max-width: 760px) {
  .kyinvite h1, .demo-cover h1, .k24-cover h1 { font-size: clamp(32px, 9vw, 44px) !important; }
  .kyinvite h2, .demo-intro h2, .demo-section h2, .k24-intro h2, .k24-card h2 { font-size: clamp(24px, 6.4vw, 30px) !important; }
  .k24-label, .k24-kicker { white-space: normal; }
}

/* Tiêu đề xác nhận tham dự luôn nằm trên 1 dòng */
.demo-rsvp h2, .k24-rsvp h2 { white-space: nowrap !important; font-size: clamp(18px, 5.8vw, 40px) !important; max-width: none !important; }
