@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;500;600;700&display=swap');
/* Wedding language selector: intentionally scoped; original photographic/layout CSS unchanged. */
.language-switcher { display:flex; align-items:center; justify-content:center; flex:0 0 auto; margin-left:auto; margin-right:6px; }
.language-select { width:74px; min-height:36px; padding:5px 19px 5px 9px; border:1px solid rgba(222,199,163,.55); border-radius:4px; background:#101b31; color:#f9f8f1; font:700 12px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif; letter-spacing:.06em; cursor:pointer; }
.language-select option { color:#14213a; background:#f9f8f1; }
.language-select:focus-visible { outline:2px solid #DEC7A3; outline-offset:2px; }
.site-header .nav { gap:8px; }
@media (min-width:721px) { .language-switcher { margin-left:10px; margin-right:0; } }
@media (max-width:390px) { .language-select { width:66px; padding-left:6px; padding-right:14px; } .site-header .nav { gap:3px; } }
/* Invite uses its own full-screen header; keep the picker discreet. */
.invite-language-switcher { position:absolute; right:12px; top:8px; z-index:32; margin:0; }
.invite-language-switcher .language-select { min-height:30px; width:65px; font-size:11px; background:rgba(7,18,36,.88); }
@media (max-width:560px) { .invite-language-switcher { top:7px; right:8px; } .invite-language-switcher .language-select { min-height:27px; width:57px; padding-left:5px; padding-right:14px; font-size:10px; } }


/* Vietnamese typography fix — only active when Tiếng Việt is selected.
   Noto Serif covers Vietnamese precomposed vowels (ă/ắ/ẵ/ơ/ớ/ư/ự...)
   without relying on mismatched per-glyph fallbacks from Georgia.
   Times New Roman is a widely available Vietnamese-capable fallback.
   None of these rules alter English or Spanish pages. */

html[lang="vi"] :is(
  .section-title, .section-copy, .hero-copy,
  .detail-card h3, .timeline-item h3, .guest-name,
  .invite-copy, .invite-title, .footer,
  .paper-card h2, .page-panel h2, .panel h3,
  .mj-slide-caption strong, .mj-slide-caption span
) {
  font-family: "Noto Serif", "Times New Roman", serif;
}

/* Prevent clipped Vietnamese marks and overly tight word spacing. */
html[lang="vi"] .section-title {
  font-size: clamp(2.15rem, 7.6vw, 3.4rem);
  line-height: 1.3;
  letter-spacing: -0.025em;
  padding-block: 0.08em;
  overflow-wrap: normal;
  word-break: normal;
}
html[lang="vi"] .section-copy {
  line-height: 1.72;
  letter-spacing: 0;
}
html[lang="vi"] :is(.hero-copy, .invite-copy) {
  line-height: 1.58;
  letter-spacing: normal;
}
html[lang="vi"] :is(.detail-card h3, .timeline-item h3, .panel h3, .paper-card h2, .page-panel h2) {
  line-height: 1.28;
  letter-spacing: -0.02em;
}


/* VI accent handling v3: the previous patch omitted the invitation card.
   Its Georgia text and 1.05 line-height caused fallback-glyph spacing artifacts.
   This only applies to Vietnamese; EN and ES remain visually unchanged. */
html[lang="vi"] .invite-card strong,
html[lang="vi"] .invite-card small,
html[lang="vi"] .hint,
html[lang="vi"] #cardName,
html[lang="vi"] #cardGuests,
html[lang="vi"] #hintText {
  font-family: "Noto Serif", "Times New Roman", "DejaVu Serif", serif !important;
  font-kerning: normal;
  font-variant-ligatures: none;
  letter-spacing: 0 !important;
  line-height: 1.55 !important;
  overflow-wrap: normal;
  word-break: normal;
}
html[lang="vi"] .invite-card strong {
  font-size: 1.09rem;
  font-weight: 700;
  padding: 0.12em 0;
}
html[lang="vi"] .invite-card small {
  font-size: .78rem;
}
html[lang="vi"] .invite-card span,
html[lang="vi"] .open-text,
html[lang="vi"] .eyebrow,
html[lang="vi"] .section-kicker {
  font-family: Arial, "Segoe UI", Tahoma, sans-serif;
  letter-spacing: .07em !important;
  line-height: 1.55;
}
html[lang="vi"] .hint { min-height: 30px; }
html[lang="vi"] :is(.hero-title, .invite-title, .section-title, .hero-copy, .invite-copy, .section-copy) {
  font-family: "Noto Serif", "Times New Roman", "DejaVu Serif", serif !important;
  font-kerning: normal;
  font-variant-ligatures: none;
  overflow-wrap: normal;
  word-break: normal;
}
html[lang="vi"] .invite-title,
html[lang="vi"] .hero-title { line-height: 1.18; letter-spacing: -.018em; }
