body.product-order-open { overflow: hidden; }

.product-order-action { margin-top: 1.75rem; }
.catalog-price-request { width: min(100%, 12.5rem); margin-top: 1.25rem; }
.product-order-button,
.product-order-form__submit {
    display: flex; align-items: center; justify-content: center;
    width: min(100%, 15.625rem); min-height: 3.125rem;
    padding: .75rem 1.25rem; border-radius: .5rem;
    color: #fff; background: #9e0303; font-weight: 600;
    transition: background-color .2s ease, transform .2s ease;
}
.product-order-button:hover,
.product-order-form__submit:hover { background: #7f0202; }
.product-order-button:active,
.product-order-form__submit:active { transform: translateY(1px); }

.product-order-modal { position: fixed; inset: 0; z-index: 10000; display: none; padding: 1rem; }
.product-order-modal.is-open { display: grid; place-items: center; }
.product-order-modal__backdrop { position: absolute; inset: 0; background: rgba(14, 14, 54, .48); backdrop-filter: blur(3px); }
.product-order-modal__dialog {
    position: relative; z-index: 1; width: min(100%, 28rem); max-height: calc(100vh - 2rem);
    overflow-y: auto; padding: 2.5rem 4.5rem 2.75rem; background: #fff;
    border-radius: .75rem; box-shadow: 0 1.5rem 4rem rgba(14, 14, 54, .22);
    animation: product-order-in .2s ease;
}
.product-order-modal__dialog h2 { margin: 0; text-align: center; font-size: 1.5rem; font-weight: 600; }
.product-order-modal__product { margin: .75rem 0 0; color: #697ead; text-align: center; font-size: .875rem; }
.product-order-modal__close { position: absolute; top: 1rem; right: 1rem; width: 2rem; height: 2rem; }
.product-order-modal__close::before,
.product-order-modal__close::after { position: absolute; top: 50%; left: 50%; width: 1.4rem; height: 1px; background: #454e59; content: ''; }
.product-order-modal__close::before { transform: translate(-50%, -50%) rotate(45deg); }
.product-order-modal__close::after { transform: translate(-50%, -50%) rotate(-45deg); }

.product-order-form { display: flex; flex-direction: column; gap: 1.2rem; margin-top: 2rem; }
.product-order-form > label:not(.product-order-form__consent) { display: flex; flex-direction: column; gap: .4rem; color: #262673; font-size: .75rem; }
.product-order-form input[type='text'],
.product-order-form input[type='tel'],
.product-order-form input[type='email'] { width: 100%; height: 3rem; padding: 0 .8rem; border: 1px solid #d2dae5; border-radius: .4rem; color: #000; font-size: 1rem; }
.product-order-form input:focus { border-color: #697ead; box-shadow: 0 0 0 3px rgba(105, 126, 173, .12); }
.product-order-form__consent { display: grid; grid-template-columns: 1.1rem 1fr; gap: .8rem; align-items: start; color: #000; font-size: .875rem; line-height: 1.25; }
.product-order-form__consent input { width: 1.1rem; height: 1.1rem; margin-top: .1rem; accent-color: #262673; }
.product-order-form__consent a { text-decoration: underline; text-underline-offset: 2px; }
.product-order-form__status { min-height: 1.1rem; margin: -.2rem 0; text-align: center; font-size: .875rem; }
.product-order-form__status.is-success { color: #287a3b; }
.product-order-form__status.is-error { color: #9e0303; }
.product-order-form__submit { width: 100%; margin-top: .3rem; }
.product-order-form__submit:disabled { cursor: wait; opacity: .65; }

@keyframes product-order-in { from { opacity: 0; transform: translateY(.75rem) scale(.98); } to { opacity: 1; transform: none; } }
@media (max-width: 639px) {
    .product-order-button { width: 100%; }
    .product-order-modal__dialog { padding: 2.5rem 1.25rem 1.5rem; }
}
