/* ORDER_CALENDAR: the project form surface, scoped to this landing. */
.wall-calendar-order-section {
    padding:0;
    background:#fff;
    color:var(--wc-text)
}

.wall-calendar-order-section__layout {
    grid-template-columns:minmax(0,46%) minmax(0,54%);
    gap:0;
    background:#f5f6f7
}

.wall-calendar-order-section__image {
    min-height:0;
    height:100%;
    object-fit:cover
}

.wall-calendar-order-section__content {
    min-width:0;
    padding:24px 32px
}

.wall-calendar-order-section h2 {
    font-size:28px;
    font-weight:600;
    margin-bottom:26px
}

.wall-calendar-order form {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 12px
}

.wall-calendar-order form > :not(.wall-calendar-order__upload) {
    grid-column:1/-1
}

.wall-calendar-order__message {
    grid-column:1/-1;
    min-width:0
}

.wall-calendar-order__field {
    min-width:0
}

.wall-calendar-order__field label {
    display:block;
    margin-bottom:6px;
    font-size:14px;
    color:#4a5966
}

.wall-calendar-order__field-label {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip-path:inset(50%);
    white-space:nowrap;
    border:0
}

.wall-calendar-order input[type="text"],.wall-calendar-order input[type="tel"],.wall-calendar-order input[type="email"] {
    box-sizing:border-box;
    height:52px;
    padding:14px 20px;
    border:1px solid #bfc5c9;
    color:#0a1015
}

.wall-calendar-order__upload {
    min-width:0
}

.wall-calendar-order__upload-button {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px;
    box-sizing:border-box;
    border:1px solid #79848e;
    background:#fff;
    color:#4a5966;
    text-align:center;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    cursor:pointer
}

.wall-calendar-order .wall-calendar-order__upload-button input[type="file"] {
    position:absolute;
    inset:0;
    opacity:0;
    width:100%;
    height:100%;
    min-height:48px;
    padding:0;
    cursor:pointer
}

.wall-calendar-order__selection {
    margin-top:6px;
    color:#4a5966;
    font-size:12px;
    line-height:1.4;
    overflow-wrap:anywhere
}

.wall-calendar-order__upload[data-file-state="selected"] .wall-calendar-order__upload-button {
    border-color:var(--wc-red)
}

.wall-calendar-order__upload[data-file-state="selected"] .wall-calendar-order__selection {
    color:#0a1015;
    font-weight:600
}

.wall-calendar-order__upload[data-file-state="removed"] .wall-calendar-order__selection {
    color:#4a5966
}

.wall-calendar-order__upload[data-file-state="error"] .wall-calendar-order__upload-button {
    border:2px solid #a8000a
}

.wall-calendar-order__upload[data-file-state="error"] .wall-calendar-order__selection {
    color:#a8000a;
    font-weight:600
}

.wall-calendar-order__remove {
    min-height:48px;
    margin-top:6px;
    padding:4px 0;
    border:0;
    background:transparent;
    color:#a8000a;
    text-decoration:underline;
    cursor:pointer
}

.wall-calendar-order__remove-dialog {
    position:fixed;
    inset:0;
    width:min(430px,calc(100% - 36px));
    max-height:calc(100% - 36px);
    margin:auto;
    padding:0;
    border:0;
    background:#fff;
    color:#0a1015;
    overflow:auto
}

.wall-calendar-order__remove-dialog::backdrop {
    background:rgb(10 16 21 / 55%)
}

.wall-calendar-order__remove-dialog-content {
    display:block;
    padding:30px
}

.wall-calendar-order__remove-dialog h3 {
    margin:0 0 12px;
    font-size:24px;
    line-height:1.25
}

.wall-calendar-order__remove-dialog p {
    margin:0;
    color:#4a5966;
    line-height:1.5
}

.wall-calendar-order__remove-actions {
    display:flex;
    justify-content:flex-end;
    gap:12px;
    margin-top:24px
}

.wall-calendar-order__remove-actions button {
    min-height:48px;
    padding:10px 20px;
    border:1px solid #79848e;
    background:#fff;
    color:#0a1015;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    cursor:pointer
}

.wall-calendar-order__remove-actions [data-wall-calendar-remove-confirm] {
    border-color:var(--wc-red);
    background:var(--wc-red);
    color:#fff
}

.wall-calendar-order__footer {
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px
}

.wall-calendar-order__consent {
    font-size:12px;
    color:#4a5966
}

.wall-calendar-order__consent input {
    flex:none;
    width:18px;
    height:18px;
    margin:2px 0;
    accent-color:var(--wc-red)
}

.wall-calendar-order__consent a {
    color:inherit
}

.wall-calendar-order button[type="submit"] {
    min-width:185px;
    background:var(--wc-red);
    border-color:var(--wc-red);
    color:#fff;
    font-size:12px;
    cursor:pointer
}

.wall-calendar-order [role="alert"] {
    min-height:2.1em;
    margin-top:5px;
    color:#a8000a;
    font-size:14px;
    line-height:1.4;
    overflow-wrap:anywhere
}

.wall-calendar-order [role="alert"]:empty {
    display:block
}

.wall-calendar-order__message:empty {
    display:none
}

.wall-calendar-order__message {
    line-height:1.5
}

.wall-calendar-order [aria-invalid="true"] {
    border:2px solid #a8000a!important
}

.wall-calendar-order :is(input[type="text"],input[type="tel"],input[type="email"]):focus-visible {
    border-color:#0a1015!important;
    outline:0;
    box-shadow:none
}

.wall-calendar-order :is(input,button,a):focus-visible,.wall-calendar-order__upload-button:focus-within,.wall-calendar-order__message:focus,.wall-calendar-order__success:focus {
    outline:3px solid #0a1015;
    outline-offset:3px
}

.wall-calendar-order [hidden] {
    display:none!important
}


@media(width <= 1210px) {
    .wall-calendar-order-section__content {
    padding:24px 32px
}

.wall-calendar-order__footer {
    grid-template-columns:1fr
}

.wall-calendar-order button[type="submit"] {
    justify-self:start
}

}


@media(width <= 1024px) {
    .wall-calendar-order-section__layout {
    grid-template-columns:minmax(0,40%) minmax(0,60%)
}

.wall-calendar-order-section__image {
    max-height:none
}

}


@media(width <= 640px) {
    .wall-calendar-order-section__layout {
    grid-template-columns:minmax(0,1fr)
}

.wall-calendar-order-section__image {
    height:280px
}

.wall-calendar-order-section__content {
    padding:20px 16px
}

.wall-calendar-order input[type="text"],.wall-calendar-order input[type="tel"],.wall-calendar-order input[type="email"] {
    height:50px;
    padding:13px 16px
}

.wall-calendar-order form {
    grid-template-columns:repeat(2,minmax(0,1fr))
}

.wall-calendar-order form > :not(.wall-calendar-order__upload) {
    grid-column:1/-1!important
}

.wall-calendar-order form > .wall-calendar-order__upload {
    grid-column:auto!important
}

.wall-calendar-order button[type="submit"] {
    width:100%;
    min-width:0
}

.wall-calendar-order__remove-dialog-content {
    padding:24px 18px
}

.wall-calendar-order__remove-actions {
    flex-direction:column-reverse
}

.wall-calendar-order__remove-actions button {
    width:100%
}

}
