/* Family & friends — a quieter, editorial companion to the schedule */
#well-wishers {
  --ww-ink: #182943;
  --ww-muted: #49607e;
  --ww-saffron: #e6a260;
  --ww-cream: #fffaf1;
  position: relative;
  overflow: hidden;
  padding: clamp(5rem, 9vw, 8rem) clamp(1rem, 5vw, 4rem);
  color: var(--ww-ink);
  background: #f6eee1;
}
#well-wishers::before, #well-wishers::after { content: ''; position: absolute; width: min(34vw, 420px); aspect-ratio: 1; border: 1px solid rgba(230,162,96,.3); border-radius: 50%; pointer-events: none; }
#well-wishers::before { top: -18%; left: -13%; box-shadow: 0 0 0 22px rgba(230,162,96,.06), 0 0 0 44px rgba(230,162,96,.045); }
#well-wishers::after { right: -12%; bottom: -25%; border-color: rgba(24,41,67,.12); }
#well-wishers .well-wishers__inner { position: relative; z-index: 1; width: min(100%, 1180px); margin: 0 auto; }
#well-wishers .well-wishers__heading { max-width: 46rem; margin: 0 auto clamp(2.5rem, 5vw, 4rem); text-align: center; }
.well-wishers__ornament { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin: 0 auto 1.25rem; border: 1px solid var(--ww-saffron); border-radius: 50%; transform: rotate(45deg); }
.well-wishers__ornament::before, .well-wishers__ornament::after, .well-wishers__ornament span { content: ''; display: block; position: absolute; width: .45rem; height: .45rem; border-radius: 50%; background: var(--ww-saffron); }
.well-wishers__ornament::before { transform: translateY(-1.05rem); } .well-wishers__ornament::after { transform: translateY(1.05rem); } .well-wishers__ornament span { transform: translateX(1.05rem); }
.well-wishers__kicker { margin-bottom: .55rem; color: #a15d39; font: 700 .72rem/1.3 var(--font-body); letter-spacing: .18em; text-transform: uppercase; }
#well-wishers h2 { color: var(--ww-ink); font: 400 clamp(2.5rem, 6vw, 4.8rem)/.96 var(--font-script); }
.well-wishers__intro { max-width: 35rem; margin: 1rem auto 0; color: var(--ww-muted); font: .98rem/1.65 var(--font-body); }
.well-wishers__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: stretch; justify-content: center; }
.well-wishers__panel { padding: clamp(1.35rem, 2.5vw, 2rem); border: 1px solid rgba(24,41,67,.13); border-radius: 18px; background: rgba(255,250,241,.82); box-shadow: 0 18px 34px rgba(24,41,67,.08); transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, border-color .45s ease; }
.well-wishers__panel:hover { border-color: rgba(230,162,96,.78); box-shadow: 0 24px 42px rgba(24,41,67,.14); transform: translateY(-6px); }
.well-wishers__panel-head { display: flex; align-items: center; gap: .7rem; padding-bottom: 1rem; margin-bottom: 1.1rem; border-bottom: 1px solid rgba(24,41,67,.12); }
.well-wishers__panel-head h3 { color: var(--ww-ink); font: 400 clamp(1.75rem, 3vw, 2.45rem)/1 var(--font-script); }
.well-wishers__badge { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; border-radius: 50%; color: var(--ww-cream); background: var(--ww-ink); font: 700 .65rem var(--font-body); }
.well-wishers__panel ul { display: grid; gap: .58rem; padding: 0; margin: 0; list-style: none; color: var(--ww-ink); font: 600 1rem/1.4 var(--font-body); }
.well-wishers__panel li span { color: var(--ww-muted); font-weight: 400; }
.well-wishers__panel--notes { background: var(--ww-ink); color: var(--ww-cream); }
.well-wishers__panel--notes .well-wishers__panel-head { border-bottom-color: rgba(255,250,241,.18); }
.well-wishers__panel--notes .well-wishers__panel-head h3, .well-wishers__panel--notes li, .well-wishers__panel--notes p { color: var(--ww-cream); }
.well-wishers__panel--notes .well-wishers__badge { color: var(--ww-ink); background: var(--ww-saffron); }
.well-wishers__panel--notes li span { color: #f2c79c; }
.well-wishers__invite { padding-top: .5rem; }
.well-wishers__invite p { margin: .5rem 0; font: 600 1rem/1.35 var(--font-body); }
.well-wishers__panel--invite { background: rgba(255,250,241,.96); text-align: center; }
.well-wishers__panel--invite .well-wishers__panel-head { justify-content: center; }
.well-wishers__panel--invite p { margin: .8rem 0; color: var(--ww-ink); font: 600 1.1rem/1.35 var(--font-body); }
.well-wishers__panel--firms ul { gap: 1rem; }
.well-wishers__panel--firms li { display: grid; gap: .18rem; }
.well-wishers__panel--firms strong { font: 600 1rem/1.35 var(--font-display); }
.well-wishers__panel--firms small { color: var(--ww-muted); font: .78rem/1.35 var(--font-body); }
@media (max-width: 900px) and (min-width: 601px) { .well-wishers__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { #well-wishers { padding-inline: 1rem; } .well-wishers__grid { grid-template-columns: 1fr; } .well-wishers__panel { border-radius: 15px; } }
@media (prefers-reduced-motion: reduce) { .well-wishers__panel { transition: none; } .well-wishers__panel:hover { transform: none; } }

/* Alignment pass: equal columns on wide screens, intentional reading order below tablet. */
#well-wishers { min-height: clamp(38rem, 62vw, 52rem); display: grid; align-items: center; }
#well-wishers .well-wishers__grid { gap: clamp(1rem, 2vw, 1.5rem); }
#well-wishers .well-wishers__panel { min-width: 0; }
#well-wishers .well-wishers__panel--presence, #well-wishers .well-wishers__panel--firms { min-height: 100%; }
#well-wishers .well-wishers__panel--notes { align-content: start; }
@media (min-width: 901px) {
  #well-wishers .well-wishers__panel--presence, #well-wishers .well-wishers__panel--firms { padding-top: 2.25rem; }
  #well-wishers .well-wishers__panel--notes { padding-block: 2.25rem; }
}
@media (max-width: 900px) and (min-width: 601px) {
  #well-wishers { min-height: 0; }
  #well-wishers .well-wishers__grid { align-items: start; }
  #well-wishers .well-wishers__panel--presence, #well-wishers .well-wishers__panel--firms { min-height: 100%; }
}
@media (max-width: 600px) {
  #well-wishers { min-height: 0; padding-block: 4.5rem 5rem; }
  #well-wishers .well-wishers__heading { margin-bottom: 2.5rem; }
  #well-wishers h2 { font-size: clamp(2.8rem, 13vw, 4rem); }
  .well-wishers__intro { max-width: 22rem; font-size: .92rem; }
  #well-wishers .well-wishers__panel { padding: 1.25rem; }
  #well-wishers .well-wishers__panel-head { margin-bottom: 1rem; }
  #well-wishers .well-wishers__panel-head h3 { font-size: 2rem; }
}
