.sol-page {
    background-color: #ffffff;
    overflow-x: hidden;
}

.sol-page__hero-wrap {
    width: min(100% - 1rem, 76rem);
    margin: 0 auto;
    padding-top: 0.25rem;
}

.sol-page__container {
    width: min(100% - 1.5rem, 70rem);
    margin: 0 auto;
    padding: 0.5rem 0 3.5rem;
}

/* 1. Ép phần tử ngoài cùng và container của Form chiếm trọn 100% không gian */
.sol-page__register,
.sol-page__register .TenantForm-container {
    width: 100% !important;
    max-width: 100% !important;

    /* QUAN TRỌNG: Triệt tiêu tận gốc các padding/margin ẩn làm hụt viền phải */
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;

    /* Đảm bảo trình duyệt tính toán kích thước bao gồm cả viền */
    box-sizing: border-box !important;
}

/* 2. Chỉ xử lý căn giữa cho khối Form nội dung bên trong */
.sol-page__register .TenantForm {
    width: min(100% - 2rem, 45rem) !important;
    /* Giới hạn độ rộng của form vừa vặn như hình */
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.sol-page__register .TenantForm__footer {
    margin-bottom: 0;
}

/* >= 48em (~768px): Tablet and up */
@media (min-width: 48em) {
    .sol-page__hero-wrap {
        width: min(100% - 2rem, 76rem);
        padding-top: 0.375rem;
    }

    .sol-page__container {
        width: min(100% - 2.5rem, 70rem);
        padding: 0.75rem 0 4.5rem;
    }

    .sol-page__register {
        width: 100%;
    }

    .sol-page__register .TenantForm-container {
        width: min(100% - 2rem, 76rem);
    }
}

/* >= 75em (~1200px): Large Desktop */
@media (min-width: 75em) {
    .sol-page__hero-wrap {
        width: min(100% - 3rem, 123.75rem); /* 1980 px width */
    }

    .sol-page__container {
        width: min(100% - 3rem, 70rem);
    }

    .sol-page__register .TenantForm-container {
        width: min(100% - 3rem, 76rem);
    }
}

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px) scale(0.985);
    transition: opacity 560ms cubic-bezier(0.22, 0.61, 0.36, 1), transform 560ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change: opacity, transform;
}

.reveal-on-scroll--image {
    transform: translateY(26px) scale(0.985);
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll,
    .reveal-on-scroll--image,
    .reveal-on-scroll.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
