/* Wedding typography: display / correspondence / practical interface.
   All faces include native Vietnamese accents; no synthetic bold or italic. */
:root {
  --font-editorial:'Noto Serif Display',Georgia,serif;
  --font-prose:'EB Garamond',Georgia,serif;
  --font-reading:'Be Vietnam Pro',Arial,sans-serif;
  --font-ui:var(--font-reading);
}
body {font-kerning:normal;font-synthesis:none;}
[style*="Cormorant"] {font-family:var(--font-prose)!important;}
body h1[style],body h2[style],.section-title,.section-title-serif {
  font-family:var(--font-editorial)!important;font-weight:400!important;
  letter-spacing:-.025em!important;line-height:1.35!important;
}
.section-title {font-size:clamp(2rem,4.3vw,3rem)!important;}
.section-label {font-size:.6875rem!important;line-height:1.9!important;letter-spacing:.21em!important;}
button,.btn-marble,.btn-marble-solid {letter-spacing:.08em!important;}
/* Generous ascender room protects the stacked Vietnamese accents. */
[data-section="hero"] h1 {font-size:clamp(3.8rem,6.2vw,6rem)!important;line-height:1.3!important;letter-spacing:-.035em!important;}
[data-section="hero"] [style*="font-size: clamp(2rem"] {font-variant-numeric:lining-nums;}
[data-dialog="invitation"] .opening-message {font-family:var(--font-prose)!important;font-size:1.125rem!important;line-height:1.6!important;}
[data-dialog="invitation"] .opening-guest {font-family:var(--font-prose)!important;font-size:clamp(1.85rem,7vw,2.4rem)!important;line-height:1.4!important;}
[data-dialog="invitation"] .opening-name {font-family:var(--font-editorial)!important;font-size:clamp(1.7rem,7vw,2.125rem)!important;line-height:1.4!important;}
[data-dialog="invitation"] .opening-and {font-family:var(--font-prose)!important;font-style:italic!important;font-size:1.3rem!important;letter-spacing:0!important;}
[data-dialog="invitation"] .btn-marble-solid {font-size:.75rem!important;}
/* Printed invitation: fine roman title, true italic names, unhurried prose. */
.invitation-eyebrow {font-family:var(--font-reading);font-size:.6875rem;letter-spacing:.24em;}
.invitation-title {font-family:var(--font-editorial);font-style:normal;font-size:clamp(1.8rem,4vw,3rem);line-height:1.4;letter-spacing:-.025em;}
.invitation-guest {font-family:var(--font-prose);font-weight:500;font-size:clamp(2rem,4.7vw,3.5rem);line-height:1.35;}
.invitation-message,.invitation-location p,.invitation-closing {font-family:var(--font-prose);font-size:clamp(1.1875rem,2.2vw,1.5rem);line-height:1.55;}
.invitation-couple {font-family:var(--font-prose);font-size:clamp(1.85rem,5.3vw,4.2rem);letter-spacing:-.02em;line-height:1.45;}
.invitation-hour,.invitation-meal {font-family:var(--font-prose);}
.invitation-hour time {font-size:clamp(1.5rem,3.5vw,2.25rem);font-variant-numeric:lining-nums;}
.invitation-hour>span,.invitation-meal span {font-size:clamp(.9375rem,1.8vw,1.25rem);}
.invitation-schedule-label {font-size:clamp(.625rem,1.5vw,.75rem);letter-spacing:.07em;line-height:1.7;}
.invitation-date time {font-variant-numeric:lining-nums;letter-spacing:-.025em;font-size:clamp(1.2rem,4vw,2.65rem);}
.invitation-location h3 {font-family:var(--font-prose);font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.5;}
.invitation-map-hint,.event-map-hint {font-size:.6875rem;line-height:1.8;}
/* Family names retain a formal, readable text face. */
.family-card .section-title {font-size:clamp(1.8rem,4.8vw,2.8rem)!important;}
.family-card .section-label {font-size:.625rem!important;letter-spacing:.14em!important;}
.family-house h3 {font-size:.6875rem;letter-spacing:.13em;}
.family-parent {font-family:var(--font-prose);font-size:clamp(1.3125rem,2.6vw,1.6rem);line-height:1.5;}
.family-address {font-family:var(--font-prose);font-size:1.0625rem;line-height:1.6;}
.family-invitation {font-family:var(--font-prose);font-size:clamp(1.1875rem,2vw,1.375rem);line-height:1.65;max-width:650px;}
.family-couple {font-family:var(--font-prose);font-size:clamp(1.65rem,4vw,2.2rem);line-height:1.5;}
/* Dates: aligned figures, delicate headings, clear practical information. */
.ceremony-time,.event-year,.event-day,.reception-date {font-weight:400;font-variant-numeric:lining-nums tabular-nums;}
.event-day {line-height:1.2;}
.event-lunar {font-family:var(--font-prose);font-size:clamp(1.0625rem,3vw,1.5rem);line-height:1.65;}
.event-place {font-family:var(--font-prose);font-size:clamp(1.5rem,4.5vw,2.25rem);line-height:1.45;}
.event-address {font-family:var(--font-prose);font-size:1.1875rem;line-height:1.6;}
.reception-date {letter-spacing:.07em;}
.reception-time {font-family:var(--font-prose);font-size:clamp(1.3125rem,3.8vw,1.875rem);}
/* A letter should read like correspondence, rather than interface copy. */
[data-section="letters"] .letter-body {font-family:var(--font-prose)!important;font-size:clamp(1.1875rem,1.65vw,1.375rem)!important;line-height:1.65!important;font-weight:400!important;}
[data-section="letters"] .letter-signature {font-family:var(--font-prose)!important;font-size:clamp(1.75rem,3.5vw,2.15rem)!important;font-weight:400!important;}
.wishes-intro,.rsvp-intro,.rsvp-help {font-family:var(--font-prose);font-size:1.1875rem;line-height:1.6;}
.rsvp-guest {font-family:var(--font-prose);font-size:clamp(1.875rem,5vw,2.5rem);}
.rsvp-heading .section-title {font-size:clamp(1.8rem,4.8vw,2.5rem)!important;}
.wishes-message {font-family:var(--font-prose);font-size:1.25rem;line-height:1.6;}
/* Quiet italic accents appear only on signatures, gift and closing prose. */
.gift-title {font-family:var(--font-prose);font-size:clamp(2.5rem,9.5vw,4rem)!important;line-height:1.4;letter-spacing:-.025em;}
.thanks-monogram {font-family:var(--font-prose);font-size:54px;}
.thanks-title {font-size:clamp(3rem,9.5vw,5.5rem);line-height:1.4;letter-spacing:.035em;}
.thanks-message {font-family:var(--font-prose);font-size:clamp(1.25rem,3.5vw,1.65rem);line-height:1.65;}
.thanks-couple {font-family:var(--font-prose);font-size:clamp(1.4rem,5vw,2rem);line-height:1.6;}
@media(max-aspect-ratio:1/1){
  [data-section="hero"] h1 {font-size:clamp(2.8rem,12.2vw,4.7rem)!important;}
}
@media(max-width:640px){
  .invitation-title {font-size:clamp(1.7rem,7vw,2.25rem);}
  .invitation-eyebrow {font-size:.625rem;}
  .invitation-message,.invitation-closing {font-size:1.1875rem;}
  .invitation-schedule {grid-template-columns:.85fr 1.8fr .85fr;}
  .invitation-date {padding-inline:6px;}
  .invitation-schedule-label {font-size:.625rem;letter-spacing:.035em;}
  .invitation-date time {font-size:clamp(1.15rem,5.1vw,1.8rem);}
  .invitation-hour>span,.invitation-meal span {font-size:.875rem;}
  .invitation-couple {font-size:clamp(1.75rem,7.6vw,2.75rem);gap:8px;}
  .invitation-guest {font-size:clamp(1.9rem,8vw,2.5rem);}
  .family-parent {font-size:1.3125rem;}
  .family-house h3 {font-size:.625rem;letter-spacing:.08em;}
  .family-address {font-size:1.0625rem;}
  .album-heading .section-title {font-size:1.9rem!important;line-height:1.3!important;}
  .album-page {height:clamp(305px,calc(100svh - 258px),620px);}
  .album-controls {width:calc(100% - 88px);margin-inline:auto;}
  .album-expand {padding-inline:4px;white-space:nowrap;}
}
@media(max-width:360px){
  .invitation-couple {font-size:1.7rem;gap:6px;}
  .invitation-date {padding-inline:4px;}
  .invitation-date time {font-size:1.0625rem;}
  .invitation-hour time {font-size:1.375rem;}
  .invitation-hour>span,.invitation-meal span {font-size:.8125rem;}
  .family-card .section-title {font-size:1.6rem!important;}
  .event-year {font-size:.9375rem;}
}
