/* Login / Register / Subscribe — same hero shell as the homepage */

.site-main:has(.auth-page) {
    display: flex;
    flex-direction: column;
    padding: 0;
}

.landing-page.auth-page {
    flex: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.auth-page .landing-hero--auth {
    flex: 1;
    width: 100%;
    min-height: calc(100vh - 7rem);
    min-height: calc(100dvh - 7rem);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1.25rem, 4vw, 3rem) 0;
}

.auth-page .landing-hero--auth::after {
    display: none;
}

.auth-page__shell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.auth-form-card {
    width: 100%;
    max-width: 28rem;
    margin: 0 auto;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: #fff;
    border: 3px solid var(--landing-navy, #1a2f44);
    border-radius: 1rem;
    box-shadow: 0 12px 0 rgba(26, 47, 68, 0.12), 0 18px 40px rgba(0, 0, 0, 0.12);
    color: var(--landing-navy, #1a2f44);
}

.auth-form-card--wide {
    max-width: min(56rem, 94vw);
}

.auth-form-card--register {
    max-width: min(58rem, 96vw);
}

.register-pricing-summary {
    margin-bottom: 1.25rem;
    padding: 0.75rem 0.9rem;
    background: #f4f9fa;
    border: 1px solid #d8e0e4;
    border-radius: 0.5rem;
    font-size: 0.85rem;
    color: var(--landing-warm-gray, #5c6b73);
    line-height: 1.45;
}

.register-pricing-summary__line strong {
    color: var(--landing-navy, #1a2f44);
}

.auth-form-card h4 {
    margin-bottom: 0.35rem;
    font-weight: 800;
    color: var(--landing-teal, #28535d);
}

.auth-form-card > p,
.auth-form-card .auth-form-card__lead {
    margin-bottom: 1.25rem;
    color: var(--landing-warm-gray, #5c6b73);
    font-size: 0.95rem;
}

.auth-form-card .form-group {
    margin-bottom: 0.85rem;
}

.auth-form-card .col-form-label {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--landing-navy, #1a2f44);
}

.auth-form-card .form-control {
    border: 2px solid #d8e0e4;
    border-radius: 0.5rem;
    padding: 0.55rem 0.75rem;
    color: #1a2f44;
}

@media (max-width: 767.98px) {
    .auth-form-card .form-control,
    .auth-form-card .form-select {
        font-size: 16px;
    }
}

.auth-form-card .form-control:focus {
    border-color: var(--landing-teal, #28535d);
    box-shadow: 0 0 0 0.2rem rgba(40, 83, 93, 0.15);
}

.auth-form-card .auth-password-group .input-group-text {
    background: #f8fbfc;
    border: 2px solid #d8e0e4;
    border-left: 0;
    border-radius: 0 0.5rem 0.5rem 0;
    color: var(--landing-teal, #28535d);
    cursor: pointer;
    position: relative;
    z-index: 2;
}

.auth-form-card .auth-password-group .input-group-text:hover {
    background: #e8f0f2;
    color: var(--landing-teal-dark, #1e3d45);
}

.auth-form-card .auth-password-group .form-control {
    border-right: 0;
    border-radius: 0.5rem 0 0 0.5rem;
}

.auth-form-card .auth-password-group .form-control:focus {
    border-color: var(--landing-teal, #28535d);
    box-shadow: none;
}

.auth-form-card .auth-password-group .form-control:focus + .toggle-password {
    border-color: var(--landing-teal, #28535d);
}

.auth-form-card .form-input.position-relative {
    position: relative;
}

.auth-form-card .show-hide {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    z-index: 2;
}

.auth-form-card .show-hide span {
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--landing-teal, #28535d);
    user-select: none;
}

.auth-form-card .show-hide span.show::before {
    content: "show";
}

.auth-form-card .show-hide span:not(.show)::before {
    content: "hide";
}

.auth-form-card .auth-form-card__footer {
    margin-top: 1.25rem;
    margin-bottom: 0;
    text-align: center;
    color: var(--landing-warm-gray, #5c6b73);
}

.auth-form-card .auth-form-card__footer a {
    color: var(--landing-teal, #28535d);
    font-weight: 700;
}

.auth-form-card .checkbox label {
    font-size: 0.9rem;
}

.auth-form-card .landing-btn {
    border-radius: 999px;
    font-weight: 700;
}

.auth-form-card .landing-btn--warm {
    color: #fff;
}

.auth-form-card .landing-btn--outline {
    background: #fff;
    color: var(--landing-teal, #28535d);
    border: 2px solid var(--landing-teal, #28535d);
    box-shadow: none;
}

.auth-form-card .landing-btn--outline:hover {
    background: #f4f9fa;
    color: var(--landing-teal-dark, #1e3d45);
    border-color: var(--landing-teal-dark, #1e3d45);
}

@media (max-width: 575.98px) {
    .auth-page .landing-hero--auth {
        min-height: calc(100vh - 6.5rem);
        min-height: calc(100dvh - 6.5rem);
        padding: 1.25rem 0 1.5rem;
    }

    .auth-page .landing-page__inner {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .auth-form-card {
        max-width: 100%;
        padding: 1.35rem 1.15rem;
    }
}
