/* Quiet finishing details; the existing palette, typefaces and artwork stay intact. */
.site-header{border-bottom:1px solid var(--line);box-shadow:0 4px 24px rgba(95,39,54,.045)}
.nav-links a{line-height:1.6;transition:opacity .2s ease;text-underline-offset:.55rem}
.nav-links a:hover{opacity:.75}
.section-heading h1,.section-heading h2{line-height:1.08;text-wrap:balance}
.section-heading>.eyebrow{margin-bottom:1rem;letter-spacing:.2em}
.section-heading>p:not(.eyebrow){max-width:42rem;margin-left:auto;margin-right:auto;line-height:1.85;text-wrap:pretty}
.section-heading .party-title-blooms{margin-top:.75rem;margin-bottom:1.35rem}
.story-copy h2{line-height:1.08;text-wrap:balance}
.story-copy p{line-height:1.9}
.wedding-invitation-copy{max-width:34rem}
.button{padding:.95rem 1.6rem;border-radius:3px;line-height:1.35;transition:box-shadow .2s ease,opacity .2s ease,border-color .2s ease}
.button:not(.button-outline){border-color:var(--line)}
.button:hover{box-shadow:0 5px 16px rgba(95,39,54,.09)}
.button:focus-visible,.text-link:focus-visible,.nav-links a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.text-link{text-decoration-thickness:1px;text-underline-offset:.5rem;line-height:1.8}
.details-grid{gap:0}
.details-grid .detail-card{padding-top:2.5rem;padding-bottom:2.5rem}
.details-grid h3{line-height:1.2;white-space:normal;text-wrap:balance}
.details-grid .detail-emphasis{white-space:normal;margin-top:.85rem}
.detail-description{margin-top:.9rem}
.detail-description p,.info-panel p,.bridal-card p{line-height:1.85}
.info-panel{border:1px solid var(--line);border-radius:5px;box-shadow:0 10px 28px rgba(95,39,54,.045)}
.info-panel h3{line-height:1.2;margin-bottom:1rem;text-wrap:balance}
.info-panel li+li{margin-top:.55rem}
.travel-grid{gap:1.5rem}
.rsvp-card,.guest-list-card,.password-card{border:1px solid var(--line);border-radius:8px}
.rsvp-card>.section-heading,.rsvp-card>#rsvp-form{border-radius:5px}
.rsvp-form-section+.rsvp-form-section{padding-top:1.8rem;margin-top:1.8rem;border-top:1px solid var(--line)}
.rsvp-form-section .rsvp-section-title{line-height:1.25;margin-bottom:1.2rem}
#rsvp-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),#rsvp-form select,#rsvp-form textarea,.password-card input,.party-dialog input:not([type=checkbox]):not([type=range]),.party-dialog textarea{border-radius:4px;transition:box-shadow .2s ease,border-color .2s ease}
#rsvp-form input:focus-visible,#rsvp-form select:focus-visible,#rsvp-form textarea:focus-visible,.password-card input:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.party-grid{gap:2.5rem}
.party-card{border:1px solid var(--line);box-shadow:0 12px 30px rgba(95,39,54,.045);padding-bottom:2rem}
.party-card h3{line-height:1.2;margin-top:1.6rem}
.party-card .party-role{font-size:.78rem;letter-spacing:.16em;margin-bottom:1.1rem}
.party-card .party-bio{line-height:1.85;max-width:34ch;margin-left:auto;margin-right:auto}
.party-tools{gap:1.25rem;align-items:center;margin-top:3rem}
.bridal-card{border-radius:8px;padding:2.25rem;box-shadow:0 10px 28px rgba(95,39,54,.045)}
.bridal-card h3{line-height:1.2;padding-bottom:.9rem;border-bottom:1px solid var(--line);margin-bottom:1.2rem}
.party-dialog{box-shadow:0 24px 70px rgba(95,39,54,.15)}
.guest-list-summary>div{border-radius:4px}
footer{border-top:1px solid var(--line);padding-top:4.5rem;padding-bottom:3.5rem}
footer>p{letter-spacing:.17em;line-height:1.8}
@media(min-width:900px){.story-copy{padding-top:7rem;padding-bottom:7rem}.travel-grid .info-panel{padding:2.5rem}.section-heading{margin-bottom:4.5rem}}
@media(max-width:620px){.section-heading{margin-bottom:3rem}.section-heading>.eyebrow{letter-spacing:.16em}.button{padding:.85rem 1.25rem;min-height:46px}.details-grid .detail-card{padding-top:1.8rem;padding-bottom:1.8rem}.info-panel{padding:2rem 1.4rem}.party-grid{gap:2rem}.bridal-card{padding:1.75rem 1.4rem}.party-tools{margin-top:2rem}footer{padding-top:3.5rem;padding-bottom:2.5rem}footer>p{letter-spacing:.1em}}
@media(prefers-reduced-motion:reduce){.button,.nav-links a{transition:none}}
