
.sv { font-family: Inter, sans-serif; }
.sv-display { font-family: Fraunces, serif; }
body { background: #ffffff; }
.sv { --white:#ffffff; --ink:#20242a; --grey:#8d9aa5; --line:#e6e6e4; --wheat:#c8b7a1;
  background: var(--white); color: var(--ink); min-height: 100vh; }
.sv-wrap { max-width: 1080px; margin: 0 auto; padding: 0 2rem; }
.sv-grid { border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.sv-hero { padding: 8rem 2.5rem 6rem; text-align: center; border-bottom: 1px solid var(--line); }
.sv-kicker { font-size: 0.66rem; letter-spacing: 0.42em; text-transform: uppercase; color: var(--grey); }
.sv-names { font-size: clamp(2.4rem, 6vw, 3.6rem); font-weight: 300; line-height: 1.2; margin-top: 2.4rem; letter-spacing: -0.01em; }
.sv-names i { font-style: italic; color: var(--grey); }
.sv-date { margin-top: 2.4rem; font-size: 0.72rem; letter-spacing: 0.38em; text-transform: uppercase; color: var(--grey); }
.sv-wreath { margin: 3rem auto 0; display: block; }
.sv-row { display: grid; border-bottom: 1px solid var(--line); }
@media (min-width: 860px) { .sv-row { grid-template-columns: 260px 1fr; } }
.sv-rowlabel { padding: 2.6rem 2.5rem; font-size: 0.66rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--grey); }
@media (min-width: 860px) { .sv-rowlabel { border-right: 1px solid var(--line); } }
.sv-rowbody { padding: 2.6rem 2.5rem; }
.sv-h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 300; margin-bottom: 1.2rem; }
.sv-p { font-size: 0.98rem; line-height: 1.9; color: #4a5158; max-width: 58ch; }
.sv-p + .sv-p { margin-top: 1.1rem; }
.sv-times { display: grid; gap: 1.5rem; }
.sv-time { display: grid; grid-template-columns: 62px 1fr; gap: 1.6rem; align-items: baseline; }
.sv-timeval { font-size: 0.85rem; letter-spacing: 0.1em; color: var(--wheat); }
.sv-timetitle { font-size: 1.05rem; font-weight: 400; }
.sv-timebody { font-size: 0.9rem; line-height: 1.8; color: #6b737b; margin-top: 0.35rem; }
.sv-photo { position: relative; aspect-ratio: 16 / 7; border-bottom: 1px solid var(--line); filter: saturate(0.55) brightness(1.06); }
.sv-cta { padding: 6rem 2.5rem 7rem; text-align: center; border-bottom: 1px solid var(--line); }
.sv-btn { display: inline-block; margin-top: 2.2rem; padding: 0.95rem 3rem; border: 1px solid var(--ink);
  font-size: 0.66rem; letter-spacing: 0.32em; text-transform: uppercase; text-decoration: none; transition: background .3s, color .3s; }
.sv-btn:hover { background: var(--ink); color: var(--white); }
.sv-foot { padding: 2.2rem 2.5rem 4rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.6rem;
  font-size: 0.64rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--grey); }

