/* ======================================= */
/* POPUP */
/* ======================================= */

.site-popup{
    display: none;
    
    position: fixed;
    left: 0;
    top: 0;
    
    width: 100%;
    height: 100%;
    
    overflow: auto;
    
    background-color: rgba(0,0,0,0.8);
    z-index: 500;
    
    box-sizing: border-box;
    
    opacity: 0;
    transition: opacity 0.25s ease-in-out;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.admin-bar .site-popup{
    top: 32px;
    height: calc(100% - 32px);
}

@media screen and (max-width: 782px){
    .admin-bar .site-popup{
        top: 46px;
        height: calc(100% - 46px);
    }
}

.site-popup.active{
    display: block;
}

.site-popup.visible{
    opacity: 1;
}

.inside-popup{
    display: none;
    
    opacity: 0;
    transform: translateY(30px) translateZ(0);
    -webkit-transform: translateY(30px) translateZ(0);
    transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out;
}

.inside-popup.active{
    display: block;
}

.inside-popup.visible{
    opacity: 1;
    transform: translateY(0) translateZ(0);
    -webkit-transform: translateY(0) translateZ(0);
}

.site-popup-inside{
    display: -webkit-flex;
    display: flex;
    
    min-height: 100%;
    width: 100%;
    padding: 40px 20px;
    
    box-sizing: border-box;
}

.inside-popup{
    margin: auto;    
}

.close-popup{
    position: absolute;
    right: 16px;
    top: 16px;
    
    padding: 10px;
    
    z-index: 1;
    
    cursor: pointer;
}

.close-popup:active{
    transform: scale(0.96);    
}

.close-popup-icon{
    width: 20px;
    height: 20px;
}

.close-popup-icon.line{
    fill: var(--common);
}

@media screen and (min-width: 1025px){
    .close-popup-icon.line{
        transition: all var(--dur) ease-in-out;
    }
    
    .close-popup:hover .close-popup-icon.line{
        fill: var(--primary);
    }
}

/* popup form */
.form-popup{    
    max-width: 870px;
    width: calc(100vw - 40px);
    
    border-radius: 16px;
    background-color: var(--light);
    
    overflow: hidden;
}

.form-popup__inside{
    padding: 36px 40px 50px 26px;
}

.form-popup__object{
    transition: all var(--dur) ease-in-out;
}

.form-popup.sent .form-popup__object{
    opacity: 0;
    pointer-events: none;
}

.form-popup__preview{
    min-width: 55.59701492537313%;
    max-width: 55.59701492537313%;
    margin-right: 38px;
}

.form-popup__logo{
    width: 227px;
    margin: 0 auto;
    
    background-color: var(--p-border);
}

.popup-logo{
    display: block;
    
    background: url("../images/black-logo.svg") center center / 100% no-repeat;
}

.popup-logo:before{
    content: "";
    
    display: block;
    padding-top: 17.62114537444934%;
}

.form-popup__body{
    display: flex;
}

.form-popup__text{
    font-size: 16px;
    line-height: 1.5;    
}

@media screen and (max-width: 1023px){
    .form-popup__preview{
        min-width: 50%;
        max-width: 50%;
    }
}

@media screen and (max-width: 767px){
    .form-popup{
        max-width: 400px;
        
        border-radius: 8px;
    }
    
    .form-popup__inside{
        padding: 40px 24px 32px;
    }
    
    .form-popup__body{
        display: block;
    }
    
    .form-popup__preview{
        display: none;
    }
    
    .form-popup .common-subtitle{
        text-align: center;
    }
}

/* ======================================= */
/* FORM */
/* ======================================= */
.form-row{
    padding-top: 16px;
}

.form-label{
    display: block;
    
    font: 400 14px/1.3 var(--font);
}

.required-icon{
    color: var(--warning);
}

.form-field-wrap{
    position: relative;
    display: block;
    
    padding-top: 8px;
}

.form-field{
    display: block;
    
    color: var(--common);
    font: 400 14px/1.3 var(--font);
    
    width: 100%;
    padding: 10px;
    
    border: 1px solid var(--gray);
    border-radius: 3px;
    background: transparent;
    
    box-sizing: border-box;
    
    outline: none;
    
    transition: border var(--dur) ease-in-out;
}

.form-field:focus{
    border-color: var(--primary);
}

.form-button-row{
    line-height: 0;
    
    padding-top: 55px;
}

.wpcf7 br{
    display: none;
}

.wpcf7-not-valid-tip{
    position: absolute;
    left: 0;
    top: 100%;
    
    color: var(--warning);
    font-size: 11px;
    
}

.screen-reader-response,
.wpcf7-response-output{
    display: none;
}

.wpcf7-form:before{
    content: "";
    
    position: absolute;
    left: 50%;
    top: 100%;
    
    margin: 10px 0 0 -14px;
    
    width: 24px;
    height: 24px;
    
    border-radius: 50%;
    border: 2px solid var(--common);
    border-left-color: var(--light);
    
    opacity: 0;
    transition: opacity 0.05s ease-in-out;
    
    box-sizing: border-box;
    
    z-index: 10;
}

.wpcf7-form.submitting > div{
    opacity: 0.7;
    pointer-events: none;
}

.wpcf7-form.submitting:before{
    opacity: 1;
    animation: loading 0.8s linear infinite;
}

@keyframes loading{
    0%{
        transform: rotate(0deg);
    }
    
    100%{
        transform: rotate(360deg);
    }
}

@keyframes showing{
    0%{
        opacity: 0;
    }
    
    100%{
        opacity: 1;
    }
}

.wpcf7-form{
    position: relative;
}

.wpcf7-form.sent .wpcf7-response-output{
    display: none;
}

.wpcf7-form-control.hidden{
    position: absolute;
    left: -100vw;
    top: 0;
    
    font-size: 0;
    line-height: 0;
    
    width: 0;
    height: 0;
    padding: 0;
    
    border: none;
    background: none;
    
    opacity: 0;
    visibility: hidden;
}

.agree-row{
    padding-top: 9px;
}

.agree-row a{
    display: inline-block;
    
    color: var(--primary);
    
    text-decoration: underline;
}

@media screen and (min-width: 1025px){
    .agree-row a:hover{
        text-decoration: none;
    }
}

.checkbox-label label{
    cursor: pointer;
}

.checkbox-label .wpcf7-list-item-label{
    position: relative;
    
    display: inline-block;
    
    font: 400 12px/1.25 var(--font);
    
    padding: 4px 0 4px 24px;
}

.checkbox-label input{
    position: absolute;
    opacity: 0;
}

.checkbox-label .wpcf7-list-item-label:before{
    content: "";
    
    position: absolute;
    left: 0;
    top: 3px;
    
    width: 16px;
    height: 16px;
    
    border: 1px solid var(--gray);
    border-radius: 2px;
    
    transition: all var(--dur) ease-in-out;
    
    box-sizing: border-box;
    
    z-index: 1;
}

.checkbox-label input:checked + .wpcf7-list-item-label:before{
    border-color: transparent;
    background: url("../images/icons/checked.svg") center center / 16px no-repeat var(--primary);
}


@media screen and (max-width: 1024px){
    .form-button-row{
        padding-top: 32px;
    }
}

@media screen and (max-width: 767px){
    .wpcf7-form.sent .wpcf7-response-output{
        padding: 20px 32px;
    }
}

.wpcf7 .wpcf7-submit:disabled{
    cursor: not-allowed;
}

@media screen and (max-width: 767px){
    .agree-row{
        padding-top: 14px;
    }
    
    .wpcf7-form:before{
        width: 22px;
        height: 22px;
        margin: 4px 0 0 -13px;
    }
}