/* FULL SCREEN WELCOME */
#welcome {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: #fff;
}

/* BUTTON RESET */
.welcome-btn {
    background: transparent;
    border: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* LOGO */
.logo-hover-main {
    width: 250px;
    height: 250px;

    /* smooth transition */
    transition: transform 0.6s ease;

    /* subtle idle animation */
    animation: floatRotate 4s ease-in-out infinite;
}

/* hover / tap feedback */
.logo-hover-main:active {
    transform: scale(0.97) rotate(5deg);
}

.tap-text {
    margin-top: 14px;
    font-size: 13px;
    letter-spacing: 1px;
    color: #666;

    text-transform: uppercase;
    font-weight: 500;

    opacity: 0.75;

    position: relative;
}

/* main idle animation */
@keyframes floatRotate {
    0% {
        transform: rotate(-5deg);
    }
    50% {
        transform: rotate(5deg);
    }
    100% {
        transform: rotate(-5deg);
    }
}


html, body {
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
}

body {
    background: #f7f2f4;
}


#home{
    position:relative;
    overflow:hidden;
    isolation:isolate;
}

#home .text-center{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    padding-top: 90px;
    padding-bottom:90px;
}


#home::after{
    content:"";
    position:absolute;
    inset:0;
    box-shadow:none;
    background-image:url('/syahiraxashraf/assets/images/frame.webp');
    background-size:contain;
    background-position:center;
    background-repeat:no-repeat;
    pointer-events:none;
    margin-top: 0;
    margin-bottom:60px;
    z-index:2;
}

#home::before{
    background: rgba(255,255,255,0.5);
} 

/* Mobile */
@media (max-width:576px){

    #home .text-center{
         position:relative;
         overflow:hidden;
         isolation:isolate;
         padding-top: 90px;
         padding-bottom:70px;
        }
        
    #home::after{
        top: 0;
        left: -20px; 
        right: -20px;
        bottom: 0;

        background-size:100% 100%;
    }
}

#home > *{
    position:relative;
    z-index:2;
}

    .sticky-top{
        display:none!important;
    }

@keyframes pulse{
    0%,100%{
        transform:scale(1);
        opacity:.5;
    }

    50%{
        transform:scale(1.2);
        opacity:1;
    }
}

.countdown-frame{
    position: relative;
    overflow: visible;
    z-index: 2;
}

.wedding-alert {
    border-radius: 24px;
    border: 1px solid rgba(212,175,55,.20);

    box-shadow:
        0 10px 40px rgba(0,0,0,.08),
        0 0 20px rgba(212,175,55,.08);
}

.swal2-confirm {
    border-radius: 50px !important;
    padding: 10px 24px !important;
    font-weight: 600 !important;
}

.flower-1{
    position:absolute;
    right: 0px;
    top:40%;
    transform:translateY(-50%) rotate(-180deg);
    width:160px;
    z-index:1;
    opacity:.6;
}


.flower-2{
    position:absolute;
    left: 0px;
    top:60%;
    transform:translateY(-50%);
    width:180px;
    z-index:1;
    opacity:.6;
}


.flower-3{
    position:absolute;
    right: 0px;
    top:85%;
    transform:translateY(-50%) rotate(-180deg);
    width:200px;
    z-index:1;
    opacity:.5;
}


.bride {
    pointer-events: none;
    user-select: none;
}

main section{
    width:100%;
    max-width:100%;
    overflow:hidden;
}

.invitation-wrapper{
    display:flex;
    justify-content:center;
}

.welcome-page,
.loading-page {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: white;
}


.main-wrapper {
    position: relative;
    width: 100%;
    max-width: 515px;
    margin: 0 auto;
    overflow: hidden;
    box-shadow:
        0 0 0 1px rgba(0,0,0,0.05),
        0 25px 60px rgba(0,0,0,0.20),
        0 50px 120px rgba(0,0,0,0.30);
}

.main-wrapper::before {
    content: "";
    position: fixed;

    top: 0;
    left: 50%;
    transform: translateX(-50%);

    width: 100%;
    max-width: 515px;
    height: 100vh;

    background-image: url('/syahiraxashraf/assets/images/background1.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    z-index: -1;
    pointer-events: none;
}

.main-wrapper > * {
    position: relative;
    z-index: 1;
}


.logo-hover{
    transition:transform .4s ease, filter .4s ease;
    cursor:pointer;
}

.logo-hover:hover{
    transform:scale(1.1);
    filter:drop-shadow(0 8px 20px rgba(255,192,203,.6));
}


#navbar-menu{
    position: fixed !important;
    bottom: 0 !important;

    width: 100% !important;
    max-width: 515px !important;

    left: 50% !important;
    transform: translateX(-50%) !important;

    z-index: 1000 !important;

    background: #B88A7B !important;
}

/* ===================================
   MODAL BACKGROUND
=================================== */

.contact-modal{
    background: white;
    border:none;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

/* ===================================
   TITLE
=================================== */

.contact-title{
    text-align:center;
    color:#8b6f5c;
    font-weight:600;
    margin-bottom:15px;
}

/* ===================================
   ROW
=================================== */

.contact-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 0;
}

/* ===================================
   NAME
=================================== */

.contact-name{
    font-size:1rem;
    color:#5c4c42;
    font-weight:500;
}

/* ===================================
   ICON SECTION
=================================== */

.contact-actions{
    display:flex;
    align-items:center;
    gap:18px;
}

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

.phone-btn{
    color:#8b6f5c;
    font-size:1.3rem;
    text-decoration:none;
    transition:.3s;
}

.phone-btn:hover{
    transform:scale(1.15);
    color:#6f5849;
}

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

.whatsapp-btn{
    color:#25D366;
    font-size:2rem;
    text-decoration:none;
    transition:.3s;
}

.whatsapp-btn:hover{
    transform:scale(1.15);
}

/* ===================================
   BLUR BACKGROUND
=================================== */

.modal-backdrop.show{
    background:rgba(255,255,255,.15);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

/* ===================================
   EXTRA PREMIUM LOOK
=================================== */

.contact-modal hr{
    margin-top:10px;
    margin-bottom:15px;
    opacity:.2;
}


.calendar-card .btn-close{
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: block !important;
}

.calendar-card h2{
    text-align:center;
    color:#8b6f5c;
    margin-bottom:20px;
}


.calendar-card{
    background: white;
    max-width:420px;
    margin:auto;
    position: relative;

    padding:25px;
    border-radius:20px;

    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

.calendar-box{
    border:1px solid #ddd;
    border-radius:15px;
    overflow:hidden;
    margin:20px 0;
    
}

.calendar-header{
    display:flex;
    justify-content:space-between;
    padding:15px;
    font-weight:600;
    background:#fafafa;
}

.calendar-table{
    width:100%;
    border-collapse:collapse;
}

.calendar-table th,
.calendar-table td{
    padding:12px;
    text-align:center;
}

.selected{
    background:#c59d8a;
    color:white;
    border-radius:50%;
}


.calendar-btn{
    
    font-family:"Roboto", sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    display:flex;
    align-items:center;
    text-decoration:none;
    padding:15px;
    border:1px solid #ddd;
    border-radius:12px;
    margin-top:12px;
    color:#333;
}

.calendar-btn:hover{
    background:#f8f8f8;
}


.calendar-table{
    width:100%;
    border-collapse:collapse;
}

.calendar-table th{
    color:#777;
    padding:10px;
    font-size:.85rem;
}

.calendar-table td{
    padding:12px;
    text-align:center;
}

.selected-day{
    background:#c59d8a;
    color:white;
    border-radius:50%;
    width:35px;
    height:35px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:auto;
}

.calendar-card h3,
.calendar-card p {
    text-align: center;
}

.calendar-btn .fa-chevron-right{
    color:#b67d7d;
    font-size:14px;
}

/* Close Button */
.calendar-close{
    position:absolute;
    top:15px;
    right:20px;

    border:none;
    background:none;

    font-size:32px;
    color:#8b6f5c;

    cursor:pointer;
    z-index:99999;
    line-height:1;

    transition:all .3s ease;
}

.calendar-close:hover{
    opacity:1;
    transform:scale(1.15) rotate(90deg);
    color:#c9a28e;
}

/* Bootstrap Close */
.btn-close{
    opacity:.7;
    transition:all .3s ease;
}

.btn-close:hover{
    opacity:1;
    transform:scale(1.1);
}

/* Calendar Buttons */
.calendar-btn{
    display:flex;
    align-items:center;
    justify-content:space-between;

    width:100%;
    padding:16px 20px;
    margin-top:12px;

    border:none;
    border-radius:18px;

    background:linear-gradient(
        135deg,
        #fff8f6 0%,
        #f8ece7 100%
    );

    color:#8b6f5c;
    text-decoration:none;

    font-family:'Montserrat', sans-serif;
    font-size:15px;
    font-weight:600;

    box-shadow:0 4px 12px rgba(201,162,142,.15);
    transition:all .3s ease;
}

.calendar-btn:hover{
    background:linear-gradient(
        135deg,
        #c9a28e 0%,
        #b98e79 100%
    );

    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(201,162,142,.35);
}

.calendar-btn i{
    font-size:18px;
}

.calendar-btn span{
    flex:1;
    margin-left:12px;
    text-align:left;
}

#rsvpModal form {
    display:flex;
    flex-direction:column;
    gap:18px;
}

/* ===== Match Input Style ===== */

.choices{
    margin-bottom:18px;
}

.choices.is-focused .choices__inner,
.choices.is-open .choices__inner{
    border-color:#c9a28e !important;

    box-shadow:0 0 0 3px rgba(201,162,142,.15);
} 

.choices__inner{
    width:100% !important;
    min-height:auto !important;

    padding:15px !important;

    border:1px solid #ddd !important;
    border-radius:15px !important;

    background:#fff !important;

    font-size:15px !important;
    color:#666 !important;

    box-sizing:border-box !important;
}

.choices__list--single{
    padding:0 !important;
}

.choices[data-type*=select-one] .choices__inner{
    padding-bottom:15px !important;
}

.choices__placeholder{
    color:#999 !important;
    opacity:1 !important;
}

/* dropdown popup */

.choices__list--dropdown,
.choices__list[aria-expanded]{
    border:1px solid #ddd !important;
    border-radius:15px !important;

    margin-top:5px !important;

    background:#fff !important;

    overflow:hidden;
}

.choices__item--choice{
    padding:15px !important;
    font-size:15px !important;
}

.choices__item--choice:hover{
    background:#f8f8f8 !important;
}

.choices__item--selectable.is-highlighted{
    background:#f3f3f3 !important;
}

/* arrow */

.choices[data-type*=select-one]::after{
    border-color:#999 transparent transparent transparent !important;
    right:15px !important;
}

#rsvpModal select{
    width:100%;
    display:block;
    box-sizing:border-box;

    padding:15px;
    margin-bottom:18px;

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

    background:#fff;
    color:#666;
    font-size:15px;

    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
}

#rsvpModal .modal-body{
    position: relative;
}

#rsvpModal .contact-title{
    margin-bottom: 20px;
}

#rsvpModal .rsvp-close-btn{
    position: absolute;
    top: 15px;
    right: 15px;

    width: 36px;
    height: 36px;

    border: none;
    background: transparent;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 20px;
    line-height: 1;

    padding: 0;
    margin: 0;

    z-index: 9999;
}

#rsvpModal option{
    color:#333;
}

#rsvpModal input,
#rsvpModal select,
#rsvpModal textarea{
font-family:"Roboto", sans-serif !important;
width:100%;
padding:15px;
border:1px solid #ddd;
border-radius:15px;
background:#fff;
font-size:15px;
margin-bottom:18px;
color: #323334;
}


.rsvpModal button,
#rsvpModal button[type="submit"],
#rsvpModal .btn-submit {
    width: 100%;
    height: 40px;
    border: none;
    border-radius: 18px;
    background: #c9a28e;
    color: white;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.event-info{
    font-family:"Roboto", sans-serif;
    font-weight: 300;
    width:100%;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    margin:25px 0;
}

.location-buttons{
    display:flex;
    flex-direction:column;
    gap:15px;
    margin-top:25px;
}

.location-buttons a{
    width:100%;
    height:54px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    border-radius:999px;
    text-decoration:none;
    font-weight:600;
    font-size:16px;

    transition:.3s;
}

.btn-waze{
    background:#fff;
    color:#333;
    border:2px solid #d4b19d;
}

.btn-google{
    background:#1f2937;
    color:#fff;
}

.location-buttons a:hover{
    transform:translateY(-2px);
}

.section-divider{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    margin:50px 0;
    color:#c7a28d;
}

.section-divider span{
    width:200px;
    height:20px;
    border-top:2px solid rgba(199,162,141,.7);
    border-radius:100px;
}

.footer-divider span{
    width:50%;
    height:2px;
    background:#d4b19d;
    margin-top: 50px;
}

.footer-link{
    color:#8b6f5c;
    text-decoration:none;
    margin-bottom: 100px;
}

.footer-link:hover{
    color:#c9a28e;
}

.wish-section{
    margin-top:20px;
    margin-bottom:5px;
    text-align:center;
}

#wish-list{
    display:flex;
    flex-direction:column;
    gap:40px;
}

.wish-card{
    background: transparent;
    border-radius:20px;
    padding:-5px;
}

.wish-text{
    font-style:italic;
    font-family:Poppins-Extralight;
    font-weight:400;
    line-height:1.8;
    color:#555;
}

.wish-name{
    margin-top:2px;
    font-family:Poppins-Regular;
    color:#555;
    font-weight:500;
    text-transform: capitalize;
    
}
 
.countdown h3{
    margin-top: 50px !important;
}

.countdown {
    display: flex;
    justify-content: space-evenly;
    align-items: center;

    background: rgba(255,255,255,0.45);
    backdrop-filter: blur(12px);

    border: 1px solid rgba(201,170,150,.3);
    border-radius: 999px;

    padding: 18px 10px;
    margin: 20px auto;

    box-shadow:
        0 10px 30px rgba(0,0,0,.05),
        inset 0 1px 0 rgba(255,255,255,.7);
}

.countdown-item{
    flex:1;
    text-align:center;
    position:relative;
}

.countdown-item:not(:last-child)::after{
    content:'';
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:35px;
    background:rgba(201,170,150,.3);
}

.countdown-number{
    display:block;
    font-size:2rem;
    font-weight:600;
    color:#a9826e;
    line-height:1;
    font-family:'Cormorant Garamond', serif;
}

.countdown-label{
    display:block;
    margin-top:6px;

    font-size:.8rem;
    letter-spacing:2px;
    text-transform:uppercase;

    color:#8a776d;
}

#attendanceFields{
    display:none;
    animation:fadeSlide .3s ease;
    margin-bottom: 30px;
}

@keyframes fadeSlide{
    from{
        opacity:0;
        transform:translateY(-8px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}


#navbar-menu a,
#navbar-menu button,
#navbar-menu .nav-link{
    -webkit-tap-highlight-color: transparent;
    outline:none !important;
    box-shadow:none !important;
}

#navbar-menu a:focus,
#navbar-menu a:active,
#navbar-menu .nav-link:focus,
#navbar-menu .nav-link:active,
#navbar-menu .nav-link:focus-visible{
    outline:none !important;
    box-shadow:none !important;
}

.rsvp-btn-content {
    background: rgba(255,255,255,0.15);
    border: 2px solid #c9a27d;
    color: #8c5f4a;
    backdrop-filter: blur(5px);
    border-radius: 50px;
    padding: 5px 20px;
    font-size: 1.7rem;
    font-weight: 600;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08);
    transition: all .3s ease;
}

.rsvp-btn-content:hover {
    background: #c9a27d;
    color: white;
}

