/* test1 3.0: the parts that came with the 3.0 code (from test4), in this card's burgundy and gold.
   Loaded after wedding.css and calendar.css. */

/* First screen: opening line, caption above the date, guest name */
.opening-quote { position: relative; z-index: 2; max-width: 26rem; margin: 0 auto .8rem; color: #f2dfb7; font: 400 clamp(17px, 4.6vw, 21px)/2 "Mina Miremad", var(--fa); text-align: center; text-shadow: 0 2px 10px rgba(0, 0, 0, .45); }
.hero-date .date-caption { display: block; margin-bottom: .15rem; color: #f2dfb7; font: 400 12px/1.8 var(--fa); letter-spacing: 0; }
.hero-content:focus { outline: none; }

/* Intro video: loading line, skip button, blurred couple photo behind a custom video without poster */
.intro-backdrop.is-portrait { opacity: .5; filter: blur(18px) saturate(.9); }
.intro-skip { position: absolute; top: max(16px, env(safe-area-inset-top)); right: 16px; z-index: 4; min-height: 44px; padding: 8px 16px; color: var(--wine); font: 13px/1.6 var(--fa); background: rgba(255, 250, 243, .92); border: 1px solid rgba(189, 150, 81, .6); border-radius: 24px; cursor: pointer; }
.intro-skip[hidden], .intro-status[hidden] { display: none; }
.intro-status { position: absolute; left: 50%; bottom: calc(8% + 56px); z-index: 3; max-width: calc(100% - 40px); margin: 0; padding: 9px 18px; color: #fff; font-size: 13px; line-height: 1.9; text-align: center; background: rgba(62, 17, 26, .66); border-radius: 30px; transform: translateX(-50%); pointer-events: none; }
.intro-status:not([hidden]) ~ .intro-hint { opacity: 0; }
.intro-after-quiz.quiz-active .wedding-intro { display: none !important; }

/* Invitation: the two family names on one line */
.message-card .family-pair { display: flex; flex-flow: row wrap; justify-content: center; align-items: center; gap: .3rem clamp(9px, 3vw, 18px); margin: .2rem 0 .4rem; color: var(--wine); font: 400 clamp(14px, 3.8vw, 16px)/2 var(--fa); }
.message-card .family-pair i { color: var(--gold); font: normal 10px/1 Georgia, serif; }
.message-card .families-name { margin: .2rem 0 .4rem; color: var(--wine); font: 400 15px/2.1 var(--fa); }

/* Countdown extras: start time and the note under it */
.calendar-card .ceremony-start { position: relative; z-index: 2; margin: .2rem 0 .3rem; color: var(--wine); font: 600 16px/2 var(--fa); }
.calendar-card .ceremony-note { position: relative; z-index: 2; max-width: 30rem; margin: 1.2rem auto 0; padding-top: 1.1rem; color: var(--ink); font: 400 14px/2.2 var(--fa); border-top: 1px dashed rgba(104, 31, 43, .22); overflow-wrap: anywhere; }

/* The week of the ceremony above the programme */
.program-week { position: relative; z-index: 2; max-width: 520px; margin: 0 auto 1.4rem; padding: 0 0 12px; border-bottom: 1px solid rgba(189, 150, 81, .35); }
.program-month { margin: 0 0 10px; color: var(--wine); font: 400 16px/2 var(--fa); text-align: center; }
.program-week-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; direction: rtl; }
html[dir="ltr"] .program-week-days { direction: ltr; }
.program-day { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.program-day > span { color: var(--muted); font: 400 10px/1.8 var(--fa); white-space: nowrap; }
.program-day time { position: relative; isolation: isolate; display: grid; place-items: center; width: 29px; height: 34px; color: var(--ink); font: 400 15px/1.5 var(--fa); }
.program-day.ceremony-day time { color: #fff; font-weight: 600; }
.ceremony-day time::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--wine); clip-path: polygon(50% 94%, 8% 49%, 0 28%, 8% 8%, 27% 2%, 50% 18%, 73% 2%, 92% 8%, 100% 28%, 92% 49%); }
@media (min-width: 600px) { .program-day > span { font-size: 12px; } }

/* Dress code: satin bows recoloured from the ribbon */
.dress-code-section { position: relative; z-index: 2; }
.dress-code-paper { width: min(100%, 660px); margin: 0 auto; padding: 32px 18px 28px; text-align: center; background: rgba(255, 253, 248, .95); border: 1px solid rgba(231, 207, 158, .55); border-radius: 28px; box-shadow: var(--shadow); }
.dress-code-rule { display: flex; align-items: center; justify-content: center; gap: 14px; width: 78%; margin: 0 auto 22px; color: var(--gold); }
.dress-code-rule span { flex: 1; height: 1px; background: rgba(189, 150, 81, .5); }
.dress-code-rule b { font: 400 21px/1 Georgia, serif; }
#invitation .dress-code-heading h2 { margin: 0 0 16px; color: var(--wine); font: 600 clamp(25px, 6vw, 33px)/1.9 var(--fa); }
.dress-code-heading p { max-width: 460px; margin: 0 auto; color: var(--ink); font: 400 15px/2.2 var(--fa); }
.dress-palette { display: flex; flex-direction: column; gap: 24px; max-width: 540px; margin: 30px auto 22px; }
.dress-palette-row { display: grid; grid-template-columns: repeat(var(--bow-count), minmax(0, 1fr)); width: 100%; max-width: calc(var(--bow-count) * 108px); margin: auto; direction: rtl; }
.dress-swatch { position: relative; isolation: isolate; min-width: 0; margin: 0; padding: 0 3px; }
.dress-bow { position: relative; z-index: 1; display: block; width: 100%; max-width: 94px; height: auto; margin: auto; overflow: visible; filter: drop-shadow(0 3px 2px rgba(71, 48, 34, .13)); }
.dress-swatch figcaption { margin: 12px -1px 0; color: var(--muted); font: 400 13px/1.9 var(--fa); overflow-wrap: anywhere; }
.dress-code-note { margin: 14px auto 0; color: var(--wine); font-size: 15px; font-weight: 600; }
.dress-code-rule-bottom { margin: 26px auto 0; }

/* Venue: «add to calendar» under the route buttons */
.venue-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 14px; }
.venue-action { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; color: var(--wine); font-size: 14px; text-decoration: none; background: rgba(255, 253, 248, .9); border: 1px solid rgba(189, 150, 81, .55); border-radius: 999px; }
.google-route small { direction: ltr; }

/* RSVP extras (quiz wording, guest limit, «maybe») */
.participation-forms > form[hidden], #rsvpDone[hidden], #rsvpForm[hidden], .guest-count-field[hidden] { display: none !important; }
.rsvp-kicker { margin: 0; color: var(--rose); font-size: 13px; letter-spacing: .04em; }
.rsvp-max { display: block; color: var(--muted); font-size: 12px; }
.rsvp-notice { margin: .4rem auto 0; max-width: 32rem; }
.rsvp-done { text-align: center; }
.rsvp-done h3 { outline: none; }
.rsvp-done button { margin: .4rem .25rem 0; }
.rsvp-change { color: var(--wine) !important; background: transparent !important; }
.rsvp-final { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.rsvp-final p { margin: 0 0 .4rem; }

/* Special programs for chosen guests */
.special-section { position: relative; z-index: 2; }
.special-card { position: relative; max-width: 520px; margin: auto; padding: 46px 24px 34px; text-align: center; background: rgba(255, 253, 248, .95); border: 1px solid rgba(231, 207, 158, .55); border-radius: 120px 120px 22px 22px; box-shadow: var(--shadow), inset 0 0 0 7px rgba(255, 255, 255, .55); }
.special-seal { position: absolute; top: -21px; left: calc(50% - 21px); display: grid; place-items: center; width: 42px; height: 42px; color: #fff; font-size: 15px; background: var(--wine); border-radius: 50%; box-shadow: 0 5px 14px rgba(66, 16, 26, .3); }
.special-guest { margin: 0; color: var(--wine); font: 400 clamp(22px, 6.5vw, 30px)/1.9 "Mina Miremad", var(--fa); }
.special-intro { display: inline-block; margin: 0 0 6px; padding: 5px 16px; color: var(--ink); font-size: 13px; line-height: 2; background: rgba(189, 150, 81, .16); border-radius: 30px; }
.special-card h2 { margin: 6px 0 10px; color: var(--ink); font: 400 clamp(26px, 6vw, 36px)/1.8 "Mina Miremad", var(--fa); }
.special-when { margin: 0 0 10px; color: var(--muted); font-size: 14px; }
.special-text { margin: 10px 0; font-size: 14px; line-height: 2.3; overflow-wrap: anywhere; }
.special-place { display: grid; justify-items: center; gap: 2px; margin: 14px 0 4px; font-size: 14px; }
.special-place > span { color: var(--gold); font: 24px/1 Georgia, serif; }
.special-place address { color: var(--muted); font-style: normal; line-height: 2.1; }
.special-photo img { display: block; width: 100%; max-height: 300px; object-fit: cover; }
.special-rsvp { margin-top: 26px; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.special-rsvp h3 { margin-top: 0; }
.special-countdown { max-width: 340px; margin: 14px auto 16px; padding: 10px 6px 8px; border-block: 1px solid var(--line); }
.special-countdown-units { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); direction: ltr; }
.special-countdown-units[hidden] { display: none; }
.special-countdown-units > span { display: block; padding: 2px; border-right: 1px solid var(--line); }
.special-countdown-units > span:last-child { border: 0; }
.special-countdown strong { display: block; color: var(--wine); font-size: 22px; font-weight: 400; line-height: 1.5; font-variant-numeric: tabular-nums; }
.special-countdown small { display: block; color: var(--muted); font-size: 11px; }
.special-countdown-state { margin: 0; color: var(--wine); font-size: 15px; }
.special-countdown.is-done .special-countdown-state { color: var(--muted); font-size: 13px; }

/* Guest album: the teaser before the day, and the automatic-deletion warning */
.guest-media-section { position: relative; z-index: 2; }
.guest-media-teaser .media-teaser-note { max-width: 420px; margin: 0 auto; padding: 16px; color: var(--ink); font-size: 14px; line-height: 2.2; text-align: center; border-block: 1px solid var(--line); }
.guest-media-teaser .media-teaser-note span { color: var(--gold); }
.media-delete-warning { max-width: 520px; margin: -6px auto 22px; padding: 12px 16px; color: #6b1a26; font: 600 14px/2.1 var(--fa); text-align: center; background: #fbeef0; border: 1px solid rgba(104, 31, 43, .28); border-radius: 16px; }
.media-delete-warning span { color: var(--wine); }

/* Closing words and photo */
.closing-section { position: relative; z-index: 2; text-align: center; }
.closing-copy { max-width: 420px; margin: 0 auto 16px; color: var(--wine); font: 400 clamp(1.15rem, 4.8vw, 1.45rem)/2.1 "Mina Miremad", var(--fa); }
.closing-photo { width: min(78%, 340px); margin: 0 auto; padding: 8px 8px 12px; background: var(--paper); border: 1px solid rgba(189, 150, 81, .6); border-radius: 48% 48% 14px 14px; box-shadow: var(--shadow); }
.closing-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 48% 48% 6px 6px; }
.closing-photo figcaption { padding-top: 8px; color: var(--gold); font: clamp(22px, 5vw, 28px)/1.6 "Wedding Script", Georgia, serif; }

/* Language menu in burgundy */
.lang-switch { color: var(--wine); }
.lang-switch li a[aria-current] b { background: var(--wine); }

/* Left-to-right languages: the forms read from the left. */
html[dir="ltr"] .wedding-form, html[dir="ltr"] .special-rsvp { text-align: left; }

/* Footer logo: round, without the square corners of the image */
.footer-logo-link { overflow: hidden; border-radius: 50%; }
.footer-logo-link img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; clip-path: circle(49%); }

/* The album's hidden spam trap sat 10000px to the left, which made the right-to-left page scroll sideways. */
.media-trap { left: 0 !important; clip-path: inset(50%); opacity: 0; pointer-events: none; }
html { overflow-x: clip; }
html[dir="ltr"] .program-week-days { direction: ltr; }

/* Invitation text in a plain box like the other sections (panel «کادرها»; the flower frame stays as an option). */
#invitationText .message-card.is-simple { width: min(calc(100% - 24px), 660px) !important; min-height: 0 !important; height: auto !important; padding: 42px 24px 38px !important; display: block !important; border-radius: 28px; background: #fcf9f3f5 !important; border: 1px solid #eee5da; box-shadow: 0 18px 48px #26152120, inset 0 0 0 6px #fff8 !important; }
#invitationText .message-card.is-simple .message-content { width: 100%; max-width: 440px; padding: 0; transform: none; }
#invitationText .message-card.is-simple.is-fitted { height: auto !important; }
#invitationText .message-card.is-simple.is-fitted .message-content { transform: none; }
@media (min-width: 600px) { #invitationText .message-card.is-simple { padding: 48px 45px !important; } }

/* Box colour chosen in the panel. Every section box takes the same colour. */
html[class*="box-"]:not(.box-theme) :is(.calendar-card, .program-paper, .dress-code-paper, .venue-card, .wedding-form, .guestbook-wall, .guest-media-paper, .special-card, #invitationText .message-card.is-simple) {
  background: var(--box-bg, #fbf7eff7) !important;
  border-color: var(--box-line, #eddfce) !important;
}

/* Glass: the background video shows through, blurred. */
html.box-glass :is(.calendar-card, .program-paper, .dress-code-paper, .venue-card, .wedding-form, .guestbook-wall, .guest-media-paper, .special-card, #invitationText .message-card.is-simple) {
  background: linear-gradient(150deg, rgba(255, 255, 255, .7), rgba(255, 255, 255, .5)) !important;
  border: 1px solid rgba(255, 255, 255, .7) !important;
  box-shadow: 0 18px 45px rgba(20, 12, 18, .22), inset 0 1px 0 rgba(255, 255, 255, .8) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
}

/* A dark box colour: light text inside the boxes. */
html.box-dark :is(.calendar-card, .program-paper, .dress-code-paper, .venue-card, .wedding-form, .guestbook-wall, .guest-media-paper, .special-card, #invitationText .message-card.is-simple) {
  --ink: #fbf4ec; --muted: #e6d9cf; --wine: #f7e3e6; --rose-deep: #f4d4da; --rose: #ecc9cd; --champagne: #e9d2a4; --line: rgba(255, 255, 255, .22); --soft-line: rgba(255, 255, 255, .14);
  color: var(--ink);
}
html.box-dark :is(.calendar-card, .program-paper, .dress-code-paper, .venue-card, .wedding-form, .guestbook-wall, .guest-media-paper, .special-card, #invitationText .message-card.is-simple) :is(h1, h2, h3, h4, p, span, small, strong, time, figcaption, legend, label, li, b, dt, dd):not(input, textarea, select, button, .button, a.button) {
  color: inherit;
}
html.box-dark :is(.calendar-card, .program-paper, .dress-code-paper, .venue-card, .wedding-form, .guestbook-wall, .guest-media-paper, .special-card, #invitationText .message-card.is-simple) { --wine-soft: #f0d3d8; }
html.box-dark #invitationText .message-card.is-simple :is(h2, h3, p, strong) { color: var(--ink) !important; }
html.box-dark .program-section .program-heading > p { color: var(--muted) !important; }
html.box-dark .program-section .program-icon { color: var(--champagne); }
#invitationText .message-card.is-simple .invitation-copy { font-size: clamp(15px, 4.1vw, 17px) !important; line-height: 2.2 !important; }
#invitationText .message-card.is-simple strong { font-size: 15px !important; }
#invitationText .message-card.is-simple h2 { font-size: clamp(23px, 5.6vw, 32px) !important; }

/* Auto-delete warning inside the guest album. */
.media-delete-warning { max-width: 520px; margin: -6px auto 22px; padding: 12px 16px; color: #7a3b45; font: 600 14px/2.1 var(--fa); text-align: center; background: #fbf0f0; border: 1px solid rgba(122, 59, 69, .25); border-radius: 16px; }
.media-delete-warning span { color: var(--wine); }

/* RSVP fields the couple added in the panel. */
.wedding-form .rsvp-help { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.8; opacity: .75; font-weight: 400; }
.wedding-form select { width: 100%; margin-top: .38rem; padding: .68rem .15rem; color: var(--ink); font: inherit; background: transparent; border: 0; border-bottom: 1px solid rgba(122,103,84,.26); border-radius: 0; outline: none; }
.wedding-form select:focus { border-color: var(--sage); }
html.box-dark .wedding-form select option { color: #222; }

/* ---------- test1 3.1: the couple's names in English or Persian letters (panel: عروس و داماد ← خط نام‌ها) ---------- */
@font-face { font-family: "Name Ruqaa"; src: url("../fonts/aref-ruqaa-700.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Name Amiri"; src: url("../fonts/amiri-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Name Lalezar"; src: url("../fonts/lalezar-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Name Vibes"; src: url("../fonts/great-vibes-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }

.hero-content h1.names-font-vibes, .footer-couple.names-font-vibes { font-family: "Name Vibes", "Wedding Script", cursive; }

/* Persian names: bride on the right, «و» in the middle, each font sized to look as large as the English script. */
.hero-content h1.names-fa, .footer-couple.names-fa { direction: rtl; font-weight: 400; letter-spacing: 0; }
.hero-content h1.names-fa b, .footer-couple.names-fa b { font-family: inherit; font-style: normal; font-size: .8em; color: var(--gold-soft, #e9d2a4); }
.footer-couple.names-fa b { color: var(--gold); }
.names-fa.names-font-nastaliq { font-family: "Mina Miremad", "Vazirmatn", serif; line-height: 1.75; }
.hero-content h1.names-fa.names-font-nastaliq { font-size: clamp(2.8rem, 9vw, 6.8rem); padding: .1em .02em .45em; }
.names-fa.names-font-ruqaa { font-family: "Name Ruqaa", "Vazirmatn", serif; line-height: 1.6; }
.hero-content h1.names-fa.names-font-ruqaa { font-size: clamp(2.8rem, 9vw, 6.6rem); }
.names-fa.names-font-amiri { font-family: "Name Amiri", "Vazirmatn", serif; line-height: 1.7; }
.hero-content h1.names-fa.names-font-amiri { font-size: clamp(2.8rem, 9vw, 6.6rem); }
.names-fa.names-font-lalezar { font-family: "Name Lalezar", "Vazirmatn", sans-serif; line-height: 1.6; }
.hero-content h1.names-fa.names-font-lalezar { font-size: clamp(2.5rem, 8vw, 5.8rem); }
.footer-couple.names-fa { font-size: clamp(2.3rem, 9vw, 3.6rem); }
@media (max-width: 520px) {
  .hero-content h1.names-fa { font-size: clamp(2.8rem, 15vw, 4.6rem); }
  .hero-content h1.names-fa.names-font-nastaliq { font-size: clamp(2.8rem, 14vw, 4.4rem); padding-bottom: .45em; }
  .hero-content h1.names-fa.names-font-lalezar { font-size: clamp(2.5rem, 13vw, 4rem); }
}
