/* BE and FE - do not wrap styles in @media {} for BE use! */

.align-center { text-align: center; }
.align-left { text-align: left; }
.align-justify { text-align: justify; }
.align-right { text-align: right; }

a {
    color: var(--color-blue);
    font-weight: 700;
    text-decoration: none;
    -webkit-text-decoration-skip: ink;
    text-decoration-skip: ink;
}

a:hover,
a:focus {
    color: var(--color-white);
    background-color: var(--color-red);
    text-underline-offset: 0.25em;
    outline-offset: 3px;
}

a:focus-visible {
    outline: 2px solid var(--color-black);
}

b, strong, dt { font-weight: 700; }

a::before {
    display: inline-block;
    content: url(../SVG/icon_link_internal.svg);
    width: 1em;
    height: 1.5em;
    vertical-align: middle;
    margin-right: 0.25em;
}

a:hover::before,
a:focus::before {
    content: url(../SVG/icon_link_internal_hover.svg);
}

.ce-button a::before,
a.btn::before,
.btn a::before {
    height: 1.25em;
}

a.link-external::before,
a.link-external-blank::before {
    content: url('../SVG/icon_link_external.svg');
}

a.link-download::before {
    content: url('../SVG/icon_link_download.svg');
}

a.link-external:focus::before,
a.link-external:hover::before,
a.link-external-blank:focus::before,
a.link-external-blank:hover::before {
    content: url('../SVG/icon_link_external_hover.svg');
}

a.link-download:focus::before,
a.link-download:hover::before {
    content: url('../SVG/icon_link_download_hover.svg');
}


/* (partial) bootstrap btn rules */
.ce-button a,
.btn {
    display: inline-block;
    font-weight: normal;
    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    border: 1px solid transparent;
    padding: 0.5rem 1rem;
    font-size: 1rem;
    line-height: 1.25;
    border-radius: 0.25rem;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

a:focus,
button:focus,
.btn:focus {
    outline: none;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible {
    outline: 2px solid var(--color-black);
    outline-offset: 2px;
}

.btn + .btn {
    margin-left: 0.25rem;
}

.ce-button a,
a.btn {
    text-shadow: none !important;
    text-align: left;
}

.btn:disabled, .btn.disabled {
    cursor: not-allowed;
    opacity: .65;
}

.btn:active, .btn.active {
    background-image: none;
}

a.btn.disabled,
fieldset[disabled] a.btn {
    pointer-events: none;
}

.ce-button a,
.btn-secondary {
    color: var(--color-blue);
    background-color: #f5f5f9;
    border-color: #f5f5f9;
}
.ce-tabs .btn-secondary,
.ce-accordeon .btn-secondary,
.ce-layout-box .btn-secondary {
    background-color: var(--color-white);
    box-shadow: .25em .25em 1em rgba(0,0,0,.05);
}

.ce-button a:active,
.ce-button a:focus,
.ce-button a:hover,
.btn-secondary:active, .btn-secondary.active,
.btn-secondary:focus, .btn-secondary.focus,
.btn-secondary:hover, .btn-secondary.hover {
    color: var(--color-white);
    background-color: var(--color-red);
    border-color: var(--color-red);

    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.25rem;
}

.btn-primary {
    color: var(--color-white);
    background-color: var(--color-blue);
    border-color: var(--color-blue);
}
a.btn-primary::before {
    content: url(../SVG/icon_link_internal_hover.svg);
}

.btn-primary:active, .btn-primary.active,
.btn-primary:focus, .btn-primary.focus,
.btn-primary:hover, .btn-primary.hover {
    color: var(--color-white);
    background-color: var(--color-red);
    border-color: var(--color-red);
}


.btn-link {
    font-weight: normal;
    color: var(--color-blue);
}

.btn-link,
.btn-link:active, .btn-link.active {
    background-color: transparent;
}

.btn-link,
.btn-link:hover, .btn-link.hover,
.btn-link:active, .btn-link.active {
    border-color: transparent;
}

.btn-link:hover, .btn-link.hover {
    color: var(--color-white);
    background-color: var(--color-red);
}
