/* RSVP Section Styling */
:root {
    /* 10% lighter toward white */
    --rsvp-base-light: color-mix(in srgb, var(--rsvp-base) 90%, white);
    /* 20% lighter for card */
    --rsvp-card-light: color-mix(in srgb, var(--rsvp-base) 80%, white);
}

.rsvp-section {
    position: relative;
    padding-bottom: 130px;
    padding-top: 40px;
    color: #103118;
    overflow: hidden; /* ensure forest clipping */
}

.rsvp-form {
    background: #FFFFFF;
    border: 1px solid #c6eccc;
    padding: 2rem 2.25rem;
    border-radius: 16px;
    box-shadow: 0 8px 24px -6px rgba(0, 0, 0, 0.35);
}

.rsvp-form input, .rsvp-form select, .rsvp-form textarea {
    background: #ffffff;
    border: 1px solid #b9d9bd;
    color: #133a1f;
}

.rsvp-form input:focus, .rsvp-form select:focus, .rsvp-form textarea:focus {
    box-shadow: 0 0 0 0.18rem rgba(90, 180, 110, 0.35);
    border-color: #3d9f55;
}

.btn-rsvp {
    background: linear-gradient(135deg, #55b433 0%, #85bd00 100%);
    color: #103118;
    padding: .75rem 2rem;
    font-weight: 600;
    border: none;
    border-radius: 50px;
    box-shadow: 0 6px 16px -4px rgba(0, 0, 0, 0.35);
    position: relative;
    overflow: hidden;
}

.btn-rsvp:hover { filter: brightness(1.08); box-shadow: 0 8px 22px -6px rgba(0, 0, 0, 0.4); }
.btn-rsvp:active { filter: brightness(0.95); transform: translateY(1px); }
.btn-rsvp:disabled { opacity: .55; cursor: not-allowed; }

.alert-success {
    background: #f0fff2;
    color: #103118;
    border: 1px solid #c6eccc;
    font-size: .9rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    border-radius: 10px;
}
.alert-success i { color: #3d9f55; font-size: 1.1rem; }
