
/****************************
*
*   CHECKBOX
*
****************************/

/* Nasconde checkbox originale */
.custom-checkbox input {
    display: none;
}

/* Contenitore */
.custom-checkbox {
    display: flex;
    pointer-events: none;
    align-items: center;
    /*cursor: pointer;*/
    user-select: none;
    color: var(--color-text-primary-black);
}

.custom-checkbox .checkmark {
    pointer-events: auto; /* riattiva click SOLO sul quadrato */
}

/* Quadrato visivo */
.checkmark {
    width: 24px;
    height: 24px;
    border: 1.5px solid var(--color-brand-primary-6);
    border-radius: 4px;
    cursor: pointer;
    display: inline-block;
    margin-right: 10px;
    position: relative;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

/* Segno di spunta */
.checkmark::after {
    content: "";
    position: absolute;
    display: none;
}

/* Mostra il check */
.custom-checkbox input:checked + .checkmark::after {
    display: block;
}

/* Disegno check */
.custom-checkbox .checkmark::after {
    left: 5.17px;
    top: 6.5px;
    height: 4.71px;
    width: 11.79px;
    border: solid white;
    border-width: 0 0 1.5px 1.5px;
    transform: rotate(-45deg);
}

/* =========================
   CHECKED
========================= */
.custom-checkbox input:checked + .checkmark {
    background-color: var(--color-brand-primary-6);
    border-color: var(--color-brand-primary-6);
    /*border: 0px;*/
}

/* =========================
   HOVER
========================= */
.custom-checkbox:hover .checkmark {
    background-color: var(--color-brand-primary-1);
    border-color: var(--color-brand-primary-6);
}

/* Se già checked */
.custom-checkbox:hover input:checked + .checkmark {
    background-color: var(--color-brand-primary-1);
    border-color: var(--color-brand-primary-6);
}


/* =========================
   FOCUS (accessibilità)
========================= */
.custom-checkbox input:focus + .checkmark {
    box-shadow: 0 0 0 3px var(--color-brand-primary-1);
}

/* Variante più moderna (solo focus da tastiera) */
.custom-checkbox input:focus-visible + .checkmark {
    box-shadow: 0 0 0 3px var(--color-brand-primary-1);

}


/* =========================
   DISABLED
========================= */
.custom-checkbox input:disabled + .checkmark {
    background-color: var(--color-brand-gray-5);
    border-color: var(--color-brand-gray-3);
    cursor: not-allowed;
}

.custom-checkbox input:disabled + .checkmark::after {
    border-color: var(--color-brand-gray-3);
}

/* Testo disabilitato */
.custom-checkbox input:disabled ~ span {
    /*color: #bdbdbd;*/
    cursor: not-allowed;
}

.custom-checkbox:has(input:disabled) {
    cursor: not-allowed;
}


/* =========================
   INDETERMINATE
========================= */
.custom-checkbox input:indeterminate + .checkmark {
    background-color: var(--color-brand-primary-6);
    border-color: var(--color-brand-primary-6);
}

/* Linea orizzontale invece del check */
.custom-checkbox input:indeterminate + .checkmark::after {
    display: block;
    width: 12px;
    height: 2px;
    background-color: white;
    border: none;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* ==========================================================================
   MAGRIS BUTTONS DESIGN SYSTEM
   ========================================================================== */


/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */

:root {

    /* Brand */
    --magris-red: #E71B23;
    --magris-red-hover: #B9161C;
    --magris-red-pressed: #8B1015;

    /* Neutral */
    --magris-white: #ffffff;

    /* Disabled */
    --magris-disabled-bg: #C1C1C1;
    --magris-disabled-border: #C1C1C1;
    --magris-disabled-text: #838382;
    /*--magris-disabled-text: #b3b3b3;*/

    /* Misc */
    --magris-radius: 8px;
    --magris-transition: 0.15s ease;
}


/* ==========================================================================
   2. BASE BUTTON
   ========================================================================== */

.magris-btn {

    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;

    border-radius: var(--magris-radius);
    border: 1px solid transparent;

    cursor: pointer;
    user-select: none;

    transition:
            background-color var(--magris-transition),
            border-color var(--magris-transition),
            color var(--magris-transition),
            box-shadow var(--magris-transition);
}


/* ==========================================================================
   3. FOCUS
   ========================================================================== */

.magris-btn:focus-visible {
    outline: 2px solid var(--magris-red);
    outline-offset: 2px;
}


/* ==========================================================================
   4. BUTTON SIZES
   ========================================================================== */

/* Extra Large - 56px */

.magris-btn-xl {
    height: 56px;
    padding: 16px;
    font-size: 24px;
}

/* Large - 48px */

.magris-btn-lg {
    height: 48px;
    padding: 14px;
    font-size: 22px;
}

/* Medium - 40px */

.magris-btn-md {
    height: 40px;
    padding: 12px;
    font-size: 20px;
}

/* Small - 32px */

.magris-btn-sm {
    height: 32px;
    padding: 8px;
    font-size: 18px;
}

/* Extra Small - 24px */

.magris-btn-xs {
    height: 24px;
    padding: 6px;
    font-size: 16px;
}


/* ==========================================================================
   5. PRIMARY / FILLED
   ========================================================================== */

.magris-btn-primary {

    background-color: var(--magris-red);
    border-color: var(--magris-red);
    color: var(--magris-white);
}

.magris-btn-primary:hover:not(:disabled) {

    background-color: var(--magris-red-hover);
    border-color: var(--magris-red-hover);
}

.magris-btn-primary:active:not(:disabled) {

    background-color: var(--magris-red-pressed);
    border-color: var(--magris-red-pressed);
}


/* Disabled */

.magris-btn-primary:disabled,
.magris-btn-primary.disabled {

    background-color: var(--magris-disabled-bg);
    border-color: var(--magris-disabled-border);
    color: var(--magris-disabled-text);

    cursor: not-allowed;
    pointer-events: none;
}


/* ==========================================================================
   6. SECONDARY / OUTLINE
   ========================================================================== */

.magris-btn-secondary {

    background-color: white;
    border-color: var(--magris-red);
    color: var(--magris-red);
}

.magris-btn-secondary:hover:not(:disabled) {
    color: var(--magris-red-pressed);
}

.magris-btn-secondary:active:not(:disabled) {
    background-color: rgba(227, 6, 19, 0.12);
}


/* Disabled */

.magris-btn-secondary:disabled,
.magris-btn-secondary.disabled {

    background-color: var(--magris-white);
    border-color: var(--magris-disabled-border);
    color: var(--magris-disabled-text);

    cursor: not-allowed;
    pointer-events: none;
}


/* ==========================================================================
   7. GHOST
   ========================================================================== */

.magris-btn-ghost {

    background-color: transparent;
    border-color: transparent;
    color: var(--magris-red);
}

.magris-btn-ghost:hover:not(:disabled) {

    background-color: rgba(227, 6, 19, 0.08);
}

.magris-btn-ghost:active:not(:disabled) {

    background-color: rgba(227, 6, 19, 0.15);
}


/* Disabled */

.magris-btn-ghost:disabled,
.magris-btn-ghost.disabled {

    background-color: transparent;
    border-color: transparent;
    color: var(--magris-disabled-text);

    cursor: not-allowed;
    pointer-events: none;
}


/* ==========================================================================
   8. TEXT BUTTON
   ========================================================================== */

.magris-btn-text {

    background-color: transparent;
    border-color: transparent;
    color: var(--magris-red);
}

.magris-btn-text:hover:not(:disabled) {

    text-decoration: underline;
}

.magris-btn-text:active:not(:disabled) {

    color: var(--magris-red-pressed);
}


/* Disabled */

.magris-btn-text:disabled,
.magris-btn-text.disabled {

    background-color: transparent;
    color: var(--magris-disabled-text);

    cursor: not-allowed;
    pointer-events: none;
}