/* Auth pages use the public theme while keeping forms isolated from the demo contact form. */
.header--auth.is-scroll,
.header--auth {
    background: rgba(15,14,27,.92);
    box-shadow: 0 6px 24px rgba(0,0,0,.18);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.page-main > .alert-success,
.page-main > .alert-danger {
    position: fixed;
    left: 50%;
    top: 5.75rem;
    z-index: 1200;
    width: min(calc(100% - 2rem), 42rem);
    transform: translateX(-50%);
    padding: .875rem 1rem;
    border-radius: 14px;
    font-size: .9375rem;
    box-shadow: 0 14px 34px rgba(15,14,27,.22);
}

.page-main > .alert-success {
    background: #E9F9EF;
    color: #176C35;
    border: 1px solid #BFECCB;
}

.page-main > .alert-danger {
    background: #FFF0EC;
    color: #9D321A;
    border: 1px solid #FFC9BA;
}

.auth-page {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: #0F0E1B;
    color: #fff;
    padding: 8.25rem 0 5rem;
    isolation: isolate;
}

.auth-page::before,
.auth-page::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -2;
}

.auth-page::before {
    background: url("../img/hero-travel.png") center/cover no-repeat;
    opacity: .24;
    filter: saturate(1.05);
}

.auth-page::after {
    z-index: -1;
    background:
        linear-gradient(120deg, rgba(15,14,27,.96) 0%, rgba(15,14,27,.84) 47%, rgba(79,63,217,.64) 100%),
        linear-gradient(180deg, rgba(15,14,27,.26) 0%, rgba(15,14,27,.9) 100%);
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
}

.auth-page--simple {
    padding: 7.5rem 0 4rem;
}

.auth-page--simple::before {
    opacity: .16;
}

.auth-shell--simple {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: calc(100vh - 11.5rem);
}

.auth-card--simple {
    max-width: 28rem;
}

.auth-copy {
    max-width: 44rem;
}

.auth-copy__perex {
    color: #FFC857;
}

.auth-copy__title {
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 4.375rem);
    margin-bottom: 1.25rem;
}

.auth-copy__lead {
    max-width: 36rem;
    color: rgba(255,255,255,.78);
    font-size: 1.125rem;
    margin-bottom: 2.25rem;
}

.auth-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.auth-highlights > div {
    min-width: 8.5rem;
    padding: 1rem 1.125rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 14px;
    background: rgba(255,255,255,.07);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.auth-highlights strong {
    display: block;
    font-family: "Kanit", sans-serif;
    font-size: 2rem;
    line-height: 1;
    color: #FFC857;
}

.auth-highlights span {
    display: block;
    margin-top: .375rem;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: rgba(255,255,255,.68);
}

.auth-card {
    width: 100%;
    background: rgba(255,255,255,.97);
    color: #0F0E1B;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 22px;
    box-shadow: 0 28px 70px rgba(0,0,0,.28);
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.auth-card__head {
    margin-bottom: 1.5rem;
}

.auth-card__label {
    display: inline-flex;
    align-items: center;
    gap: .625rem;
    margin-bottom: .75rem;
    font-family: "Kanit", sans-serif;
    font-size: .8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #4F3FD9;
}

.auth-card__label::before {
    content: '';
    width: 1.75rem;
    height: .125rem;
    background: #FF7A59;
}

.auth-card h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.375rem);
}

.auth-form {
    display: grid;
    gap: 1.125rem;
}

.auth-field {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.auth-label {
    font-family: "Kanit", sans-serif;
    font-size: .8125rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #232238;
}

.auth-input {
    width: 100%;
    min-height: 3.25rem;
    padding: .875rem 1.125rem;
    background: #fff;
    color: #0F0E1B;
    border: 1px solid #C8C6D6;
    border-radius: 8px;
    font-size: .9375rem;
    line-height: 1.4;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.auth-input::placeholder {
    color: #8B89A1;
}

.auth-input[readonly] {
    background: #F2F1F7;
    color: rgba(15, 14, 27, .68);
    border-color: #DDD9EA;
    cursor: default;
}

.auth-input:focus {
    outline: none;
    border-color: #6B5EE5;
    box-shadow: 0 0 0 4px rgba(79,63,217,.15);
}

.auth-check {
    margin: .125rem 0;
}

.auth-check__input {
    width: 1.25rem;
    height: 1.25rem;
}

.auth-alert,
.auth-errors,
.auth-form ul {
    font-size: .875rem;
}

.auth-alert {
    padding: .875rem 1rem;
    border-radius: 12px;
    margin-bottom: 1rem;
}

.auth-alert--danger {
    background: #FFF0EC;
    color: #9D321A;
    border: 1px solid #FFC9BA;
}

.auth-alert--warning {
    background: #FFF7DF;
    color: #785100;
    border: 1px solid #FFE39B;
}

.auth-errors {
    color: #9D321A;
}

.auth-errors ul,
.auth-form ul {
    display: grid;
    gap: .375rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.auth-actions {
    display: grid;
    gap: .875rem;
    margin-top: .25rem;
}

.auth-links {
    margin: .25rem 0 0;
    text-align: center;
    color: #3A3852;
    font-size: .9375rem;
}

.auth-links a {
    font-weight: 600;
}

.auth-muted {
    color: #6D6A80;
    font-size: .875rem;
    margin: -.25rem 0 .25rem;
}

.auth-footer {
    margin-top: 0;
}

@media (max-width: 991px) {
    .auth-page {
        padding: 7rem 0 3.5rem;
    }

    .auth-shell {
        grid-template-columns: 1fr;
    }

    .auth-copy {
        max-width: 46rem;
    }
}

@media (max-width: 767px) {
    .page-main > .alert-success,
    .page-main > .alert-danger {
        top: 4.75rem;
    }

    .auth-page {
        padding: 6.25rem 0 3rem;
    }

    .auth-copy__lead {
        font-size: .9875rem;
        margin-bottom: 1.5rem;
    }

    .auth-highlights > div {
        flex: 1 1 8rem;
    }
}

@media (max-width: 575px) {
    .auth-card {
        border-radius: 16px;
        padding: 1.25rem;
    }

    .auth-highlights {
        display: grid;
        grid-template-columns: 1fr;
    }
}
