/* ==========================================================
   Chang Tong Core 2.0
   ==========================================================

   Component : Button
   UI        : UI-002
   File      : assets/css/components/buttons.css
   Version   : 1.0
   Status    : Approved

========================================================== */


/* ==========================================================
   Base Button
========================================================== */

.ct-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-height: var(--ct-button-height);

    padding: 0 28px;

    border-radius: var(--ct-radius-lg);

    font-size: var(--ct-fs-base);

    font-weight: var(--ct-fw-semibold);

    line-height: var(--ct-lh-tight);

    text-decoration: none;

    cursor: pointer;

    transition:
        background-color var(--ct-transition-fast),
        color var(--ct-transition-fast),
        border-color var(--ct-transition-fast),
        transform var(--ct-transition-fast),
        box-shadow var(--ct-transition-fast);

}


/* ==========================================================
   Primary Button
========================================================== */

.ct-button--primary {

    background-color: var(--ct-color-primary);

    color: var(--ct-color-black);

    border: var(--ct-border-medium) solid var(--ct-color-primary);

    box-shadow: var(--ct-shadow-md);

}


.ct-button--primary:hover {

    background-color: var(--ct-color-primary-dark);

    border-color: var(--ct-color-primary-dark);

    transform: translateY(-2px);

    box-shadow: var(--ct-shadow-lg);

}



/* ==========================================================
   Secondary Button
========================================================== */

.ct-button--secondary {

    background-color: var(--ct-color-white);

    color: var(--ct-color-secondary);

    border: var(--ct-border-medium) solid var(--ct-color-primary);

}

.ct-button--secondary:hover {

    background-color: var(--ct-color-primary);

    color: var(--ct-color-black);

    border-color: var(--ct-color-primary);

    transform: translateY(-2px);

    box-shadow: var(--ct-shadow-md);

}



/* ==========================================================
   Keyboard Focus
========================================================== */

.ct-button:focus-visible {

    outline: 3px solid var(--ct-color-accent);

    outline-offset: 3px;

}

/* ==========================================================
   Persistent return navigation
========================================================== */

.ct-back-button {
    position: fixed;
    left: var(--ct-space-lg);
    bottom: var(--ct-space-lg);
    z-index: calc(var(--ct-z-header) - 1);
    display: inline-flex;
    align-items: center;
    gap: var(--ct-space-sm);
    min-height: var(--ct-button-height);
    padding-inline: var(--ct-space-md);
    border: var(--ct-border-medium) solid var(--ct-color-primary);
    border-radius: var(--ct-radius-pill);
    background-color: var(--ct-color-surface);
    box-shadow: var(--ct-shadow-md);
    color: var(--ct-color-secondary);
    font-size: var(--ct-fs-sm);
    font-weight: var(--ct-fw-semibold);
    line-height: var(--ct-lh-tight);
    text-decoration: none;
    transition:
        background-color var(--ct-transition-fast),
        color var(--ct-transition-fast),
        transform var(--ct-transition-fast),
        box-shadow var(--ct-transition-fast);
}

.ct-back-button:hover {
    background-color: var(--ct-color-primary);
    box-shadow: var(--ct-shadow-lg);
    color: var(--ct-color-black);
    transform: translateY(-2px);
}

.ct-back-button:focus-visible {
    outline: var(--ct-border-thick) solid var(--ct-color-accent);
    outline-offset: var(--ct-space-xs);
}

@media (max-width: 767px) {
    .ct-back-button {
        left: var(--ct-space-md);
        bottom: var(--ct-space-md);
    }
}
