.ups-reservation-wrap {
    max-width: 760px;
    margin: 24px auto 48px;
    padding: 0 16px;
    box-sizing: border-box;
}

.ups-reservation-intro,
.ups-reservation-note,
.ups-reservation-policy {
    line-height: 1.8;
}

.ups-reservation-form {
    margin-top: 24px;
}

.ups-reservation-field {
    margin-bottom: 22px;
}

.ups-reservation-field label,
.ups-reservation-dates legend {
    display: block;
    margin-bottom: 8px;
    font-weight: 700;
}

.ups-reservation-field input,
.ups-reservation-field textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    border: 1px solid #bbb;
    border-radius: 6px;
    background: #fff;
    font: inherit;
}

.ups-reservation-field input:focus,
.ups-reservation-field textarea:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.ups-reservation-dates {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid #ccc;
    border-radius: 8px;
}

.ups-required,
.ups-optional {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 400;
}

.ups-required {
    border: 1px solid currentColor;
}

.ups-optional {
    opacity: .7;
}

.ups-reservation-submit {
    display: block;
    width: 100%;
    margin: 24px 0 12px;
    padding: 16px 20px;
    border: 0;
    border-radius: 7px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.ups-reservation-error {
    margin-bottom: 20px;
    padding: 14px;
    border: 2px solid currentColor;
    border-radius: 6px;
}

.ups-reservation-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.ups-reservation-thanks {
    max-width: 760px;
    margin: 30px auto 50px;
    padding: 24px;
    box-sizing: border-box;
}

@media (max-width: 640px) {
    .ups-reservation-wrap {
        padding: 0 12px;
    }

    .ups-reservation-dates {
        padding: 14px;
    }
}
