/* =========================
RESET
========================= */

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

html{
    scroll-behavior:smooth;
}

/* =========================
BODY
========================= */

body{

    font-family:'Poppins', sans-serif;

    background:#f5efe6;

    color:#1f1f1f;

    overflow-x:hidden;

    line-height:1.8;
}

/* =========================
NAVBAR
========================= */

.navbar{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:25px 7%;

    z-index:999;

    transition:0.4s;

}

.navbar.scrolled{

    background:
    rgba(18,56,41,0.92);

    backdrop-filter:blur(10px);

}

/* LOGO */

.logo{

    font-family:'Cormorant Garamond', serif;

    font-size:2.5rem;

    color:#d0a15c;

    letter-spacing:2px;
}

/* MENU */

.nav-links{

    display:flex;

    list-style:none;

    gap:35px;
}

.nav-links a{

    text-decoration:none;

    color:white;

    font-size:0.95rem;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:0.3s;

    font-size:1.15rem;

    padding:12px 0;

    width:100%;

    border-bottom:1px solid rgba(255,255,255,0.08);
}

.nav-links a:hover{

    color:#d0a15c;
    padding-left:10px;
}

/* MOBILE */

.menu-toggle{

    display:none;

    color:white;

    font-size:2rem;

    cursor:pointer;
}

/* =========================
HERO
========================= */

.hero{

    height:100vh;

    background:
    linear-gradient(
        rgba(10,25,18,0.45),
        rgba(10,25,18,0.65)
    ),
    url('imagenes/portada/hero.jpg');

    background-size:cover;

    background-position:center;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    padding:20px;
}

.hero-content{

    color:white;
}

.hero-content h1{

    font-family:'Cormorant Garamond', serif;

    font-size:7rem;

    color:#f5d7a1;

    margin-bottom:20px;

    text-shadow:
    0 10px 40px rgba(0,0,0,0.35);
}

.hero-content p{

    font-size:1.4rem;

    letter-spacing:2px;

    margin-bottom:20px;
}

.date{

    color:#d0a15c;

    font-family:'Cormorant Garamond', serif;

    font-size:6.3rem;

    letter-spacing:6px;

    margin-bottom:40px;
}

/* BUTTON */

.btn{

    display:inline-block;

    padding:18px 40px;

    background:#d0a15c;

    color:white;

    border-radius:40px;

    text-decoration:none;

    transition:0.4s;
}

.btn:hover{

    transform:translateY(-4px);

    background:#ddb77d;
}

/* =========================
SECTIONS
========================= */

section{

    padding:70px 10%;
}

/* TITLES */

.section-title{

    text-align:center;

    margin-bottom:35px;
}

.section-title h2{

    font-family:'Cormorant Garamond', serif;

    font-size:5rem;

    color:#123829;

    margin-bottom:20px;
}

.section-title p{

    color:#f5d7a1;

    font-family:'Cormorant Garamond', serif;

    font-size:1.5rem;

    max-width:900px;

    margin:25px auto 0;

    text-align:center;

    line-height:1.6;

    letter-spacing:1px;

    opacity:0.95;
}
.galeria-subtitulo{

    color:#123829 !important;

    font-family:'Cormorant Garamond', serif;

    font-size:1.5rem;

    max-width:900px;

    margin:25px auto 0;

    text-align:center;

    line-height:1.6;

    letter-spacing:1px;

    opacity:0.95;
}
.historia-subtitulo{

    color:#123829 !important;

    font-family:'Cormorant Garamond', serif;

    font-size:2rem;

    max-width:900px;

    margin:40px auto 70px;

    text-align:center;

    line-height:1.7;

    letter-spacing:1px;

    opacity:0.95;
}
/* =========================
GALERÍA EDITORIAL
========================= */

.magic-gallery{

    display:grid;

    grid-template-columns:1fr 1.8fr 1fr;

    gap:28px;

    align-items:end;

    max-width:1400px;

    margin:80px auto 0;

    padding:0 60px;
}

.photo{

    width:100%;

    object-fit:cover;

    border-radius:28px;

    box-shadow:0 20px 45px rgba(0,0,0,0.18);

    transition:0.4s ease;
}

.photo:hover{

    transform:translateY(-10px) scale(1.02);
}

.photo-tall{

    height:560px;
}

.photo-wide{

    height:420px;

    margin-bottom:0;
}
/* =========================
   HISTORIA PREMIUM
========================= */

.story{

    display:flex;

    align-items:center;

    gap:100px;

    max-width:1400px;

    margin:40px auto;

    padding:0 60px;
}

.story-text{
    flex:1;
    max-width:650px;
    margin:120px auto 0;
    text-align:center;
    margin-bottom:-140px;
}

.story img{

    width:460px;

    height:740px;

    border-radius:30px;

    object-fit:cover;

    box-shadow:0 20px 50px rgba(0,0,0,0.25);

    margin-bottom:-120px;
}

.story-text p{

    font-family:'Cormorant Garamond', serif;

    font-size:1.5rem;

    line-height:1.9;

    color:#123829;

    margin-bottom:38px;

    font-weight:500;

    letter-spacing:0.3px;

    max-width:520px;

    margin-left:auto;

    margin-right:auto;

    text-align:center;
}

.story-text p{

    font-family:'Cormorant Garamond', serif;

    font-size:1.35rem;

    line-height:1.8;

    color:#123829;

    margin-bottom:10px;

    font-weight:500;

    letter-spacing:0.3px;

    max-width:520px;
}

/* móvil */

.story{
    display:flex;

    align-items:flex-start;

    gap:20px;

    max-width:1400px;

    margin:0 auto;

    padding:0 20px;
}
.story img{

    width:360px;

    height:auto;

    object-fit:cover;

    border-radius:28px;

    box-shadow:0 20px 50px rgba(0,0,0,0.22);

    flex-shrink:0;
}
.story-text{

    flex:1;
}

.story-text p{

    font-size:2.2rem;

    max-width:100%;
}

    .story-text p{

    font-family:'Cormorant Garamond', serif;

    font-size:1.35rem;

    line-height:1.8;

    color:#123829;

    margin-bottom:45px;

    font-weight:500;

    max-width:850px;
}

/* =========================
   DETALLES PREMIUM
========================= */

#detalles{
    background:#123829;
    padding:70px 8% 30px;
    position:relative;
}

.details-grid{
    display:flex;
    justify-content:center;
    align-items:stretch;
    gap:40px;
    flex-wrap:wrap;
    margin-top:70px;
}

.detail-card{
    width:340px;
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(245,215,161,0.35);
    border-radius:28px;
    overflow:hidden;
    backdrop-filter:blur(10px);
    transition:0.4s ease;
    box-shadow:0 10px 30px rgba(0,0,0,0.25);
    display:flex;
    flex-direction:column;
}

.detail-card:hover{
    transform:translateY(-12px);
    box-shadow:0 25px 45px rgba(0,0,0,0.35);
}

.detail-card img{
    width:100%;
    height:260px;
    object-fit:cover;
    display:block;
}

.detail-content{
    padding:35px 28px 40px;
    text-align:center;
    background:#173f2f;
    display:flex;
    flex-direction:column;
    flex:1;
}

.detail-content h3{
    font-family:'Playfair Display', serif;
    font-size:2.7rem;
    color:#f5d7a1;
    margin-bottom:20px;
    font-weight:500;
}

.detail-line{
    width:90px;
    height:1px;
    background:#f5d7a1;
    margin:0 auto 25px;
    position:relative;
}

.detail-line::after{
    content:"✦";
    position:absolute;
    left:50%;
    top:-12px;
    transform:translateX(-50%);
    background:#123829;
    color:#f5d7a1;
    padding:0 10px;
    font-size:1rem;
}

.detail-place{
    color:#f8f4ec;
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:0.95rem;
    line-height:1.8;
    margin-bottom:30px;
}

.detail-time{
    color:#f5d7a1;
    font-family:'Playfair Display', serif;
    font-size:2.3rem;
    font-weight:600;
    margin-top:auto;
    padding-top:35px;
}

/* RESPONSIVE */

@media(max-width:1100px){

    .details-grid{
        flex-direction:column;
        align-items:center;
    }

    .detail-card{
        width:340px;
        background:#173f2f;
        border:1px solid rgba(245,215,161,0.35);
        border-radius:28px;
        overflow:hidden;
        transition:0.4s ease;
        box-shadow:0 10px 30px rgba(0,0,0,0.35);
}
section{
    padding:80px 24px;
}
}
/* =========================
COUNTDOWN
========================= */

#contador{

    background:#123829;

    padding:80px 8% 10px;

    text-align:center;

    position:relative;

    color:white;
}

#countdown{
    margin-bottom:0;
}

#contador .section-title h2{

    color:#f5d7a1;
}

#contador .section-title p{

    color:#f5d7a1 !important;

    font-family:'Cormorant Garamond', serif;

    font-size:1.6rem;

    max-width:900px;

    margin:5px auto 0;

    text-align:center;

    line-height:1.6;

    letter-spacing:1px;

    opacity:0.95;
}

/* CONTADOR HORIZONTAL */

#countdown{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:30px;

    flex-wrap:wrap;

    margin-top:50px;
}

.count-box{

    background:rgba(255,255,255,0.05);

    border:1px solid rgba(245,215,161,0.25);

    border-radius:30px;

    width:170px;

    height:170px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    backdrop-filter:blur(10px);

    box-shadow:0 10px 30px rgba(0,0,0,0.25);

    transition:0.4s ease;
}
    

.count-box:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(0,0,0,0.45);
}

.count-box span{

    font-size:5rem;

    font-family:'Playfair Display', serif;

    font-weight:700;

    color:#f5d7a1;

    display:block;

    line-height:1;
}

.count-box p{

   

    margin-top:15px;

    font-size:1.1rem;

    letter-spacing:2px;

    text-transform:uppercase;

    color:white;
}


/* =========================
DETAILS
========================= */

#detalles{

  background:#123829;
}

/* =========================
RSVP PREMIUM
========================= */

#rsvp{

    background:#123829;

    padding:120px 8%;

    text-align:center;

    position:relative;
}

#rsvp h2{

    color:#f5d7a1;

    font-size:5rem;

    margin-bottom:30px;

    font-family:'Cormorant Garamond', serif;
}

.rsvp-subtitulo{

    color:#f5d7a1;

    font-family:'Cormorant Garamond', serif;

    font-size:1.7rem;

    margin-bottom:60px;

    opacity:0.95;
}

.rsvp-form{

    max-width:900px;

    margin:auto;

    display:flex;

    flex-direction:column;

    gap:25px;
}

.rsvp-form input,
.rsvp-form select,
.rsvp-form textarea{

    background:transparent;

    border:1px solid rgba(245,215,161,0.5);

    padding:24px;

    border-radius:22px;

    color:#f5d7a1;

    font-size:1.3rem;

    font-family:'Cormorant Garamond', serif;

    outline:none;

    transition:0.3s ease;
}

.rsvp-form textarea{

    min-height:180px;

    resize:none;
}

.rsvp-form input::placeholder,
.rsvp-form textarea::placeholder{

    color:#f5d7a1;
}

.rsvp-form select{

    color:#f5d7a1;
}

.rsvp-form input:focus,
.rsvp-form select:focus,
.rsvp-form textarea:focus{

    border-color:#f5d7a1;

    box-shadow:0 0 15px rgba(245,215,161,0.25);
}

.rsvp-form button{

    background:#d4a24c;

    color:#123829;

    border:none;

    padding:24px;

    border-radius:20px;

    font-size:1.2rem;

    letter-spacing:3px;

    font-weight:600;

    cursor:pointer;

    transition:0.3s ease;

    font-family:'Cormorant Garamond', serif;
}

.rsvp-form button:hover{

    transform:translateY(-4px);

    background:#f5d7a1;
}

/* =========================
FOOTER ELEGANTE
========================= */

footer{

    background:#123829;

    padding:80px 20px;

    text-align:center;

    margin-top:0;

    position:relative;

    overflow:hidden;
}

.footer-logo{

    font-family:'Cormorant Garamond', serif;

    font-size:4rem;

    color:#d0a15c;

    letter-spacing:3px;

    font-weight:500;

    margin-bottom:10px;
}

.footer-date{

    color:#f5d7a1;

    font-size:1rem;

    letter-spacing:8px;

    text-transform:uppercase;
}

/* =========================
REVEAL
========================= */

.reveal{

    opacity:0;

    transform:translateY(60px);

    transition:1s;
}

.reveal.active{

    opacity:1;

    transform:translateY(0);
}

/* =========================
LIGHTBOX
========================= */

.lightbox{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,0.92);

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:99999;
}

.lightbox img{

    max-width:90%;

    max-height:90%;

    border-radius:24px;
}

/* =========================
SNOW
========================= */

.snowflake{

    position:fixed;

    top:-10px;

    color:white;

    z-index:99999;

    pointer-events:none;

    animation:snowfall linear forwards;
}

@keyframes snowfall{

    to{

        transform:translateY(110vh);
    }
}

/* =========================
BACK TO TOP
========================= */

#backToTop{

    position:fixed;

    right:20px;

    bottom:20px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    background:#d0a15c;

    color:white;

    cursor:pointer;

    display:none;

    z-index:999;
}

#backToTop.show{

    display:block;
}

/* =========================
RESPONSIVE
========================= */

@media(max-width:900px){

.story{

    flex-direction:column;

    align-items:center;

    gap:30px;

    padding:0 20px;

    margin:0 auto;
}

.story img{

    width:100%;

    max-width:260px;

    height:auto;

    margin:0 auto;

    display:block;
}

.story-text{

    max-width:100%;

    padding-bottom:40px;
}

.story-text p{

    font-size:1.35rem;

    line-height:1.7;

    text-align:center;

    margin-bottom:22px;
}

.hero-content h1{
    font-size:4rem;
}

.hero{
    padding:140px 25px 90px;
}

.hero-content p{
    font-size:1.15rem;
    line-height:1.5;
    padding:0 10px;
}

.date{
    font-size:1.1rem;
    letter-spacing:4px;
}

.btn{
    padding:16px 42px;
    font-size:1rem;
}

.section-title h2{
    font-size:3rem;
    line-height:1.2;
}

.detail-card{
    width:100%;
    max-width:380px;
    margin:0 auto;
    border-radius:24px;
}

.detail-card img{
    height:220px;
    object-fit:cover;
}

.count-box{
    width:140px;
    height:140px;
}

.rsvp-form{
    padding:0 10px;
}

.nav-links{

    position:fixed;

    top:80px;

    right:-100%;

    width:280px;

    height:auto;

    background:rgba(18,56,41,0.96);

    backdrop-filter:blur(12px);

    flex-direction:column;

    gap:28px;

    padding:40px 35px;

    transition:0.4s;
}

.nav-links.active{
    right:0;
}

.menu-toggle{
    display:block;
}

#countdown{
    gap:20px;
    margin:20px auto 10px;
}

.count-box{
    min-width:140px;
    padding:25px;
}

.count-box span{
    font-size:3.5rem;
}
}

/* =========================
RSVP FORM
========================= */

.rsvp-form{

    max-width:700px;

    margin:auto;

    display:flex;

    flex-direction:column;

    gap:25px;
}

.form-group input,
.form-group select,
.form-group textarea{

    width:100%;

    padding:20px;

    border:none;

    border-radius:18px;

    background:
    rgba(255,255,255,0.12);

    color:white;

    font-size:1rem;

    backdrop-filter:blur(8px);

    outline:none;
}

.form-group textarea{

    min-height:140px;

    resize:vertical;
}

.form-group input::placeholder,
.form-group textarea::placeholder{

    color:rgba(255,255,255,0.75);
}

.form-group select{

    color:white;
}

.form-group option{

    color:black;
}
body{
    overflow-x: hidden;
}
@media (max-width: 768px){

    .magic-gallery{
        grid-template-columns:1fr;
        gap:18px;
        padding:0 24px;
        margin-top:0px;
    }

    .photo-tall{
        height:320px;
    }

    .photo{
        border-radius:20px;
        margin-bottom:12px;
    }

}
