/* Base styles for the rsvpress form */
.rsvpress {
    margin: 20px 0;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.rsvpress label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
}

.rsvpress input[type="text"],
.rsvpress input[type="email"],
.rsvpress input[type="url"],
.rsvpress input[type="tel"],
.rsvpress input[type="number"],
.rsvpress input[type="password"],
.rsvpress select,
.rsvpress textarea {
    width: 100%;
    padding: 10px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 3px;
    box-sizing: border-box;
}

.rsvpress input[type="radio"],
.rsvpress input[type="checkbox"] {
    margin-right: 10px;
}

.rsvpress input[type="radio"] + label,
.rsvpress input[type="checkbox"] + label {
    display: inline-block;
    margin-right: 20px;
    font-weight: normal;
}

.rsvpress input[type="submit"] {
    display: block;
    margin: auto;
    transition: background-color 0.3s;
}

.rsvpress p {
    margin-bottom: 15px;
}

.rsvpress h1,
.rsvpress h2 {
    text-align: center;
}

.rsvpress h4 {
    margin-top: 20px;
    margin-bottom: 10px;
    font-size: 1.25em;
    border-bottom: 1px solid #ddd;
    padding-bottom: 5px;
}

.rsvpress h5 {
    text-align: center;
}

.rsvpress__grid {
    display: flex;
    flex-wrap: wrap;
    column-gap: 15px;
}

.rsvpress__grid input {
    flex: 1 1 calc(50% - 15px);
    box-sizing: border-box;
}

@media (max-width: 500px) {
    .rsvpress__grid input {
        flex: 1 1 100%;
    }
}

.rsvpress__alert {
    margin-bottom: 15px;
    padding: 10px;
    border: 1px solid black;
    background-color: #eee;
    color: black;
    border-radius: 3px;
}

.rsvpress__alert--warning {
    border-color: #f0ad4e;
    background-color: #fcf8e3;
    color: #8a6d3b;
}

.rsvpress__alert--success {
    border-color: #5cb85c;
    background-color: #dff0d8;
    color: #3c763d;
}

.rsvpress__alert--error {
    border-color: #d9534f;
    background-color: #f2dede;
    color: #a94442;
}

.rsvpress__alert--info {
    border-color: #5bc0de;
    background-color: #d9edf7;
    color: #31708f;
}


.rsvpress__alert--required {
    margin-bottom: inherit;
    padding: inherit;
    border: none;
    background: none;
    color: red;
    font-size: 0.75em;
    font-weight: bold;
}