/* Uborka Calculator — встраивается в существующий дизайн (yootheme/uikit) */
.ubc-calc{
    --ubc-main:#3cc5d7;
    --ubc-main-hover:#2fb0c1;
    --ubc-text:#2b2b2b;
    --ubc-muted:#8a8a8a;
    --ubc-border:#e5e5e5;
    --ubc-bg:#ffffff;
    --ubc-radius:8px;
    color:var(--ubc-text);
    font-family:inherit;
    max-width:640px;
    width:100%;
}
.ubc-calc *,
.ubc-calc *::before,
.ubc-calc *::after{box-sizing:border-box;}

.ubc-calc__inner{display:block;}
.ubc-calc__title{
    font-size:clamp(28px, 4vw, 44px);
    line-height:1.1;
    font-weight:700;
    margin:0 0 16px;
    color:#1f1f1f;
}

.ubc-calc__promo{
    margin-bottom:20px;
    font-size:14px;
}
.ubc-calc__promo-text{margin-bottom:4px;}
.ubc-calc__promo-code{font-weight:600;}
.ubc-calc__promo-code strong{color:var(--ubc-main);}
.ubc-calc__promo-code span{color:var(--ubc-main);margin:0 4px;}

.ubc-calc__guarantee{
    display:flex;
    align-items:center;
    gap:14px;
    margin:18px 0 26px;
}
.ubc-calc__guarantee-badge{
    width:54px;height:54px;
    border:2px solid #2b2b2b;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-weight:700;
    font-size:13px;
    flex-shrink:0;
}
.ubc-calc__guarantee ul{
    list-style:none;
    margin:0;padding:0;
    font-size:14px;
    line-height:1.45;
    color:#3a3a3a;
}

.ubc-field{margin-bottom:18px;}
.ubc-field__label{
    display:block;
    font-size:13px;
    color:var(--ubc-muted);
    margin-bottom:8px;
}

.ubc-areas{
    display:flex;
    flex-wrap:wrap;
    gap:0;
    border:1px solid var(--ubc-border);
    border-radius:var(--ubc-radius);
    overflow:hidden;
    background:#fff;
}
.ubc-area{
    flex:1 1 0;
    min-width:54px;
    padding:12px 8px;
    background:#fff;
    border:0;
    border-right:1px solid var(--ubc-border);
    font-size:15px;
    font-weight:500;
    color:var(--ubc-text);
    cursor:pointer;
    text-align:center;
    transition:background .15s, color .15s;
    font-family:inherit;
}
.ubc-area:last-child{border-right:0;}
.ubc-area:hover{background:#eafafc;}
.ubc-area.is-active{
    background:var(--ubc-main);
    color:#fff;
}
.ubc-area--custom{
    display:flex;align-items:center;justify-content:center;gap:4px;
    padding:0 10px;
    cursor:text;
}
.ubc-area__input{
    width:48px;
    border:0;
    border-bottom:1px solid #bbb;
    background:transparent;
    text-align:center;
    font:inherit;
    padding:6px 0;
    outline:none;
    -moz-appearance:textfield;
}
.ubc-area__input::-webkit-outer-spin-button,
.ubc-area__input::-webkit-inner-spin-button{ -webkit-appearance:none;margin:0;}
.ubc-area--custom span{color:var(--ubc-muted);font-size:13px;}

.ubc-select{position:relative;}
.ubc-select::after{
    content:"";
    position:absolute;
    right:14px;top:50%;
    width:8px;height:8px;
    border-right:2px solid #555;
    border-bottom:2px solid #555;
    transform:translateY(-70%) rotate(45deg);
    pointer-events:none;
}
.ubc-select__el{
    width:100%;
    padding:12px 36px 12px 14px;
    background:#fff;
    border:1px solid var(--ubc-border);
    border-radius:var(--ubc-radius);
    font:inherit;
    color:var(--ubc-text);
    appearance:none;
    -webkit-appearance:none;
    cursor:pointer;
    outline:none;
}
.ubc-select__el:focus{border-color:var(--ubc-main);}

.ubc-input{
    width:100%;
    padding:12px 14px;
    border:1px solid var(--ubc-border);
    border-radius:var(--ubc-radius);
    font:inherit;
    color:var(--ubc-text);
    background:#fff;
    outline:none;
}
.ubc-input:focus{border-color:var(--ubc-main);}

.ubc-promo-input{display:flex;flex-direction:column;gap:6px;}
.ubc-promo-status{font-size:13px;min-height:16px;}
.ubc-promo-status.is-ok{color:#15a06a;}
.ubc-promo-status.is-bad{color:#d36b00;}

.ubc-price-row{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin:24px 0 14px;
    padding-top:6px;
}
.ubc-price-row__label{font-size:24px;font-weight:700;}
.ubc-price-row__value{font-size:20px;font-weight:600;color:#1f1f1f;}
.ubc-price{font-weight:700;}
.ubc-currency{margin-left:2px;}

.ubc-btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:100%;
    padding:14px 22px;
    border:0;border-radius:var(--ubc-radius);
    font:inherit;font-weight:600;font-size:16px;
    cursor:pointer;
    transition:background .15s, opacity .15s;
    text-decoration:none;
    line-height:1.2;
    color:#fff;
    background:var(--ubc-main);
}
.ubc-btn--primary:hover,
.ubc-btn--secondary:hover{background:var(--ubc-main-hover);}
.ubc-btn:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- Попап ---------- */
.ubc-popup{
    position:fixed;inset:0;
    z-index:99999;
    display:flex;align-items:center;justify-content:center;
    padding:20px;
    --ubc-main:#3cc5d7;
    --ubc-main-hover:#2fb0c1;
    --ubc-border:#e5e5e5;
    --ubc-radius:8px;
    font-family:inherit;
}
.ubc-popup[hidden]{display:none;}
.ubc-popup *,
.ubc-popup *::before,
.ubc-popup *::after{box-sizing:border-box;}
.ubc-popup__overlay{
    position:absolute;inset:0;
    background:rgba(20,20,20,.45);
    cursor:pointer;
}
.ubc-popup__dialog{
    position:relative;
    background:#fff;
    border-radius:14px;
    width:100%;
    max-width:460px;
    max-height:92vh;
    overflow:auto;
    padding:30px 34px 26px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
    animation:ubc-pop .2s ease-out;
    color:#2b2b2b;
}
@keyframes ubc-pop{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.ubc-popup__close{
    position:absolute;top:10px;right:14px;
    background:transparent;border:0;
    font-size:30px;line-height:1;
    color:#999;cursor:pointer;
    padding:4px 8px;
    z-index:2;
}
.ubc-popup__close:hover{color:#333;}
.ubc-popup__icon{
    width:130px;height:90px;margin:0 auto 14px;
    background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 140'><ellipse cx='100' cy='115' rx='80' ry='10' fill='%23e6f8fb'/><circle cx='100' cy='65' r='52' fill='%23e6f8fb'/><path d='M70 110 Q70 70 95 70 L120 70 Q135 70 138 90 L138 115 Z' fill='%2386dbe6'/><circle cx='105' cy='52' r='14' fill='%23bfeef4'/><rect x='128' y='90' width='22' height='28' fill='%233cc5d7'/><path d='M70 30 l3 6 6 3 -6 3 -3 6 -3 -6 -6 -3 6 -3z' fill='%2386dbe6'/></svg>") center/contain no-repeat;
}
.ubc-popup__title{
    text-align:center;
    margin:0 0 22px;
    font-size:24px;
    font-weight:700;
    color:#1f2a33;
}

/* ---------- CF7 внутри попапа ---------- */
.ubc-popup .wpcf7{margin:0;}
.ubc-popup .ubc-cf7 p{margin:0;}
/* CF7 разделяет поля переносами <br>; гасим их и задаём отступы сами */
.ubc-popup .ubc-cf7 br{display:none;}
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap{display:block;margin-bottom:12px;}
/* скрытые служебные поля не занимают места */
.ubc-popup .ubc-cf7__hidden{display:none;}
.ubc-popup .ubc-cf7 input[type="hidden"]{display:none;}

/* красная «*» у обязательных полей (имя и телефон) */
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap[data-name="your-name"],
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap.your-phone{position:relative;}
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap[data-name="your-name"] input,
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap.your-phone input{padding-right:28px;}
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap[data-name="your-name"]::after,
.ubc-popup .ubc-cf7 .wpcf7-form-control-wrap.your-phone::after{
    content:"*";
    color:#e23b3b;
    position:absolute;
    top:12px;
    right:13px;
    font-size:18px;
    line-height:1;
    pointer-events:none;
}
.ubc-popup .wpcf7-form-control-wrap{display:block;}
.ubc-popup input.wpcf7-form-control:not([type=checkbox]):not([type=radio]):not([type=submit]){
    width:100%;
    padding:12px 14px;
    border:1px solid var(--ubc-border);
    border-radius:var(--ubc-radius);
    font:inherit;
    color:#2b2b2b;
    background:#fff;
    outline:none;
    line-height:1.3;
}
.ubc-popup input.wpcf7-form-control:focus{border-color:var(--ubc-main);}
.ubc-popup .wpcf7-form-control.wpcf7-acceptance{
    display:block;
    font-size:13px;
    line-height:1.4;
    color:#444;
    margin:6px 0;
}
.ubc-popup .wpcf7-list-item{margin:0;display:flex;align-items:flex-start;gap:8px;}
.ubc-popup .wpcf7-list-item input{margin-top:3px;flex-shrink:0;}
.ubc-popup .wpcf7-acceptance a{color:#444;text-decoration:underline;}
.ubc-popup input.wpcf7-submit{
    width:100%;
    margin-top:14px;
    padding:14px 22px;
    border:0;border-radius:var(--ubc-radius);
    background:var(--ubc-main);
    color:#fff;
    font:inherit;font-weight:600;font-size:16px;
    cursor:pointer;
    transition:background .15s;
}
.ubc-popup input.wpcf7-submit:hover{background:var(--ubc-main-hover);}
.ubc-popup input.wpcf7-submit:disabled{opacity:.5;cursor:not-allowed;}
.ubc-popup .wpcf7-spinner{margin:10px auto 0;display:block;}
.ubc-popup .wpcf7 form .wpcf7-response-output{
    margin:14px 0 0;
    padding:10px 12px;
    font-size:13px;
    border-radius:var(--ubc-radius);
}
.ubc-popup .wpcf7-not-valid-tip{font-size:12px;color:#d32f2f;margin-top:4px;}
.ubc-popup span.wpcf7-list-item-label{flex:1;}

.ubc-form__error{color:#d32f2f;font-size:14px;}

.ubc-popup__success{text-align:center;}
.ubc-popup__success p{margin:0 0 18px;color:#444;}

@media (max-width:520px){
    .ubc-areas{flex-wrap:wrap;}
    .ubc-area{flex:1 1 25%;border-bottom:1px solid var(--ubc-border);}
    .ubc-area--custom{flex:1 1 100%;}
    .ubc-popup__dialog{padding:28px 22px 24px;}
}
