.lrt-school-page {
    --lrt-blue-1: #0f4eb3;
    --lrt-blue-2: #2f7af7;
    --lrt-blue-3: #0b3f95;
    --lrt-bg: #eef4fb;
    --lrt-card: #ffffff;
    --lrt-border: #dbe6f5;
    --lrt-text: #213b67;
    --lrt-text-soft: #6f86ab;
    --lrt-danger: #e35757;
    --lrt-shadow: 0 10px 30px rgba(20, 62, 126, 0.08);

    background: linear-gradient(180deg, #edf4fb 0%, #f7faff 100%);
    padding-bottom: 40px;
}

.lrt-school-container {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

.lrt-school-hero {
    min-height: 450px;
    background:
            linear-gradient(90deg, #0a3a82 0%, rgba(22,94,207,.86) 40%, rgba(22,94,207,.25) 65%, rgba(22,94,207,0) 100%),
            url("/bitrix/templates/transcard_main/img/lrt-banner-v3-min.png") right center / cover no-repeat;
    border-bottom: 1px solid rgba(255,255,255,.2);
}

.lrt-school-hero__inner {
    min-height: 450px;
    display: flex;
    align-items: center;
}

.lrt-school-hero__content {
    color: #fff;
    max-width: 700px;
}

.lrt-school-hero__title {
    margin: 0 0 14px;
    font-size: 42px;
    line-height: 1.1;
    font-weight: 800;
    color: #fff;
}

.lrt-school-hero__desc {
    font-size: 18px;
    line-height: 1.45;
    color: rgba(255,255,255,.92);
}

.lrt-school-steps-wrap {
    background: #f2f6fb;
    border-bottom: 1px solid #dde7f3;
}

.lrt-school-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
    padding: 18px 0;
}

.lrt-school-step {
    display: flex;
    align-items: center;
    gap: 14px;
    position: relative;
}

.lrt-school-step__num {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border-radius: 50%;
    background: #cfd8e6;
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lrt-school-step--active .lrt-school-step__num {
    background: linear-gradient(180deg, #2f7af7 0%, #0f4eb3 100%);
}

.lrt-school-step__title {
    font-size: 16px;
    font-weight: 700;
    color: #274d96;
    line-height: 1.2;
}

.lrt-school-step__desc {
    margin-top: 3px;
    font-size: 13px;
    color: #6c7f9f;
    line-height: 1.25;
}

.lrt-school-main {
    padding-top: 22px;
}

.lrt-school-alert {
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 16px;
}

.lrt-school-alert--danger {
    background: #fff1f1;
    border: 1px solid #efcaca;
    color: #af3636;
}

.lrt-school-alert--success {
    background: #edfdf4;
    border: 1px solid #c3ecd2;
    color: #177445;
}

.lrt-school-alert__title {
    font-weight: 700;
    margin-bottom: 6px;
}

.lrt-school-alert__text {
    line-height: 1.45;
}

.lrt-school-form {
    transition: opacity .2s ease;
}

.lrt-school-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
}

.lrt-school-grid__left,
.lrt-school-grid__right {
    display: contents;
}

.lrt-school-card {
    background: var(--lrt-card);
    border: 1px solid var(--lrt-border);
    border-radius: 18px;
    box-shadow: var(--lrt-shadow);
    padding: 22px;
}

.lrt-school-card__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: #274d96;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
}

.lrt-school-card__icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #2b6fe8;
    border-radius: 10px;
    background: #eef4ff;
}

.lrt-school-required {
    color: var(--lrt-danger);
}

.lrt-school-fields {
    display: grid;
    gap: 18px;
}

.lrt-school-fields--2col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lrt-school-field {
    display: flex;
    flex-direction: column;
}

.lrt-school-field label {
    margin-bottom: 8px;
    color: #334b77;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
}

.lrt-school-field label span {
    color: var(--lrt-danger);
}

.lrt-school-input {
    width: 100%;
    height: 50px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid #dbe4f1;
    background: #f5f8fd;
    color: #294162;
    font-size: 15px;
    box-sizing: border-box;
    outline: none;
    transition: .2s ease;
}

.lrt-school-input:focus {
    border-color: #7aa8f6;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(47,122,247,.10);
}

.lrt-school-field p {
    margin: 7px 0 0;
    color: #8a9bb8;
    font-size: 13px;
    line-height: 1.4;
}

/* upload block */
.lrt-school-upload-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.lrt-school-upload-item {
    border: 1px solid #d7e2f5;
    border-radius: 14px;
    background: #f7faff;
    padding: 14px 16px;
}

.lrt-school-upload-item label {
    display: block;
    margin-bottom: 10px;
    color: #274d96;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
}

.lrt-school-upload-item label span {
    color: var(--lrt-danger);
}

.lrt-school-upload-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.lrt-school-upload-item__meta {
    min-width: 0;
    flex: 1 1 auto;
}

.lrt-school-upload-item__desc {
    color: #6d84a8;
    font-size: 13px;
    line-height: 1.4;
}


/* captcha */
.lrt-school-captcha {
    display: grid;
    grid-template-columns: 1fr 265px;
    gap: 18px;
    align-items: end;
}

.lrt-school-captcha__img-wrap img {
    display: block;
    max-width: 100%;
    border: 1px solid #dbe4f1;
    border-radius: 10px;
}

/* note + button */
.lrt-school-note {
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid #dbe4f1;
    background: #f6f9fe;
    color: #3d5580;
    font-size: 14px;
    line-height: 1.5;
}

.lrt-school-note p {
    margin: 0;
}

.lrt-school-submit-wrap {
    margin-top: 18px;
}

.lrt-school-submit {
    width: 100%;
    height: 48px;
    border-radius: 10px;
    border: 1px solid #2f7af7;
    background: #2f7af7;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

/* hover */
.lrt-school-submit:hover {
    background: #1f66e6;
    border-color: #1f66e6;
}

/* active */
.lrt-school-submit:active {
    background: #1554c9;
    border-color: #1554c9;
}

/* disabled (если пригодится) */
.lrt-school-submit:disabled {
    background: #c7d6f5;
    border-color: #c7d6f5;
    cursor: not-allowed;
}

/* pickup points */
.pickup-points {
    background: #f7faff;
    border: 1px solid #d7e2f5;
    border-radius: 18px;
    padding: 20px;
}

.pickup-points--empty {
    color: #274d96;
    background: #e8effc;
}

.pickup-points__hint {
    margin-bottom: 16px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #e8effc;
    color: #274d96;
    font-size: 14px;
    line-height: 1.45;
}

.pickup-points__list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pickup-point-item {
    display: block;
    margin: 0;
    cursor: pointer;
}

.pickup-point-item__control {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.pickup-point-item__box {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 84px;
    padding: 16px 18px;
    border: 1px solid #d7e2f5;
    border-radius: 16px;
    background: #ffffff;
    transition: all 0.2s ease;
}

.pickup-point-item__radio {
    position: relative;
    width: 22px;
    min-width: 22px;
    height: 22px;
    border: 2px solid #9db2dd;
    border-radius: 50%;
    background: #fff;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.pickup-point-item__radio::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #274d96;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.2s ease;
}

.pickup-point-item__icon {
    width: 34px;
    min-width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #274d96;
}

.pickup-point-item__content {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.pickup-point-item__name {
    display: block;
    color: #1f2d3d;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}

.pickup-point-item__address {
    display: block;
    color: #4f6486;
    font-size: 14px;
    line-height: 1.35;
}

.pickup-point-item:hover .pickup-point-item__box {
    border-color: #274d96;
    background: #f9fbff;
}

.pickup-point-item__control:checked + .pickup-point-item__box {
    border-color: #274d96;
    background: #e8effc;
    box-shadow: 0 0 0 1px rgba(39, 77, 150, 0.04);
}

.pickup-point-item__control:checked + .pickup-point-item__box .pickup-point-item__radio {
    border-color: #274d96;
}

.pickup-point-item__control:checked + .pickup-point-item__box .pickup-point-item__radio::after {
    transform: translate(-50%, -50%) scale(1);
}

/* file input — аккуратный стиль */
.lrt-school-file {
    position: relative;
    display: inline-block;
    width: 100%;
    max-width: 275px;
    font-size: 13px;
    color: #274d96;
}

/* кнопка выбора файла */
.lrt-school-file::file-selector-button {
    margin-right: 10px;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #cddaf3;
    background: #eef4ff;
    color: #2b6fe8;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s ease;
}

/* hover эффект */
.lrt-school-file::file-selector-button:hover {
    background: #e3ecff;
    border-color: #aac3f7;
}

/* активное состояние */
.lrt-school-file::file-selector-button:active {
    background: #d8e6ff;
}

/* сам инпут */
.lrt-school-file {
    padding: 6px;
    border-radius: 10px;
    border: 1px solid #dbe4f1;
    background: #f5f8fd;
}

@media (max-width: 900px) {
    .lrt-school-fields--2col {
        grid-template-columns: 1fr;
    }

    .lrt-school-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    .lrt-school-captcha {
        grid-template-columns: 1fr;
    }

    .lrt-school-upload-item__row {
        flex-direction: column;
        align-items: stretch;
    }

    .lrt-school-file {
        max-width: none;
    }
}

@media (max-width: 768px) {
    .pickup-points {
        padding: 16px;
    }

    .pickup-point-item__box {
        align-items: flex-start;
        min-height: auto;
        padding: 14px;
    }

    .pickup-point-item__name {
        font-size: 16px;
    }

    .pickup-point-item__address {
        font-size: 14px;
    }

    .lrt-school-hero {
        min-height: 260px;
        background-position: 72% center;
    }

    .lrt-school-hero__inner {
        min-height: 470px;
    }

    .lrt-school-hero__title {
        font-size: 24px;
    }

    .lrt-school-hero__desc {
        font-size: 14px;
    }
}

@media (max-width: 640px) {
    .lrt-school-container {
        padding: 0 14px;
    }

    .lrt-school-steps {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lrt-school-step__title {
        font-size: 15px;
    }

    .lrt-school-card {
        padding: 18px;
    }

    .lrt-school-card__title {
        font-size: 17px;
    }
}