
/*==================================================
        RSVP PAGE
        Irene & Johannes Wedding
==================================================*/

/*==================================================
        ROOT VARIABLES
==================================================*/






:root {
    --burgundy: #4e0010;
    --card: rgba(255,255,255,.05);
    --gold: #d4af37;
    --gold-dark: #b78a52;
    --text: #f6e9dd;
    --muted: #d4c1b8;
}

/*==================================================
        HEADER
==================================================*/


.rsvp-title {
    font-family: 'Cormorant Garamond',serif;
    font-size: 68px;
    color: #f4e6d3;
    text-align: center;
    margin-bottom: 10px;
}

.rsvp-subtitle {
    text-align: center;
    color: #d9c6b0;
    font-size: 18px;
    margin-bottom: 50px;
}


/*==================================================
        PAGE LAYOUT
==================================================*/

.rsvp-section {
    min-height: 100vh;
    background: var(--burgundy);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 100px 20px;
}

/*==================================================
        RSVP CARD
==================================================*/

.rsvp-wrapper {
    width: 100%;
    max-width: 900px;
}

.rsvp-card {
    width: min(860px,95%);
    margin: auto;
    padding: 55px;
    border-radius: 28px;
    background: var(--card);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(212,175,55,.25);
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
    color: var(--text);
    animation: fadeUp .8s ease;
}
    .rsvp-card h1 {
        text-align: center;
        font-size: 56px;
        font-family: 'Cormorant Garamond',serif;
        color: var(--text);
        margin-bottom: 10px;
    }

    .rsvp-card p {
        text-align: center;
        color: var(--muted);
        margin-bottom: 40px;
        font-style: italic;
    }

    .form-group label {
        display: block;
        margin-bottom: 10px;
        color: var(--gold);
        letter-spacing: 1px;
    }

    .form-group input,
    .form-group textarea {
        width: 100%;
        padding: 15px 18px;
        background: rgba(255,255,255,.06);
        border: 1px solid rgba(201,164,93,.25);
        border-radius: 14px;
        color: white;
        font-size: 16px;
        transition: .35s;
    }

    .form-group textarea {
        min-height: 140px;
        resize: vertical;
    }

        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: var(--gold);
            box-shadow: 0 0 0 4px rgba(201,164,93,.15), 0 0 20px rgba(201,164,93,.25);
            transform: translateY(-2px);
        }


    button[type=submit]:hover {
        transform: translateY(-4px);
        box-shadow: 0 20px 35px rgba(0,0,0,.35);
    }

@keyframes fadeUp {

    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.rsvp-intro {
    text-align: center;
    margin-bottom: 45px;
}

.invite-text {
    font-size: 1.15rem;
    color: #f8e7d2;
    line-height: 1.8;
    margin-bottom: 25px;
}

.note {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(212,175,55,.3);
    border-radius: 18px;
    padding: 18px 24px;
    color: #dbc7b2;
    line-height: 1.7;
}

.form-group {
    margin-bottom: 38px;
}

    .form-group label {
        display: block;
        margin-bottom: 10px;
        color: #e7d4c1;
        letter-spacing: .05em;
    }

    .form-group input,
    .form-group textarea {
        width: 100%;
        padding: 16px 18px;
        background: rgba(255,255,255,.04);
        border: 1px solid rgba(212,175,55,.25);
        border-radius: 14px;
        color: white;
        font-size: 1rem;
        transition: .35s;
    }

        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: #d4af37;
            box-shadow: 0 0 20px rgba(212,175,55,.18);
        }

textarea {
    min-height: 140px;
    resize: vertical;
}

.submit-button {
    width: 100%;
    padding: 18px;
    margin-top: 20px;
    border: none;
    border-radius: 50px;
    background: linear-gradient(135deg,#d4af37,#b8860b);
    color: #3d0b13;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: .4s;
}


    .submit-button:hover {
        transform: translateY(-5px);
        box-shadow: 0 18px 40px rgba(212,175,55,.45);
    }

/*==================================================
        DIVIDER
==================================================*/

.divider {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 45px auto;
}

    .divider::before,
    .divider::after {
        content: "";
        flex: 1;
        height: 1px;
        background: rgba(212,175,55,.55);
    }

    .divider span {
        color: var(--gold);
        font-size: 20px;
        margin: 0 18px;
    }

/*==================================================
        ATTENDANCE OPTIONS
==================================================*/

.attendance-card input {
    display: none;
}

.attendance-options {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 15px;
}

.attendance-card {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(212,175,55,.22);
    border-radius: 18px;
    background: rgba(255,255,255,.02);
    cursor: pointer;
    transition: .35s;
}

    .attendance-card:hover {
        border-color: #d4af37;
        background: rgba(212,175,55,.06);
        transform: translateY(-3px);
    }

.custom-radio {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid #d4af37;
    position: relative;
    flex-shrink: 0;
}

    .custom-radio::after {
        content: "";
        position: absolute;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: #d4af37;
        top: 50%;
        left: 50%;
        transform: translate(-50%,-50%) scale(0);
        transition: .25s;
    }

.attendance-card input:checked + .custom-radio::after {
    transform: translate(-50%,-50%) scale(1);
}

.attendance-card:has(input:checked) {
    border-color: #d4af37;
    background: rgba(212,175,55,.08);
    box-shadow: 0 0 18px rgba(212,175,55,.18);
}

.attendance-text {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

    .attendance-text strong {
        font-size: 1.1rem;
        color: #f8e9db;
    }

    .attendance-text small {
        color: #d6bfb8;
        font-size: .92rem;
    }




/*==================================================
        RESPONSIVE
==================================================*/

@media (max-width:768px) {

    .rsvp-card {
        width: 96%;
        padding: 28px;
        border-radius: 20px;
    }

        .rsvp-card h1 {
            font-size: 3.2rem;
        }

    .divider span {
        font-size: 18px;
    }
}


/*==================================================
        Another RSVP Link
==================================================*/


.another-rsvp-link {
    color: #d4af37;
    font-weight: 700;
    text-decoration: none;
    transition: .3s;
}

    .another-rsvp-link:hover {
        color: #f6d878;
        text-decoration: underline;
    }