    @font-face {
        font-family: 'BalooTammudu';
        src: url('/front/css/Baloo-Tammudu-Regular/balootammudu/BalooTammudu-Regular.ttf') format('truetype');
        font-weight: normal;
        font-style: normal;
    }

    .ql-align-center{
        text-align: center;
    }
    .ql-size-small{
        font-size: x-small;
    }


    .post-img-cover {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
        background: #eef1f4;
    }

    .post-img-cover a {
        width: 100%;
        height: 100%;
    }

    .post-img-cover-img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
        display: block;
    }

    /* Les contenus riches Quill ne doivent jamais dépasser leur colonne. */
    .ql-editor img,
    .portfolio-description img,
    .portfolio-info img,
    .case-preview-render img {
        max-width: 100% !important;
        height: auto !important;
    }

    /* Quill 2 utilise toujours <ol> et conserve le type réel dans data-list. */
    li[data-list="bullet"] {
        list-style-type: disc !important;
    }

    li[data-list="ordered"] {
        list-style-type: decimal !important;
    }

    li[data-list] > .ql-ui {
        display: none;
    }

    .ql-editor table,
    .portfolio-description table,
    .portfolio-info table,
    .case-preview-render table {
        border-collapse: collapse;
        display: table;
        table-layout: fixed;
        width: 100%;
        max-width: 100%;
    }

    .ql-editor table td,
    .ql-editor table th,
    .portfolio-description table td,
    .portfolio-description table th,
    .portfolio-info table td,
    .portfolio-info table th,
    .case-preview-render table td,
    .case-preview-render table th {
        border: 1px solid #d4d8dd;
        min-width: 0 !important;
        padding: .65rem .75rem;
        vertical-align: top;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .asfi-responsive-table__control-cell {
        display: none;
        padding: .35rem !important;
        text-align: center;
        width: 2.65rem;
    }

    .asfi-responsive-table__toggle {
        align-items: center;
        background: #f2c300;
        border: 0;
        border-radius: 999px;
        color: #111827;
        cursor: pointer;
        display: inline-flex;
        height: 2rem;
        justify-content: center;
        padding: 0;
        width: 2rem;
    }

    .asfi-responsive-table__toggle[hidden] {
        display: none;
    }

    .asfi-responsive-table__toggle:focus {
        outline: 2px solid #111827;
        outline-offset: 2px;
    }

    .asfi-responsive-table__details-row[hidden] {
        display: none;
    }

    .asfi-responsive-table__details-cell {
        background: #f8fafc;
        padding: .75rem !important;
    }

    .asfi-responsive-table__detail-item {
        align-items: start;
        border-bottom: 1px solid #e5e7eb;
        display: grid;
        gap: .75rem;
        grid-template-columns: minmax(7rem, .35fr) minmax(0, 1fr);
        padding: .45rem 0;
    }

    .asfi-responsive-table__detail-item:last-child {
        border-bottom: 0;
    }

    .asfi-responsive-table__detail-item span {
        color: #6b7280;
        font-size: .85rem;
        font-weight: 700;
    }

    .asfi-responsive-table__detail-item strong {
        color: #111827;
        font-size: .92rem;
        font-weight: 500;
        overflow-wrap: anywhere;
    }

    @media (max-width: 1024px) {
        .asfi-responsive-table {
            table-layout: fixed;
        }

        .asfi-responsive-table__control-column {
            width: 2.3rem;
        }

        .asfi-responsive-table__control-cell {
            display: table-cell;
            box-sizing: border-box;
            max-width: 2.3rem !important;
            min-width: 2.3rem !important;
            padding-left: .15rem !important;
            padding-right: .15rem !important;
            white-space: nowrap;
            width: 2.3rem !important;
        }

        .asfi-responsive-table__toggle {
            height: 1.75rem;
            width: 1.75rem;
        }

        .asfi-responsive-table__cell--hidden {
            display: none;
        }
    }

    @media (max-width: 520px) {
        .asfi-responsive-table__detail-item {
            display: block;
        }

        .asfi-responsive-table__detail-item span,
        .asfi-responsive-table__detail-item strong {
            display: block;
        }

        .asfi-responsive-table__detail-item strong {
            margin-top: .15rem;
        }
    }

    .asfi-records-table-scroll {
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    .asfi-records-table-v2 {
        table-layout: auto !important;
        width: 100% !important;
    }

    .asfi-records-scroll-notice {
        align-items: flex-start;
        background: #fff7d6;
        border: 1px solid #f2c300;
        border-left: 5px solid #f2c300;
        border-radius: .4rem;
        color: #423600;
        display: none;
        gap: .65rem;
        line-height: 1.45;
        margin: 1rem 0;
        padding: .8rem .9rem;
    }

    .asfi-records-scroll-notice i {
        flex: 0 0 auto;
        font-size: 1.2rem;
        margin-top: .05rem;
    }

    @media (max-width: 767px) {
        #contact #map.leaflet-container {
            height: 50vh !important;
            height: 50dvh !important;
            max-height: 50vh !important;
            max-height: 50dvh !important;
            min-height: 0 !important;
        }

        .asfi-records-scroll-notice {
            display: flex;
        }

        .asfi-records-table-v2 {
            min-width: 850px;
        }
    }

    @media (max-height: 500px) {
        #contact #map.leaflet-container {
            height: 50vh !important;
            height: 50dvh !important;
            max-height: 50vh !important;
            max-height: 50dvh !important;
            min-height: 0 !important;
        }
    }

    /* Hero v1.0 : laisse apparaître la continuité de la page. */
    .hero.asfi-hero-v1 {
        min-height: 100vh;
        min-height: 100dvh;
    }

    @media (max-width: 768px) {
        .hero.asfi-hero-v1 {
            height: 100vh;
            height: 100svh;
            height: 100dvh;
            min-height: 100vh;
            min-height: 100svh;
            min-height: 100dvh;
        }

        .hero.asfi-hero-v1 > .carousel,
        .hero.asfi-hero-v1 > .carousel > section,
        .hero.asfi-hero-v1 > .carousel .carousel-item {
            height: 100%;
        }
    }

    .asfi-hero-v1__scroll {
        align-items: center;
        bottom: 12px;
        color: #fff;
        display: flex;
        flex-direction: column;
        font-size: .92rem;
        font-weight: 700;
        gap: 1px;
        left: 50%;
        line-height: 1.2;
        padding: 6px 14px;
        position: absolute;
        text-align: center;
        text-shadow: 0 1px 5px rgba(0, 0, 0, .8);
        transform: translateX(-50%);
        transition: color .25s ease;
        white-space: nowrap;
        z-index: 5;
    }

    .asfi-hero-v1__link--hidden {
        display: none !important;
    }

    .asfi-hero-v1__scroll i {
        animation: asfi-hero-scroll-hint 1.6s ease-in-out infinite;
        color: #feb900;
        font-size: 1.65rem;
        line-height: 1;
    }

    .asfi-hero-v1__scroll:hover,
    .asfi-hero-v1__scroll:focus {
        color: #feb900;
    }

    .asfi-hero-v1__scroll:focus-visible {
        border-radius: .35rem;
        outline: 3px solid #feb900;
        outline-offset: 2px;
    }

    .asfi-hero-v1__target {
        display: block;
        height: 0;
        scroll-margin-top: 88px;
    }

    @keyframes asfi-hero-scroll-hint {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(6px); }
    }

    @media (prefers-reduced-motion: reduce) {
        .asfi-hero-v1__scroll i {
            animation: none;
        }
    }
