.couple-names {
  display: grid;
  justify-items: center;
  gap: clamp(5px, .8vw, 10px);
  max-width: 900px;
  margin: 25px auto 0;
  color: var(--ivory);
  font-size: clamp(38px, 5.8vw, 78px);
  line-height: .98;
  letter-spacing: -.055em;
}

.couple-names .couple-name { display: block; white-space: nowrap; }

.couple-names .couple-joiner {
  color: var(--gold);
  font: italic 400 clamp(18px, 1.8vw, 28px)/1.05 Georgia, serif;
  letter-spacing: 0;
}

html[lang="ta"] .couple-names { letter-spacing: 0; line-height: 1.16; }

html[lang="ta"] .couple-names .couple-joiner {
  font-family: "Noto Sans Tamil", "Nirmala UI", sans-serif;
  font-size: clamp(15px, 1.45vw, 21px);
  font-style: normal;
}

.hero-message { max-width: 670px; margin-inline: auto; }
.event-schedule { width: min(980px, 100%); margin: 62px auto 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; }
.schedule-event { min-height: 0; padding: 34px clamp(22px, 3vw, 42px); }
.schedule-event + .schedule-event { border-left: 1px solid var(--line); }
.schedule-event .event-name { margin: 0; color: var(--ivory); font-size: clamp(24px, 2.5vw, 33px); }
.shared-events { display: grid; gap: 13px; margin-top: 24px; }
.shared-events p { margin: 0; color: var(--ivory); font: 500 clamp(14px, 1.2vw, 16px)/1.58 system-ui, sans-serif; letter-spacing: .015em; }
.schedule-event .event-meta { margin: 22px 0 0; min-height: 0; color: var(--ivory); font-size: 14px; letter-spacing: .02em; }
.event-venue { margin: 23px 0 15px; color: var(--ivory); font-size: 16px; line-height: 1.6; }
.event-venue--compact { color: var(--muted); font: 12px/1.6 system-ui, sans-serif; letter-spacing: .05em; }
.directions-link { display: inline-flex; align-items: center; min-height: 36px; color: var(--gold); font: 600 10px/1.5 system-ui, sans-serif; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.directions-link:hover { color: var(--ivory); }
.guest-info-grid { max-width: 700px; }
.rsvp-events { display: grid; gap: 12px; margin: 24px 0; padding: 0; border: 0; }
.rsvp-events legend { padding: 0; color: var(--ivory); font-size: 17px; }
.rsvp-help { margin: -3px 0 4px !important; color: var(--muted); font: 11px/1.55 system-ui, sans-serif; }
.rsvp-event-choice { display: grid; grid-template-columns: 1fr 74px; align-items: center; gap: 10px; padding: 13px 14px; border: 1px solid var(--line); background: rgba(11, 11, 17, .4); font-size: 14px; letter-spacing: 0 !important; text-transform: none !important; }
.rsvp-form .rsvp-event-choice { letter-spacing: 0; text-transform: none; }
.rsvp-form .rsvp-event-choice b { font: 400 13px/1.35 system-ui, sans-serif; }
.rsvp-event-choice span { display: flex; align-items: center; gap: 8px; }
.rsvp-event-choice b { font-weight: 400; }
.party-size { width: 74px; padding: 9px 6px !important; text-align: center; }
.rsvp-decline { margin-top: 4px; color: var(--muted); font-size: 14px; }
.rsvp-form .rsvp-privacy { margin: 22px 0 0; color: var(--muted); font: 11px/1.65 system-ui, sans-serif; }
.language-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; gap: 6px; padding: 6px 10px; border: 1px solid rgba(210, 166, 94, .55); border-radius: 999px; background: rgba(9, 10, 17, .32); color: var(--ivory); font: 10px system-ui, sans-serif; letter-spacing: .08em; cursor: pointer; }
.language-toggle span:first-child { color: var(--gold); font-family: Georgia, serif; font-size: 14px; }
.gold-button:focus-visible, .directions-link:focus-visible, nav a:focus-visible, .language-toggle:focus-visible, .close:focus-visible, .rsvp-event-choice:focus-within { outline: 2px solid var(--gold); outline-offset: 4px; }

/* Essential invitation details stay readable even before or without JavaScript. */
.welcome .reveal,
.rsvp-card.reveal { opacity: 1; transform: none; }

@media (max-width: 760px) {
  .couple-names { font-size: clamp(36px, 11vw, 54px); }
  nav a { display: inline-flex; align-items: center; min-height: 36px; }
  .language-toggle { min-height: 36px; padding-inline: 8px; }
}

@media (max-width: 860px) {
  .event-schedule { grid-template-columns: 1fr; }
  .schedule-event + .schedule-event { border-top: 1px solid var(--line); border-left: 0; }
  .schedule-event .event-meta { min-height: 0; }
}

/* Keep the language control independent from the navigation labels. */
.site-header { justify-content: initial; gap: 20px; }
.site-header nav { margin-left: auto; }

@media (max-width: 760px) {
  .site-header { display: grid; grid-template-columns: auto 1fr auto; width: calc(100% - 32px); padding-top: 14px; gap: 0; }
  .site-header .brand { grid-column: 1; grid-row: 1; }
  .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; margin: 5px 0 0; gap: clamp(10px, 3vw, 16px); }
  .site-header .language-toggle { grid-column: 3; grid-row: 1; }
  .site-header nav a { font-size: clamp(8.5px, 2.5vw, 10px); white-space: nowrap; }
  .hero-copy { padding-top: 146px; }
  .toran { top: 100px; height: 48px; }
}
