:root {
    --emerald-strong: #1b5b3f;
    --emerald-light: #237A55;
    --gold-accent: #D4AF37;
    --bg-paper: #FAF9F6;
}

/* --- ESTILOS BÁSICOS --- */
body,
html {
    height: 100%;
    margin: 0;
    font-family: 'Montserrat', sans-serif;
    background-color: #ffffff;
}

.font-montserrat {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
}

.emerald-text {
    color: var(--emerald-strong) !important;
}

.text-gold {
    color: var(--gold-accent) !important;
}

.no-scroll {
    overflow: hidden;
}

/* Ajustamos el sistema principal para que en PC se comporte como una tarjeta centrada */
#invitation-system {
    position: relative;
    width: 100%;
    min-height: 100vh;
    margin: 0 auto;
    background-color: #ffffff;
}

/* --- ESTILOS DE LA PRESENTACIÓN INICIAL (CORONA Y SOBRE) --- */
#envelope-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 20;
    transition: opacity 1s ease, visibility 1s ease;
    background: url('../assets/imagen3.png') center center no-repeat;
    background-size: cover;
    padding-top: 5vh;
}

.guest-greeting {
    width: 85%;
    max-width: 400px;
    margin: 0 auto;
    margin-top: 10vh;
    z-index: 25;
}

.guest-name {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 2rem;
    letter-spacing: 2px;
    margin-bottom: 0;
    text-transform: uppercase;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    line-height: 1.2;
}

.guest-message {
    font-size: 1rem;
    font-weight: bold;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.envelope {
    position: relative;
    width: 80%;
    max-width: 200px;
    /* Lo bajamos de 270px a 200px */
    margin: 20px auto 0;
}

.closed-envelope-img {
    width: 100%;
    height: auto;
    display: block;
}

.click-target {
    position: absolute;
    width: 30%;
    height: 30%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    cursor: pointer;
}

.fade-out {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none;
}

/* --- LA INVITACIÓN REVELADA --- */
#main-invitation {
    position: relative;
    width: 100%;
    z-index: 10;
}

.fade-in {
    animation: fadeInAnimation 1.5s ease-in forwards;
}

@keyframes fadeInAnimation {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* --- SECCIÓN 1: HERO PORTADA --- */
.hero-section {
    position: relative;
    width: 100%;
    min-height: 100vh;
    background-color: #ffffff;
    overflow: hidden;
}

.hero-full-img {
    width: 100%;
    height: auto;
    display: block;
}

/* Ajuste de DESLIZA al tope de abajo y sin sombra */
.scroll-down {
    position: absolute;
    bottom: 25px;
    /* Pegado al tope de abajo sobre el lienzo */
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-shadow: none;
    /* Sombra eliminada */
    width: 100%;
    z-index: 10;
    /* Aseguramos que esté por encima del lienzo */
}

.arrow-down {
    display: inline-block;
    font-size: 1.5rem;
    margin-top: 5px;
    animation: bounce 2s infinite;
}

@keyframes bounce {

    0%,
    20%,
    50%,
    80%,
    100% {
        transform: translateY(0);
    }

    40% {
        transform: translateY(-10px);
    }

    60% {
        transform: translateY(-5px);
    }
}

.canvas-bottom {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: auto;
    max-height: 150px;
    z-index: 3;
    pointer-events: none;
}

/* --- SECCIÓN 2: TEXTO ELEGANTE --- */
/* --- SECCIÓN 2: FRASE INSPIRADORA --- */
.quote-section {
    background-color: #F8F5F0;
    /* Fondo crema claro para distinguirla de las demás */
    position: relative;
    overflow: hidden;
    /* CRUCIAL: Mantiene las flores encerradas aquí */
    padding: 100px 20px;
    border-top: 2px solid #eaeaea;
    /* Línea separadora arriba */
    border-bottom: 2px solid #eaeaea;
    /* Línea separadora abajo */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Imágenes de las esquinas aisladas a esta sección */
.floral-corner {
    position: absolute;
    width: 160px;
    max-width: 45%;
    z-index: 1;
    pointer-events: none;
    /* Para que no interfieran con el scroll */
}

/* Esquina superior derecha (girada 180 grados) */
.top-right {
    top: -15px;
    right: -15px;
    transform: rotate(180deg);
}

/* Esquina inferior izquierda (posición original) */
.bottom-left {
    bottom: -15px;
    left: -15px;
}

/* Contenedor del texto */
.quote-container {
    z-index: 2;
    /* Mantiene el texto por encima de las decoraciones */
}

.elegant-text-primary {
    font-family: 'Playfair Display', serif;
    /* Cambiado a serif para mejor lectura */
    font-size: 1.25rem;
    /* Tamaño más cómodo */
    font-style: italic;
    /* Letra inclinada y elegante */
    line-height: 1.6;
    margin-bottom: 25px;
    max-width: 90%;
    /* Evita que el texto toque los bordes */
    margin-left: auto;
    margin-right: auto;
}

/* --- MEJORAS SECCIÓN 3 --- */
/* El conector "y" entre los padres y la familia */
.connector-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    font-weight: 700;
}

/* Reducimos ligeramente el tamaño de "Familia Ardón" para crear jerarquía visual */
.family-name {
    font-size: 2.2rem;
    /* Un poco más pequeño que el 2.8rem de los padres */
    margin-top: 0;
}

/* Firma de Nicole en Dorado */
.signature-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 0;
}

/* --- SECCIÓN 3: PADRES --- */
.parents-section {
    background-color: #ffffff;
    border-bottom: 1px solid #eaeaea;
}

.intro-text,
.invitation-text {
    font-size: 1rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #666 !important;
    line-height: 1.6;
}

.elegant-name {
    font-family: 'Great Vibes', cursive;
    font-size: 2.8rem;
    margin: 0;
    font-weight: normal;
    line-height: 1.2;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.05);
}

/* --- SECCIÓN 3: PADRES (MEJORADA) --- */
.parents-section {
    background-color: #ffffff;
    padding: 80px 20px;
}

.parents-names {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding: 20px 0;
}

/* Línea dorada antes y después de los nombres */
.parents-names::before,
.parents-names::after {
    content: "◆";
    /* Un pequeño rombo decorativo */
    color: var(--gold-accent);
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 250px;
    /* Ancho de la línea */
    height: 1px;
    /* Creamos la línea con un degradado que sale del rombo */
    background: linear-gradient(to right, transparent, var(--gold-accent) 20%, var(--gold-accent) 80%, transparent);
    margin: 20px 0;
}


/* --- RESPONSIVIDAD (PC) --- */
@media (min-width: 768px) {
    .guest-name {
        font-size: 2.5rem;
    }

    .elegant-text-primary {
        font-size: 1.5rem;
        max-width: 80%;
    }

    .family-name {
        font-size: 2.8rem;
    }

    .elegant-name {
        font-size: 3.5rem;
    }

    .scroll-down {
        font-size: 1rem;
        bottom: 35px;
    }

    .intro-text,
    .invitation-text {
        font-size: 1.2rem;
    }

    .canvas-bottom {
        object-fit: fill;
        height: 120px;
    }

    /* Ajustes Sección 2 para PC */
    .quote-section {
        padding: 140px 40px;
    }

    .floral-corner {
        width: 220px;
    }

    .signature-text {
        font-size: 1.4rem;
    }

    .parents-names::before,
    .parents-names::after {
        max-width: 350px;
        margin: 25px 0;
    }

    .elegant-name {
        font-size: 3.5rem;
    }

    .section-icon {
        font-size: 2.8rem;

        /* Ajustes Sección 4 (Fecha y Lugar) para PC */
        .date-time-section {
            padding: 130px 40px;
        }

        .date-text {
            font-size: 2.5rem;
        }

        .time-text {
            font-size: 5.5rem;
        }

        .location-text {
            font-size: 1.5rem;
        }
    }
}

/* --- SECCIÓN 4: FECHA Y LUGAR --- */
.date-time-section {
    position: relative;
    padding: 100px 20px;
    /* El linear-gradient crea la "opacidad" blanca sobre la imagen10.jpg */
    background: linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.75)), url('../assets/imagen10.png') center center no-repeat;
    background-size: cover;
    border-bottom: 2px solid #eaeaea;
    display: flex;
    align-items: center;
    justify-content: center;
}

.date-text {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 700;
    /* Sombra blanca para despegarlo aún más del fondo floral */
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
}

.time-text {
    font-family: 'Great Vibes', cursive;
    font-size: 4.5rem;
    line-height: 1;
    margin-top: 10px;
    text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.8);
}

.location-text {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    letter-spacing: 4px;
    color: #333;
    /* Un gris muy oscuro para máximo contraste */
    text-transform: uppercase;
    margin-top: 20px;
}

/* --- ESTILOS PARA ICONOS DE SECCIÓN --- */
.icon-wrapper {
    margin-bottom: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.section-icon {
    font-size: 2.2rem;
    /* Tamaño elegante */
    /* Sombra suave para que resalten sobre el fondo floral */
    filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.2));
}

/* Ajuste de márgenes para separar los bloques de datos */
.date-text {
    margin-bottom: 40px !important;
}

.time-text {
    margin-bottom: 40px !important;
}

@media (min-width: 992px) {
    body {
        background-color: #f0f0f0;
        background-image: linear-gradient(135deg, #e9ecef 25%, transparent 25%),
            linear-gradient(225deg, #e9ecef 25%, transparent 25%);
        background-size: 20px 20px;
    }

    #invitation-system {
        max-width: 600px;
        box-shadow: 0 0 50px rgba(0, 0, 0, 0.15);
        border-left: 1px solid #ddd;
        border-right: 1px solid #ddd;
    }

}

/* --- SECCIÓN 5: RESERVACIÓN Y CONFIRMACIÓN --- */
.reservation-section {
    background-color: #F8F5F0; /* Fondo crema (como la sección 2) */
    position: relative;
    overflow: hidden; 
    padding: 100px 20px; 
    border-bottom: 2px solid #eaeaea; 
    display: flex;
    align-items: center;
    justify-content: center;
}

.reservation-container {
    z-index: 2;
    background: rgba(255, 255, 255, 0.6); /* Un sutil fondo blanco para que resalte más el texto */
    padding: 30px 20px;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

/* Esquina Superior Izquierda (Volteada verticalmente) */
.top-left {
    top: -15px;
    left: -15px;
    transform: scaleY(-1); 
}

/* Esquina Inferior Derecha (Volteada horizontalmente) */
.bottom-right {
    bottom: -15px;
    right: -15px;
    transform: scaleX(-1);
}

.reservation-intro {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    font-style: italic;
}

.reservation-name {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    letter-spacing: 2px;
    font-size: 1.4rem;
}

.reservation-passes {
    font-size: 1.1rem;
    font-family: 'Montserrat', sans-serif;
}

/* El círculo dorado para el número de reservaciones */
.badge-passes {
    background-color: var(--gold-accent);
    color: white;
    padding: 3px 12px;
    border-radius: 50px;
    font-weight: bold;
    font-size: 1.3rem;
    margin: 0 5px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

/* El Botón de confirmación */
.btn-confirm {
    background-color: var(--emerald-strong);
    color: white;
    padding: 12px 30px;
    border-radius: 30px;
    font-weight: 700;
    letter-spacing: 1px;
    transition: all 0.3s ease;
    border: 2px solid var(--emerald-strong);
}

.btn-confirm:hover {
    background-color: var(--bg-paper);
    color: var(--emerald-strong);
}

/* Ajustes para pantallas grandes (PC) */
@media (min-width: 768px) {
    .reservation-section { padding: 130px 40px; }
    .reservation-container { padding: 50px 40px; }
    .reservation-name { font-size: 1.8rem; }
    .badge-passes { font-size: 1.5rem; }
    .btn-confirm { font-size: 1.1rem; }
}

/* --- BOTÓN FLOTANTE DE AUDIO --- */
.audio-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-color: var(--gold-accent);
    color: white;
    border: none;
    z-index: 100; /* Siempre por encima de todo */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    opacity: 0; /* Oculto al principio */
    visibility: hidden;
    transition: all 0.5s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

/* Esta clase se agregará con JavaScript al abrir el sobre */
.audio-btn.show-audio {
    opacity: 1;
    visibility: visible;
}

/* Estilo cuando la música está pausada */
.audio-btn.muted {
    background-color: #999; /* Se vuelve gris */
}

/* Evitar que choque con el botón de confirmación en celulares */
@media (max-width: 767px) {
    .audio-btn {
        bottom: 15px;
        right: 15px;
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* --- SECCIÓN 6: REGALOS --- */
.gifts-section {
    background-color: #ffffff; /* Fondo blanco para que las flores resalten */
    position: relative;
    overflow: hidden;
    padding: 120px 20px;
    border-bottom: 1px solid #eee;
}

.gift-text {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    font-style: italic;
    line-height: 1.6;
}

.btn-waiting {
    display: inline-block;
    padding: 10px 20px;
    border: 1px solid var(--gold-accent);
    color: var(--gold-accent);
    font-weight: 700;
    letter-spacing: 2px;
    border-radius: 5px;
    font-size: 0.9rem;
}

/* --- SECCIÓN 7: CONTADOR --- */
.countdown-section {
    background-color: var(--emerald-strong);
    color: white;
}

.time-block {
    background: rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 10px;
    min-width: 75px;
    border: 1px solid var(--gold-accent);
}

.time-block span {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    color: var(--gold-accent);
}

.time-block small {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 1px;
}

/* --- SECCIÓN 8: BOTÓN UBICACIÓN --- */
.btn-location {
    background-color: #ffffff;
    color: var(--emerald-strong);
    border: 2px solid var(--emerald-strong);
    padding: 15px 35px;
    border-radius: 50px;
    font-weight: 700;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}

.btn-location:hover {
    background-color: var(--emerald-strong);
    color: white;
}