body .dd-button {
    all: unset;
    border: var(--dd-button-border-width) solid var(--dd-color-text);
    border-color: transparent;
    border-radius: var(--dd-button-border-radius);
    padding: 6px 20px;
    background-color: var(--dd-color-background);
    color: var(--dd-color-text);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    text-wrap: nowrap;
    /* FLEX */
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    /* SAFARI */
    -webkit-text-fill-color: var(--dd-color-text);
    -webkit-text-stroke-width: 0;
    -webkit-appearance: none;
    /* DISABLE SELECTION HIGHLIGHT */
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent; /* For iOS Safari */
    tap-highlight-color: transparent; /* For other browsers */
}
html body a.dd-button {
    text-decoration: none;
}
body .dd-button.dd-has-icon-before {
    padding-left: 15px;
}

body .dd-button.dd-has-icon-after {
    padding-right: 15px;
}
body .dd-button:hover {
    background-color: var(--dd-color-background);
    -webkit-text-fill-color: var(--dd-color-text);
    color: var(--dd-color-text);
    border-color: transparent;
}


body .dd-button-small {
    font-size: var(--dd-font-small);
    /* font-weight: normal; */
    padding: 0 1.4em;
    height: 3.2em;
    height: var(--dd-button-height-small);
    gap: 0.8em;
}
body .dd-button-small.dd-squared {
    padding: 0;
    width: 3.2em;
    width: var(--dd-button-height-small);
}

body .dd-button-small.dd-has-icon-before {
    padding-left: 0.7em;
}

body .dd-button-small.dd-has-icon-after {
    padding-right: 0.7em;
}

body .dd-button-wide {
    padding: 0 1.8em;
}


body .dd-button svg {
    fill: var(--dd-color-text);
}

body .dd-button:focus{
    outline: none;
    background-color: inherit;
    color: inherit;
}

body .dd-button:focus-visible{
    outline: 2px solid var(--dd-color-text);
    outline-offset: 3px;
    background-color: var(--dd-color-background);
    -webkit-text-fill-color: var(--dd-color-text);
    color: var(--dd-color-text);
}



body .dd-button:active,
body .dd-button:focus,
body .dd-button:visited {
    background-color: var(--dd-color-background);
    -webkit-text-fill-color: var(--dd-color-text);
    color: var(--dd-color-text);
    border-color: transparent;
}

body .dd-button:active{
    transform: translate(0,2px);
}

body .dd-button:disabled {
    opacity: 0.5;
    pointer-events: none;
}


/* BORDERED BUTTON */
body .dd-button.dd-bordered-button,
body .dd-button.dd-bordered-button:active,
body .dd-button.dd-bordered-button:focus,
body .dd-button.dd-bordered-button:visited {
    border-color: var(--dd-color-text);
}
@media screen AND (hover:hover){
    .not-touch-device .dd-button.dd-bordered-button:not(.dd-no-hover):hover {
        border-color: var(--dd-color-text);
    }
}
/* END: BORDERED BUTTON */


/* INVERTED BUTTON */
body .dd-button.dd-inverted-button {
    border-color: black;
    background-color: black;
    -webkit-text-fill-color: white;
    color: white;
}
body .dd-button.dd-inverted-button,
body .dd-button.dd-inverted-button:active,
body .dd-button.dd-inverted-button:focus,
body .dd-button.dd-inverted-button:visited {
    border-color: var(--dd-color-text);
    background-color: var(--dd-color-text);
    -webkit-text-fill-color: var(--dd-color-background);
    color: var(--dd-color-background);
}
@media screen AND (hover:hover){
    .not-touch-device .dd-button:not(.dd-no-hover).dd-inverted-button:hover {
        border-color: var(--dd-color-text);
        background-color: var(--dd-color-text);
        -webkit-text-fill-color: var(--dd-color-background);
        color: var(--dd-color-background);
        filter: opacity(0.85);
    }
}

body .dd-button.dd-inverted-button svg {
    fill: var(--dd-color-background);
}

body .dd-button.dd-inverted-button:focus-visible{
    outline-color: var(--dd-color-text);
}
/* END: INVERTED BUTTON */



/* HIGHLIGHTED COLOR */
body .dd-button.dd-highlighted-button,
body .dd-button.dd-highlighted-button:active,
body .dd-button.dd-highlighted-button:focus,
body .dd-button.dd-highlighted-button:visited {
    border-color: var(--dd-color-accent);
    background-color: var(--dd-color-accent);
    -webkit-text-fill-color: var(--dd-color-accent-contrast);
    color: var(--dd-color-accent-contrast);
}
/* @media screen AND (hover:hover){
    .not-touch-device .dd-button:not(.dd-no-hover).dd-highlighted-button:hover {
        border-color: var(--dd-color-accent);
        background-color: var(--dd-color-accent);
        -webkit-text-fill-color: var(--dd-color-accent-contrast);
        color: var(--dd-color-accent-contrast);
    }
} */

body .dd-button.dd-highlighted-button svg {
    fill: var(--dd-color-accent-contrast);
}

/* body .dd-button.dd-highlighted-button:focus-visible{
    outline-color: var(--dd-color-accent);
} */
/* END: HIGHLIGHTED COLOR */



/* ALTERNATIVE COLOR */
body .dd-button.dd-alt-button,
body .dd-button.dd-alt-button:active,
body .dd-button.dd-alt-button:focus,
body .dd-button.dd-alt-button:visited{
    border-color: var(--dd-color-alternative);
    background-color: var(--dd-color-alternative);
    -webkit-text-fill-color: var(--dd-color-alternative-contrast);
    color: var(--dd-color-alternative-contrast);
}
@media screen AND (hover:hover){
    .not-touch-device .dd-button:not(.dd-no-hover).dd-alt-button:hover {
        border-color: var(--dd-color-alternative);
        background-color: var(--dd-color-alternative);
        -webkit-text-fill-color: var(--dd-color-alternative-contrast);
        color: var(--dd-color-alternative-contrast);
        filter: brightness(1.02);
    }
    
    .not-touch-device .dd-button.dd-alt-button:not(.dd-no-hover):hover svg {
        fill: var(--dd-color-alternative-contrast);
    }
}

body .dd-button.dd-alt-button svg {
    fill: var(--dd-color-alternative-contrast);
}

body .dd-button.dd-alt-button:focus-visible{
    outline-color: var(--dd-color-alternative-contrast);
}
/* END: ALTERNATIVE COLOR */




body .dd-button .dd-icon-wrapper {
    display: inline-block;
    line-height: 0;
}

body .dd-button.dd-icon-button {
    padding: 5px;
    border: 0;
    gap:0;
}


/* @media screen AND (hover:hover){
    .not-touch-device .dd-button:not(.dd-no-hover):hover {
        background-color: var(--dd-color-background);
        -webkit-text-fill-color: var(--dd-color-text);
        color: var(--dd-color-text);
        border-color: transparent;
    }
} */

@media screen AND (hover:hover) {
    .not-touch-device .dd-button:not(.dd-no-hover):hover{
        /* background-color: var(--dd-color-text);
        -webkit-text-fill-color: var(--dd-color-background);
        color: var(--dd-color-background); */
        background-color: var(--dd-color-background);
        -webkit-text-fill-color: var(--dd-color-text);
        color: var(--dd-color-text);
        border-color: transparent;
    }

    /* .not-touch-device .dd-button:not(.dd-no-hover):hover svg {
        fill: var(--dd-color-background);
    } */

    .not-touch-device .dd-button.dd-highlighted-button:not(.dd-no-hover):hover {
        border-color: var(--dd-color-accent);
        background-color: var(--dd-color-accent);
        -webkit-text-fill-color: var(--dd-color-accent-contrast);
        color: var(--dd-color-accent-contrast);
        /* filter: brightness(1.03) saturate(0.82); */
        filter: brightness(1.02);
    }
    
    .not-touch-device .dd-button.dd-highlighted-button:not(.dd-no-hover):hover svg {
        fill: var(--dd-color-accent-contrast);
    }
}


/* BADGE COUNT */
body .dd-button[data-badge-count] {
    position: relative;
}
body .dd-button[data-badge-count]::after {
    content: attr(data-badge-count);
    background: red;
    border-radius: 99px;
    width: 1.4em;
    height: 1.4em;
    display: flex;
    justify-content: center;
    align-items: center;
    -webkit-text-fill-color: white;
    color: white;
    font-size: 1em;
    transform: translate(-0.7em, -0.7em);

    position: absolute;
    right: 0;
    top: 0;
    transform: translate(0.5em, -0.5em);
}