.title-text {
    padding-top: 100px;
    position: relative;
    overflow: hidden;
}

.title-text > .ctnr {
    max-width: 830px;
    position: relative;
    z-index: 1;
}

.title-text.width-narrow > .ctnr {
    max-width: 960px;
}

.title-text.width-wide > .ctnr {
    max-width: 1260px;
}

.title-text h2 {
    color: var(--primary-400);
    font: 800 24px var(--f1);
    text-transform: uppercase;
    margin-bottom: 20px;
}

.title-text .text {
    color: var(--grey-700);
    line-height: 150%;
}

/* Encart sources : filet et triangle orange repris de la charte */

.title-text .sources {
    margin-top: var(--gap2);
    padding: var(--gap1) var(--gap15);
    border-left: 3px solid var(--secondary-400);
    color: var(--grey-500);
    font-size: 14px;
    line-height: 150%;
}

.title-text .sources-label {
    display: flex;
    align-items: center;
    gap: var(--gap05);
    margin: 0 0 var(--gap05);
    color: var(--primary-400);
    font: 800 12px var(--f1);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.title-text .sources-label::before {
    content: '';
    width: 8px;
    height: 11px;
    background: var(--secondary-400);
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.title-text .sources-list {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: lm-source;
}

.title-text .sources-list li {
    display: grid;
    grid-template-columns: 16px 1fr;
    gap: var(--gap05);
    align-items: baseline;

    /* Padding latéral pour aérer le surlignage :target, compensé pour garder l'alignement */
    margin: 0 calc(-1 * var(--gap05));
    padding: 4px var(--gap05);
    border-radius: 4px;
    counter-increment: lm-source;
    scroll-margin-top: 140px;
    transition: background-color var(--lm-duration-slow) var(--lm-ease-out);
}

.title-text .sources-list li::before {
    content: counter(lm-source);
    display: grid;
    place-items: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--white);
    color: var(--primary-400);
    font-size: 11px;
    font-weight: 700;
}

.title-text .sources-list li:target {
    background: var(--secondary-300);
}

.title-text .sources-list a {
    color: var(--primary-400);
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
}

.title-text .sources-list .back {
    text-decoration: none;
    white-space: nowrap;
}

.title-text .sources-list a:hover,
.title-text .sources-list a:focus-visible {
    color: var(--tertiary-500);
}

/* Appels de note dans le texte : "[1]" converti en exposant cliquable */

.title-text .text .note-ref {
    margin-left: 1px;
    font-size: 11px;
    line-height: 0;
    vertical-align: super;
}

.title-text .text .note-ref a {
    padding: 0 1px;
    color: var(--primary-400);
    font-weight: 800;
    text-decoration: none;
}

.title-text .text .note-ref a:hover,
.title-text .text .note-ref a:focus-visible {
    color: var(--secondary-400);
}

/* Triangles décoratifs de coin */

.title-text .triangle {
    position: absolute;
    width: 84px;
    height: 117px;
    pointer-events: none;
    z-index: 0;
}

.title-text .triangle-top-left {
    top: 0;
    left: 0;
}

.title-text .triangle-top-right {
    top: 0;
    right: 0;
    transform: scaleX(-1);
}

.title-text .triangle-bottom-left {
    bottom: 0;
    left: 0;
    transform: scaleY(-1);
}

.title-text .triangle-bottom-right {
    bottom: 0;
    right: 0;
    transform: scale(-1, -1);
}
