/* Reset y Estilos Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    background-color: #faf8f5;
    background-image: url('assets/bg2.png');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
}

body {
    font-family: 'Montserrat', sans-serif;
    color: #333333;
    background-color: transparent;
    overflow-x: hidden;
}

html.no-scroll, body.no-scroll {
    overflow: hidden !important;
    height: 100vh !important;
    position: fixed;
    width: 100%;
}

/* Tarjetas (Slides) de Pantalla Completa */
body > div {
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: visible;
    padding: 20px;
    background: transparent;
}

/* Asegurar que el contenido siempre quede por encima de las flores decorativas */
.content, 
.content_bg, 
.photo_card, 
.date_card, 
.location_card, 
.dress_card, 
.gift_card, 
.eighth_content,
.wedding_message, 
.wedding_message_golden, 
.wedding_pareja, 
.rsvp_deadline, 
.rsvp_button {
    position: relative;
    z-index: 3;
}


/* Tipografía de Boda Premium */
.wedding_message, .wedding_message_golden {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 4px;
    text-align: center;
    color: #b5986c;
    margin-block: 10px;
}

.wedding_message_golden {
    color: #8c7355;
    font-weight: 600;
    font-size: 1.6rem;
    letter-spacing: 3px;
}

.wedding_pareja {
    font-family: 'Great Vibes', cursive;
    font-size: clamp(2.4rem, 9.5vw, 3.8rem);
    white-space: nowrap;
    text-align: center;
    color: #8c7355;
    margin-top: 15px;
    margin-bottom: 20px;
    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.8);
}

/* Párrafos y Versos */
.eighth_content p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.5rem;
    line-height: 1.5;
    text-align: center;
    color: #5d5446;
    font-style: italic;
    
    /* Barrido horizontal de texto (clip-path) */
    clip-path: inset(0 100% 0 0);
    transition: clip-path 2.2s cubic-bezier(0.4, 0, 0.2, 1);
    transition-delay: 0.6s; /* Espera a que inicien las flores */
}

body > div.active .eighth_content p {
    clip-path: inset(0 0 0 0);
}

.content_bg p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.55rem;
    line-height: 1.7;
    text-align: center;
    color: #3d352c;
    font-style: normal;
}

/* Primera sección: Texto del Verso con animación de barrido */
.content p {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.6rem;
    line-height: 1.6;
    text-align: center;
    color: #3d352c;
    font-style: normal;
    
    /* Barrido horizontal (clip-path reveal) */
    clip-path: inset(0 100% 0 0);
}

.home.active .content p {
    animation: barridoReveal 2.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    animation-delay: 0.8s; /* Espera a que las flores inicien su entrada */
}

.content p span {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 2.1rem;
    color: #8c7355;
    display: block;
    margin-top: 25px;
    text-align: center;
    text-transform: none;
    letter-spacing: 0;
    
    /* Aparición suave posterior al barrido */
    opacity: 0;
}

.home.active .content p span {
    animation: fadeInAuthor 1.2s ease-out forwards;
    animation-delay: 2.8s;
}

@keyframes barridoReveal {
    from {
        clip-path: inset(0 100% 0 0);
    }
    to {
        clip-path: inset(0 0 0 0);
    }
}

@keyframes fadeInAuthor {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Contenedores de Tarjetas Específicas */

/* Card 1: Portada (Texto flotando directamente sobre el fondo) */
.content {
    width: 85vw;
    max-width: 460px;
    padding: 20px;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* Card 2: Invitación con arco */
.content_bg {
    width: 85vw;
    max-width: 380px;
    padding: 50px 30px 35px 30px;
    background: rgba(255, 255, 255, 0.95); /* Fondo ligeramente más opaco para cubrir mejor */
    border-radius: 180px 180px 0 0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(181, 152, 108, 0.2);
    border-bottom: none;
    position: relative;
    z-index: 3; /* Coloca el arco y el texto por encima de las flores */
}


/* Card 3 y 9: Fotos enmarcadas */
.photo_card {
    width: 70vw;
    max-width: 260px;
    aspect-ratio: 4 / 5;
    position: relative;
    margin-bottom: 20px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

img.people {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

img.marco {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

/* Rediseño de la cuarta tarjeta (fecha en pantalla completa con foto) */
.fourth_card {
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: 100vh;
    position: relative;
    overflow: visible;
}

.date_photo_container {
    width: 100%;
    height: 48vh;
    overflow: hidden;
    position: relative;
    z-index: 2;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 15%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 15%);
}

.date_photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
}

.date_arch_card {
    width: 100%;
    height: 52vh;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 120px 120px 0 0;
    margin-top: -60px;
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 35px 25px 45px 25px;
    box-shadow: 0 -8px 25px rgba(0, 0, 0, 0.06);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(181, 152, 108, 0.15);
    border-bottom: none;
    -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}

/* Nueva distribución de fecha estilo corazón */
.date_new_layout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-block: 15px;
    width: 100%;
    position: relative;
    z-index: 4;
}

.date_time, .date_year {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.15rem;
    font-weight: 500;
    color: #8c7355;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: 1px solid rgba(181, 152, 108, 0.4);
    padding-bottom: 5px;
    min-width: 80px;
    text-align: center;
}

.date_heart_container {
    position: relative;
    width: 105px;
    height: 95px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.heart_svg {
    width: 100%;
    height: 100%;
}

.heart_text {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}

.heart_day {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: #8c7355;
    line-height: 1;
}

.heart_month {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    color: #8c7355;
    letter-spacing: 1.5px;
    margin-top: 1px;
}

/* Flores de Card 4 superpuestas */
.fourth_card .flowers_top {
    z-index: 4;
}
.fourth_card .flowers_bottom {
    z-index: 1;
}

/* Card 4, 5, 6 y 7: Bloques Informativos */
.date_card, .location_card, .dress_card, .gift_card {
    width: 85vw;
    max-width: 380px;
    padding: 35px 25px;
    background: rgba(255, 255, 255, 0.88);
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(181, 152, 108, 0.2);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.date_content {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
}

.date_content p {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    font-weight: 300;
    color: #5d5446;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.date_content p:nth-child(2) {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    font-weight: 600;
    color: #b5986c;
    border-left: 1px solid rgba(181, 152, 108, 0.4);
    border-right: 1px solid rgba(181, 152, 108, 0.4);
    padding-inline: 15px;
    line-height: 1;
}

.location_text {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.3rem;
    color: #5d5446;
    line-height: 1.4;
    text-align: center;
}

.location_card .material-symbols-outlined {
    font-size: 2.8rem;
    color: #b5986c;
}

.map {
    width: 100%;
    max-width: 280px;
    border-radius: 8px;
    margin-top: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dress, .gift {
    width: 60px;
    height: auto;
    margin-bottom: 5px;
}

/* Card 8: Texto final */
.eighth_content {
    width: 85vw;
    max-width: 460px;
    padding: 35px 25px;
    background: rgba(255, 255, 255, 0.75);
    border-radius: 15px;
    border: 1px solid rgba(181, 152, 108, 0.15);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

/* --- 🌟 ELEMENTOS INTERACTIVOS ADICIONALES 🌟 --- */

/* 1. Reproductor de Música Flotante */
.music_btn {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: rgba(250, 248, 245, 0.9);
    border: 2px solid #b5986c;
    color: #8c7355;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    z-index: 1000;
    transition: all 0.3s ease;
}

.music_btn .material-symbols-outlined {
    font-size: 24px;
}

.music_btn:hover {
    transform: scale(1.1);
    background-color: #b5986c;
    color: white;
}

/* Animación de pulso cuando se está reproduciendo música */
.music_btn.playing {
    animation: musicPulse 2s infinite ease-in-out;
    background-color: #8c7355;
    color: white;
    border-color: #8c7355;
}

@keyframes musicPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(140, 115, 85, 0.5);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(140, 115, 85, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(140, 115, 85, 0);
    }
}

/* 2. Cuenta Regresiva */
.countdown {
    display: flex;
    gap: 15px;
    justify-content: center;
    width: 100%;
    margin-top: 15px;
}

.time-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(140, 115, 85, 0.08);
    border: 1px solid rgba(181, 152, 108, 0.15);
    border-radius: 8px;
    padding: 10px;
    min-width: 65px;
    box-shadow: inset 0 1px 3px rgba(0,0,0,0.02);
}

.time-block span {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: #8c7355;
    line-height: 1;
}

.time-block p {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #5d5446;
    margin-top: 5px;
    font-style: normal;
    font-weight: 400;
}

/* 3. Botón RSVP (Confirmación de Asistencia) y Fecha Límite */
.rsvp_deadline {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    color: #8c7355;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 15px;
    margin-bottom: 2px;
    text-align: center;
}

.rsvp_button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, #b5986c 0%, #8c7355 100%);
    color: white;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 12px 25px;
    border-radius: 30px;
    box-shadow: 0 4px 15px rgba(140, 115, 85, 0.3);
    margin-top: 10px;
    transition: all 0.3s ease;
    border: none;
    z-index: 10;
}

.rsvp_button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(140, 115, 85, 0.45);
    background: linear-gradient(135deg, #c2a67a 0%, #9e8363 100%);
}

.rsvp_button:active {
    transform: translateY(0);
}

.rsvp_button .material-symbols-outlined {
    font-size: 18px;
}

/* 4. Botón de Google Maps */
.map_button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background-color: #b5986c;
    color: white;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 8px 16px;
    border-radius: 20px;
    margin-top: 12px;
    box-shadow: 0 2px 8px rgba(181, 152, 108, 0.25);
    transition: all 0.3s ease;
}

.map_button:hover {
    background-color: #8c7355;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(140, 115, 85, 0.4);
}

.map_button .material-symbols-outlined {
    font-size: 14px;
}

/* Nuevo contenedor de dos botones de mapa en la quinta tarjeta */
.map_accent {
    width: 100%;
    max-width: 280px;
    height: 140px;
    object-fit: cover;
    border-radius: 8px;
    margin-top: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.map_buttons_container {
    display: flex;
    gap: 10px;
    justify-content: center;
    width: 100%;
    max-width: 280px;
    margin-top: 12px;
}

.map_button_link {
    text-decoration: none;
    flex: 1;
}

.map_buttons_container .map_button {
    width: 100%;
    margin-top: 0;
    justify-content: center;
    padding: 10px 8px;
    font-size: 0.7rem;
    letter-spacing: 1px;
}

/* 5. Flores Animadas de la Portada */
.flowers_top {
    position: absolute;
    top: -25px;
    right: -25px;
    width: 80vw;
    max-width: 480px;
    transform-origin: top right;
    z-index: 1;
    pointer-events: none;
    
    /* Estado inicial: fuera de pantalla */
    transform: translate(30%, -30%);
    opacity: 0;
    transition: transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.flowers_bottom {
    position: absolute;
    bottom: -25px;
    left: -25px;
    width: 80vw;
    max-width: 480px;
    transform-origin: bottom left;
    z-index: 1;
    pointer-events: none;
    
    /* Estado inicial: fuera de pantalla */
    transform: translate(-30%, 30%);
    opacity: 0;
    transition: transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.5s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Animación de entrada al activarse la sección en scroll */
.flowers_top.active {
    transform: translate(0, 0);
    opacity: 1;
}

.flowers_bottom.active {
    transform: translate(0, 0);
    opacity: 1;
}

/* Rediseño de la novena tarjeta (sección final con foto a pantalla completa y papel rasgado) */
.ninth_card {
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: 120vh;
    position: relative;
    overflow: visible;
}

.final_photo_container {
    width: 100%;
    height: auto;
    margin-top: 4vh;
    overflow: visible;
    position: relative;
    z-index: 2;
}

.final_photo {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

.final_content_card {
    width: 100%;
    height: 72vh;
    background: rgba(255, 255, 255, 0.95);
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 35px 25px 140px 25px;
    box-shadow: 0 -8px 25px rgba(0, 0, 0, 0.06);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(181, 152, 108, 0.15);
    border-bottom: none;
    -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
    mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}

/* Flores de Card 9 superpuestas */
.ninth_card .flowers_top,
.ninth_card .flowers_bottom {
    z-index: 4;
}

/* --- ✉️ SOBRE / PORTADA DE APERTURA (OVERLAY) ✉️ --- */
.envelope_overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #4a3b2b; /* Fondo bronce/marrón oscuro que da contraste, como en la imagen */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000;
    touch-action: none; /* Bloquea cualquier scroll táctil iniciado sobre la portada */
    transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1), opacity 1.2s ease-in-out;
}

.envelope_overlay.opened {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}

/* Envoltura de la tarjeta */
.card_cover_wrapper {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}

/* Tarjeta Rústica de Portada (Pantalla Completa) */
.card_cover {
    position: relative;
    width: 100%;
    height: 100%;
    background-color: #faf8f5;
    background-image: url('assets/bg2.png');
    background-size: cover;
    background-position: center;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 6vh 20px 8vh 20px;
    gap: 4vh;
    overflow: hidden;
}

/* Marco interior fino */
.card_cover_inner_frame {
    position: absolute;
    top: 20px;
    left: 20px;
    right: 20px;
    bottom: 20px;
    border: 1px solid rgba(140, 115, 85, 0.25);
    pointer-events: none;
    z-index: 1;
}

/* Contenedor de la foto con papel rasgado */
.cover_photo_container {
    position: relative;
    width: 82%;
    max-width: 280px;
    aspect-ratio: 1 / 1.15;
    margin-top: 10px;
    z-index: 2;
}

/* Fondo blanco rasgado */
.cover_photo_paper_back {
    position: absolute;
    top: -5px;
    left: -5px;
    width: calc(100% + 10px);
    height: calc(100% + 10px);
    background-color: #ffffff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    clip-path: url(#paper-torn-clip);
}

/* Foto real rasgada */
.cover_photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    clip-path: url(#photo-torn-clip);
}

/* Flores secas superpuestas */
.cover_photo_flowers {
    position: absolute;
    bottom: -18px;
    left: -22px;
    width: 80px;
    height: auto;
    transform: rotate(-15deg);
    z-index: 3;
    filter: drop-shadow(0 3px 6px rgba(0,0,0,0.15));
}

/* Contenedor del contenido (nombres y fecha) */
.cover_content {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 1vh;
    margin-bottom: 0;
    z-index: 2;
}

.cover_names_title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.9rem;
    font-weight: 600;
    color: #5d4631;
    letter-spacing: 3px;
    line-height: 1.15;
    text-align: center;
}

/* Separador "— y —" */
.cover_separator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    margin-block: 3px;
}

.cover_line {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
    color: rgba(140, 115, 85, 0.4);
    letter-spacing: 0;
}

.cover_y {
    font-family: 'Great Vibes', cursive;
    font-size: 2.1rem;
    color: #8c7355;
    line-height: 1;
}

.cover_subtitle {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    font-weight: 500;
    color: #8c7355;
    letter-spacing: 4px;
    margin-top: 14px;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.cover_date {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.55rem;
    font-weight: 500;
    font-style: italic;
    color: #8c7355;
}

/* Sello de cera interactivo en la esquina inferior derecha */
.wax_seal_btn {
    position: absolute;
    bottom: 35px;
    right: 35px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 10;
    transition: transform 0.3s ease;
}

.wax_seal_btn:hover {
    transform: scale(1.06);
}

.wax_seal {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #f2d2a4 0%, #d4af37 40%, #b5986c 70%, #8c7355 100%);
    box-shadow: 0 5px 12px rgba(0, 0, 0, 0.25), inset 0 1px 2px rgba(255, 255, 255, 0.45);
    display: flex;
    justify-content: center;
    align-items: center;
    border: 2px solid rgba(255, 255, 255, 0.2);
    position: relative;
    animation: sealPulse 2s infinite ease-in-out;
}

.seal_monogram {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.2rem;
    font-weight: bold;
    color: #ffffff;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25);
    letter-spacing: 0.5px;
}

.seal_label {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.55rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #8c7355;
    background-color: rgba(255, 255, 255, 0.88);
    padding: 5px 10px;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(181, 152, 108, 0.15);
}

@keyframes sealPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(181, 152, 108, 0.6), 0 5px 12px rgba(0, 0, 0, 0.25);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(181, 152, 108, 0), 0 5px 12px rgba(0, 0, 0, 0.25);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(181, 152, 108, 0), 0 5px 12px rgba(0, 0, 0, 0.25);
    }
}

/* Responsividad para Escritorio (Formato Móvil Centrado) */
@media (min-width: 481px) {
    body {
        max-width: 480px;
        margin: 0 auto;
        min-height: 100vh;
        box-shadow: 0 0 55px rgba(0, 0, 0, 0.15);
        position: relative;
        background-image: url('assets/bg2.png');
        background-size: cover;
        background-position: center;
        background-attachment: fixed;
    }
    .music_btn {
        right: calc(50vw - 220px);
    }
    .envelope_overlay {
        max-width: 480px;
        left: 50%;
        transform: translateX(-50%);
    }
    .envelope_overlay.opened {
        transform: translate(-50%, -100%);
    }
}

/* --- 📝 ESTILOS DEL FORMULARIO RSVP Y SALUDO PERSONALIZADO --- */
.rsvp_form_label {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #8c7355;
    margin-bottom: 4px;
    display: block;
}

.rsvp_form_input, .rsvp_form_select {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid rgba(181, 152, 108, 0.35);
    background-color: rgba(255, 255, 255, 0.9);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.8rem;
    color: #3d352c;
    transition: all 0.3s ease;
}

.rsvp_form_input:focus, .rsvp_form_select:focus {
    outline: none;
    border-color: #8c7355;
    background-color: #ffffff;
    box-shadow: 0 0 8px rgba(140, 115, 85, 0.1);
}

.cover_personal_greeting {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    color: #8c7355;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 4px;
    text-align: center;
}

.cover_guest_name {
    font-family: 'Great Vibes', cursive;
    font-size: 2.2rem;
    color: #5d4631;
    line-height: 1;
    margin-bottom: 12px;
    text-align: center;
    text-shadow: 1px 1px 0 rgba(255,255,255,0.8);
}

/* --- 🌟 MODAL DE CONFIRMACIÓN RSVP (ESTILOS COMPLEMENTARIOS) 🌟 --- */
.rsvp_modal_overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(74, 59, 43, 0.45); /* Bronce cálido translúcido */
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    padding: 20px;
}

@media (min-width: 481px) {
    .rsvp_modal_overlay {
        max-width: 480px;
        left: 50%;
        transform: translateX(-50%);
    }
}

.rsvp_modal_overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.rsvp_modal {
    position: relative;
    background-color: rgba(250, 248, 245, 0.98);
    background-image: url('assets/bg2.png');
    background-size: cover;
    background-position: center;
    width: 100%;
    max-width: 360px;
    padding: 35px 25px 25px 25px;
    border-radius: 16px;
    box-shadow: 0 12px 35px rgba(74, 59, 43, 0.25);
    border: 1px solid rgba(181, 152, 108, 0.35);
    display: flex;
    flex-direction: column;
    align-items: center;
    transform: scale(0.9);
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.rsvp_modal_overlay.active .rsvp_modal {
    transform: scale(1);
}

.rsvp_modal_close {
    position: absolute;
    top: 10px;
    right: 14px;
    background: none;
    border: none;
    font-size: 1.8rem;
    color: #8c7355;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s ease, transform 0.2s ease;
}

.rsvp_modal_close:hover {
    color: #b5986c;
    transform: scale(1.1);
}

.rsvp_form_group {
    text-align: left;
    width: 100%;
    margin-bottom: 12px;
}