@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Allura&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    position: relative;
    background-color: #F5F4F2;
    color: #454545;
}

body.no-scroll {
    overflow: hidden;
}

.dis-none {
    display: none;
}

.material-symbols-outlined{
    display: inline-block;
}

.imgCopy {
    width: clamp(1rem, 0.9451rem + 0.2439vw, 1.25rem);
}

/* Estilos y efectos de la introducción tipo carta */
.intro {
    font-family: "Cormorant Garamond", serif;
    position: absolute;
    opacity: 1;
    transition: opacity 0.8s ease;
    width: 100%;
    display: flex;
    justify-content: center;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1784803107/bg-letter_ntca0e.png");
    z-index: 999;
}

.intro.ocultar {
    opacity: 0;
    pointer-events: none;
}

#video {
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    display: block;
}

.intro p {
    color: #162E52;
    position: absolute;
    top: 80%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: clamp(3.75rem, 3.0713rem + 3.0166vw, 5rem);
    text-shadow:
        1px 1px 1px rgba(0,0,0,.55),
       -1px -1px 1px rgba(255,255,255,.50);
}


/* Estilos botón reproducción música */
.btn-musica {
    position: fixed;
    bottom: 20px;
    left: 16px;
    width: 32px;
    height: 32px;
    border: 1px solid #d1d1d1;
    border-radius: 50%;
    background: #F5EFE9;
    cursor: pointer;
    animation: girar 8s linear infinite;
    animation-play-state: paused;
    z-index: 100;
}

.btn-musica.reproduciendo {
    animation-play-state: running;
}

#g-icon {
    color: #534938;
}


/* Estilos portada principal */
.front-page {
    width: 100%;
    height: 100vh;
    position: relative;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1784804888/portada_e0qivs.jpg");
    background-size: cover;
    background-position: center bottom;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
}

.front-text {
    position: relative;
    z-index: 2;
    color:#fff;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content: center;
    margin-bottom: clamp(20rem, 19.8628rem + 0.6098vw, 20.625rem);
}

.front-text h3 {
    font-family: "Libre Franklin", sans-serif;
    font-size: clamp(1.25rem, 1.1402rem + 0.4878vw, 1.75rem);
    font-weight: 200;   
    color: #c0c0c0;
    margin-bottom: clamp(1.875rem, 1.0518rem + 3.6585vw, 5.625rem);
}

.name, .and {
    font-family: "Cormorant", serif;
    font-weight: 200;
    color: #d1d1d1;
    font-size: clamp(4.6875rem, 4.3445rem + 1.5244vw, 6.25rem);
    line-height: .9;
}

.and {
    font-family: "Allura", cursive;
    font-size: clamp(2.8125rem, 2.7439rem + 0.3049vw, 3.125rem);
    margin-top: clamp(1rem, 0.7805rem + 0.9756vw, 2rem);
    margin-bottom: clamp(0rem, -0.2195rem + 0.9756vw, 1rem);
}


/* Estilos sección "Save the Date" */
.save-date {
    text-align: center;
    margin: clamp(2rem, 1.7805rem + 0.9756vw, 3rem) 0;
}

.save-date h5 {
    font-size: clamp(1.25rem, 1.0854rem + 0.7317vw, 2rem);
    font-weight: 200;
}

.countdown {
    display: flex;
    justify-content: center;
    margin: clamp(1.25rem, 1.0854rem + 0.7317vw, 2rem) 0;
}

.countdown span {
    margin: 0 8px;
    font-size: clamp(1.25rem, 1.1128rem + 0.6098vw, 1.875rem);
}

.save-date p {
    font-size: clamp(1.25rem, 1.1402rem + 0.4878vw, 1.75rem);
    font-weight: 200;
}


/* Tamaño separador */
.separator {
    display: flex;
    justify-content: center;
}

.separator img {
    width: clamp(15rem, 13.3537rem + 7.3171vw, 22.5rem);
}


/* Estilos mensaje principal */
.main-msg {
    width: clamp(18.75rem, 16.0061rem + 12.1951vw, 31.25rem);
    margin: 30px auto;
}

.main-msg p {
    text-align: center;
    font-size: clamp(1rem, 0.9314rem + 0.3049vw, 1.3125rem);
    
}


/* Estilos versículo principal */
.verse {
    width: 100%;
    height: 100vh;
    position: relative;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1784865385/mario-paty-01_lhtmea.jpg");
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: end;
    overflow: hidden;
    font-size: clamp(1rem, 0.9451rem + 0.2439vw, 1.25rem);
}

.bg-verse {
    position: relative;
    background: #dee1e7;
    padding: clamp(1.25rem, 1.0854rem + 0.7317vw, 2rem);
    width: 100vw;
    text-align: center;
}

.bg-verse::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    width: 100vw;
    height: 160px;

    background: linear-gradient(
        to bottom,
        transparent,
        #dee1e7
    );
}

.bg-verse p {
    width: clamp(15rem, 12.1189rem + 12.8049vw, 28.125rem);
    margin: auto;
    margin-bottom: clamp(0.375rem, 0.2927rem + 0.3659vw, 0.75rem);
}


/* Estilos nombres padres de los novios */
.parents {
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1784945823/bg-01-mobile_pkfrhm.jpg");
    background-size: cover;
    background-position: top left;
    text-align: center;
    padding: clamp(1.5rem, 0.7317rem + 3.4146vw, 5rem) 0;
}

.parents img {
    width: clamp(15rem, 11.4329rem + 15.8537vw, 31.25rem);
}

.parents h3 {
    font-size: clamp(1.375rem, 1.128rem + 1.0976vw, 2.5rem);
    margin-top: clamp(1rem, 0.561rem + 1.9512vw, 3rem);
}

.parent-names {
    font-family: "Libre Franklin", sans-serif;
    font-size: clamp(0.875rem, 0.7652rem + 0.4878vw, 1.375rem);
    white-space: nowrap;
    margin: clamp(0.75rem, 0.4756rem + 1.2195vw, 2rem) auto;
}

.couple h5 {
    font-weight: 500;
    margin-bottom: clamp(0.25rem, 0.0305rem + 0.9756vw, 1.25rem);
}

.couple p {
    margin: clamp(0.375rem, 0.2927rem + 0.3659vw, 0.75rem) 0;
}

.groom {
    margin: clamp(1rem, 0.8902rem + 0.4878vw, 1.5rem) auto;
}

.bride {
    margin-bottom: clamp(1rem, 0.561rem + 1.9512vw, 3rem);
}


/* ---------------------------------------------------------- */
/* ---------------------------------------------------------- */
/* ---------------------------------------------------------- */
.galeria-bg {
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1785018800/bg-galeria_dhywl5.jpg");
    background-size: cover;
}

.gallery{
    width:100%;
    max-width:880px;
    margin:auto;
    padding:clamp(1.875rem, 1.4634rem + 1.8293vw, 3.75rem);
}

.gallery h2 {
    text-align: center;
    margin-bottom: 30px;
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
}

.myGallery{
    width:100%;
    border-radius:8px;
    overflow:hidden;
}

.swiper-slide{
    display:flex;
    justify-content:center;
    align-items:center;
}

.swiper-slide img{
    width:100%;
    height:85vh;
    object-fit:cover;
    border-radius:8px;
    transition:transform .7s ease;
}

.swiper-slide-active img{
    transform:scale(1.04);
}

.swiper-button-next,
.swiper-button-prev{
    width:48px;
    height:48px;
    border-radius:50%;
    background:rgba(0,0,0,.35);
    color:#fff;
    backdrop-filter:blur(4px);
}

.swiper-button-next::after,
.swiper-button-prev::after{
    font-size:18px;
    font-weight:bold;
}

.myGallery .swiper-button-next,
.myGallery .swiper-button-prev{
    opacity: 0;
    transition: opacity .3s ease;
}

.myGallery:hover .swiper-button-next,
.myGallery:hover .swiper-button-prev{
    opacity: 1;
}

@media(max-width:768px){

    .swiper-slide img{
        height:480px;
    }

    .swiper-button-next,
    .swiper-button-prev{
        width:40px;
        height:40px;
    }

    .myGallery .swiper-button-next,
    .myGallery .swiper-button-prev{
        opacity: 1;
    }

}

/* ---------------------------------------------------------- */
/* ---------------------------------------------------------- */
/* ---------------------------------------------------------- */


/* Estilos de la ubicación del local */
.ubication {
    text-align: center;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1785019546/bg-ubicacion_haj6dm.jpg");
    background-size: cover;
    background-position: top right;
    padding: clamp(2rem, 1.3415rem + 2.9268vw, 5rem) 0;
}

.ubication img {
    width: clamp(6.25rem, 5.4268rem + 3.6585vw, 10rem);
}

.ubication h5 {
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
    margin-top: clamp(0.25rem, 0.1402rem + 0.4878vw, 0.75rem);
    margin-bottom: clamp(0.75rem, 0.4756rem + 1.2195vw, 2rem);
}

.ubication span {
    font-size: clamp(1.0625rem, 0.9665rem + 0.4268vw, 1.5rem);
    margin-bottom: clamp(0.875rem, 0.7378rem + 0.6098vw, 1.5rem);
    display: block;
}

.ubication h6, .ubication a {
    font-family: "Libre Franklin", sans-serif;
}

.ubication h6 {
    font-size: clamp(0.875rem, 0.7927rem + 0.3659vw, 1.25rem);
    font-weight: 300;
    margin: clamp(0.3125rem, 0.2439rem + 0.3049vw, 0.625rem) 0;
}

.ubication a {
    text-decoration: none;
    color: #454545;
    font-size: clamp(0.75rem, 0.6951rem + 0.2439vw, 1rem);
    font-weight: 600;
    padding: clamp(0.375rem, 0.3201rem + 0.2439vw, 0.625rem) clamp(2rem, 1.8902rem + 0.4878vw, 2.5rem);
    background-color: #e1e1e1e6;
    cursor: pointer;
    box-shadow: 0px 1px 2px 1px rgba(0,0,0,0.25);
    border-bottom: 1px solid #454545;
    border-radius: 4px;
    display: inline-block;
    margin-top: clamp(1rem, 0.7805rem + 0.9756vw, 2rem);
}

.ubication a:hover {
    background-color: #131313;
    color: #e1e1e1e6;
}


/* Estilos itinerario del evento */
.itinerario {
    text-align: center;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1785095095/bg-itinerario_jnplyf.jpg");
    background-size: cover;
    background-position: center;
    padding: clamp(3.75rem, 3.4756rem + 1.2195vw, 5rem) 20px;
}

.itinerario-line {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(3.125rem, 2.7134rem + 1.8293vw, 5rem);
    position: relative;
}

.itinerario h5 {
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
    margin-bottom: 32px;
}

.evento {
    display: flex;
    align-items: center;
    gap: 80px;
}

.reverse {
    display: flex;
    flex-direction: row-reverse;
}

.evento img {
    width: clamp(4.375rem, 4.2378rem + 0.6098vw, 5rem);
}

.evento-time span {
    font-size: clamp(1rem, 0.9451rem + 0.2439vw, 1.25rem);
    font-weight: bold;
}

.evento-time p {
    font-size: clamp(0.875rem, 0.8476rem + 0.122vw, 1rem);
    text-transform: uppercase;
    font-family: "Libre Franklin", sans-serif;
    margin-top: clamp(0.5rem, 0.3902rem + 0.4878vw, 1rem);
}

.line {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 2px;
    height: 100%;
    background-color: #858585;
}


/* Estilos de la mesa de regalos */
.gift {
    text-align: center;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1785067683/bg-gift_eizso3.jpg");
    background-size: cover;
    background-position: top left;
    padding: clamp(2rem, 1.3415rem + 2.9268vw, 5rem) 34px;
    font-family: "Libre Franklin", sans-serif;
}

.gift h5 {
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
    margin-top: clamp(0.25rem, 0.1402rem + 0.4878vw, 0.75rem);
    margin-bottom: clamp(0.75rem, 0.4756rem + 1.2195vw, 2rem);
}

.gift-text {
    font-size: clamp(0.875rem, 0.8201rem + 0.2439vw, 1.125rem);
    max-width: 750px;
    display: block;
    margin: auto;
    line-height: 1.5;
    margin-bottom: clamp(1.25rem, 0.9756rem + 1.2195vw, 2.5rem);
}

.gift-option, .gift-option-dos {
    background-color: #fff;
    border-radius: 4px;
    margin: clamp(1.25rem, 0.9756rem + 1.2195vw, 2.5rem) auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 1.3902rem + 0.4878vw, 2rem) 16px;
    box-shadow: -4px 4px 4px rgba(0, 0, 0, .4);
    max-width: 480px;
}

.gift-option p, .gift-option-dos p {
    font-size: clamp(0.875rem, 0.8476rem + 0.122vw, 1rem);
    line-height: 1.3;
    font-weight: 600;
    color: #5f5b5b;
}

.gift-option button, .gift-option-dos button {
    background-color: #dfe0e2;
    border: none;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4px;
    margin-left: 5px;
    cursor: pointer;
}

.gift-option-dos .link {
    text-decoration: underline;
    background-color: #ffffff00;
    font-weight: bold;
    color: #add400;
}

.gift-option-dos p {
    margin-bottom: clamp(0.25rem, 0.1951rem + 0.2439vw, 0.5rem);
}



.gift-option button a, .gift-option-dos button a {
    text-decoration: none;
    color: #add400;
    font-size: clamp(0.875rem, 0.8476rem + 0.122vw, 1rem);
}


.cci, .cci-dos {
    display: flex;
    justify-content: center;
    align-items: center;
}

.cci p, .cci-dos p {
    font-size: clamp(0.75rem, 0.7226rem + 0.122vw, 0.875rem);
    font-weight: 400;
    line-height: 2.2;
}

.home {
    margin-top: clamp(0.75rem, 0.6402rem + 0.4878vw, 1.25rem);
}

.interbank {
    margin-bottom: clamp(0.625rem, 0.4878rem + 0.6098vw, 1.25rem);
}


/* Estilos del código de vestimenta */
.dress-code {
    text-align: center;
    background-image: url("https://res.cloudinary.com/andskwow/image/upload/v1785018800/bg-galeria_dhywl5.jpg");
    background-size: cover;
    padding: clamp(2rem, 1.3415rem + 2.9268vw, 5rem) 0;
}

.dress-code img {
    width: clamp(6.25rem, 5.4268rem + 3.6585vw, 10rem);
}

.dress-code h5 {
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
    margin-top: clamp(1.25rem, 1.0854rem + 0.7317vw, 2rem);
    margin-bottom: clamp(2rem, 1.7805rem + 0.9756vw, 3rem);
}

.dress-code span {
    font-size: clamp(1.0625rem, 0.9665rem + 0.4268vw, 1.5rem);
    margin-bottom: clamp(0.875rem, 0.7378rem + 0.6098vw, 1.5rem);
    font-family: "Libre Franklin", sans-serif;
    display: block;
}

.dress-code p {
    font-family: "Libre Franklin", sans-serif;
    font-size: clamp(0.875rem, 0.8201rem + 0.2439vw, 1.125rem);
    padding: 0 24px;
    margin: auto;
    max-width: 560px;
}

/* Estilos del formulario */
.confirmacion{
    padding:20px;
    display:flex;
    justify-content:center;
    align-items:center;
}

.form-card{
    width:min(640px,100%);
    background:#fff;
    padding:24px;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    text-align:center;
}

.form-card img{
    width:clamp(10rem, 9.1768rem + 3.6585vw, 13.75rem);
    display:block;
    margin:auto;
}

.form-card h2{
    font-family:"Cormorant Garamond", serif;
    font-size:clamp(1.625rem, 1.3232rem + 1.3415vw, 3rem);
    font-weight:700;
    color:#8f7c6d;
}

.form-card span {
    font-size: clamp(1rem, 0.9451rem + 0.2439vw, 1.25rem);
    display: block;
    padding: clamp(1rem, 0.9451rem + 0.2439vw, 1.25rem) 20px 0;
    margin-bottom:clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
}

.form-card form{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.form-card input,
.form-card select,
.form-card textarea{
    width:100%;
    padding:15px 18px;
    border:none;
    outline:none;
    background:#f3f2f2;
    border-radius:4px;
    font-size:15px;
    font-family: "Libre Franklin", sans-serif;
    color:#555;
}

.form-card textarea{
    resize:none;
    min-height:130px;
}

.form-card button{
    width:100%;
    height:48px;
    margin: 5px auto 0;
    border:1px solid #888;
    border-radius:8px;
    background:#d8d6d6;
    color:#333;
    font-size:18px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
}

.form-card button:hover{
    background:#000;
    color: #e1e1e1e6;
}


/* Estilos de la sección no niños */
.no-children {
    text-align: center;
    padding: clamp(2rem, 1.0671rem + 4.1463vw, 6.25rem) 0;
}

.no-children h5 {
    color: #81725c;
    font-size: clamp(1.5rem, 1.2805rem + 0.9756vw, 2.5rem);
    margin-top: clamp(1.25rem, 1.0854rem + 0.7317vw, 2rem);
    margin-bottom: clamp(2rem, 1.7805rem + 0.9756vw, 3rem);
}

.no-children p {
    font-family: "Libre Franklin", sans-serif;
    max-width: 450px;
    line-height: 2;
    margin: auto;
    font-size: clamp(0.875rem, 0.8476rem + 0.122vw, 1rem);
    padding: 0 20px;
}


/* Estilos de la sección del logo */
.logo {
    display: flex;
    justify-content: center;
}

.logo img {
    width: clamp(12.5rem, 9.7561rem + 12.1951vw, 25rem);
}

.final-on {
    min-height: 100vh;
    background-image:
        url("https://res.cloudinary.com/andskwow/image/upload/v1785065165/bg-final-01_ueeqgg.jpg"),
        url("https://res.cloudinary.com/andskwow/image/upload/v1785065164/bg-final-02_mujhfq.jpg");
    background-repeat: no-repeat, no-repeat;
    background-position: right top, left bottom;
    background-size: 100% auto, 100% auto;
}

.final {
    background: linear-gradient(
        180deg,
        rgba(255,255,255,0) 0%,
        rgba(160,165,175,0.15) 25%,
        rgba(80,85,95,0.45) 55%,
        rgba(45,50,60,0.80) 78%,
        #252b35 100%
    );
}


/* Estilos del footer */
footer {
    font-family: "Libre Franklin", sans-serif;
    font-size: clamp(0.75rem, 0.7226rem + 0.122vw, 0.875rem);
    text-transform: uppercase;
    text-align: center;
    color: #b8b6b6;
    padding-bottom: 30px;
}

footer span {
    font-weight: bold;
}


/* Estilos responsive */
@media screen and (min-width:768px) {
    .form-card{
        padding:64px 24px;
    }

    .form-card h2{
        font-size:2.2rem;
    }

    .form-card button{
        margin-top:10px;
    }

    .btn-musica {
        bottom: 24px;
        left: 20px;
    }

    .itinerario-line {
        display: flex;
        flex-direction: row;
        justify-content: center;
    }

    .itinerario h5 {
        margin-bottom: 60px;
    }

    .evento {
        display: flex;
        flex-direction: column;
    }

    .evento img {
        height: 80px;
        object-fit: contain;
        margin-bottom: 30px;
    }

    .line {
        height: 2px;
        width: 700px;
    }

}

@media screen and (min-width:1024px) {
    #video {
        width: 80vw;
    }

    .intro p {
        font-size: clamp(5rem, 3.6885rem + 2.0492vw, 6.25rem);
    }

    .parents {
        margin: 0;
    }
}

@media screen and (min-width:1280px) {
    #video {
        width: 50vw;
    }
}


/* Animaciones */
@keyframes girar {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}