/* 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; }
