.hidden {
    display: none;
}


.parsley-error {
    background-color: transparent !important;
    border-color: #ff5b57 !important;
    color: var(--app-component-color) !important
}

.parsley-error:focus {
    border-color: #ff5b57 !important;
    outline: 0;
    box-shadow: 0 0 0 .25rem rgba(255, 91, 87, .3) !important
}

.parsley-success {
    background-color: transparent !important;
    border-color: #00acac !important;
    color: var(--app-component-color) !important
}

.parsley-success:focus {
    border-color: #00acac !important;
    outline: 0;
    box-shadow: 0 0 0 .25rem rgba(0, 172, 172, .3) !important
}

/* Подсветка ошибок/успеха для Select2.
   DOM: <select.parsley-error> + <ul.parsley-errors-list> + <span.select2-container>…
   Поэтому используем общий сосед (~), а не только +. */
.form-item select.parsley-error ~ .select2.select2-container--default .select2-selection--single {
    border-color: #ff5b57 !important;
}

.form-item select.parsley-success ~ .select2.select2-container--default .select2-selection--single {
    border-color: #00acac !important;
}

.parsley-errors-list {
    padding: 0 !important;
    list-style-type: none !important;
    margin: 0 !important;
    color: #ff5b57;
    font-size: .75rem !important;
    line-height: inherit !important
}

.parsley-errors-list.filled {
    margin-top: .46875rem !important
}

/* Располагать текст ошибки Parsley под полем (в т.ч. под Select2):
   делаем form-item колонкой и принудительно рендерим список ошибок после инпута */
.form-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.form-item .parsley-errors-list {
    order: 2;
}


/* кнопка наверх */
.back-to-top {
    position: fixed;
    bottom: 60px;
    right: 10px;
    display: none;
    padding: 10px;
    cursor: pointer;
    z-index: 1000;
}
.back-to-top:hover {
    text-decoration: none;
}

.detail-price-label {
    margin-bottom: 10px;
    font-size: 16px;
}

.form-login {
    background-color: white;
    padding: 30px;
}

.input-form {
    width: 45%;
    margin-right: 30px;
}

.disabled {
    cursor: not-allowed;
    opacity: 50%;
}

.text-left{
    text-align: left;
}

.reliably-list{
    justify-content: space-between;
}

.help-order .form-item, .feedback-order-form .form-item{
    color: black;
}

.help-order .parsley-error, .feedback-order-form .parsley-error, .subs-form .parsley-error{
    background-color: white !important;
}

.help-order .parsley-success, .feedback-order-form .parsley-success, .subs-form .parsley-success{
    background-color: white !important;
}

.concent-checkbox .parsley-error{
    background-color: transparent !important;
}

.concent-checkbox .parsley-success{
    background-color: transparent !important;
}

.ui-tooltip.ui-corner-all.ui-widget-shadow.ui-widget.ui-widget-content{
    display: none !important;
}

.list-program-schedule{
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
}

.all-images__button {
    cursor: pointer;
    text-decoration: none;
    color: var(--prime-blue);
    transition: all 300ms ease;
}

.feedback-order[type=checkbox], .subscribe-order[type=checkbox]{
    width: 32px;
    height: 32px;
}

/* Кастомный большой чекбокс в блоках с согласием (.concent-checkbox) */
.concent-checkbox .checkbox {
    position: relative;
    display: flex;
    align-items: center; /* выравниваем текст по центру чекбокса */
}

.concent-checkbox .checkbox input[type=checkbox]{
    position: absolute;
    left: 0;
    top: 0;
    width: 32px;
    height: 32px;
    margin: 0;
    opacity: 0; /* прячем нативный чекбокс, кликаем по нему через label */
    cursor: pointer;
}

.concent-checkbox .checkbox label{
    position: relative;
    padding-left: 42px; /* место под квадрат 32px + отступ */
    line-height: 1.4;
}

.concent-checkbox .checkbox label::before{
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%); /* центрируем квадрат по высоте */
    width: 32px;
    height: 32px;
    border-radius: 4px;
    border: 1px solid #dfdfdf;
    background-color: #fff;
    box-sizing: border-box;
}

.concent-checkbox .checkbox input[type=checkbox]:checked + label::before{
    background-color: var(--prime-blue);
    border-color: var(--prime-blue);
}

.concent-checkbox .checkbox.parsley-error label::before{
    box-shadow: 0 0 0 2px #ff5b57;
}

/* Галочка внутри квадрата */
.concent-checkbox .checkbox label::after{
    content: '';
    position: absolute;
    left: 16px;              /* центр относительно квадрата 32px */
    top: 45%;
    width: 9px;
    height: 16px;
    border: 3px solid #fff;
    border-top: none;
    border-left: none;
    transform: translate(-50%, -50%) rotate(45deg); /* центрируем галочку внутри квадрата */
    opacity: 0;
    pointer-events: none;
}

.concent-checkbox .checkbox input[type=checkbox]:checked + label::after{
    opacity: 1;
}

/* На ширине <768px уменьшаем чекбокс до 20x20 (на больших экранах остаётся 32x32) */
@media (max-width: 767.98px) {
    .feedback-order[type=checkbox], .subscribe-order[type=checkbox]{
        width: 20px;
        height: 20px;
    }

    .concent-checkbox .checkbox input[type=checkbox]{
        width: 20px;
        height: 20px;
    }

    .concent-checkbox .checkbox label{
        padding-left: 30px; /* 20px квадрат + 10px отступ */
    }

    .concent-checkbox .checkbox label::before{
        width: 20px;
        height: 20px;
    }

    .concent-checkbox .checkbox label::after{
        left: 10px;          /* центр относительно квадрата 20px */
        top: 50%;
        width: 6px;
        height: 11px;
        border-width: 2px;
        transform: translate(-50%, -50%) rotate(45deg);
    }
}

.mt-2{
    margin-top: .5rem;
}

.mt-30px{
    margin-top: 30px;
}

.w-100{
    width: 100%;
}

.p-0{
    padding: 0;
}

.align-items-stretch{
    align-items: stretch;
}

.align-items-center{
    align-items: center;
}

.section-help{
    width: 100%;
}

.page-reviews .subs, .page-promo .subs, .page-news .subs, .page-agency .subs, .page-faq .subs, .page-group .subs, .about-page .subs, .view-hotel .subs{
    /*padding-top: 80px;*/
}

.page-promo .article-content, .page-news .article-content {
    padding-right: 0;
}

.article-list-show{
    gap: 40px;
}

.text-center{
    text-align: center !important;
}

.iti--allow-dropdown .iti__country-container:not(:has(+ input[disabled])):not(:has(+ input[readonly])) button.iti__selected-country, .iti__selected-country-primary {
    border-top-left-radius: 24px;
    border-bottom-left-radius: 24px;
}

.iti__search-input{
    padding: 0 25px !important;
}

.feedback-order-form .concent-checkbox{
    padding-left: 6px;
}

.feedback-order-form .form-steps{
    padding-left: 6px;
}

.iti .iti__selected-dial-code{
    font-size: 18px !important;
    color: var(--colors-30) !important;
}

.booking-form-select-tour__wrapper[data-selected] .select2-selection--single::after {
    content: "Лагерь";
    display: block;
    position: absolute;
    top: 7px;
    font-size: 13px;
    color: #4D4D4D;
}

@media (max-width: 768px) {
    .booking-form-select-tour__wrapper[data-selected] .select2-selection--single::after {
        font-size: 11px;
        top: 3px;
    }

}

.group-book-form {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 20px;
}

.group-book-form .button {
    margin-top: 0;
    flex-shrink: 0;
}

.group-book-form .continue {
    flex: 1;
    min-width: 0;
}

.group-book-form .concent-checkbox .checkbox {
    margin-top: 0;
}

@media (max-width: 767.98px) {
    .group-book-form {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        padding: 0 6px;
    }

    .group-book-form .button {
        width: 100%;
        order: 2;
        padding: 0;
        margin: 0;
    }

    .group-book-form .continue {
        flex: none;
        order: 1;
    }
}

.catalog-content .tour:last-child{
    margin-bottom: 0;
}

.flex-row{
    flex-direction: row !important;
}

.flex-nowrap{
    flex-wrap: nowrap !important;
}