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

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


body{

    font-family:"Poppins", sans-serif;
    background:#f8f5ef;
    color:#333;

}





/* =========================
   FORM CONTAINER
========================= */

.container{

    width:90%;
    max-width:600px;
    margin:40px auto;
    background:#ffffff;
    padding:30px;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,0.08);

}





/* =========================
   PROGRESS BAR
========================= */

.progress-container{

    margin-bottom:35px;

}


.progress-bar{

    width:100%;
    height:10px;
    background:#eee;
    border-radius:20px;
    overflow:hidden;

}


.progress{

    width:33%;
    height:100%;
    background:#c9a24d;
    border-radius:20px;
    transition:.4s ease;

}



.step-text{

    text-align:center;
    margin-top:10px;
    font-size:14px;
    color:#777;

}





/* =========================
   FORM STEP
========================= */

.form-step{

    display:none;
    animation:fade .4s ease;

}


.form-step.active{

    display:block;

}



@keyframes fade{

    from{

        opacity:0;
        transform:translateX(20px);

    }

    to{

        opacity:1;
        transform:translateX(0);

    }

}





h2{

    text-align:center;
    color:#9a7435;
    margin-bottom:25px;

}




label{

    display:block;
    margin-top:15px;
    margin-bottom:8px;
    font-size:14px;
    font-weight:600;

}




input,
textarea,
select{

    width:100%;
    padding:13px 15px;
    border:1px solid #ddd;
    border-radius:12px;
    font-size:14px;
    outline:none;
    background:white;

}



textarea{

    height:120px;
    resize:none;

}




input:focus,
textarea:focus,
select:focus{

    border-color:#c9a24d;

}







/* =========================
   BUTTON
========================= */

.button-group{

    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:30px;

}



button{

    padding:12px 25px;
    border:none;
    border-radius:30px;
    cursor:pointer;
    font-weight:600;

}




#prevBtn{

    background:#ddd;
    color:#555;

}




#nextBtn,
#generateBtn{

    background:#c9a24d;
    color:white;

}



button:hover{

    opacity:.85;

}








/* =========================
   RSVP PREVIEW
========================= */


.preview-container{

    width:90%;
    max-width:600px;
    margin:50px auto;

}



.preview-title{

    margin-bottom:25px;

}




.rsvp-card{

    background:white;
    border-radius:25px;
    overflow:hidden;
    box-shadow:0 15px 40px rgba(0,0,0,.12);

}





.rsvp-image img{

    width:100%;
    height:300px;
    object-fit:cover;

}





.rsvp-content{

    padding:35px;
    text-align:center;

}




.rsvp-content h1{

    color:#b08a3c;
    font-size:32px;
    margin-bottom:10px;

}




.rsvp-content h2{

    color:#444;
    font-size:22px;

}





.divider{

    width:80px;
    height:2px;
    background:#c9a24d;
    margin:20px auto;

}





.rsvp-content p{

    line-height:1.7;
    color:#666;

}






/* =========================
   EVENT INFO
========================= */


.event-info{

    margin-top:25px;

}



.info-item{

    margin-bottom:15px;

}



.info-item strong{

    display:block;
    color:#b08a3c;
    margin-bottom:5px;

}








/* =========================
   MAP BUTTON
========================= */


.map-btn{

    display:inline-block;
    margin-top:20px;
    padding:12px 28px;
    background:#333;
    color:white;
    text-decoration:none;
    border-radius:30px;

}








/* =========================
   RSVP RESPONSE BUTTON
========================= */


.guest-action{

    display:flex;
    justify-content:center;
    gap:15px;
    margin-top:25px;

}



.attend-btn{

    background:#7c9b67;
    color:white;

}



.decline-btn{

    background:#c66b6b;
    color:white;

}







/* =========================
   MOBILE
========================= */

@media(max-width:600px){


.container{

    padding:20px;

}



.rsvp-content{

    padding:25px;

}



.rsvp-content h1{

    font-size:26px;

}



}





.generated-section{

    display:none;
    width:90%;
    max-width:600px;
    margin:40px auto;
    background:white;
    padding:30px;
    border-radius:20px;
    text-align:center;

}


.package-box del{

    color:#999;
    font-size:14px;

}

.package-box span{

    color:#c9a24d;
    font-weight:700;

}


/* =====================================================
   ATURCARA MAJLIS
===================================================== */

#scheduleContainer{

    display:flex;

    flex-direction:column;

    gap:16px;

}


/* =========================
   ATURCARA CARD
========================= */

.schedule-item{

    background:#ffffff;

    border:1px solid #e5ddd3;

    border-radius:16px;

    padding:18px;

    box-shadow:0 4px 14px rgba(0,0,0,0.04);

    transition:
        border-color .2s ease,
        box-shadow .2s ease;

}


.schedule-item:hover{

    border-color:#d8c4a4;

    box-shadow:0 7px 18px rgba(0,0,0,0.055);

}


/* =========================
   HEADER ATURCARA
========================= */

.schedule-item-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:12px;

    margin-bottom:16px;

    padding-bottom:12px;

    border-bottom:1px solid #eee7df;

}


.schedule-number{

    display:inline-flex;

    align-items:center;

    padding:5px 11px;

    border-radius:20px;

    background:#f7f1e8;

    color:#9a7435;

    font-size:11px;

    font-weight:700;

    letter-spacing:.3px;

    text-transform:uppercase;

}


/* =========================
   ATURCARA TEXTAREA
========================= */

.schedule-item textarea{

    width:100%;

    min-height:180px;

    margin:0;

    padding:14px;

    border:1px solid #ddd5cc;

    border-radius:10px;

    background:#faf9f7;

    color:#333;

    font-family:inherit;

    font-size:13px;

    line-height:1.6;

    outline:none;

    resize:vertical;

    white-space:pre-wrap;

    overflow-wrap:break-word;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;

}


.schedule-item textarea::placeholder{

    color:#aaa;

}


.schedule-item textarea:focus{

    border-color:#B68A35;

    background:#ffffff;

    box-shadow:
        0 0 0 3px rgba(182,138,53,0.08);

}


/* =========================
   TAMBAH ATURCARA
========================= */

.add-schedule-btn{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:7px;

    width:100%;

    margin-top:14px;

    padding:13px;

    border:1px dashed #B68A35;

    border-radius:10px;

    background:transparent;

    color:#B68A35;

    font-family:inherit;

    font-size:13px;

    font-weight:600;

    cursor:pointer;

    transition:0.2s;

}


.add-schedule-btn span{

    font-size:17px;

    line-height:1;

}


.add-schedule-btn:hover{

    background:#f8f2ea;

}


/* =========================
   ATURCARA - BUANG BUTTON
========================= */

.remove-schedule-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:30px;

    height:30px;

    padding:0;

    border:1px solid #d8c8b5;

    background:#f8f3ed;

    color:#8b6f4e;

    border-radius:50%;

    font-family:inherit;

    font-size:18px;

    font-weight:400;

    cursor:pointer;

    white-space:nowrap;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;

}


.remove-schedule-btn:hover{

    background:#eee3d6;

    color:#6f563b;

    border-color:#c8b298;

}


.remove-schedule-btn:active{

    transform:scale(0.96);

}


/* =========================
   ATURCARA MOBILE
========================= */

@media(max-width:600px){

    .schedule-item{

        padding:16px;

        border-radius:14px;

    }


    .schedule-item-header{

        margin-bottom:14px;

        padding-bottom:11px;

    }


.schedule-item textarea{

    min-height:160px;

    padding:12px;

}
   
    .remove-schedule-btn{

        width:29px;

        height:29px;

        font-size:17px;

    }

}

/* =========================
   PREVIEW TEKS PILIHAN DOA
========================= */

.doa-preview{

    margin-top:15px;
    padding:16px;

    border:1px solid #ddd;
    border-radius:12px;

    background:#fafafa;

}


.doa-preview h4{

    margin:0 0 12px;

    font-size:14px;
    font-weight:600;

}


#doaPreviewText{

    white-space:pre-line;

    line-height:1.7;

    font-size:14px;

    color:#333;

}

/* =========================================================
   FRONT PAGE FONT CUSTOMIZER
========================================================= */

.front-page-description{
    text-align:center;
    font-size:13px;
    color:#777;
    line-height:1.6;
    margin-top:-10px;
    margin-bottom:28px;
}


.font-section{
    margin-top:10px;
}


.font-section-title{
    font-size:12px;
    font-weight:700;
    letter-spacing:1.2px;
    color:#9a7435;
    margin-bottom:10px;
}


.font-preview-box{
    width:100%;
    background:#fff;
    border:1px solid #e4e0d8;
    border-radius:16px;
    overflow:hidden;
    transition:.25s ease;
}


.font-preview-box:focus-within{
    border-color:#c9a24d;
    box-shadow:0 5px 18px rgba(201,162,77,.10);
}


/* =========================================================
   NAMA PREVIEW
========================================================= */

.font-preview-input{
    width:100%;
    height:82px;
    border:none;
    border-radius:0;
    padding:16px 20px 8px;
    text-align:center;
    font-family:"Playfair Display", serif;
    font-size:25px;
    color:#333;
    background:#fff;
    outline:none;
}


.font-preview-input::placeholder{
    color:#aaa;
    opacity:.8;
}


/* =========================================================
   FONT SELECTOR
========================================================= */

.font-selector-row{
    display:flex;
    align-items:center;
    min-height:42px;
    border-top:1px solid #eee;
    padding:0 14px 0 18px;
}


.font-selector-label{
    font-size:11px;
    color:#999;
    letter-spacing:.5px;
    margin-right:8px;
}


.font-selector{
    flex:1;
    width:auto;
    border:none;
    border-radius:0;
    padding:10px 5px;
    font-size:12px;
    color:#555;
    background:#fff;
    outline:none;
    cursor:pointer;
}


/* =========================================================
   PENGANTIN
========================================================= */

.person-font-card{
    margin-top:22px;
}


.person-font-label{
    font-size:10px;
    font-weight:700;
    letter-spacing:1.5px;
    color:#999;
    text-align:center;
    margin-bottom:8px;
}


.groom-font-preview,
.bride-font-preview{
    font-size:30px;
}


/* =========================================================
   DIVIDER
========================================================= */

.front-page-divider{
    height:1px;
    background:#eee;
    margin:30px 0;
}


/* =========================================================
   HELP TEXT
========================================================= */

.font-help-text{
    text-align:center;
    font-size:12px;
    color:#999;
    margin-top:24px;
    line-height:1.6;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:480px){

    .font-preview-input{
        height:76px;
        font-size:22px;
        padding-left:12px;
        padding-right:12px;
    }

    .groom-font-preview,
    .bride-font-preview{
        font-size:28px;
    }

    .font-selector-row{
        padding-left:14px;
        padding-right:10px;
    }

}
