@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@400;500;600&display=swap');

:root {
    --inv-primary: #c4a052;
    --inv-bg: #fff9f2;
    --inv-text: #2a1f14;
    --inv-muted: #6b5a48;
    --inv-card: rgba(255,255,255,.85);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body.invitation-body {
    font-family: 'DM Sans', sans-serif;
    background: var(--inv-bg);
    color: var(--inv-text);
    overflow-x: hidden;
}

.inv-cover {
    min-height: 100vh;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 2rem;
    background-color: #3d2b1f;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}
.inv-cover .ornament { font-size: 2rem; opacity: .8; margin-bottom: .5rem; }
.inv-cover h1 { font-family: 'Cormorant Garamond', serif; font-size: clamp(2rem, 8vw, 3.5rem); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.inv-cover .couple { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem, 10vw, 4.5rem); font-weight: 700; margin: .5rem 0 1rem; }
.inv-cover .guest-box { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(6px); padding: 1rem 1.5rem; border-radius: 12px; margin: 1.5rem auto; max-width: 320px; }
.inv-open-btn {
    margin-top: 1.5rem; padding: .85rem 2rem; border: 1.5px solid #fff; background: transparent;
    color: #fff; border-radius: 999px; cursor: pointer; font: inherit; letter-spacing: .1em; text-transform: uppercase;
    animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.7} }

.inv-main { display: none; }
.inv-main.open { display: block; }

.inv-nav {
    position: fixed; bottom: 1rem; left: 50%; transform: translateX(-50%);
    background: rgba(42,31,20,.92); padding: .5rem; border-radius: 999px; z-index: 50;
    display: flex; gap: .25rem; max-width: 92vw; overflow-x: auto;
}
.inv-nav a { color: #f5ebe0; padding: .45rem .75rem; border-radius: 999px; font-size: .75rem; white-space: nowrap; text-decoration: none; }
.inv-nav a:hover { background: rgba(255,255,255,.1); }

.inv-section { padding: 4rem 1.25rem; max-width: 680px; margin: 0 auto; text-align: center; }
.inv-section h2 { font-family: 'Cormorant Garamond', serif; font-size: 2.25rem; color: var(--inv-primary); margin-bottom: 1rem; }
.inv-section p { color: var(--inv-muted); line-height: 1.8; }
.inv-divider { width: 80px; height: 2px; background: var(--inv-primary); margin: 1rem auto 1.5rem; opacity: .6; }

.couple-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; margin-top: 2rem; }
.couple-card img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; margin: 0 auto 1rem; border: 3px solid var(--inv-primary); }
.couple-card h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; }
.couple-amp { font-family: 'Cormorant Garamond', serif; font-size: 2.5rem; color: var(--inv-primary); }

.countdown { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin: 1.5rem 0; }
.countdown div { background: var(--inv-card); border: 1px solid #eadfce; border-radius: 12px; padding: .75rem 1rem; min-width: 70px; }
.countdown strong { display: block; font-size: 1.5rem; font-family: 'Cormorant Garamond', serif; }

.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin-top: 1.5rem; }
.gallery-grid img { border-radius: 12px; aspect-ratio: 1; object-fit: cover; width: 100%; }

.timeline { text-align: left; margin-top: 1.5rem; }
.timeline-item { border-left: 2px solid var(--inv-primary); padding-left: 1rem; margin-bottom: 1.25rem; }
.timeline-item strong { color: var(--inv-primary); }

.rsvp-form { background: #fff; border: 1px solid #eadfce; border-radius: 16px; padding: 1.5rem; text-align: left; margin-top: 1rem; }
.rsvp-form label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .35rem; }
.rsvp-form input, .rsvp-form textarea, .rsvp-form select { width: 100%; padding: .65rem; border: 1px solid #eadfce; border-radius: 10px; margin-bottom: 1rem; font: inherit; }
.rsvp-form button { width: 100%; padding: .75rem; border: none; border-radius: 999px; background: var(--inv-primary); color: #fff; font-weight: 600; cursor: pointer; }

.rsvp-list { margin-top: 2rem; text-align: left; }
.rsvp-item { background: #fff; border: 1px solid #eadfce; border-radius: 12px; padding: 1rem; margin-bottom: .75rem; }
.rsvp-item strong { display: block; }

.gift-accounts { display: grid; gap: .75rem; margin-top: 1rem; }
.gift-account { background: #fff; border: 1px dashed var(--inv-primary); border-radius: 12px; padding: 1rem; cursor: pointer; }
.gift-account code { font-size: 1.1rem; letter-spacing: .05em; }

.maps-embed { border-radius: 16px; overflow: hidden; margin-top: 1rem; border: 1px solid #eadfce; }
.maps-embed iframe { width: 100%; height: 260px; border: 0; }

.maps-link-card {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 12px;
    border: 1px dashed color-mix(in srgb, var(--primary, #b8860b) 40%, #ccc);
    background: color-mix(in srgb, var(--primary, #b8860b) 6%, #fff);
    text-align: center;
    cursor: pointer;
}
.maps-link-icon { font-size: 1.5rem; display: block; margin-bottom: .35rem; }
.maps-link-text small { display: block; font-size: .75rem; opacity: .65; margin-bottom: .15rem; }
.maps-link-url { font-size: .85rem; word-break: break-all; color: var(--primary, #b8860b); }
.maps-link-actions { display: flex; gap: .5rem; justify-content: center; margin-top: .75rem; flex-wrap: wrap; }
.maps-copy-btn, .maps-open-btn {
    padding: .5rem 1rem;
    border-radius: 999px;
    font-size: .8rem;
    border: none;
    cursor: pointer;
    text-decoration: none;
}
.maps-copy-btn { background: var(--primary, #b8860b); color: #fff; }
.maps-open-btn { background: #fff; color: var(--primary, #b8860b); border: 1px solid var(--primary, #b8860b); }
.maps-copy-hint { font-size: .7rem; opacity: .55; margin-top: .5rem; }
.maps-link-card.copied .maps-copy-hint { color: #16a34a; opacity: 1; }

.music-btn {
    position: fixed; top: 1rem; right: 1rem; z-index: 60;
    width: 44px; height: 44px; border-radius: 50%; border: none;
    background: var(--inv-primary); color: #fff; cursor: pointer; font-size: 1.1rem;
}

@media (max-width: 600px) {
    .couple-grid { grid-template-columns: 1fr; }
    .couple-amp { display: none; }
}
