body .section-reussites .ligne-terminee .recit h3 {
    font-weight: 400 !important;
}

body .section-reussites .ligne-terminee .citation-reussite {
    font-weight: 400 !important;
}

body .page > .section-astuces,
body .page > .section-reussites,
body .page > .section-termines {
    margin-top: clamp(3.2rem, 8vw, 6.2rem) !important;
}

body .page > .stats-row {
    margin-top: clamp(1rem, 2.8vw, 1.6rem) !important;
    margin-bottom: clamp(4.2rem, 10vw, 7rem) !important;
}

body .page > .section-astuces,
body .page > .section-reussites,
body .page > .section-termines {
    margin-bottom: clamp(3rem, 7vw, 5.5rem) !important;
}

body {
    background: var(--fond) !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
    padding-bottom: 0 !important;
}

body .page {
    flex: 1 0 auto !important;
}

body .fil-ariane {
    width: min(1120px, calc(100% - 2rem));
    margin: 0.35rem auto 0.9rem;
    color: #111827;
    font-size: clamp(0.78rem, 2.4vw, 0.92rem);
    font-weight: 900;
}

body .fil-ariane ol {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}

body .fil-ariane ol::-webkit-scrollbar {
    display: none;
}

body .fil-ariane li {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    white-space: nowrap;
}

body .fil-ariane li + li::before {
    content: "›";
    color: #68707d;
    font-weight: 950;
}

body .fil-ariane a,
body .fil-ariane span {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.34rem 0.58rem;
    border: 2px solid #111827;
    border-radius: 9px;
    background: #ffffff;
    box-shadow: 3px 3px 0 #64dcc8;
    color: #111827;
    text-decoration: none;
}

body .fil-ariane span[aria-current="page"] {
    background: #fff6c8;
    box-shadow: 3px 3px 0 #ffd928;
}

body .marque,
body .bouton-gogogo,
body .bouton-logo,
body .popup-public .bouton-logo,
body .section-reussites .bravo {
    background: var(--jaune) !important;
}

body .store-toit {
    background: var(--jaune) !important;
}

body .photo-a,
body .photo-b,
body .photo-c {
    background: #f2f7ff !important;
}

body .titre-ligne h2 > span {
    display: inline-grid !important;
    place-items: center !important;
    width: 3.15rem !important;
    height: 3.15rem !important;
    margin-right: 0.72rem !important;
    border: 3px solid #111827 !important;
    border-radius: 13px !important;
    background: #ffffff !important;
    box-shadow: 5px 5px 0 #d9a8ff !important;
    color: var(--violet) !important;
    vertical-align: middle !important;
}

body .titre-ligne h2 > span .svg-icone {
    width: 1.75rem !important;
    height: 1.75rem !important;
    color: var(--violet) !important;
}

body .section-astuces .titre-ligne h2 > span {
    box-shadow: 5px 5px 0 #ffd94d !important;
}

body .section-reussites .titre-ligne h2 > span {
    box-shadow: 5px 5px 0 #d9a8ff !important;
}

body .section-termines .titre-ligne h2 > span {
    box-shadow: 5px 5px 0 #64dcc8 !important;
}

body .section-termines .termines-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
}

body .section-termines .ligne-gogogo-terminee {
    display: grid;
    grid-template-columns: minmax(8.8rem, auto) minmax(0, 1fr) minmax(13rem, auto);
    align-items: center;
    gap: 1.25rem;
    padding: 1.05rem 1.15rem;
    border: 3px solid #111827;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 6px 6px 0 #64dcc8;
}

body .section-termines .ligne-gogogo-terminee:nth-child(2n) {
    box-shadow: 6px 6px 0 #d9a8ff;
}

body .section-termines .numero-termine {
    display: grid;
    place-items: center;
    width: auto;
    min-width: 8.7rem;
    min-height: 3.45rem;
    height: auto;
    padding: 0.55rem 0.75rem;
    border: 3px solid #111827;
    border-radius: 13px;
    background: #fffdf4;
    color: #111827;
    font-size: 1rem;
    font-weight: 950;
    line-height: 1;
    box-shadow: 4px 4px 0 #ffd94d;
}

body .tags-gogogo {
    gap: 0.65rem !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

body .tags-gogogo span {
    border: 2px solid #111827 !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    box-shadow: 4px 4px 0 #d9a8ff !important;
    color: #111827 !important;
    font-weight: 950 !important;
}

body .tags-gogogo span:first-child {
    box-shadow: 4px 4px 0 #64dcc8 !important;
}

body .gogogo-en-cours .bouton-terminer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    min-height: 3.35rem !important;
    padding: 0.72rem 1rem !important;
    border: 3px solid var(--bord-fort) !important;
    border-radius: 13px !important;
    background: var(--jaune) !important;
    box-shadow: 5px 5px 0 #111827 !important;
    color: #050505 !important;
    font-size: clamp(1rem, 4vw, 1.25rem) !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
}

body .gogogo-en-cours .bouton-terminer .svg-icone {
    width: 1.25rem !important;
    height: 1.25rem !important;
    margin-left: auto !important;
    color: #050505 !important;
}

body .gogogo-du-jour {
    position: relative !important;
    overflow: hidden !important;
}

body .gogogo-du-jour .ruban-termine {
    position: absolute !important;
    top: 1.55rem !important;
    right: -3.4rem !important;
    z-index: 4 !important;
    width: 12rem !important;
    padding: 0.55rem 1rem !important;
    transform: rotate(38deg) !important;
    border: 3px solid #111827 !important;
    background: #ff5a6b !important;
    box-shadow: 4px 4px 0 #111827 !important;
    color: #ffffff !important;
    font-size: 0.92rem !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

body .gogogo-du-jour .bouton-gogogo-termine {
    cursor: not-allowed !important;
    border-color: #111827 !important;
    background: #d6d9df !important;
    box-shadow: 5px 5px 0 #9aa2b2 !important;
    color: #535b68 !important;
    opacity: 1 !important;
}

body .gogogo-du-jour .bouton-gogogo-termine .texte-barre {
    text-decoration: line-through !important;
    text-decoration-thickness: 0.18em !important;
}

body .gogogo-du-jour .bouton-gogogo-termine .svg-icone {
    color: #535b68 !important;
}

body .gogogo-en-cours .astuces-en-cours {
    margin-top: clamp(1.2rem, 3vw, 1.8rem);
}

body .gogogo-en-cours .astuces-en-cours .titre-ligne {
    margin-bottom: 1rem;
}

body .gogogo-en-cours .astuces-en-cours .titre-ligne h2 {
    font-size: clamp(1.05rem, 3.6vw, 1.35rem);
}

body .section-termines .infos-termine {
    display: grid;
    gap: 0.38rem;
    min-width: 0;
    align-content: center;
}

body .section-termines .infos-termine span {
    width: fit-content;
    padding: 0.28rem 0.62rem;
    border: 2px solid #111827;
    border-radius: 999px;
    background: #eafff8;
    color: #111827;
    font-size: 0.78rem;
    font-weight: 900;
    line-height: 1;
    order: 1;
}

body .section-termines .infos-termine h3 {
    order: 2;
    margin: 0;
    color: #111827;
    font-size: clamp(1rem, 3vw, 1.25rem);
    font-weight: 950;
    line-height: 1.15;
}

body .section-termines .metriques-terminee {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(5.6rem, 1fr)) !important;
    gap: 0.7rem !important;
    margin: 0 !important;
}

body .section-termines .metriques-terminee div {
    min-height: 3.25rem;
    padding: 0.55rem 0.7rem !important;
    border: 2px solid #111827 !important;
    border-radius: 12px !important;
    background: #fbfcfb !important;
    box-shadow: none !important;
}

body .section-termines .metriques-terminee dt {
    color: #6b7280 !important;
    font-size: 0.68rem !important;
    font-weight: 900 !important;
    text-transform: uppercase !important;
}

body .section-termines .metriques-terminee dd {
    margin: 0.12rem 0 0 !important;
    color: #111827 !important;
    font-size: 1.15rem !important;
    font-weight: 950 !important;
    line-height: 1 !important;
}

body .conditions-box {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: transparent !important;
    box-shadow: none !important;
}

body .conditions-box h2 {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    margin: 0 0 0.95rem !important;
    padding: 0 !important;
    border-bottom: 0 !important;
    color: #111827 !important;
    font-size: clamp(1.05rem, 3.6vw, 1.35rem) !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
}

body .conditions-box h2::before {
    display: none !important;
    content: none !important;
}

body .conditions-box .conditions-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.82rem !important;
}

body .conditions-box .condition-item:not(.carte-astuce) {
    display: grid !important;
    grid-template-columns: 2.45rem minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 0.85rem !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body .conditions-box .condition-item:not(.carte-astuce) span {
    display: grid !important;
    place-items: center !important;
    width: 2rem !important;
    height: 2rem !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #2fbf9c !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body .conditions-box .condition-item:not(.carte-astuce) span .svg-icone {
    display: none !important;
}

body .conditions-box .condition-item:not(.carte-astuce) span::before {
    content: "\f00c";
    font-family: "Font Awesome 6 Free";
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
}

body .conditions-box .condition-item:not(.carte-astuce) strong {
    color: #111827 !important;
    font-size: clamp(1rem, 3.6vw, 1.2rem) !important;
    font-weight: 850 !important;
}

body .conditions-en-cours.section-conditions-en-cours {
    margin-top: clamp(1.2rem, 3vw, 1.8rem) !important;
}

body .conditions-en-cours.section-conditions-en-cours .titre-ligne {
    margin-bottom: 1rem !important;
}

body .conditions-en-cours.section-conditions-en-cours .titre-ligne h2 {
    font-size: clamp(1.05rem, 3.6vw, 1.35rem) !important;
}

body .conditions-en-cours.section-conditions-en-cours .astuces-slider {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
}

body .conditions-en-cours.section-conditions-en-cours .carte-astuce > span .svg-icone {
    display: block !important;
}

@media (max-width: 430px) {
    body .conditions-en-cours.section-conditions-en-cours .astuces-slider {
        grid-template-columns: 1fr !important;
    }
}

body .section-reussites .ligne-terminee .entete-reussite {
    grid-template-columns: 5.1rem minmax(0, 1fr) minmax(9.8rem, 11rem) !important;
    margin-left: 6.35rem;
}

body .section-reussites .ligne-terminee {
    padding-left: 2rem !important;
}

body .section-reussites .ligne-terminee .temps-reussite {
    box-sizing: border-box;
    overflow: hidden;
    min-width: 0;
}

body .section-reussites .ligne-terminee .temps-reussite span {
    display: block;
    max-width: 100%;
    font-size: clamp(1.85rem, 3.2vw, 2.35rem) !important;
    line-height: 1;
    overflow-wrap: normal;
    white-space: nowrap;
}

body .section-reussites .ligne-terminee .rang {
    --fond-rang: #aef5dc;
    top: -3px;
    left: 2rem;
    width: 4.7rem;
    height: 7.75rem;
    padding: 1.05rem 0.45rem 1.25rem;
    border: 0 !important;
    border-radius: 0;
    background: #111827 !important;
    color: #111827;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 64% 100%, 50% 86%, 36% 100%, 0 100%) !important;
}

body .section-reussites .ligne-terminee:nth-child(2n) .rang {
    --fond-rang: #c78cff;
}

body .section-reussites .ligne-terminee .rang::before {
    display: none !important;
}

body .section-reussites .ligne-terminee .rang::after {
    content: "";
    position: absolute;
    inset: 0 3px 3px 3px;
    pointer-events: none;
    background: var(--fond-rang);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 64% 100%, 50% 86%, 36% 100%, 0 100%);
}

body .section-reussites .ligne-terminee .rang span,
body .section-reussites .ligne-terminee .rang strong {
    position: relative;
    z-index: 1;
}

body .section-reussites .ligne-terminee .rang span .svg-icone {
    width: 1.45rem;
    height: 1.45rem;
    color: #111827;
}

body .section-reussites .ligne-terminee .rang strong {
    font-size: 1.9rem;
}

body .section-reussites .ligne-terminee .publication-reussite {
    display: block !important;
}

body .section-reussites .ligne-terminee .publication-reussite .vignette {
    margin-bottom: 0.65rem;
}

body .section-reussites .ligne-terminee .publication-reussite strong,
body .section-reussites .ligne-terminee .publication-reussite p {
    display: block;
}

body .section-reussites .ligne-terminee .bravo {
    min-height: 3.65rem !important;
    padding: 0.75rem 1.1rem !important;
    border: 3px solid var(--bord-fort) !important;
    border-radius: 13px !important;
    background: var(--jaune) !important;
    box-shadow: 5px 5px 0 #111827 !important;
    color: #050505 !important;
}

body .section-reussites .ligne-terminee .bravo-label {
    font-size: clamp(1rem, 4vw, 1.25rem) !important;
    line-height: 1;
}

body .section-reussites .ligne-terminee .bravo-label .svg-icone,
body .section-reussites .ligne-terminee .bravo-nombre {
    color: #050505 !important;
}

body .section-reussites .ligne-terminee .bravo-nombre {
    font-size: clamp(1rem, 4vw, 1.25rem) !important;
}

body .section-astuces .astuces-slider {
    display: flex !important;
    flex-direction: column !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    grid-template-columns: none !important;
    gap: 0.95rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
    overflow: visible !important;
}

body .section-astuces .carte-astuce {
    display: grid !important;
    grid-template-columns: 2.8rem minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 0.8rem 1rem !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    padding: 0 0 0.95rem !important;
    border: 0 !important;
    border-bottom: 2px solid rgba(17, 24, 39, 0.12) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    scroll-snap-align: none !important;
}

body .section-astuces .carte-astuce:nth-child(1) {
    border-bottom-color: rgba(255, 217, 77, 0.75) !important;
}

body .section-astuces .carte-astuce:nth-child(2) {
    border-bottom-color: rgba(145, 205, 248, 0.85) !important;
}

body .section-astuces .carte-astuce:nth-child(3) {
    border-bottom-color: rgba(245, 184, 211, 0.85) !important;
}

body .section-astuces .carte-astuce:nth-child(4) {
    border-bottom-color: rgba(100, 220, 200, 0.85) !important;
}

body .section-astuces .carte-astuce:last-child {
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
}

body .section-astuces .carte-astuce > span {
    grid-row: 1 / span 2;
    grid-column: 1;
    border: 2.5px solid #111827 !important;
    background: #ffffff !important;
    box-shadow: 4px 4px 0 #ffd94d !important;
    color: #111827 !important;
}

body .section-astuces .carte-astuce:nth-child(1) > span {
    color: #d59b00 !important;
    box-shadow: 4px 4px 0 #ffd94d !important;
}

body .section-astuces .carte-astuce:nth-child(2) > span {
    color: #2f7fd3 !important;
    box-shadow: 4px 4px 0 #91cdf8 !important;
}

body .section-astuces .carte-astuce:nth-child(3) > span {
    color: #d9368b !important;
    box-shadow: 4px 4px 0 #f5b8d3 !important;
}

body .section-astuces .carte-astuce:nth-child(4) > span {
    color: #1da88d !important;
    box-shadow: 4px 4px 0 #64dcc8 !important;
}

body .section-astuces .carte-astuce h3 {
    grid-column: 2;
    grid-row: 1;
}

body .section-astuces .carte-astuce p {
    grid-column: 2;
    grid-row: 2;
}

body .section-astuces .carte-astuce h3,
body .section-astuces .carte-astuce p {
    margin: 0 !important;
}

body .pied-public {
    width: 100%;
    margin-top: auto;
    padding: clamp(2.4rem, 6vw, 4.2rem) clamp(1.25rem, 6vw, 4rem);
    background: #eafff8;
    border-top: 3px solid #111827;
    color: #111827;
}

body .pied-public-contenu {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(12rem, 0.8fr) minmax(0, 1fr);
    gap: clamp(1.4rem, 4vw, 3rem);
    width: min(100%, 1120px);
    margin: 0 auto;
}

body .pied-marque {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    margin-bottom: 0.85rem;
    font-size: clamp(1.45rem, 4vw, 2.15rem);
    font-weight: 950;
    line-height: 1;
}

body .pied-quest {
    padding: 0.16rem 0.38rem;
    border-radius: 7px;
    background: #111827;
    color: #ffffff;
    font-size: 0.52em;
}

body .pied-public p {
    margin: 0;
    color: #374151;
    font-weight: 650;
    line-height: 1.45;
}

body .pied-public nav,
body .pied-infos {
    display: grid;
    gap: 0.65rem;
    align-content: start;
}

body .pied-public h2 {
    margin: 0 0 0.25rem;
    color: #111827;
    font-size: 0.92rem;
    font-weight: 950;
    text-transform: uppercase;
}

body .pied-public nav a {
    width: fit-content;
    color: #111827;
    font-weight: 850;
    text-decoration: none;
}

body .pied-public nav a:hover {
    text-decoration: underline;
    text-decoration-thickness: 0.16rem;
    text-underline-offset: 0.22rem;
}

body .pied-infos p strong {
    color: #111827;
}

body .section-faq .faq-liste {
    display: grid;
    gap: 0.95rem;
}

body .section-faq details {
    padding: 1rem 1.1rem;
    border: 3px solid #111827;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 5px 5px 0 #91cdf8;
}

body .section-faq details:nth-child(2n) {
    box-shadow: 5px 5px 0 #d9a8ff;
}

body .section-faq summary {
    cursor: pointer;
    color: #111827;
    font-size: clamp(1rem, 3vw, 1.15rem);
    font-weight: 950;
    line-height: 1.2;
}

body .section-faq details p {
    margin: 0.75rem 0 0;
    color: #4b5563;
    font-weight: 650;
    line-height: 1.45;
}

body .etape-contrat .champ-icone {
    border: 2px solid #d8e1ef;
    background: #ffffff;
}

body .etape-contrat .champ-icone input {
    min-height: 3.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

body .case-contrat {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    background: #fffdf2;
    border-color: #111827;
    box-shadow: 4px 4px 0 #91cdf8;
    text-align: left;
}

body .case-contrat .case-contrat-label {
    display: grid;
    grid-template-columns: 1.35rem max-content;
    align-items: center;
    gap: 0.7rem;
    margin: 0;
}

body .case-contrat .case-contrat-label strong {
    color: #111827;
    font-weight: 950;
    line-height: 1.25;
}

body .case-contrat a {
    position: relative;
    z-index: 2;
    color: #111827;
    text-decoration: underline;
    text-decoration-thickness: 0.14rem;
    text-underline-offset: 0.2rem;
}

body .case-fin strong {
    display: block;
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    text-align: left;
    line-height: 1.15;
}

body .case-fin small {
    display: block;
    grid-column: 2;
    grid-row: 2;
    margin-top: 0.2rem;
    color: #68707d;
    font-size: 0.82rem;
    font-weight: 750;
    text-align: left;
    line-height: 1.25;
}

body .popup-fin .case-fin {
    grid-template-columns: 1.45rem minmax(0, 1fr) !important;
    align-items: start !important;
    column-gap: 0.8rem !important;
    row-gap: 0.16rem !important;
    text-align: left !important;
}

body .popup-fin .case-fin > span {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    margin-top: 0.08rem !important;
}

body .popup-fin .case-fin > strong,
body .popup-fin .case-fin > small {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}

body .popup-fin .aide-condition {
    margin: -0.15rem 0 0.75rem;
    color: #5f6674;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.35;
}

body .popup-fin .ligne-champs {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(7rem, 0.55fr);
    gap: 0.75rem;
}

body .popup-fin .etape-condition h2 {
    overflow-wrap: anywhere;
    padding-right: 0.2rem;
}

body .popup-fin .etape-condition {
    min-width: 0;
}

@media (max-width: 520px) {
    body .popup-fin .ligne-champs {
        grid-template-columns: 1fr;
    }
}

body dialog.popup-felicitations[open] {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: min(90vw, 520px) !important;
    max-height: calc(100dvh - 2rem) !important;
    margin: 0 !important;
    overflow: auto !important;
    translate: -50% -50% !important;
}

body.felicitations-ouvertes {
    overflow: hidden !important;
}

body .felicitations-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999 !important;
    display: grid !important;
    place-items: center !important;
    padding: 1rem !important;
    background:
        radial-gradient(circle at 20% 20%, rgba(100, 220, 200, 0.55), transparent 34%),
        radial-gradient(circle at 82% 18%, rgba(175, 43, 255, 0.35), transparent 30%),
        radial-gradient(circle at 50% 86%, rgba(255, 217, 40, 0.55), transparent 36%),
        rgba(16, 24, 40, 0.34) !important;
    opacity: 0 !important;
    transition: opacity 180ms ease !important;
}

body .felicitations-overlay.est-visible {
    opacity: 1 !important;
}

body .popup-felicitations-stable {
    position: relative !important;
    z-index: 2 !important;
    width: min(90vw, 520px) !important;
    max-height: calc(100dvh - 2rem) !important;
    overflow: auto !important;
    display: block !important;
    margin: 0 !important;
    animation: felicitation-arrivee 460ms cubic-bezier(0.18, 0.9, 0.22, 1.2) both !important;
}

body .felicitations-overlay .confettis {
    position: absolute !important;
    inset: 0 !important;
    pointer-events: none !important;
    overflow: hidden !important;
}

body .felicitations-overlay .confettis span {
    position: absolute !important;
    top: -12vh !important;
    left: calc((var(--i) * 5.3%) - 4%) !important;
    width: 0.65rem !important;
    height: 1rem !important;
    border-radius: 0.2rem !important;
    background: hsl(calc(var(--i) * 31), 90%, 58%) !important;
    animation: confetti-tombe 2.8s linear infinite !important;
    animation-delay: calc(var(--i) * -0.13s) !important;
    transform: rotate(calc(var(--i) * 18deg)) !important;
}

@keyframes felicitation-arrivee {
    0% {
        opacity: 0;
        transform: translateY(1.5rem) scale(0.86);
    }

    70% {
        opacity: 1;
        transform: translateY(-0.35rem) scale(1.03);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes confetti-tombe {
    0% {
        translate: 0 -12vh;
        rotate: 0deg;
    }

    100% {
        translate: calc((var(--i) - 9) * 0.35rem) 115vh;
        rotate: 540deg;
    }
}

body .section-reussites .publication-recente {
    box-shadow: 8px 8px 0 #ffd928, 12px 12px 0 #64dcc8 !important;
}

body .section-reussites .avatar-placeholder {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff4bf !important;
    color: #111827 !important;
    line-height: 1 !important;
    overflow: hidden !important;
}

body .section-reussites .avatar-placeholder .svg-icone {
    position: static !important;
    inset: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    transform: none !important;
    flex: 0 0 auto !important;
    font-size: 2rem !important;
    line-height: 1 !important;
    vertical-align: 0 !important;
}

body .section-reussites .avatar-placeholder .svg-icone::before {
    display: block !important;
    line-height: 1 !important;
}

@media (max-width: 640px) {
    body .section-reussites .ligne-terminee .entete-reussite {
        grid-template-columns: 4.2rem minmax(0, 1fr) !important;
        margin-left: 4.95rem;
    }

    body .section-reussites .ligne-terminee .temps-reussite {
        grid-column: 1 / -1 !important;
        width: fit-content;
        max-width: 100%;
    }

    body .section-reussites .ligne-terminee .rang {
        left: 1.1rem;
        width: 4.25rem;
    }

    body .section-reussites .ligne-terminee .publication-reussite {
        grid-template-columns: none !important;
    }

    body .section-reussites .ligne-terminee .publication-reussite .vignette {
        width: 100% !important;
        aspect-ratio: 1.25 / 1 !important;
    }

    body .section-termines .ligne-gogogo-terminee {
        grid-template-columns: minmax(7.4rem, auto) minmax(0, 1fr);
        gap: 0.8rem;
        padding: 0.85rem;
    }

    body .section-termines .numero-termine {
        width: auto;
        min-width: 7.4rem;
        height: 2.85rem;
        font-size: 0.82rem;
    }

    body .section-termines .metriques-terminee {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body .pied-public-contenu {
        grid-template-columns: 1fr;
    }
}

/* Groupes visuels dans le GoGoGo en cours */
body .gogogo-en-cours .section-conditions-en-cours,
body .gogogo-en-cours .astuces-en-cours {
    padding: clamp(1rem, 3.4vw, 1.35rem) !important;
    border: 3px solid #111827 !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    box-shadow: 7px 7px 0 #91cdf8 !important;
}

body .gogogo-en-cours .astuces-en-cours {
    box-shadow: 7px 7px 0 #ffd94d !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne,
body .gogogo-en-cours .astuces-en-cours .titre-ligne {
    margin-bottom: 1.05rem !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2,
body .gogogo-en-cours .astuces-en-cours .titre-ligne h2 {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    margin: 0 !important;
    color: var(--violet) !important;
    font-size: clamp(1.05rem, 3.6vw, 1.35rem) !important;
    font-weight: 950 !important;
    line-height: 1.05 !important;
    text-transform: uppercase !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span,
body .gogogo-en-cours .astuces-en-cours .titre-ligne h2 > span {
    display: inline-grid !important;
    place-items: center !important;
    width: 2.8rem !important;
    height: 2.8rem !important;
    margin-right: 0.72rem !important;
    border: 3px solid #111827 !important;
    border-radius: 13px !important;
    background: #ffffff !important;
    box-shadow: 5px 5px 0 #d9a8ff !important;
    color: var(--violet) !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span .svg-icone,
body .gogogo-en-cours .astuces-en-cours .titre-ligne h2 > span .svg-icone {
    width: 1.45rem !important;
    height: 1.45rem !important;
    color: var(--violet) !important;
}

body .gogogo-en-cours .section-conditions-en-cours .astuces-slider,
body .gogogo-en-cours .astuces-en-cours .astuces-slider {
    gap: 0.88rem !important;
}

/* Conditions en cours : icône visible et grille 2 colonnes */
body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span .svg-icone {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span::before {
    display: none !important;
    content: none !important;
}

body .gogogo-en-cours .section-conditions-en-cours .conditions-grid,
body .gogogo-en-cours .section-conditions-en-cours .astuces-slider {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(0.65rem, 2.2vw, 0.95rem) !important;
}

@media (max-width: 430px) {
    body .gogogo-en-cours .section-conditions-en-cours .conditions-grid,
    body .gogogo-en-cours .section-conditions-en-cours .astuces-slider {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0.62rem !important;
    }

    body .gogogo-en-cours .section-conditions-en-cours .carte-astuce {
        grid-template-columns: 2.25rem minmax(0, 1fr) !important;
        gap: 0.55rem 0.65rem !important;
    }

    body .gogogo-en-cours .section-conditions-en-cours .carte-astuce > span {
        width: 2.25rem !important;
        height: 2.25rem !important;
    }
}

/* Conditions en cours : afficher l'icône réelle de chaque élément, pas le check générique */
body .gogogo-en-cours .section-conditions-en-cours .condition-item > span::before {
    display: none !important;
    content: none !important;
}

body .gogogo-en-cours .section-conditions-en-cours .condition-item > span .svg-icone {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    height: 100% !important;
    font-size: 1.08rem !important;
    line-height: 1 !important;
    text-align: center !important;
    color: inherit !important;
}

body .gogogo-en-cours .section-conditions-en-cours .condition-item > span .svg-icone::before {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    transform: translate(-50%, -50%) !important;
}

body .gogogo-en-cours .section-conditions-en-cours .condition-item > span {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    line-height: 1 !important;
    color: var(--violet) !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span {
    position: relative !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span .svg-icone {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    font-size: 1.45rem !important;
    line-height: 1 !important;
}

body .gogogo-en-cours .section-conditions-en-cours .titre-ligne h2 > span .svg-icone::before {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    display: block !important;
    margin: 0 !important;
    line-height: 1 !important;
    transform: translate(-50%, -50%) !important;
}

body .gogogo-en-cours .section-conditions-en-cours .condition-item:nth-child(1) > span,
body .gogogo-en-cours .section-conditions-en-cours .condition-item:nth-child(2) > span {
    color: #2f7fd3 !important;
}

body .gogogo-en-cours .section-conditions-en-cours .condition-item:nth-child(3) > span {
    color: #1da88d !important;
}

body .popup-fin .bouton-suivant[aria-busy="true"] {
    cursor: wait !important;
    opacity: 0.86 !important;
}

body .popup-fin .bouton-suivant[aria-busy="true"]::after {
    content: "";
    width: 1.05rem;
    height: 1.05rem;
    border: 3px solid #111827;
    border-top-color: transparent;
    border-radius: 999px;
    animation: gogogo-rotation 0.7s linear infinite;
}

body .popup-fin .erreur-fin {
    margin: 0.85rem 0 0;
    padding: 0.75rem 0.9rem;
    border: 2px solid #111827;
    border-radius: 12px;
    background: #fff0f0;
    color: #111827;
    font-weight: 850;
}

body .upload-publication {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 3px solid #111827;
    border-radius: 16px;
    background: #fffdf4;
    box-shadow: 5px 5px 0 #8fd0ff;
}

body .upload-publication-vignette {
    display: grid;
    place-items: center;
    width: 5rem;
    aspect-ratio: 1;
    border: 3px dashed #111827;
    border-radius: 14px;
    background: #ffffff;
    color: #2f7fd3;
    font-size: 1.8rem;
}

body .upload-publication-texte {
    display: grid;
    gap: 0.38rem;
}

body .upload-publication-texte strong {
    color: #111827;
    font-size: clamp(1rem, 3vw, 1.18rem);
    font-weight: 950;
}

body .upload-publication-texte p,
body .upload-publication-texte small {
    margin: 0;
    color: #4b5563;
    font-weight: 800;
}

body .barre-upload {
    width: 100%;
    height: 0.8rem;
    overflow: hidden;
    border: 2px solid #111827;
    border-radius: 999px;
    background: #ffffff;
}

body .barre-upload span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #ffd928, #64dcc8);
    transition: width 0.25s ease;
}

body [data-statut-upload="termine"] .upload-publication-vignette {
    border-style: solid;
    color: #1da88d;
    box-shadow: 4px 4px 0 #64dcc8;
}

body [data-statut-upload="erreur"] .upload-publication-vignette {
    color: #ff6b6b;
    box-shadow: 4px 4px 0 #ffb3c7;
}

body .section-reussites .ligne-terminee .entete-reussite,
body .section-reussites .ligne-terminee:first-child .entete-reussite {
    grid-template-columns: 4.1rem minmax(0, 1fr) minmax(7.2rem, 8.4rem) !important;
    gap: 0.75rem !important;
    margin-left: 5.05rem !important;
}

body .section-reussites .ligne-terminee .avatar-reussite,
body .section-reussites .ligne-terminee:first-child .avatar-reussite {
    width: 4.1rem !important;
    height: 4.1rem !important;
}

body .section-reussites .ligne-terminee .rang {
    left: 1.7rem !important;
    width: 3.9rem !important;
    height: 6.15rem !important;
    padding: 0.78rem 0.35rem 1rem !important;
}

body .section-reussites .ligne-terminee .rang span .svg-icone {
    width: 1.12rem !important;
    height: 1.12rem !important;
}

body .section-reussites .ligne-terminee .rang strong {
    font-size: 1.45rem !important;
}

body .section-reussites .ligne-terminee .nom-auteur,
body .section-reussites .ligne-terminee:first-child .nom-auteur {
    font-size: clamp(1.05rem, 2.2vw, 1.35rem) !important;
}

body .section-reussites .ligne-terminee .temps-reussite {
    gap: 0.12rem 0.35rem !important;
    padding: 0.58rem 0.62rem !important;
    border-radius: 12px !important;
}

body .section-reussites .ligne-terminee .temps-reussite small {
    font-size: 0.62rem !important;
}

body .section-reussites .ligne-terminee .temps-reussite span {
    font-size: clamp(1.2rem, 2.6vw, 1.55rem) !important;
}

@media (max-width: 640px) {
    body .section-reussites .ligne-terminee .entete-reussite,
    body .section-reussites .ligne-terminee:first-child .entete-reussite {
        grid-template-columns: 3.7rem minmax(0, 1fr) !important;
        margin-left: 4.45rem !important;
        gap: 0.65rem !important;
    }

    body .section-reussites .ligne-terminee .avatar-reussite,
    body .section-reussites .ligne-terminee:first-child .avatar-reussite {
        width: 3.7rem !important;
        height: 3.7rem !important;
    }

    body .section-reussites .ligne-terminee .rang {
        left: 1rem !important;
        width: 3.45rem !important;
        height: 5.65rem !important;
    }

    body .section-reussites .ligne-terminee .temps-reussite {
        width: fit-content !important;
        padding: 0.5rem 0.58rem !important;
    }
}

@keyframes gogogo-rotation {
    to {
        transform: rotate(360deg);
    }
}
