@font-face {
    font-family: 'MalibuRing';
    src: url('img/malibu-ring.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'CormorantGaramond-SemiBold';
    src: url('img/CormorantGaramond-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: 'CormorantGaramond-Regular';
    src: url('img/CormorantGaramond-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #f4e9dc;
    color: #2c3528;
    font-family: 'CormorantGaramond-Regular', serif;
    overflow-x: hidden;
}

.oculto {
    display: none !important;
}

/* CANVAS DE PÉTALOS */
#petalsCanvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 9998;
}

/* INTRO SOBRE - CLASE MAESTRA PARA QUE FUNCIONE EN IPHONE Y ANDROID */
#contenedor-principal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh; /* Usamos 100vh para estabilidad máxima en navegadores móviles */
    height: 100dvh;
    z-index: 9999;
    background-color: #2c3528;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent; /* Quita el recuadro gris al tocar en iPhone */
}

#videoSobre {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Se ajusta prolijamente sin deformarse de más */
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none; /* Evita que el video bloquee el clic del usuario */
}

#capa-boton {
    position: absolute;
    bottom: 60px; /* Posición ideal para que no lo tape la barra del celu */
    width: 100%;
    text-align: center;
    z-index: 10000;
    pointer-events: none; /* Permite que el toque atraviese la capa y active el contenedor */
}

.boton-rosa-inicio {
    display: inline-block;
    background-color: #bdbda7;
    color: #2c3528;
    padding: 14px 28px;
    border-radius: 30px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 2px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    border: 1px solid rgba(212, 175, 55, 0.6);
    animation: pulsoBtn 2s infinite;
    pointer-events: auto; /* Hace que el botón sea interactivo al tacto */
}

@keyframes pulsoBtn {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(189, 189, 167, 0.4); }
    70% { transform: scale(1.03); box-shadow: 0 0 0 10px rgba(189, 189, 167, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(189, 189, 167, 0); }
}

/* FONDOS Y BLOQUES */
.bloque-papel-textura {
    background-color: #f4e9dc;
    color: #2c3528;
}

.bloque-verde-oliva-solido {
    background-color: #bdbda7;
    color: #2c3528;
}

.section-pad {
    padding: 75px 20px;
    max-width: 580px;
    margin: 0 auto;
}

.section-pad-spacious {
    padding: 85px 20px;
    max-width: 580px;
    margin: 0 auto;
}

.text-center { text-align: center; }

/* ANIMACIÓN SCROLL (FADE-IN) */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease, transform 1s ease;
}

.reveal-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* PORTADA PRINCIPAL */
.hero-portada {
    width: 100%;
    height: 100dvh;
    position: relative;
    background-color: #f4e9dc;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    animation: fadeInPortada 1.2s ease;
}

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

.portada-bg-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.portada-img-ajustada {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (min-aspect-ratio: 9/16) {
    .portada-img-ajustada {
        width: auto;
        height: 100dvh;
        max-width: 100vw;
        object-fit: contain;
    }
}

/* ICONO DE CRUZ PARA PADRES */
.gold-seal-icon {
    font-size: 16px;
    color: #d4af37;
    margin-bottom: 8px;
    opacity: 0.85;
}

/* TÍTULOS */
.editorial-heading {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 26px;
    letter-spacing: 3px;
    color: #2c3528;
    margin-bottom: 8px;
    text-shadow: 0 1px 2px rgba(212, 175, 55, 0.2);
}

.editorial-heading-light {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 26px;
    letter-spacing: 3px;
    color: #2c3528;
    margin-bottom: 8px;
}

.title-sub-cursive {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 18px;
    color: #556b4f;
}

.title-sub-cursive-light {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 18px;
    color: #3b4736;
}

/* SAVE THE DATE & RASPADITA */
.section-sub-label {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 12px;
    color: #666;
    letter-spacing: 1px;
    margin-top: 5px;
}

.scratch-circles-wrapper {
    display: flex;
    justify-content: center;
    gap: 15px;
}

.scratch-card-container {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background-color: #ffffff;
    border: 2px solid #d4af37;
    position: relative;
    box-shadow: 0 6px 15px rgba(212, 175, 55, 0.2);
    overflow: hidden;
    cursor: pointer;
}

.scratch-under-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.scratch-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    z-index: 2;
    touch-action: none;
    cursor: crosshair;
}

.circle-number {
    display: block;
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 22px;
    color: #2c3528;
}

.circle-label {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 9px;
    letter-spacing: 1.5px;
    color: #555;
}

/* NOMBRES ESTILO CORMORANT */
.novios-full-name-box {
    text-align: center;
    max-width: 400px;
    margin: 20px auto 0 auto;
}

.full-names-line-1, .full-names-line-2 {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 24px;
    letter-spacing: 4px;
    color: #2c3528;
    line-height: 1.2;
}

.full-names-amp {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 22px;
    color: #556b4f;
    margin: 4px 0;
}

.desplegable-oculto {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(20px);
    transition: max-height 0.8s ease, opacity 0.8s ease, transform 0.8s ease;
}

.desplegable-oculto.activo {
    max-height: 200px;
    opacity: 1;
    transform: translateY(0);
}

/* CONTADORES REGRESIVOS */
.countdown-card {
    background: rgba(255, 255, 255, 0.92);
    padding: 22px 15px;
    border-radius: 16px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
    max-width: 480px;
    margin: 0 auto;
}

.countdown-boxes {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.cd-box {
    background-color: #bdbda7;
    border: 1px solid #d4af37;
    border-radius: 10px;
    padding: 8px 6px;
    min-width: 60px;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.cd-box span {
    display: block;
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 20px;
    color: #2c3528;
    line-height: 1.1;
}

.cd-box p {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 8px;
    letter-spacing: 1px;
    color: #3b4736;
    margin-top: 3px;
    text-transform: uppercase;
}

.cd-sep {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 18px;
    color: #d4af37;
    font-weight: bold;
}

/* TARJETA BLANCA MENSAJE Y PADRES */
.invitarte-card-blanca {
    background: #ffffff;
    padding: 40px 22px;
    border-radius: 16px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    text-align: center;
    box-shadow: 0 12px 35px rgba(0,0,0,0.06);
}

.biblical-verse-quote-dark {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 17px;
    color: #556b4f;
    line-height: 1.5;
}

.verse-ref-dark {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 1px;
    color: #777;
    font-style: normal;
}

.invite-quote-dark {
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 17px;
    line-height: 1.6;
    color: #333333;
}

.minimal-divider-grande-gold {
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #d4af37, transparent);
    margin: 22px auto;
}

.blessing-text-dark {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 10px;
    letter-spacing: 2px;
    color: #666;
    text-transform: uppercase;
}

/* SECCIÓN DE PADRES MEJORADA */
.parents-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 15px;
}

.parent-col { 
    flex: 1; 
    padding: 0 2px; 
}

.parent-names-dark {
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 13.5px; /* Tamaño exacto para que entre en una sola línea fluida */
    color: #333333;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap; /* Evita que las palabras bajen de línea solas */
}

.cruz-simbolo {
    color: #d4af37;
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-weight: bold;
    margin-left: 2px;
}

.parents-divider-gold {
    width: 1px;
    height: 95px;
    background-color: #d4af37;
    margin: 0 4px;
}
.mt-8 { margin-top: 8px; }

/* UBICACIONES */
.venue-card-sofi-clean {
    background: rgba(255, 255, 255, 0.6);
    padding: 35px 20px;
    border-radius: 16px;
    border: 1px dashed rgba(212, 175, 55, 0.6);
    text-align: center;
}

.venue-icon-circle {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #556b4f;
    color: #f4e9dc;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    margin: 0 auto 15px auto;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.venue-title {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 19px;
    letter-spacing: 2px;
    color: #2c3528;
    margin-bottom: 6px;
}

.venue-time {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 12px;
    color: #556b4f;
    margin-bottom: 8px;
    letter-spacing: 1px;
}

.venue-desc {
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 16px;
    color: #444;
}

.venue-dir {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 11px;
    color: #777;
    margin-top: 4px;
    letter-spacing: 0.5px;
}

.venue-btn-center {
    display: flex;
    justify-content: center;
}

.btn-map-sofi {
    background: #ffffff;
    border: 1px solid #2c3528;
    color: #2c3528;
    padding: 11px 28px;
    border-radius: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    transition: all 0.3s;
}

/* CRONOGRAMA */
.program-timeline-icons {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 450px;
    margin: 0 auto;
}

.program-card {
    background: rgba(255, 255, 255, 0.45);
    padding: 16px 20px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px solid rgba(255, 255, 255, 0.7);
}

.icon-circle {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #2c3528;
    color: #f4e9dc;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
}

.program-info { text-align: left; }

.p-time {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 1.5px;
    color: #444;
}

.p-title {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 18px;
    color: #2c3528;
}

/* DRESS CODE Y REGALOS */
.dress-icon-head {
    font-size: 24px;
    color: #556b4f;
    margin-bottom: 5px;
}

.dress-code-subtitle {
    font-family: 'CormorantGaramond-SemiBold', serif;
    font-size: 18px;
    letter-spacing: 3px;
    color: #2c3528;
}

.notice-box-green {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(212, 175, 55, 0.4);
    padding: 15px;
    border-radius: 10px;
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 15px;
    color: #444;
    max-width: 450px;
    margin: 0 auto;
}

.gift-envelope-card {
    background: rgba(255, 255, 255, 0.92);
    padding: 35px 25px;
    border-radius: 14px;
    border: 1px solid rgba(212, 175, 55, 0.4);
    text-align: center;
    box-shadow: 0 8px 25px rgba(0,0,0,0.04);
    max-width: 580px;
    margin: 0 auto;
}

.envelope-seal-wrap {
    font-size: 28px;
    color: #556b4f;
    margin-bottom: 12px;
}

.gift-text {
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 16px;
    color: #555;
    line-height: 1.6;
}

.bank-details-box {
    background: #fdfbf7;
    padding: 15px;
    border-radius: 8px;
    border: 1px dashed #d4af37;
    font-family: 'CormorantGaramond-Regular', serif;
    font-size: 16px;
    color: #333;
    line-height: 1.5;
}

/* ASISTENCIA */
.bloque-verde-oliva-cierre {
    background-color: #bdbda7;
    color: #2c3528;
}

.rsvp-deadline-salvia {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 13px;
    letter-spacing: 1px;
    color: #2c3528;
}

/* CIERRE FINAL (CON MALIBU RING) */
.closing-sofi-crema-container {
    padding: 10px 10px;
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
}

.closing-crema-verse-new {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 18px;
    color: #556b4f;
    line-height: 1.7;
    margin-bottom: 30px;
}

.closing-center-box {
    padding: 20px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.closing-crema-divider-top {
    width: 60px;
    height: 1px;
    background-color: #d4af37;
    margin-bottom: 18px;
}

.closing-crema-con-carino {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 11px;
    letter-spacing: 4px;
    color: #556b4f;
    margin-bottom: 10px;
}

.closing-crema-couple-names {
    font-family: 'MalibuRing', cursive;
    font-size: 46px;
    color: #2c3528;
    font-weight: normal;
    line-height: 1.3;
    margin-bottom: 10px;
}

.closing-amp {
    font-family: 'CormorantGaramond-Regular', serif;
    font-style: italic;
    font-size: 32px;
    color: #d4af37;
    margin: 0 8px;
    vertical-align: middle;
}

.closing-date-nums {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 11px;
    letter-spacing: 4px;
    color: #666;
}

.closing-crema-divider-bottom {
    width: 60px;
    height: 1px;
    background-color: #d4af37;
    margin-top: 18px;
}

.preparate-section {
    text-align: center;
}

.preparate-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 12px;
    letter-spacing: 3px;
    color: #556b4f;
    margin-bottom: 5px;
}

.solamente-faltan-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 400;
    font-size: 13px;
    letter-spacing: 2.5px;
    color: #2c3528;
    margin-bottom: 15px;
}

.editorial-footer-crema {
    padding: 30px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 9px;
    letter-spacing: 3px;
    color: #2c3528;
    background: #bdbda7;
}

/* BOTONES */
.btn {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 30px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 2px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-outline-dark {
    border: 1px solid #d4af37;
    color: #2c3528;
    background: transparent;
}

.btn-white-pill {
    background: #2c3528;
    color: #f4e9dc;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    font-weight: 400;
}

.mt-5 { margin-top: 5px; }
.mt-10 { margin-top: 10px; }
.mt-15 { margin-top: 15px; }
.mt-20 { margin-top: 20px; }
.mt-25 { margin-top: 25px; }
.mt-30 { margin-top: 30px; }
.mt-35 { margin-top: 35px; }
.mt-40 { margin-top: 40px; }

/* MÚSICA ESTILO VINILO GIRATORIO */
.music-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 48px;
    height: 48px;
    background-color: #556b4f;
    color: #d4af37;
    border: 2px solid #d4af37;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    box-shadow: 0 4px 15px rgba(0,0,0,0.25);
    cursor: pointer;
    font-size: 18px;
    transition: transform 0.3s;
}

.music-btn.playing {
    animation: girarVinilo 4s linear infinite;
}

@keyframes girarVinilo {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.toast {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(-100px);
    background: #2c3528;
    color: #fff;
    padding: 10px 20px;
    border-radius: 20px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    font-size: 12px;
    transition: transform 0.3s ease;
    z-index: 10000;
}
.toast.show {
    transform: translateX(-50%) translateY(0);
}
