/**
 * ============================================================================
 * AMS FOCUS — FOOTER
 * ============================================================================
 */

.ams-site-footer {
    overflow: hidden;
    background:
        linear-gradient(
            90deg,
            #08265a 0%,
            #08254f 18%,
            #071e3c 34%,
            #071e38 50%,
            #08213d 66%,
            #082444 82%,
            #08284b 100%
        );
    color: #ffffff;
}

@media (min-width: 981px) {

    .ams-site-footer > .ams-shell {
        box-sizing: border-box;
        padding-left:
            min(
                8.333%,
                96px
            );
    }
}

.ams-footer-main {
    display: grid;
    grid-template-columns:
        minmax(240px, 1.55fr)
        repeat(
            3,
            minmax(130px, 1fr)
        );
    align-items: start;
    gap:
        clamp(
            32px,
            4vw,
            64px
        );
    padding:
        52px
        0
        44px;
}

.ams-footer-brand {
    min-width: 0;
}

.ams-footer-brand__name {
    display: block;
    margin-bottom: 12px;
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.35px;
}

.ams-footer-brand p {
    max-width: 310px;
    margin: 0;
    color:
        rgba(
            255,
            255,
            255,
            .63
        );
    font-size: 14px;
    line-height: 1.6;
}

.ams-footer-column {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 9px;
}

.ams-footer-column h2 {
    margin:
        0
        0
        7px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}

.ams-footer-column a,
.ams-footer-column__pending {
    width: fit-content;
    color:
        rgba(
            255,
            255,
            255,
            .66
        );
    font-size: 13px;
    line-height: 1.45;
    text-decoration: none;
}

.ams-footer-column a {
    transition:
        color
        .18s ease;
}

.ams-footer-column a:hover,
.ams-footer-column a:focus-visible {
    color: #ffffff;
}

.ams-footer-column__pending {
    cursor: default;
}

.ams-footer-bottom {
    border-top:
        1px solid
        rgba(
            255,
            255,
            255,
            .08
        );
}

.ams-footer-bottom p {
    margin: 0;
    padding:
        18px
        0;
    color:
        rgba(
            255,
            255,
            255,
            .50
        );
    font-size: 11px;
    line-height: 1.4;
    text-align: center;
}


/* AMS FOCUS — BACK TO TOP
   ========================================================================== */

html {
    scroll-behavior: smooth;
}

.ams-back-to-top {
    position: fixed;
    right: clamp(18px, 2vw, 32px);
    bottom: clamp(18px, 2vw, 30px);
    z-index: 980;

    display: inline-flex;
    align-items: center;

    padding: 0;
    border: 0;

    background: transparent;

    opacity: 0;
    transform: translate3d(0, 14px, 0);

    pointer-events: none;

    font: inherit;

    transition:
        opacity .25s ease,
        transform .25s ease;

    -webkit-tap-highlight-color: transparent;
}

.ams-back-to-top.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    pointer-events: auto;
}

.ams-back-to-top__label {
    max-width: 0;
    margin-right: 0;
    padding: 9px 0;

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;

    background:
        rgba(7, 24, 45, .95);

    box-shadow:
        0 12px 32px rgba(7, 24, 45, .16);

    color: #ffffff;

    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;

    opacity: 0;
    transform: translateX(8px);

    transition:
        max-width .28s ease,
        margin-right .28s ease,
        padding .28s ease,
        opacity .2s ease,
        transform .28s ease;
}

.ams-back-to-top__orb {
    position: relative;

    display: grid;
    width: 54px;
    height: 54px;

    flex: 0 0 54px;

    place-items: center;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, .94);

    box-shadow:
        0 12px 34px rgba(7, 24, 45, .18),
        0 0 0 1px rgba(8, 120, 255, .08);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    transition:
        background .22s ease,
        box-shadow .22s ease,
        transform .22s ease;
}

.ams-back-to-top__progress {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    transform: rotate(-90deg);
}

.ams-back-to-top__track,
.ams-back-to-top__value {
    fill: none;
    stroke-width: 2;
}

.ams-back-to-top__track {
    stroke: rgba(8, 120, 255, .14);
}

.ams-back-to-top__value {
    stroke: var(--ams-blue, #0878ff);
    stroke-linecap: round;
    stroke-dasharray: 100;
    stroke-dashoffset: 100;

    transition:
        stroke-dashoffset .08s linear;
}

.ams-back-to-top__arrow {
    position: relative;
    z-index: 2;

    width: 21px;
    height: 21px;

    fill: none;
    stroke: var(--ams-blue, #0878ff);
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        stroke .22s ease,
        transform .22s ease;
}

@media (hover: hover) and (pointer: fine) {

    .ams-back-to-top:hover
    .ams-back-to-top__label,
    .ams-back-to-top:focus-visible
    .ams-back-to-top__label {
        max-width: 150px;
        margin-right: 10px;
        padding-right: 14px;
        padding-left: 14px;

        opacity: 1;
        transform: translateX(0);
    }

    .ams-back-to-top:hover
    .ams-back-to-top__orb,
    .ams-back-to-top:focus-visible
    .ams-back-to-top__orb {
        background:
            var(--ams-blue, #0878ff);

        box-shadow:
            0 14px 38px rgba(8, 120, 255, .28);

        transform: translateY(-2px);
    }

    .ams-back-to-top:hover
    .ams-back-to-top__arrow,
    .ams-back-to-top:focus-visible
    .ams-back-to-top__arrow {
        stroke: #ffffff;
        transform: translateY(-1px);
    }
}

.ams-back-to-top:focus-visible {
    outline: none;
}

@media (max-width: 720px) {

    .ams-back-to-top {
        right: 14px;
        bottom: 16px;
    }

    .ams-back-to-top__label {
        display: none;
    }

    .ams-back-to-top__orb {
        width: 48px;
        height: 48px;

        flex-basis: 48px;
    }
}

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    .ams-back-to-top,
    .ams-back-to-top__label,
    .ams-back-to-top__orb,
    .ams-back-to-top__arrow,
    .ams-back-to-top__value {
        transition: none;
    }
}


/* AMS FOCUS — BACK TO TOP BUTTON RESET
   ========================================================================== */

/*
 * Neutralise les styles génériques du thème appliqués aux <button>.
 * Le rendu visuel appartient exclusivement à .ams-back-to-top__orb.
 */

.ams-focus-page .ams-back-to-top,
.ams-focus-page .ams-back-to-top:hover,
.ams-focus-page .ams-back-to-top:focus,
.ams-focus-page .ams-back-to-top:focus-visible,
.ams-focus-page .ams-back-to-top:active {
    appearance: none !important;
    -webkit-appearance: none !important;

    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;

    box-shadow: none !important;

    color: inherit !important;

    outline: none;
}
