/* Guest essentials and optional music, layered over the approved design. */
.hero-bottom { justify-content: flex-start; gap: 12px; }
.hero-bottom .ripple-control { margin-left: auto; }
.hero-bottom .music-toggle, .music-dock { display:flex;align-items:center;gap:11px;min-height:48px;border:1px solid #193c5533;border-radius:6px;background:#fff7e8f5;color:#193c55;padding:10px 15px;text-align:left;box-shadow:0 3px 14px #193c5512;font:500 12px/1.3 var(--sans); }
.music-copy { display:flex;flex-direction:column;gap:3px; }
.music-copy small { font-size:10px;color:#4b626a;letter-spacing:.02em; }
.music-icon { display:grid;place-items:center;border:1px solid #193c5540;border-radius:50%;height:29px;width:29px;flex:none;font:18px/1 var(--serif); }
.music-toggle:hover,.music-dock:hover { background:#fffaf0; }
.music-toggle.is-playing .music-icon,.music-dock.is-playing .music-icon { color:#ac4658;border-color:#ac465888; }
.music-dock { position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:30;border-radius:28px;box-shadow:0 3px 20px #193c5525; }
.music-dock[hidden] { display:none; }
.hero-bottom>.motion-control,.hero-bottom>.ripple-control { border-color:transparent;background:#fff7e8de; }
.rsvp-deadline { display:inline-block;margin:25px 0 0;padding:9px 14px;background:#f7eddf;border:1px solid #b5b9ac;color:#783b4b;font-size:13px; }
.copy-address { display:inline-flex;margin-left:18px;min-height:44px;align-items:center; }
.copy-status { font-size:12px;min-height:0;color:#315e62; }
.copy-status:empty { display:none; }
.venue-address { user-select:all; }
.venue-access { margin-top:16px!important;font-size:12px!important;line-height:1.8; }
.venue-source { font-size:11px;text-decoration:underline;text-underline-offset:3px; }
.location-map { border-top:1px solid var(--line);margin-top:22px;padding-top:14px; }
.location-map summary { cursor:pointer;min-height:44px;font:500 13px var(--sans);display:list-item; }
.location-map img { display:block;width:100%;height:auto;margin-top:12px; }
.location-map p { font-size:10px!important;color:var(--muted);margin-top:8px!important; }
.gallery-status { text-align:center;font-size:12px;color:var(--cream); }
.gallery-status:empty { display:none; }
.invitation-entry { display:grid;gap:12px;margin-top:26px; }
.invitation-entry label { font-size:13px; }
.invitation-entry input { width:100%;min-height:48px;border:1px solid #b5bcae;background:#fffdf7;padding:12px;color:var(--ink);font-size:16px; }
.invitation-entry button { justify-self:start; }
.chinese .final-seal>span { font-size:27px; }
@media(max-width:560px) {
 .hero-bottom { left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom));gap:9px;justify-content:space-between; }
 .hero-bottom .music-toggle { padding:8px 10px;gap:8px;min-height:50px; }
 .music-copy { font-size:12px; }
 .music-copy small { max-width:145px;font-size:9px; }
 .hero-bottom>.ripple-control { display:none; }
 .hero-bottom>.motion-control { font-size:10px;padding:8px;min-height:44px; }
 .music-dock { right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:8px 12px;min-height:44px; }
 .copy-address { margin-left:12px;font-size:11px; }
 .rsvp-deadline { font-size:12px; }
 .form-field input,.form-field textarea,.form-field select { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .hero-bottom { justify-content:flex-start; } }
