/* Définition des variables personnalisées pour les images embarquées */

[class*="five-rate-"], .rating-scale, figure[class*="notation"] {
    /* angles 0°
    --rating-mask-full: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="m16.04,0l4.89,10.5,11.07,1.7-7.98,8.24,1.88,11.56-9.86-5.49-9.93,5.49,1.88-11.56L0,12.19l11.07-1.7L16.04,0Z"/></svg>');
    --rating-mask-half: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="m16,.08v26.45l-9.89,5.47,1.88-11.56L0,12.19l11.07-1.7L16,.08Z"/></svg>');
    --rating-mask-empty: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="m25.91,32l-9.87-5.49-9.94,5.49,1.88-11.56L0,12.2l11.06-1.69L16.04,0l4.9,10.51,11.06,1.69-7.98,8.23,1.88,11.56ZM2.04,12.89l6.97,7.2-1.64,10.06,8.66-4.78,8.59,4.78-1.64-10.06,6.97-7.19-9.67-1.48-4.26-9.14-4.32,9.13-9.67,1.48Z"/></svg>');
    */
    /*
    Angles arrondis */
    --rating-mask-full: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16.97,1.32l3.99,8.58c.06.14.24.27.39.29l9.14,1.41c1.08.17,1.34.95.58,1.73l-6.64,6.87c-.1.1-.16.3-.14.44l1.55,9.55c.19,1.16-.49,1.63-1.51,1.07l-8.03-4.48c-.14-.08-.36-.08-.5,0l-8.11,4.49c-1.02.56-1.7.08-1.51-1.07l1.55-9.56c.02-.14-.04-.34-.14-.44L.94,13.32c-.76-.79-.5-1.57.58-1.73l9.14-1.41c.15-.02.32-.15.39-.29L15.1,1.32c.52-1.09,1.35-1.09,1.86,0Z"/></svg>');
    --rating-mask-half: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16,26.73c-.08,0-.15.02-.21.05l-8.11,4.49c-1.02.56-1.7.08-1.51-1.07l1.55-9.56c.02-.14-.04-.34-.14-.44L.94,13.32c-.76-.79-.5-1.57.58-1.73l9.14-1.41c.15-.02.32-.15.39-.29L15.1,1.32c.25-.52.57-.79.9-.81v26.22Z"/></svg>');
    --rating-mask-empty: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M7.05,31.5c-.21,0-.4-.06-.57-.17-.36-.26-.51-.75-.4-1.4l1.53-9.41c.01-.06-.03-.18-.07-.22L1,13.53c-.43-.44-.59-.92-.45-1.33.14-.41.55-.69,1.16-.79l9-1.38c.06-.01.17-.09.2-.15L14.9,1.44c.29-.61.69-.94,1.14-.94h0c.45,0,.85.34,1.13.95l3.92,8.44c.03.06.13.14.2.15l9,1.38c.61.09,1.02.37,1.16.79.14.42-.02.89-.45,1.33l-6.53,6.76s-.08.16-.07.22l1.53,9.4c.1.65-.04,1.15-.4,1.4-.37.25-.88.22-1.45-.1l-7.9-4.41c-.06-.03-.19-.03-.25,0l-7.98,4.42c-.32.18-.62.26-.88.26ZM16.03.99c-.24,0-.49.24-.69.66l-3.99,8.44c-.1.21-.34.39-.57.42l-9,1.38c-.41.06-.69.23-.77.46s.05.53.34.83l6.54,6.77c.15.16.24.43.2.64l-1.53,9.41c-.07.44,0,.78.2.92.2.14.54.09.93-.12l7.98-4.42c.21-.12.52-.11.73,0l7.9,4.41c.39.22.73.27.93.13.2-.14.27-.47.2-.92l-1.53-9.4c-.03-.22.05-.49.2-.64l6.54-6.76c.29-.3.41-.6.34-.83-.08-.23-.36-.4-.77-.46l-9-1.38c-.23-.04-.47-.22-.57-.43l-3.92-8.44c-.2-.42-.44-.67-.69-.67Z"/></svg>');
    --foreground-outline: var(--primary-color, gray);
}

figure.mask-bullets[class*="notation"] {
    --rating-mask-empty: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16,31c-8.27,0-15-6.73-15-15S7.73,1,16,1s15,6.73,15,15-6.73,15-15,15ZM16,4.75c-6.2,0-11.25,5.05-11.25,11.25s5.05,11.25,11.25,11.25,11.25-5.05,11.25-11.25-5.05-11.25-11.25-11.25Z"/></svg>');
    --rating-mask-full: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16,2.25c7.59,0,13.75,6.16,13.75,13.75s-6.16,13.75-13.75,13.75S2.25,23.59,2.25,16,8.41,2.25,16,2.25ZM16,31c-8.27,0-15-6.73-15-15S7.73,1,16,1s15,6.73,15,15-6.73,15-15,15ZM16,3.5c-6.89,0-12.5,5.61-12.5,12.5s5.61,12.5,12.5,12.5,12.5-5.61,12.5-12.5S22.89,3.5,16,3.5Z"/></svg>');
    --foreground-outline:  rgb(102,156,49);
}

@media (prefers-color-scheme: dark) {
    figure.mask-bullets[class*="notation"] {
        --foreground-outline: yellowgreen;
    }

}

:root.contrast [class*="five-rate-"], :root.contrast .rating-scale, :root.contrast figure[class*="notation"] {
    --foreground-outline: var(--basic-color, black);
}

@media (prefers-color-scheme: dark) {
    :root.contrast [class*="five-rate-"], :root.contrast .rating-scale, :root.contrast figure[class*="notation"] {
        --foreground-outline: var(--basic-color, white);
    }
}

@media (max-width: 63.9375rem) {
    [class*="five-rate-"] {
        --size-small: 1rem;
        --size-medium: 1.5rem;
        --size-large: 2rem;
    }
}

@media (min-width: 64rem) {
    [class*="five-rate-"] {
        --size-small: 1.5rem;
        --size-medium: 2rem;
        --size-large: 2.5rem;
    }
}

[class*="five-rate-"] {
    display: inline-flex;
    flex: none;
    flex-flow: row;
    text-align: center;
    margin: auto;
    white-space: nowrap;
}

[class*="rate-value"] {
    width: var(--size-medium);
    height: var(--size-medium);
    font-size: inherit;
    position: relative;
    margin: 0 !important;
}

[class*="rate-value"]:before,
[class*="rate-value"]:after {
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    position: absolute;
    content: '';
    inset: 0;
}

[class*="rate-value"]:before {
    background-color: var(--foreground-outline);
    -webkit-mask-image: var(--rating-mask-empty);
    mask-image: var(--rating-mask-empty);
}

[class*="five-rate-"].larger [class*="rate-value"] {
    width: var(--size-large);
    height: var(--size-large);
}

[class*="five-rate-"].smaller [class*="rate-value"] {
    width: var(--size-small);
    height: var(--size-small);
}

[class*="five-rate-"] button [aria-hidden="true"] {
    white-space: nowrap;
    overflow: hidden;
    width: 0 !important;
    height: 0 !important;
    text-indent: -6.25rem;
    line-height: 0;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0;
}

.rate-value-half:before {
    -webkit-mask-image: var(--rating-mask-half);
    mask-image: var(--rating-mask-half);
    background-color: var(--yellow, orange);
}

/* ajout d'une bordure de contraste en mode clair pour les demies étoiles */
.rate-value-half:after {
    -webkit-mask-image: var(--rating-mask-empty);
    mask-image: var(--rating-mask-empty);
    background-color: var(--foreground-outline);
}

@media (prefers-color-scheme: dark) {
    /* bordure de contraste en arrière en mode dark */
    .rate-value-half:before {
        z-index: 1;
    }

    .rate-value-half:after {
        z-index: 0;
    }
}

.rate-value-full:before {
    -webkit-mask-image: var(--rating-mask-full);
    mask-image: var(--rating-mask-full);
    background-color: var(--yellow, orange);
}

.five-rate-active:focus-within button:before {
    -webkit-mask-image: var(--rating-mask-full);
    mask-image: var(--rating-mask-full);
    background-color: var(--link-color,  rgb(93,63,224));
}

/*
Gestion des changements visuels à la navigation clavier = :hover
 */
.five-rate-active button:focus ~ [class*="rate-value"]:before {
    -webkit-mask-image: var(--rating-mask-empty);
    mask-image: var(--rating-mask-empty);
    background-color: var(--foreground-outline);
}

@media (prefers-color-scheme: light) {
    /* ajout d'une bordure de contraste en mode clair */
    .rate-value-full:after, .five-rate-active:focus-within button:after {
        -webkit-mask-image: var(--rating-mask-empty);
        mask-image: var(--rating-mask-empty);
        background-color: var(--foreground-outline);
    }

    .five-rate-active:focus-within button:after {
        background-color: transparent;
    }
}

@media (any-hover: hover) {
    .five-rate-active:hover button:before {
        -webkit-mask-image: var(--rating-mask-full);
        mask-image: var(--rating-mask-full);
        background-color: var(--link-color,  rgb(93,63,224));
    }

    .five-rate-active:hover button:after {
        background-color: transparent;
    }

    .five-rate-active button:hover ~ [class*="rate-value"]:before {
        -webkit-mask-image: var(--rating-mask-empty);
        mask-image: var(--rating-mask-empty);
        background-color: var(--foreground-outline);
    }
}

.five-rate-inactive * {
    cursor: default !important;
}

/*
 *
 *
 *
Affichage alternatif de la note en pourcentage

Exemples :

<figure aria-label="Évaluation actuelle (image 5 étoiles)" class="notation">
    <span role="img" aria-labelledby="rating-647da09c0ab9d" style="width: 66%"></span>
    <figcaption class="screen-readers" id="rating-647da09c0ab9d">noté 3,3 sur 5</figcaption>
</figure>

<figure aria-label="Évaluation actuelle (image 5 étoiles)" class="notation-xs">
    <span role="img" aria-labelledby="rating-647da09c0aba3" style="width: 51%"></span>
    <figcaption class="screen-readers" id="rating-647da09c0aba3">noté 2,55 sur 5</figcaption>
</figure>

 *
*/
figure[class*="notation"] {
    position: relative;
    display: inline-block;
    width: 10rem; /* 160px */
    height: 2rem; /* 32px */
    vertical-align: middle;
}

figure[class*="notation"]:before {
    -webkit-mask-image: var(--rating-mask-empty);
    -webkit-mask-repeat: repeat-x;
    mask-image: var(--rating-mask-empty);
    mask-repeat: repeat-x;
    content: "\A0" / "";
    inset: 0;
    position: absolute;
    background-color: var(--foreground-outline);
}

figure.notation-s {
    width: 5rem; /* 80px */
    height: 1rem; /* 16px */
}

figure.notation-xs {
    width: 3.125rem; /* 50px */
    height: 0.625rem; /* 10px */
}

figure[class*="notation"] [role='img'] {
    position: absolute;
    inset: 0;
}

figure[class*="notation"] [role='img']:after {
    -webkit-mask-image: var(--rating-mask-full);
    -webkit-mask-repeat: repeat-x;
    -webkit-mask-size: contain;
    mask-image: var(--rating-mask-full);
    mask-repeat: repeat-x;
    mask-size: contain;
    content: "\A0" / "";
    position: absolute;
    inset: 0;
    background-color:  rgb(102,156,49);
}

figure[class*="notation"][data-rate-value^="0.1"] [role='img']:after {
    -webkit-mask-size: cover;
    mask-size: cover;
}

@media (prefers-color-scheme: dark) {
    figure[class*="notation"] [role='img']:after {
        background-color: yellowgreen;
    }
}

/*
afficher les blocs en noir sans mode contrasté
 */
figure[class*="notation"]:before, figure[class*="notation"].monochrome [role='img']:after {
    background-color: var(--basic-color, black);
}

/*
afficher les blocs en blanc en mode sombre sans mode contrasté
 */
@media (prefers-color-scheme: dark) {
    figure[class*="notation"]:before, figure[class*="notation"].monochrome [role='img']:after {
        background-color: var(--basic-color, white);
    }
}

:root.contrast figure[class*="notation"] [role='img']:after {
    background-color: var(--basic-color);
}

/***********************
 * Restitution des votes
 **********************/

.rating-scale {
    padding: var(--size-large) calc(var(--size-large) / 2) calc(var(--size-large) / 2);
    max-width: 100%;
    width: 25rem; /* 400px */
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    background-color: var(--background-color-secondary);
    border-radius: var(--radius, 0.625rem);
    text-align: left;
    margin: auto;
}

:root.contrast .rating-scale {
    box-shadow: 0 0 0 1px var(--box-shadow, grey) inset;
}

@media (max-width: 63.9375rem) {
    .rating-scale {
        --size-small: 1rem;
        --size-medium: 1.5rem;
        --size-large: 2rem;
    }
}

@media (min-width: 64rem) {
    .rating-scale {
        --size-small: 1.5rem;
        --size-medium: 2rem;
        --size-large: 2.75rem;
    }
}

.outer-line .rating-scale {
    background-color: var(--background-color-hero);
}

.rating-scale[aria-label] {
    padding-top: 2.5rem; /* 40px */
    position: relative;
}

.rating-scale[aria-label]:before {
    content: attr(aria-label);
    position: absolute;
    left: calc(var(--size-large) / 2);
    top: 0;
    line-height: 2.5rem; /* 40px */
    font-size: inherit;
}

.rating-scale > * {
    height: var(--size-small);
    line-height: var(--size-small);
    font-size: smaller;
    margin-bottom: 0.1875em;
}

.rating-scale dt {
    width: 2.5rem; /* 40px */
    position: relative;
    margin: 0 !important;
}

.rating-scale dt:before, .rating-scale dt:after {
    content: "";
    position: absolute;
    height: var(--size-small);
    width: calc(var(--size-medium) / 2);
    top: 50%;
    right: 0.625rem; /* 10px */
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center center;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center center;
    transform: translateY(-50%);
}

.rating-scale dt:not([aria-hidden]):before {
    -webkit-mask-image: var(--rating-mask-full);
    mask-image: var(--rating-mask-full);
    background-color: var(--yellow, orange);
}

.rating-scale dt[aria-hidden]:before {
    -webkit-mask-image: var(--rating-mask-empty);
    mask-image: var(--rating-mask-empty);
    background-color: var(--foreground-outline);
}

@media (prefers-color-scheme: light) {
    .rating-scale dt:after {
        -webkit-mask-image: var(--rating-mask-empty);
        mask-image: var(--rating-mask-empty);
        background-color: var(--foreground-outline);
    }
}

.rating-scale dd {
    display: inline-block;
    width: calc(100% - 2.5rem); /* 100% - 40px */
    position: relative;
}

.rating-scale dd span.scale {
    background-color:  rgba(0, 0, 0, 0.05);
    width: calc(100% - 4.375rem); /* 100% - 70px */
    border-radius: var(--radius);
    position: absolute;
    left: 0;
    top: 51%;
    transform: translateY(-50%);
    height: calc(var(--size-medium) / 2);
}

@media (prefers-color-scheme: dark) {
    .rating-scale dd span.scale {
        background-color:  rgba(0, 0, 0, 0.3);
    }
}

/* si gestion du mode « contrast » */
:root.contrast .rating-scale dd span.scale {
    box-shadow: 0 0 0 1px var(--basic-color, grey);
}

.rating-scale dd .scale span {
    display: block;
    background-color: var(--yellow, orange);
    height: calc(var(--size-medium) / 2);
    border-radius: var(--radius, 0.625rem);
    position: absolute;
    left: 0;
    top: 0;
    overflow: hidden;
    font-size: 1px;
    color: transparent;
}

/* si gestion du mode « contrast » */
@media (prefers-color-scheme: light) {
    :root.contrast .rating-scale dd span.scale span {
        box-shadow: 0 0 0 1px var(--basic-color, black);
    }
}

.rating-scale dd > span:not(.scale) {
    position: absolute;
    color: var(--foreground-outline);
    line-height: var(--size-small);
    height: var(--size-small);
    top: 50%;
    width: 3.75rem; /* 60px */
    text-align: right;
    right: 0;
    transform: translateY(-50%);
}

@media (any-hover: none) {
    [class*="five-rate-active"] button {
        width: var(--size-medium, 2rem) !important;
        height: var(--size-medium, 2rem) !important;
    }
}