/* Основные стили для страницы калькулятора */

.calc-title {
    margin-bottom: 0;
    line-height: 1;
}

.calc-title h1 {
    font-family: 'Stolzl', sans-serif;
    font-weight: 500;
    font-size: 2.8rem;
    margin: 0 0 38px 0;
}

.calc-container {
    display: flex;
    gap: 38px;
    margin-bottom: 38px;
}

.left-block {
    flex: 2;
    display: grid;
    gap: 38px;
}

/* --- Управление порядком секций в правой колонке --- */
#section-loaders { grid-area: loaders; }
#section-cost    { grid-area: cost; }

.right-block {
    flex: 1;
    display: grid;
    gap: 38px;
    grid-template-areas:
        "loaders"
        "cost";
}

.section-title {
    font-size: 1.4rem;
    margin: 0;
}

.route {
    display: flex;
    align-items: center;

}

.route input[type="text"] {
    flex: 1;
    padding: 14px 24px;
    font-family: 'Roboto', sans-serif;
    font-size: 1.2rem;
    background-color: #004D4D;
    color: #fff;
    border: 1px solid #fff;
}

.from-input {
    border-top-left-radius: 38px;
    border-bottom-left-radius: 38px;
    border-right: none !important;
}

.to-input {
    border-top-right-radius: 38px;
    border-bottom-right-radius: 38px;
    border-left: none !important;
}

.from-input::placeholder,
.to-input::placeholder {
    color: #fff; /* Замените на нужный вам цвет */
}

.delivery-conditions {
    display: flex;
    gap: 20px;
}

.condition {
    padding: 38px;
    border-radius: 38px;
    flex: 1;
    border: 1px solid #fff;
}
.condition:hover {
    opacity: 1;
}

.condition label {
    font-size: 1.4rem;
    color: #FFFFFF;
    margin-right: 10px;
    margin-bottom: 0;
    display: inline-block;
}

.condition input[type="radio"] {
    display: none;
}

.condition input[type="radio"] + label {
    position: relative;
    padding-left: 52px;
    cursor: pointer;
}

.condition input[type="radio"] + label:before {
    content: '';
    position: absolute;
    left: -14px;
    top: -14px;
    width: 44px;
    height: 44px;
    border: 2px solid #FFFFFF; /* Белая граница */
    border-radius: 50%;
    background: #004D4D; /* Цвет фона */
}

input[type="radio"]:checked + label:before {
    background: #1FA776; /* Цвет радиокнопки при выборе */
}

input[type="radio"]:hover + label:before {
    opacity: 0.8;
}

.condition p {
    margin: 24px 0 0 0;
    color: #B0C4C4;
    font-size: 1.2rem;
}

.price {
    font-weight: 700;
    font-size: 1.4rem;
    color: #fff !important;
}

/*  ------------------ Начало блока volume ------------------------ */

.volume {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.volume-scale-container {
    position: relative;
    width: 100%;
}

.top-scale {
    margin-bottom: 10px;
}

.bottom-scale {
    margin-top: 10px;
}

.volume-scale {
    display: flex;
    justify-content: space-between;
    font-size: 1.2rem;
}

.volume-slider-container {
    position: relative;
    width: 100%;
    height: 1px;
    background: #fff;
    border-radius: 38px;
}

.volume-slider-container-truck {
    display: flex;
    align-items: center;
    justify-content: right;
    width: 50%;
    height: 100%;
}

.slider-filled {
    position: absolute;
    top: 0;
    left: 0;
    height: 2px;
    width: 33.33%;
    background: #E27E03;
    border-radius: 38px;
}

.slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 2px;
    background: transparent;
    position: relative;
    z-index: 2;
}

.slider-thumb::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #FFFFFF;
    border: 2px solid #E27E03;
    cursor: pointer;
    position: relative;
    z-index: 3;
    transform: translateY(-28%);
}

.volume-label {
    text-align: center;
    color: #FFFFFF;
    margin: 48px 0 14px;
    padding: 38px;
    border-radius: 38px;
    border: 1px solid #fff;
}

.volume-label #value-data {
    font-size: 1.8rem;
    display: block;
}

.volume-label #volume-value {
    font-size: 2.4rem;
    font-weight: 700;
    display: block;
    margin: 14px 0 14px;
}

/* ---------------------Конец блока volume ---------------------- */

.loaders {
    display: flex;
    flex-direction: column;
    gap: 38px;
    padding: 38px;
    border-radius: 38px;
    border: 1px solid #FFFFFF;
}

.loader-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.loader-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.loader-label {
    font-size: 1.4rem;
}

.loader-description {
    font-size: 1.2rem;
    color: #B0C4C4;
}

.loader-count {
    font-size: 1.4rem;
    padding: 0 10px 0;
}

.loader-buttons {
    display: flex;
    align-items: center;
    gap: 5px;
}

.loader-buttons button {
    background-color: #FFFFFF;
    border: none;
    padding: 0; /* Убираем padding для лучшего центрирования */
    width: 50px;
    height: 50px;
    border-radius: 50%;
    cursor: pointer;
    font-family: 'Roboto', sans-serif;
    font-size: 1.6rem;
    color: #006666;
    display: flex;
    align-items: center;
    justify-content: center; /* Центрируем содержимое */
    line-height: 1; /* Добавляем line-height для лучшего выравнивания */
}

.loader-buttons button:hover {
    opacity: 0.8;
}

.cost {
    background-color: #FFE6B3;
    padding: 38px;
    border-radius: 38px;
    color: #004D4D;
}

.cost-value {
    display: flex;
    justify-content: space-between;
    align-item: center;
    margin: 0 0 14px;
}

.discount-price {
    font-size: 2.8rem;
    font-weight: 700;
}

.total-price {
    padding: 5px 0;
    font-size: 2.3rem;
    font-weight: 300;
}

.cost-detail-sum {
    margin-bottom: 14px;
}

.cost-detail {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    width: 100%; /* или фиксированная ширина */
    white-space: nowrap; /* Чтобы текст не переносился */
}

.dots {
    flex-grow: 1; /* Занимает оставшееся пространство */
    height: 1px;
    margin: 0 10px; /* Отступы между текстом и точками */
    background: repeating-linear-gradient(
        90deg,
        #004D4D 0,
        #004D4D 0,
        transparent 2px,
        transparent 4px
    ); /* Линия из точек */
}

.cost-description {
    color: #004D4D;
    margin: 14px 0 0;
}

.cost-description ul {
    padding-left: 16px;
    margin: 0;
}

.button-group {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* применяем те же стили к ссылкам */
.button-group a.btn,
.button-group button {
    display: block;
    text-align: center;
    text-decoration: none;

    background-color: #1FA776;
    color: #FFFFFF;
    padding: 15px;
    font-size: 1.2rem;
    border: none;
    border-radius: 38px;
    cursor: pointer;
    transition: opacity .2s ease;
}

/* серый вариант для второй */
.button-group a.btn.btn-secondary,
.button-group button:last-child {
    background-color: #D9D9D9;
    color: #1FA776;
}

.button-group a.btn:hover,
.button-group button:hover {
    opacity: 0.8;
}

.button-label {
    margin: 0;
    font-size: 0.8rem;
    text-align: center;
    color: var(--footer-text-color);
}

.calc-warning {
    margin: 0 0 76px;
    color: var(--footer-text-color);
}

/* Общие стили для мобильных и планшетов */
@media (max-width: 1200px) {

}

/* Мобильные устройства (портретная ориентация) */
@media (max-width: 767px) {

    .calc-title h1 {
        font-size: 2rem;
    }

    .calc-container {
        flex-direction: column;
        gap: 20px;
        margin-bottom: 28px;
    }

    .left-block,
    .right-block {
        width: 100%;
        flex: none;
    }

    .route {
        flex-direction: column;
        gap: 0;
        align-items: stretch;
    }

    .route input[type="text"] {
        border-right: 1px solid #fff !important;
        border-left: 1px solid #fff !important;
    }

    .from-input {
        border-radius: 38px 38px 0 0 !important;
        border-bottom: none !important;
    }

    .to-input {
        border-radius: 0 0 38px 38px !important;
        border-top: 0;
    }

    .delivery-conditions {
        flex-direction: column;
    }

    .volume-scale {
        font-size: 0.9rem;
    }

    .volume-label #value-data {
    font-size: 1.4rem;
    }

    .condition,
    .volume-label,
    .loaders,
    .cost {
        padding: 28px;
    }

    .right-block {
        grid-template-areas:
            "cost"
            "loaders";
    }

    .discount-price {
        font-size: 2.4rem;
    }

    .total-price {
        font-size: 2rem;
    }
}

/* Планшеты (портретная ориентация) */
@media (min-width: 768px) and (max-width: 1024px) {
    .calc-container {
        flex-direction: column;
        gap: 30px;
    }

    .left-block,
    .right-block {
        width: 100%;
        flex: none;
    }

    .delivery-conditions {
        flex-wrap: wrap;
    }

    .condition {
        flex: 1 1 45%;
        min-width: 300px;
    }

    .volume-label #volume-value {
        font-size: 2em;
    }
}