/* Clear, high-contrast celebration gallery in the selected orchid/champagne language. */
.invitation .events {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.invitation .events::before {
  content: '' !important;
  position: absolute;
  inset: 18px 0 0 !important;
  z-index: -1 !important;
  opacity: 1 !important;
  background:
    radial-gradient(circle at 12% 20%, #fffbe7b8 0 2px, transparent 3px),
    radial-gradient(circle at 82% 65%, #c7896c4d 0 2px, transparent 3px),
    linear-gradient(180deg, #fffaf040, #ffffff00 28%, #315f4f1a) !important;
  background-size: 154px 154px, 205px 205px, auto !important;
  animation: orchid-dust-drift 15s linear infinite !important;
}

.invitation .events > .eyebrow,
.invitation .events h2,
.invitation .events .section-copy {
  position: relative;
  z-index: 1;
  width: fit-content;
  max-width: min(92%, 660px);
  margin-left: auto !important;
  margin-right: auto !important;
  background: #fffaf0b8;
  border-left: 1px solid #c99d5d8c;
  border-right: 1px solid #c99d5d8c;
  box-shadow: 0 9px 24px #6a482a1e;
  backdrop-filter: blur(9px);
}

.invitation .events > .eyebrow {
  margin-bottom: 0 !important;
  padding: 11px 28px 5px;
  border-radius: 26px 26px 0 0;
  color: #8a6539 !important;
  text-shadow: 0 1px #fffdf4;
}

.invitation .events h2 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 4px 31px 10px;
  color: #3c2b20 !important;
  font-size: clamp(3rem, 7vw, 5.15rem) !important;
  line-height: .95 !important;
  text-shadow: 0 1px #fffdf4 !important;
}

.invitation .events .section-copy {
  margin-top: 0 !important;
  margin-bottom: 27px !important;
  padding: 0 30px 15px;
  border-radius: 0 0 26px 26px;
  color: #574330 !important;
  font-weight: 500;
  text-shadow: 0 1px #fffdf4;
}

.event-list {
  position: relative;
  z-index: 1;
  padding-top: 10px !important;
  padding-bottom: 25px !important;
}

.event.event-card,
.event.event-card:nth-child(3n + 2),
.event.event-card:nth-child(3n + 3) {
  position: relative;
  min-height: 360px !important;
  border: 1px solid #c79b58bd !important;
  border-radius: 42px 42px 22px 22px / 29px 29px 22px 22px !important;
  background:
    radial-gradient(circle at 86% 93%, #cf8c7330 0 2px, transparent 3px),
    radial-gradient(circle at 12% 10%, #fffdf6d9 0 2px, transparent 3px),
    linear-gradient(145deg, #fffdf3e8, #f2dfbdd5 58%, #fff8e7e3) !important;
  background-size: 112px 112px, 88px 88px, 100% 100% !important;
  box-shadow: 0 20px 42px #59422545, inset 0 0 0 5px #fffdf590, inset 0 0 0 7px #c9a05e4a !important;
  color: #403025 !important;
  animation: event-orchid-arrive .8s cubic-bezier(.16,.85,.2,1) calc(var(--event-index) * .1s) both, event-card-glow 6s ease-in-out calc(var(--event-index) * .25s) infinite !important;
}

.event.event-card:nth-child(3n + 2) {
  background:
    radial-gradient(circle at 86% 93%, #c9826c3c 0 2px, transparent 3px),
    radial-gradient(circle at 12% 10%, #fffdf6d9 0 2px, transparent 3px),
    linear-gradient(145deg, #fffaf0ec, #f3ddcfda 58%, #fff6e8e5) !important;
}

.event.event-card:nth-child(3n + 3) {
  background:
    radial-gradient(circle at 86% 93%, #6d9e8140 0 2px, transparent 3px),
    radial-gradient(circle at 12% 10%, #fffdf6d9 0 2px, transparent 3px),
    linear-gradient(145deg, #fffdf2eb, #dceadbd1 58%, #fff9e7e4) !important;
}

.event.event-card::before {
  z-index: 0 !important;
  background: linear-gradient(110deg, transparent 28%, #ffffffdb 48%, transparent 68%) !important;
  animation: event-gold-sweep 8s ease-in-out calc(var(--event-index) * .7s) infinite !important;
  translate: -130% 0 !important;
}

.event.event-card::after {
  content: '❦' !important;
  position: absolute;
  right: 21px;
  bottom: 14px;
  z-index: 0;
  color: #c3934d;
  font: 1.75rem 'Cormorant Garamond';
  opacity: .75;
  animation: card-flourish-float 4.5s ease-in-out calc(var(--event-index) * -.32s) infinite;
}

.event.event-card:hover,
.event.event-card:focus-within,
.event.event-card:focus {
  transform: translateY(-11px) scale(1.018) !important;
  border-color: #a9783e !important;
  box-shadow: 0 29px 54px #59422563, 0 0 29px #fff3c878, inset 0 0 0 5px #fffdf590, inset 0 0 0 7px #c9a05e5e !important;
}

.event-calendar {
  position: relative;
  z-index: 1;
  min-height: 111px !important;
  border-bottom: 1px solid #af7c4294 !important;
  background:
    radial-gradient(circle at 17% 25%, #fff7d7c7, transparent 24%),
    linear-gradient(120deg, #fff5cf, #e9bb64 52%, #f8d78a) !important;
  color: #4b3025 !important;
  box-shadow: inset 0 -5px #a86c386b !important;
}

.event-details {
  position: relative;
  z-index: 1;
  flex: 0 1 auto !important;
  padding: 19px 21px 20px !important;
}

.event-details::before {
  content: '';
  position: absolute;
  top: 9px;
  right: 21px;
  left: 21px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #bd92585c, transparent);
}

.event-details .event-date { margin: 7px 0 7px !important; color: #8a6538 !important; text-shadow: 0 1px #fffdf3; }
.event-details h3 { margin: 0 !important; color: #403025 !important; text-shadow: 0 1px #fffdf4 !important; }
.event-facts { margin: 13px 0 0 !important; }
.event-facts span { border-color: #b88c5980 !important; background: #fffdf4a3 !important; color: #4b392b !important; }
.event-facts b { color: #956b38 !important; }
.event-place { margin: 19px 0 0 !important; color: #5d4938 !important; }
.event-place b { color: #403025 !important; }
.event-directions {
  position: relative;
  overflow: hidden;
  margin-top: 14px !important;
  border-color: #a9793d !important;
  background: #fff8e7b5 !important;
  color: #664527 !important;
  box-shadow: 0 5px 12px #6b49221d;
}

.event-directions::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 35%, #ffe19a96 50%, transparent 65%);
  transform: translateX(-125%);
  transition: transform .6s ease;
}

.event-directions:hover::before, .event-directions:focus-visible::before { transform: translateX(125%); }
.event-directions:hover { background: #fff0c9 !important; color: #4a2f1d !important; }

/* Keep the RSVP card beautifully translucent without sacrificing readable fields. */
.invitation .rsvp-form {
  background:
    radial-gradient(circle at 14% 7%, #fffdf5aa 0 2px, transparent 3px),
    radial-gradient(circle at 84% 87%, #d48b6d21 0 2px, transparent 3px),
    linear-gradient(120deg, #fffdf5bd, #f3e4c7a8 58%, #fff7e4b8) !important;
  box-shadow: 0 28px 72px #4a301f42, inset 0 0 0 7px #fffdf36b, inset 0 0 0 9px #c99e5a57 !important;
}

.invitation .rsvp-form input,
.invitation .rsvp-form select,
.invitation .rsvp-form textarea { background: #fffdf8e6 !important; }

@keyframes orchid-dust-drift {
  from { background-position: 0 0, 0 0, 0 0; }
  to { background-position: 110px 170px, -150px 120px, 0 0; }
}

@keyframes event-orchid-arrive {
  from { opacity: 0; transform: translateY(32px) scale(.965); filter: blur(5px); }
  to { opacity: 1; transform: none; filter: none; }
}

@keyframes event-card-glow {
  0%, 100% { box-shadow: 0 20px 42px #59422545, inset 0 0 0 5px #fffdf590, inset 0 0 0 7px #c9a05e4a; }
  50% { box-shadow: 0 24px 48px #59422554, 0 0 25px #fff5d560, inset 0 0 0 5px #fffdf5a6, inset 0 0 0 7px #c9a05e63; }
}

@keyframes event-gold-sweep {
  0%, 24% { translate: -130% 0; }
  47%, 100% { translate: 130% 0; }
}

@keyframes card-flourish-float {
  0%, 100% { transform: translateY(0) rotate(0); opacity: .52; }
  50% { transform: translateY(-6px) rotate(7deg); opacity: .9; }
}

@media (max-width: 620px) {
  .invitation .events > .eyebrow { padding: 10px 20px 5px; }
  .invitation .events h2 { padding: 5px 22px 10px; font-size: clamp(2.7rem, 13vw, 3.7rem) !important; }
  .invitation .events .section-copy { padding: 0 20px 15px; font-size: .82rem; }
  .event.event-card { min-height: 350px !important; }
  .event-calendar { min-height: 88px !important; }
  .event-details { padding: 17px 18px 18px !important; }
  .event-details::before { right: 18px; left: 18px; }
  .event-details .event-date { margin-top: 6px !important; }
  .event-facts { margin-top: 11px !important; }
  .event-place { margin-top: 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .invitation .events::before,
  .event.event-card,
  .event.event-card::before,
  .event.event-card::after { animation: none !important; }
}
