:root {
    --tc-night: #102e3a;
    --tc-primary: #007d99;
    --tc-secondary: #1caf8d;
    --tc-soft: #d9f1eb;
    --tc-text: #101820;
    --tc-white: #fff;
    --tc-muted: #5f6b70;
    --tc-border: #dfe7e8;
    --tc-shell: 1240px;
    --tc-radius: 18px
}
* {
    box-sizing: border-box
}
html {
    scroll-behavior: smooth
}
@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,100..900;1,100..900&display=swap');

body.twoconcert-front {
    margin: 0;
    color: var(--tc-text);
    background: #fff;
    font-family: "Archivo", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
    "wdth" 100;
    font-size: 17px;
    line-height: 1.55
}
a {
    color: var(--tc-primary);
    text-underline-offset: 3px
}
img {
    max-width: 100%;
    height: auto
}
.tc-shell {
    width: min(calc(100% - 48px), var(--tc-shell));
    margin-inline: auto
}
.tc-skip {
    position: absolute;
    left: -9999px;
    top: 8px;
    z-index: 10000;
    background: #fff;
    padding: 10px
}
.tc-skip:focus {
    left: 8px
}
.tc-header {
    background: #fff;
    position: relative;
    z-index: 50
}
.tc-header-top {
    min-height: 116px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px
}
.tc-brand {
    text-decoration: none;
    color: var(--tc-text);
    display: flex;
    align-items: center
}
.tc-brand-name {
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -.03em
}
.custom-logo {
    max-height: 78px;
    width: auto
}
.tc-cndp {
    display: flex;
    align-items: center;
    gap: 2px;
    font-size: 12px;
    font-weight: 700;
    color: #37404a;
    flex-flow: column;
    /* text-transform: uppercase; */
    letter-spacing: 0;
    border: 2px solid var(--tc-text);
}
.tc-cndp img {
    width: 150px;
    max-height: 62px;
    object-fit: contain
}
.tc-nav-wrap {
    border-top: 1px solid #edf1f2;
    border-bottom: 1px solid #edf1f2;
    background: #fff
}
.tc-nav-row {
    display: flex;
    align-items: center;
    gap: 24px
}
.tc-nav {
    flex: 1
}
.tc-menu {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 3px;
    flex-wrap: wrap
}
.tc-menu li {
    margin: 0
}
.tc-menu a {
    display: block;
    padding: 15px 12px;
    color: #193038;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    border-bottom: 3px solid transparent
}
.tc-menu .current-menu-item > a, .tc-menu a:hover {
    color: var(--tc-primary);
    border-color: var(--tc-primary)
}
.tc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 22px;
    background: var(--tc-secondary);
    color: #fff !important;
    text-decoration: none;
    font-weight: 800;
    border: 0;
    border-radius: 999px;
    transition: .2s
}
.tc-btn:hover {
    transform: translateY(-1px);
    filter: brightness(.94)
}
.tc-btn-participate {
    white-space: nowrap
}
.tc-menu-toggle {
    display: none;
    background: transparent;
    border: 0;
    padding: 8px
}
.tc-menu-toggle span {
    display: block;
    width: 25px;
    height: 2px;
    background: var(--tc-text);
    margin: 5px
}
.tc-menu-toggle b {
    font-size: 11px
}
.tc-hero {
    background: linear-gradient(110deg, var(--tc-action), var(--tc-primary));
    color: #fff
}
.tc-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    min-height: 490px
}
.tc-hero-copy {
    padding: 64px 56px 64px 0;
    display: flex;
    flex-direction: column;
    justify-content: center
}
.tc-kicker, .tc-eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 12px;
    font-weight: 900;
    margin: 0 0 12px
}
.tc-hero h1 {
    font-size: clamp(34px, 4vw, 60px);
    line-height: 1.05;
    margin: 0 0 30px
}
.tc-hero-media {
    position: relative;
    min-height: 390px
}
.tc-hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block
}
.tc-btn-light {
    background: #fff!important;
    color: var(--tc-primary) !important;
    align-self: flex-start
}

.tc-btn-primary {
    color: #fff!important;
    background: var(--tc-primary) !important;
    align-self: flex-start
}

.tc-section {
    padding: 80px 0;
    background-image: url("../images/bg-halo-2.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: left center;
    background-attachment: fixed;
}
.tc-section-soft {
    background: #f2f8f7
}
 
.tc-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 80px;
    align-items: start
}
.tc-section h2, .tc-page-hero h1 {
    font-size: clamp(32px, 3vw, 42px);
    line-height: 1.08;
    letter-spacing: -.035em;
    margin: 0 0 26px
}

.tc-section h2 {
    color: var(--tc-primary);
    color: #008F90;
}

.tc-page-hero h1 {
    margin: 0;
}
.tc-section h3 {
    font-size: 25px;
    line-height: 1.15;
    margin: 8px 0 14px;
    margin-bottom: 20px;
    color: var(--tc-secondary);
}
.tc-lead {
    font-size: 22px;
    line-height: 1.45
}
.tc-action-card {
    background: var(--tc-night);
    color: #fff;
    border-radius: var(--tc-radius);
    padding: 34px;
    position: sticky;
    top: 24px
}
.tc-action-card-label {
    display: inline-block;
    color: #a7eadb;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em
}
.tc-action-card h3 {
    font-size: 31px
}
.tc-section-head {
    max-width: 760px;
    margin-bottom: 36px
}
.tc-cards {
    display: grid;
    gap: 24px
}
.tc-cards-2 {
    grid-template-columns: repeat(2, 1fr)
}
.tc-cards-3 {
    grid-template-columns: repeat(3, 1fr)
}
.tc-card, .tc-mini-card {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 34px
}
.tc-card {
    min-height: 290px
}
.tc-card-index, .tc-mini-card > span {
    color: var(--tc-secondary);
    font-weight: 900;
    font-size: 13px
}
.tc-card a, .tc-mini-card a {
    font-weight: 800;
    text-decoration: none
}
.tc-card a span {
    transition: .2s
}
.tc-card a:hover span {
    padding-left: 5px
}
.tc-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px
}
.tc-cta > div:first-child {
    max-width: 760px
}
.tc-cta-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px
}
.tc-link-light {
    color: #fff;
    font-weight: 800
}
.tc-page-hero {
    padding: 52px 0;
    background: linear-gradient(120deg, #e5f5f0, #d8edf6)
}
.tc-page-hero-action {
    background: url("../images/bg-halo-2.png") center / cover no-repeat, linear-gradient(115deg, var(--tc-primary), var(--tc-night));
    color: #fff
}
.tc-page-hero p {
    max-width: 780px;
    font-size: 20px
}
.tc-prose {
    max-width: 900px
}
.tc-prose > *:first-child {
    margin-top: 0
}
.tc-prose h2 {
    margin-top: 52px
}
.tc-stack {
    display: grid;
    gap: 34px
}
.tc-component {
    padding: 34px;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius)
}
.tc-footer {
    background: var(--tc-white);
    color: var(--tc-text);
    padding: 58px 0 22px
}
.tc-footer a {
    color: var(--tc-text);
}
.tc-footer-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 40px
}
.tc-footer-title {
    font-size: 22px;
    color: var(--tc-text);
}
.tc-footer-menu {
    list-style: none;
    padding: 0;
    margin: 0
}
.tc-footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px
}
.tc-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .15);
    margin-top: 42px;
    padding-top: 20px;
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: #aebfc3
}
@media(max-width:960px) {
    .tc-shell {
        width: min(calc(100% - 36px), var(--tc-shell))
    }
    .tc-header-top {
        min-height: 90px
    }
    .tc-cndp span {
        display: none
    }
    .tc-cndp img {
        width: 118px
    }
    .tc-menu-toggle {
        display: block
    }
    .tc-nav-wrap {
        border: 0
    }
    .tc-nav-row {
        display: block
    }
    .tc-nav {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        background: #fff;
        border-top: 1px solid var(--tc-border);
        box-shadow: 0 14px 30px rgba(0, 0, 0, .12)
    }
    .tc-menu-open .tc-nav {
        display: block
    }
    .tc-menu {
        display: block;
        padding: 12px 18px
    }
    .tc-menu a {
        padding: 13px 8px
    }
    .tc-btn-participate {
        position: absolute;
        right: 76px;
        top: 23px;
        min-height: 42px;
        padding: 9px 16px
    }
    
    body.page-template-page-je-participe .tc-btn-participate {
        display: none;
    }
    
    .tc-hero-grid {
        grid-template-columns: 1fr
    }
    .tc-hero-copy {
        padding: 52px 0
    }
    .tc-hero-media {
        min-height: 330px
    }
    .tc-intro-grid {
        grid-template-columns: 1fr;
        gap: 36px
    }
    .tc-action-card {
        position: static
    }
    .tc-cards-3 {
        grid-template-columns: 1fr 1fr
    }
    .tc-cta {
        align-items: flex-start;
        flex-direction: column
    }
    .tc-footer-grid {
        grid-template-columns: 1fr 1fr
    }
}
@media(max-width:640px) {
    body.twoconcert-front {
        font-size: 16px
    }
    .tc-shell {
        width: min(calc(100% - 28px), var(--tc-shell))
    }
    .tc-header-top {
        min-height: 76px;
        padding-right: 44px
    }
    .tc-brand-name {
        font-size: 20px
    }
    .tc-cndp {
        display: none
    }
    .tc-menu-toggle {
        position: absolute;
        right: 10px;
        top: 14px
    }
    .tc-btn-participate {
        position: static;
        width: 100%;
        border-radius: 0
    }
    
  
    .tc-nav-row {
        width: 100%
    }
    .tc-nav {
        top: 76px
    }
    .tc-hero-copy {
        padding: 42px 0
    }
    .tc-hero h1 {
        font-size: 36px
    }
    .tc-hero-media {
        min-height: 230px
    }
    .tc-section {
        padding: 56px 0
    }
    .tc-section h2, .tc-page-hero h1 {
        font-size: 34px
    }
    .tc-lead {
        font-size: 19px
    }
    .tc-cards-2, .tc-cards-3 {
        grid-template-columns: 1fr
    }
    .tc-card, .tc-mini-card, .tc-component {
        padding: 25px
    }
    .tc-page-hero {
        padding: 50px 0
    }
    .tc-footer-grid {
        grid-template-columns: 1fr
    }
    .tc-footer-bottom {
        flex-direction: column;
        gap: 8px
    }
}
/* V0.2 — consolidation du socle 2CONCERT */
.tc-header-top {
    min-height: 104px
}
.tc-brand-name {
    font-size: 26px
}
.tc-cndp {
    padding: 5px;
}
.tc-nav-wrap {
    box-shadow: 0 1px 0 rgba(16, 46, 58, .03)
}
.tc-menu {
    gap: 10px
}
.tc-menu a {
    padding: 17px 8px 14px;
    font-size: 14px
}
.tc-hero {
    overflow: hidden
}
.tc-hero-grid {
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    min-height: 530px
}
.tc-hero-copy {
    padding: 66px 64px 66px 0;
    position: relative
}
.tc-hero-copy:before {
    content: "";
    position: absolute;
    inset: 0 100% 0 -100vw;
    background: var(--tc-secondary);
    opacity: 0;
}
.tc-hero h1 {
    max-width: 650px;
    font-size: clamp(38px, 3.75vw, 58px)
}
.tc-hero-media:after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(16, 46, 58, .06), transparent 24%);
    pointer-events: none;
    opacity: 0;
}
.tc-section {
    padding: 88px 0
}
.tc-intro-grid {
    gap: 92px
}
.tc-intro-grid > div:first-child {
    max-width: 820px
}
.tc-action-card {
    box-shadow: 0 18px 44px rgba(16, 46, 58, .12)
}
.tc-section-soft {
    background: linear-gradient(180deg, #f4f9f8, #eef6f5)
}
.tc-card, .tc-mini-card {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease
}
.tc-card:hover, .tc-mini-card:hover {
    transform: translateY(-3px);
    border-color: #c9dcda;
    box-shadow: 0 18px 42px rgba(16, 46, 58, .07)
}
.tc-card {
    position: relative;
    overflow: hidden
}
 
.tc-mini-card {
    border-top: 4px solid var(--tc-secondary)
}
.tc-section-gradient {
    background: linear-gradient(110deg, var(--tc-primary) 0%, #0c759b 52%, #15569a 100%)
}
.tc-cta {
    min-height: 170px
}
.tc-cta h2 {
    max-width: 720px
}
.tc-footer {
    padding-top: 62px
}
.tc-footer-grid {
    grid-template-columns: 1.35fr .9fr .8fr 1fr;
    align-items: start
}
.tc-footer-about p {
    max-width: 340px
}
.tc-footer-cndp {
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 800;
    color: #aebfc3
}
.tc-footer-cndp img {
    width: 150px;
    max-height: 58px;
    object-fit: contain;
    background: #fff;
    border-radius: 5px;
    padding: 7px
}
.tc-footer-menu {
    display: grid;
    gap: 7px
}
.tc-footer-menu a, .tc-footer-links a {
    text-decoration: none
}
.tc-footer-menu a:hover, .tc-footer-links a:hover {
    text-decoration: underline
}
@media(max-width:960px) {
    .tc-cndp {
        border-left: 0;
        padding-left: 0
    }
    .tc-hero-grid {
        grid-template-columns: 1fr;
        min-height: 0
    }
    .tc-hero-copy {
        padding: 56px 0
    }
    .tc-hero-copy:before {
        right: -100vw
    }
    .tc-hero-media {
        min-height: 360px
    }
    .tc-section {
        padding: 70px 0
    }
    .tc-intro-grid {
        gap: 40px
    }
    .tc-footer-grid {
        grid-template-columns: 1fr 1fr
    }
    .tc-footer-cndp {
        grid-row: auto
    }
}
@media(max-width:640px) {
    .tc-hero h1 {
        font-size: 35px
    }
    .tc-hero-media {
        min-height: 250px
    }
    .tc-section {
        padding: 54px 0
    }
    .tc-footer-grid {
        grid-template-columns: 1fr
    }
    .tc-footer-cndp img {
        width: 135px
    }
}
/* V0.3 — page Les projets / bibliothèque éditoriale */
.tc-projects-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-projects-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 70px;
    align-items: end
}
.tc-projects-hero h1 {
    margin-bottom: 18px
}
.tc-projects-hero p:not(.tc-eyebrow) {
    max-width: 720px
}
.tc-projects-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px
}
.tc-projects-hero-stats div {
    background: #fff;
    border-radius: 14px;
    padding: 22px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-projects-hero-stats strong {
    display: block;
    font-size: 24px;
    line-height: 1.05;
    color: var(--tc-primary);
    margin-bottom: 8px
}
.tc-projects-hero-stats span {
    font-size: 13px;
    line-height: 1.35;
    display: block
}
.tc-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 90px;
    align-items: start
}
.tc-factbox {
    background: var(--tc-night);
    color: #fff;
    padding: 34px;
    border-radius: var(--tc-radius);
    box-shadow: 0 18px 44px rgba(16, 46, 58, .12)
}
.tc-factbox-label {
    display: block;
    color: #a7eadb;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 10px
}
.tc-factbox p {
    margin: 0
}
.tc-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px
}
.tc-feature-card {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-top: 5px solid var(--tc-secondary);
    border-radius: var(--tc-radius);
    padding: 32px
}
.tc-feature-card > span {
    color: var(--tc-secondary);
    font-size: 13px;
    font-weight: 900
}
.tc-feature-card h3 {
    margin-top: 10px
}
.tc-callout {
    margin-top: 28px;
    border-radius: var(--tc-radius);
    background: #dff4ef;
    padding: 30px 34px;
    display: grid;
    grid-template-columns: .6fr 1.4fr;
    gap: 40px;
    align-items: start
}
.tc-callout h3 {
    margin: 0
}
.tc-callout p:last-child {
    margin: 0
}
.tc-regulation-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px;
    align-items: center
}
.tc-trajectory {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
    align-items: end;
    min-height: 260px
}
.tc-trajectory div {
    background: linear-gradient(180deg, var(--tc-secondary), var(--tc-primary));
    color: #fff;
    border-radius: 10px 10px 4px 4px;
    padding: 16px 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end
}
.tc-trajectory div:nth-child(1) {
    height: 78px
}
.tc-trajectory div:nth-child(2) {
    height: 95px
}
.tc-trajectory div:nth-child(3) {
    height: 130px
}
.tc-trajectory div:nth-child(4) {
    height: 165px
}
.tc-trajectory div:nth-child(5) {
    height: 190px
}
.tc-trajectory div:nth-child(6) {
    height: 245px
}
.tc-trajectory strong {
    font-size: 12px
}
.tc-trajectory span {
    font-size: 22px;
    font-weight: 900
}
.tc-section-dark {
    position: relative;
    background: url("../images/bg-halo-2.png") center / cover no-repeat, var(--tc-night);
    color: #fff
}


.tc-section-dark h2 {
    color: #fff
}
.tc-section-dark .tc-eyebrow {
    color: #a7eadb
}
.tc-site-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 70px;
    align-items: center
}
.tc-visual-placeholder {
    min-height: 330px;
    border: 1px dashed rgba(255, 255, 255, .42);
    border-radius: var(--tc-radius);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 30px;
    background: rgba(255, 255, 255, .05)
}
.tc-visual-placeholder strong {
    font-size: 22px
}
.tc-visual-placeholder span {
    color: #aebfc3;
    margin-top: 8px
}
.tc-project-detail {
    padding: 58px 0;
    border-bottom: 1px solid var(--tc-border)
}
.tc-project-detail:first-child {
    padding-top: 0
}
.tc-project-detail:last-child {
    border-bottom: 0;
    padding-bottom: 0
}
.tc-project-detail-head {
    max-width: 800px
}
.tc-project-detail-head h2 {
    font-size: clamp(42px, 5vw, 72px);
    margin-bottom: 8px
}
.tc-project-detail-body {
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: 80px;
    align-items: center;
    margin-top: 32px
}
.tc-number-panel {
    border-radius: var(--tc-radius);
    padding: 38px;
    background: linear-gradient(130deg, var(--tc-secondary), var(--tc-primary));
    color: #fff
}
.tc-number-panel strong {
    display: block;
    font-size: 48px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em
}
.tc-number-panel span {
    display: block;
    margin-top: 8px;
    font-weight: 700
}
.tc-two-topics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px
}
.tc-two-topics article + article {
    border-left: 1px solid var(--tc-border);
    padding-left: 80px
}
.tc-timeline-section .tc-section-head {
    max-width: none
}
.tc-timeline {
    list-style: none;
    margin: 46px 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0
}
.tc-timeline li {
    position: relative;
    padding: 30px 28px 30px 0;
    border-top: 2px solid rgba(255, 255, 255, .28);
    min-height: 150px
}
.tc-timeline li:before {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #fff;
    top: -7px;
    left: 0
}
.tc-timeline li.is-current:before {
    width: 18px;
    height: 18px;
    top: -10px;
    background: var(--tc-secondary);
    box-shadow: 0 0 0 7px rgba(28, 175, 141, .18)
}
.tc-timeline strong, .tc-timeline span, .tc-timeline em {
    display: block
}
.tc-timeline strong {
    color: #a7eadb;
    font-size: 13px;
    margin-bottom: 8px
}
.tc-timeline span {
    font-weight: 700
}
.tc-timeline em {
    font-style: normal;
    color: #fff;
    background: var(--tc-secondary);
    width: max-content;
    max-width: 100%;
    padding: 4px 8px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 800;
    margin-top: 10px
}
@media(max-width:960px) {
    .tc-projects-hero-grid, .tc-content-grid, .tc-regulation-grid, .tc-site-grid, .tc-project-detail-body {
        grid-template-columns: 1fr;
        gap: 38px
    }
    .tc-projects-hero-stats {
        grid-template-columns: repeat(3, 1fr)
    }
    .tc-feature-grid {
        grid-template-columns: 1fr 1fr
    }
    .tc-callout {
        grid-template-columns: 1fr;
        gap: 8px
    }
    .tc-two-topics {
        gap: 40px
    }
    .tc-two-topics article + article {
        padding-left: 40px
    }
    .tc-timeline {
        grid-template-columns: repeat(2, 1fr)
    }

}
@media(max-width:640px) {
    .tc-projects-hero {
        padding: 52px 0
    }
    .tc-projects-hero-stats, .tc-feature-grid, .tc-two-topics, .tc-timeline {
        grid-template-columns: 1fr
    }
    .tc-projects-hero-stats div {
        padding: 18px
    }
    .tc-trajectory {
        grid-template-columns: repeat(3, 1fr);
        min-height: 0;
        align-items: end
    }
    .tc-trajectory div:nth-child(n) {
        height: auto;
        min-height: 90px
    }
    .tc-callout {
        padding: 25px
    }
    .tc-project-detail {
        padding: 44px 0
    }
    .tc-number-panel strong {
        font-size: 38px
    }
    .tc-two-topics article + article {
        border-left: 0;
        border-top: 1px solid var(--tc-border);
        padding-left: 0;
        padding-top: 35px
    }
    .tc-timeline li {
        min-height: 0;
        padding: 22px 0 28px 24px;
        border-top: 0;
        border-left: 2px solid rgba(255, 255, 255, .28)
    }
    .tc-timeline li:before {
        top: 27px;
        left: -7px
    }
    .tc-timeline li.is-current:before {
        top: 24px;
        left: -10px
    }
}
/* V0.4 — La concertation / événements reliés au Core */
.tc-concert-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-concert-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-concert-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-concert-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 760px
}
.tc-concert-period {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 28px 32px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 12px;
    align-items: center
}
.tc-concert-period > span {
    grid-column: 1/-1;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary)
}
.tc-concert-period strong {
    font-size: 16px
}
.tc-concert-period i {
    font-style: normal;
    color: var(--tc-secondary);
    font-size: 24px
}
.tc-text-link {
    font-weight: 800;
    text-decoration: none
}
.tc-factbox h3 {
    color: #fff;
    margin-top: 0
}
.tc-objectives-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px
}
.tc-objectives-grid article {
    background: #fff;
    border-radius: var(--tc-radius);
    border: 1px solid var(--tc-border);
    border-top: 4px solid var(--tc-secondary);
    padding: 28px
}
.tc-objectives-grid span, .tc-path-grid span {
    font-size: 12px;
    font-weight: 900;
    color: var(--tc-secondary)
}
.tc-objectives-grid h3 {
    font-size: 21px
}
.tc-path-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px
}
.tc-path-grid article {
    padding: 32px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--tc-radius);
    background: rgba(255, 255, 255, .055)
}
.tc-path-grid h3 {
    color: #fff
}
.tc-path-grid a {
    color: #a7eadb;
    font-weight: 800;
    text-decoration: none
}
.tc-events-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 38px
}
.tc-events-heading > div {
    max-width: 760px
}
.tc-event-list {
    border-top: 1px solid var(--tc-border)
}
.tc-event-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 230px;
    gap: 32px;
    align-items: center;
    padding: 28px 0;
    border-bottom: 1px solid var(--tc-border)
}
.tc-event-date {
    border-right: 1px solid var(--tc-border);
    display: flex;
    flex-direction: column
}
.tc-event-date strong {
    font-size: 42px;
    line-height: 1;
    color: var(--tc-primary)
}
.tc-event-date span {
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 900;
    margin-top: 7px
}
.tc-event-meta {
    display: flex;
    gap: 12px;
    align-items: center
}
.tc-event-meta span {
    display: inline-flex;
    padding: 4px 9px;
    border-radius: 999px;
    background: #e3f5f0;
    color: #08785f;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase
}
.tc-event-meta em {
    font-style: normal;
    font-weight: 800;
    color: var(--tc-muted);
    font-size: 13px
}
.tc-event-card.is-past .tc-event-meta span {
    background: #eef1f2;
    color: #5f6b70
}
.tc-event-main h3 {
    margin: 8px 0 5px
}
.tc-event-main p {
    margin: 0;
    color: var(--tc-muted)
}
.tc-event-action {
    text-align: right
}
.tc-event-action a {
    font-weight: 800;
    text-decoration: none
}
.tc-event-action span {
    color: var(--tc-muted);
    font-size: 14px
}
.tc-empty-events {
    padding: 38px;
    border: 1px dashed #b8c9cc;
    border-radius: var(--tc-radius);
    background: #f7faf9
}
.tc-empty-events p {
    margin-bottom: 0
}
.tc-online-grid {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    gap: 80px;
    align-items: center
}
.tc-online-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
}
.tc-online-actions > a:not(.tc-btn) {
    font-weight: 800;
    text-decoration: none
}
.tc-after-timeline {
    list-style: none;
    margin: 42px 0 30px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr)
}
.tc-after-timeline li {
    position: relative;
    padding: 34px 26px 20px 0;
    border-top: 2px solid #cddadb
}
.tc-after-timeline li:before {
    content: "";
    position: absolute;
    left: 0;
    top: -7px;
    width: 12px;
    height: 12px;
    background: var(--tc-secondary);
    border-radius: 50%
}
.tc-after-timeline span {
    display: block;
    color: var(--tc-secondary);
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 7px
}
.tc-after-timeline strong, .tc-after-timeline small {
    display: block
}
.tc-after-timeline small {
    margin-top: 8px;
    color: var(--tc-muted)
}
.tc-after-note {
    max-width: 900px;
    padding: 28px 32px;
    background: #f2f8f7;
    border-radius: var(--tc-radius)
}
.tc-after-note p {
    margin: 0
}
.tc-page-editorial {
    border-top: 1px solid var(--tc-border)
}
@media(max-width:960px) {
    .tc-concert-hero-grid, .tc-online-grid {
        grid-template-columns: 1fr;
        gap: 36px
    }
    .tc-objectives-grid {
        grid-template-columns: 1fr 1fr
    }
    .tc-event-card {
        grid-template-columns: 110px 1fr
    }
    .tc-event-action {
        grid-column: 2;
        text-align: left
    }
    .tc-after-timeline {
        grid-template-columns: 1fr 1fr
    }
    .tc-events-heading {
        align-items: flex-start;
        flex-direction: column
    }
}
@media(max-width:640px) {
    .tc-concert-hero {
        padding: 52px 0
    }
    .tc-concert-period {
        grid-template-columns: 1fr;
        padding: 24px
    }
    .tc-concert-period i {
        transform: rotate(90deg);
        width: max-content
    }
    .tc-objectives-grid, .tc-path-grid, .tc-after-timeline {
        grid-template-columns: 1fr
    }
    .tc-event-card {
        grid-template-columns: 72px 1fr;
        gap: 18px
    }
    .tc-event-date strong {
        font-size: 32px
    }
    .tc-event-action {
        grid-column: 1/-1
    }
    .tc-after-timeline li {
        padding-left: 22px;
        border-top: 0;
        border-left: 2px solid #cddadb
    }
    .tc-after-timeline li:before {
        top: 39px;
        left: -7px
    }
}
/* V0.5 — La CNDP / composant fiche garant */
.tc-cndp-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-cndp-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-cndp-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-cndp-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 760px
}
.tc-cndp-hero-card {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 30px 34px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-cndp-hero-card span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary);
    margin-bottom: 10px
}
.tc-cndp-hero-card strong {
    display: block;
    font-size: 22px;
    line-height: 1.25
}
.tc-section-head-wide {
    max-width: 900px
}
.tc-guarantors-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}
.tc-person-card {
    display: grid;
    grid-template-columns: 220px 1fr;
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    overflow: hidden;
    min-height: 250px
}
.tc-person-photo {
    background: linear-gradient(145deg, #dff4ef, #dcecf4);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px
}
.tc-person-photo span {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-weight: 900;
    color: var(--tc-muted)
}
.tc-person-body {
    padding: 38px;
    display: flex;
    flex-direction: column;
    justify-content: center
}
.tc-person-body h3 {
    font-size: 30px;
    margin: 0 0 18px
}
.tc-person-email {
    font-weight: 800;
    text-decoration: none;
    overflow-wrap: anywhere
}
.tc-mission-card {
    background: var(--tc-night);
    color: #fff;
    border-radius: var(--tc-radius);
    padding: 36px;
    box-shadow: 0 18px 44px rgba(16, 46, 58, .12)
}
.tc-mission-card h3 {
    color: #fff
}
.tc-mission-card .tc-eyebrow {
    color: #a7eadb
}
.tc-mission-card .tc-btn {
    margin-top: 14px
}
.tc-cndp-about-grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 80px;
    align-items: start
}
.tc-cndp-principles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px
}
.tc-cndp-principles article {
    padding: 28px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--tc-radius);
    background: rgba(255, 255, 255, .055)
}
.tc-cndp-principles span {
    font-size: 12px;
    font-weight: 900;
    color: #a7eadb
}
.tc-cndp-principles h3 {
    color: #fff;
    font-size: 21px
}
.tc-cndp-principles p {
    font-size: 15px
}
.tc-cndp-links {
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 70px;
    align-items: start
}
.tc-cndp-link-cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}
.tc-cndp-link-cards > a {
    display: flex;
    flex-direction: column;
    min-height: 190px;
    padding: 30px;
    border: 1px solid var(--tc-border);
    border-top: 4px solid var(--tc-secondary);
    border-radius: var(--tc-radius);
    text-decoration: none;
    color: var(--tc-text);
    transition: .2s
}
.tc-cndp-link-cards > a:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(16, 46, 58, .07)
}
.tc-cndp-link-cards span {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 900;
    color: var(--tc-primary)
}
.tc-cndp-link-cards strong {
    font-size: 22px;
    line-height: 1.2;
    margin: 12px 0 auto
}
.tc-cndp-link-cards em {
    font-style: normal;
    color: var(--tc-primary);
    font-weight: 800;
    margin-top: 22px
}
@media(max-width:960px) {
    .tc-cndp-hero-grid, .tc-cndp-about-grid, .tc-cndp-links {
        grid-template-columns: 1fr;
        gap: 38px
    }
    .tc-person-card {
        grid-template-columns: 160px 1fr
    }
    .tc-cndp-principles {
        grid-template-columns: 1fr
    }
    .tc-cndp-link-cards {
        grid-template-columns: 1fr 1fr
    }
}
@media(max-width:640px) {
    .tc-cndp-hero {
        padding: 52px 0
    }
    .tc-guarantors-grid, .tc-cndp-link-cards {
        grid-template-columns: 1fr
    }
    .tc-person-card {
        grid-template-columns: 1fr
    }
    .tc-person-photo {
        min-height: 180px
    }
    .tc-person-body {
        padding: 28px
    }
    .tc-cndp-hero-card {
        padding: 24px
    }
}
/* V0.6 — Documentation dynamique / habillage du module Documents du Core */
.tc-docs-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-docs-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-docs-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-docs-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 760px
}
.tc-docs-hero-card {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 30px 34px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-docs-hero-card span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary);
    margin-bottom: 10px
}
.tc-docs-hero-card strong {
    display: block;
    font-size: 22px;
    line-height: 1.25
}
.tc-docs-heading {
    max-width: 820px
}
.tc-documents-surface {
    margin-top: 42px
}
.tc-documents-surface .tc-public-documents {
    display: grid;
    gap: 56px
}
.tc-documents-surface .tc-document-group {
    margin: 0
}
.tc-documents-surface .tc-document-group > h2 {
    font-size: clamp(27px, 3vw, 40px);
    line-height: 1.08;
    letter-spacing: -.03em;
    margin: 0 0 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid #cddcdd
}
.tc-documents-surface .tc-document-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}
.tc-documents-surface .tc-document-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    min-height: 170px;
    padding: 30px 32px;
    border: 1px solid var(--tc-border);
    border-top: 4px solid var(--tc-secondary);
    border-radius: var(--tc-radius);
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease
}
.tc-documents-surface .tc-document-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(16, 46, 58, .07)
}
.tc-documents-surface .tc-document-card h3 {
    font-size: 22px;
    line-height: 1.2;
    margin: 0 0 10px
}
.tc-documents-surface .tc-document-description {
    font-size: 15px;
    color: #3f4d52
}
.tc-documents-surface .tc-document-description p {
    margin: .35em 0
}
.tc-documents-surface .tc-document-card small {
    display: block;
    margin-top: 13px;
    color: var(--tc-muted);
    font-size: 12px;
    font-weight: 700
}
.tc-documents-surface .tc-document-card > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 17px;
    border-radius: 999px;
    background: #eef8f6;
    color: var(--tc-primary);
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap
}
.tc-documents-surface .tc-document-card > a:hover {
    background: var(--tc-secondary);
    color: #fff
}
.tc-documents-surface .tc-public-empty, .tc-documents-empty {
    margin: 0;
    padding: 42px;
    border: 1px dashed #adc5c8;
    border-radius: var(--tc-radius);
    background: #fff;
    color: var(--tc-muted)
}
.tc-documents-surface .tc-public-empty:before, .tc-documents-empty:before {
    content: "DOCUMENTATION";
    display: block;
    color: var(--tc-secondary);
    font-size: 11px;
    letter-spacing: .1em;
    font-weight: 900;
    margin-bottom: 10px
}
.tc-documents-empty strong {
    display: block;
    color: var(--tc-text);
    font-size: 22px
}
.tc-documents-empty p {
    margin: 8px 0 0
}
.tc-docs-action-card {
    position: static
}
@media(max-width:960px) {
    .tc-docs-hero-grid {
        grid-template-columns: 1fr;
        gap: 38px
    }
    .tc-documents-surface .tc-document-list {
        grid-template-columns: 1fr
    }
}
@media(max-width:640px) {
    .tc-docs-hero {
        padding: 52px 0
    }
    .tc-docs-hero-card {
        padding: 24px
    }
    .tc-documents-surface {
        margin-top: 30px
    }
    .tc-documents-surface .tc-document-card {
        grid-template-columns: 1fr;
        padding: 25px
    }
    .tc-documents-surface .tc-document-card > a {
        justify-self: start
    }
    .tc-documents-surface .tc-public-empty, .tc-documents-empty {
        padding: 28px
    }
}
/* V0.7 — Contributions dynamiques / habillage du module Contributions du Core */
.tc-contrib-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-contrib-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-contrib-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-contrib-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 800px
}
.tc-contrib-hero-card {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 30px 34px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-contrib-hero-card span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary);
    margin-bottom: 10px
}
.tc-contrib-hero-card strong {
    display: block;
    font-size: 22px;
    line-height: 1.25
}
.tc-contrib-action-card {
    position: static
}
.tc-contrib-heading {
    max-width: 820px;
    margin-bottom: 38px
}
.tc-contributions-surface .tc-public-contributions {
    max-width: none
}
.tc-contributions-surface .tc-public-filters {
    margin: 0 0 34px;
    padding: 28px;
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius)
}
.tc-contributions-surface .tc-public-tabs {
    gap: 9px;
    margin-bottom: 22px
}
.tc-contributions-surface .tc-public-tabs a {
    padding: 9px 15px;
    border: 1px solid #cad9da;
    border-radius: 999px;
    background: #fff;
    color: var(--tc-text);
    font-size: 13px;
    font-weight: 800
}
.tc-contributions-surface .tc-public-tabs a:hover {
    border-color: var(--tc-secondary);
    color: var(--tc-primary)
}
.tc-contributions-surface .tc-public-tabs a.is-active {
    background: var(--tc-night);
    color: #fff;
    border-color: var(--tc-night)
}
.tc-contributions-surface .tc-public-filter-row {
    gap: 14px
}
.tc-contributions-surface .tc-public-filter-row label {
    font-size: 12px;
    font-weight: 900;
    color: #405057
}
.tc-contributions-surface .tc-public-filter-row label span {
    text-transform: uppercase;
    letter-spacing: .06em
}
.tc-contributions-surface .tc-public-filter-row input, .tc-contributions-surface .tc-public-filter-row select {
    min-height: 48px;
    border: 1px solid #cad9da;
    border-radius: 9px;
    padding: 11px 13px
}
.tc-contributions-surface .tc-public-filter-row input:focus, .tc-contributions-surface .tc-public-filter-row select:focus {
    outline: 2px solid color-mix(in srgb, var(--tc-secondary) 35%, transparent);
    border-color: var(--tc-secondary)
}
.tc-contributions-surface .tc-public-filter-row button {
    min-height: 48px;
    padding: 11px 20px;
    border-radius: 999px;
    background: var(--tc-secondary);
    font-weight: 900
}
.tc-contributions-surface .tc-public-results-head {
    padding: 0 0 16px;
    border-bottom: 1px solid #cddcdd;
    color: var(--tc-muted);
    font-size: 14px
}
.tc-contributions-surface .tc-public-results-head strong {
    color: var(--tc-text);
    font-size: 22px
}
.tc-contributions-surface .tc-contributions {
    display: grid;
    gap: 20px;
    margin-top: 20px
}
.tc-contributions-surface .tc-contribution {
    padding: 30px 32px;
    background: #fff;
    border: 1px solid var(--tc-border);
    border-top: 4px solid var(--tc-secondary);
    border-radius: var(--tc-radius);
    box-shadow: 0 8px 24px rgba(16, 46, 58, .035)
}
.tc-contributions-surface .tc-contribution-head {
    margin-bottom: 12px
}
.tc-contributions-surface .tc-type-badge, .tc-contributions-surface .tc-theme-badge {
    padding: 6px 10px
}
.tc-contributions-surface .tc-type-badge {
    background: #e2f5ef;
    color: #08785f
}
.tc-contributions-surface .tc-theme-badge {
    background: #eef3f4;
    color: #44555b
}
.tc-contributions-surface .tc-contribution-number {
    font-weight: 800;
    color: #809096
}
.tc-contributions-surface .tc-meta {
    font-size: 13px;
    font-weight: 700;
    color: #68797f;
    margin-bottom: 20px
}
.tc-contributions-surface .tc-content {
    font-size: 17px;
    line-height: 1.7
}
.tc-contributions-surface .tc-content > :first-child {
    margin-top: 0
}
.tc-contributions-surface .tc-content > :last-child {
    margin-bottom: 0
}
.tc-contributions-surface .tc-public-attachment a {
    display: inline-flex;
    padding: 8px 13px;
    border-radius: 999px;
    background: #eef8f6;
    text-decoration: none
}
.tc-contributions-surface .tc-response {
    margin-top: 28px;
    padding: 26px 28px;
    background: #eef8f6;
    border-left: 4px solid var(--tc-secondary);
    border-radius: 0 var(--tc-radius) var(--tc-radius) 0
}
.tc-contributions-surface .tc-response-label {
    color: var(--tc-primary);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 12px;
    font-weight: 900
}
.tc-contributions-surface .tc-response-signatory {
    padding-top: 12px;
    border-top: 1px solid #cfe3df
}
.tc-contributions-surface .tc-status {
    background: #f2f4f5;
    color: #58686e;
    font-weight: 800
}
.tc-contributions-surface .tc-public-empty, .tc-contributions-empty {
    padding: 38px;
    border: 1px dashed #adc5c8;
    border-radius: var(--tc-radius);
    background: #fff;
    color: var(--tc-muted)
}
.tc-contributions-empty strong {
    display: block;
    color: var(--tc-text);
    font-size: 22px
}
.tc-contributions-empty p {
    margin: 8px 0 0
}
.tc-contributions-surface .tc-public-pagination {
    margin-top: 30px
}
.tc-contributions-surface .tc-public-pagination a {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-weight: 800
}
.tc-contributions-surface .tc-public-pagination a.is-active {
    background: var(--tc-night);
    border-color: var(--tc-night)
}
.tc-contrib-help {
    background: #fff
}
.tc-contrib-help-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: center
}
.tc-contrib-help-grid h2 {
    margin-bottom: 16px
}
.tc-contrib-help-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
}
.tc-contrib-help-actions > a:not(.tc-btn) {
    font-weight: 800;
    text-decoration: none
}
@media(max-width:960px) {
    .tc-contrib-hero-grid, .tc-contrib-help-grid {
        grid-template-columns: 1fr;
        gap: 38px
    }
    .tc-contributions-surface .tc-public-filter-row {
        grid-template-columns: 1fr 1fr
    }
    .tc-contributions-surface .tc-public-filter-row button {
        align-self: end
    }
}
@media(max-width:640px) {
    .tc-contrib-hero {
        padding: 52px 0
    }
    .tc-contrib-hero-card {
        padding: 24px
    }
    .tc-contributions-surface .tc-public-filters, .tc-contributions-surface .tc-contribution {
        padding: 24px
    }
    .tc-contributions-surface .tc-public-filter-row {
        grid-template-columns: 1fr
    }
    .tc-contributions-surface .tc-contribution-head {
        flex-direction: column
    }
    .tc-contributions-surface .tc-response {
        padding: 22px
    }
    .tc-contributions-surface .tc-public-empty, .tc-contributions-empty {
        padding: 28px
    }
}
/* V0.8 — FAQ dynamique / habillage du module FAQ du Core */
.tc-faq-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-faq-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-faq-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-faq-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 800px
}
.tc-faq-hero-card {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 30px 34px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-faq-hero-card span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary);
    margin-bottom: 10px
}
.tc-faq-hero-card strong {
    display: block;
    font-size: 22px;
    line-height: 1.25
}
.tc-faq-action-card {
    position: static
}
.tc-faq-heading {
    max-width: 820px;
    margin-bottom: 38px
}
.tc-faq-surface .tc-public-faq {
    max-width: none;
    display: grid;
    gap: 14px
}
.tc-faq-surface .tc-faq-item {
    margin: 0;
    border: 1px solid var(--tc-border) !important;
    border-radius: var(--tc-radius);
    background: #fff;
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease
}
.tc-faq-surface .tc-faq-item[open] {
    border-color: #b8d9d3 !important;
    box-shadow: 0 12px 30px rgba(16, 46, 58, .055)
}
.tc-faq-surface .tc-faq-item summary {
    padding: 25px 70px 25px 28px;
    font-size: 19px;
    line-height: 1.35;
    font-weight: 850
}
.tc-faq-surface .tc-faq-item summary:after {
    right: 26px;
    top: 20px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef8f6;
    color: var(--tc-primary);
    font-size: 23px;
    line-height: 1
}
.tc-faq-surface .tc-faq-item[open] summary:after {
    background: var(--tc-secondary);
    color: #fff
}
.tc-faq-surface .tc-faq-item summary small {
    display: inline-flex;
    margin-top: 9px;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e8f6f2;
    color: #08785f;
    font-size: 11px;
    line-height: 1;
    font-weight: 850
}
.tc-faq-surface .tc-faq-answer {
    padding: 0 70px 28px 28px;
    font-size: 16px;
    line-height: 1.72;
    color: #33454b
}
.tc-faq-surface .tc-faq-answer:before {
    content: "";
    display: block;
    width: 42px;
    border-top: 3px solid var(--tc-secondary);
    margin: 0 0 20px
}
.tc-faq-surface .tc-faq-answer a {
    font-weight: 800
}
.tc-faq-surface .tc-public-empty, .tc-faq-empty {
    margin: 0;
    padding: 42px;
    border: 1px dashed #adc5c8;
    border-radius: var(--tc-radius);
    background: #fff;
    color: var(--tc-muted)
}
.tc-faq-surface .tc-public-empty:before, .tc-faq-empty:before {
    content: "QUESTIONS FRÉQUENTES";
    display: block;
    color: var(--tc-secondary);
    font-size: 11px;
    letter-spacing: .1em;
    font-weight: 900;
    margin-bottom: 10px
}
.tc-faq-empty strong {
    display: block;
    color: var(--tc-text);
    font-size: 22px
}
.tc-faq-empty p {
    margin: 8px 0 0
}
.tc-faq-next {
    background: #fff
}
.tc-faq-next-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: center
}
.tc-faq-next-grid h2 {
    margin-bottom: 16px
}
.tc-faq-next-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
}
.tc-faq-next-actions > a:not(.tc-btn) {
    font-weight: 800;
    text-decoration: none
}
@media(max-width:960px) {
    .tc-faq-hero-grid, .tc-faq-next-grid {
        grid-template-columns: 1fr;
        gap: 38px
    }
}
@media(max-width:640px) {
    .tc-faq-hero {
        padding: 52px 0
    }
    .tc-faq-hero-card {
        padding: 24px
    }
    .tc-faq-surface .tc-faq-item summary {
        padding: 22px 62px 22px 22px;
        font-size: 17px
    }
    .tc-faq-surface .tc-faq-item summary:after {
        right: 20px
    }
    .tc-faq-surface .tc-faq-answer {
        padding: 0 22px 24px
    }
    .tc-faq-surface .tc-public-empty, .tc-faq-empty {
        padding: 28px
    }
}
/* V0.9 — Je participe / formulaires publics du Core */
.tc-participate-hero {
    padding: 76px 0;
    background: linear-gradient(115deg, #e8f6f2 0%, #e1f2f5 62%, #d8eaf4 100%)
}
.tc-participate-hero-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: end
}
.tc-participate-hero h1 {
    font-size: clamp(40px, 5vw, 72px);
    line-height: 1.02;
    letter-spacing: -.045em;
    margin: 0 0 18px
}
.tc-participate-hero p:not(.tc-eyebrow) {
    font-size: 20px;
    max-width: 800px
}
.tc-participate-hero-card {
    background: #fff;
    border-radius: var(--tc-radius);
    padding: 30px 34px;
    box-shadow: 0 12px 34px rgba(16, 46, 58, .07)
}
.tc-participate-hero-card span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    font-weight: 900;
    color: var(--tc-primary);
    margin-bottom: 10px
}
.tc-participate-hero-card strong {
    display: block;
    font-size: 22px;
    line-height: 1.25
}
.tc-participate-action-card {
    position: static
}
.tc-action-link {
    display: block;
    margin-top: 14px;
    color: #fff;
    font-weight: 800;
    text-decoration: none
}
.tc-participate-jump {
    background: var(--tc-night);
    color: #fff
}
.tc-participate-jump-grid {
    display: grid;
    grid-template-columns: 1fr 1fr
}
.tc-participate-jump a {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 16px;
    row-gap: 3px;
    padding: 27px 30px;
    color: #fff;
    text-decoration: none;
    border-right: 1px solid rgba(255, 255, 255, .14)
}
.tc-participate-jump a:last-child {
    border-right: 0
}
.tc-participate-jump a:hover {
    background: rgba(255, 255, 255, .05)
}
.tc-participate-jump span {
    grid-row: 1/3;
    color: #66d8bf;
    font-size: 12px;
    font-weight: 900
}
.tc-participate-jump strong {
    font-size: 18px
}
.tc-participate-jump small {
    color: rgba(255, 255, 255, .72)
}
.tc-participate-form-section {
    scroll-margin-top: 90px
}
.tc-participate-form-grid {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
    gap: 72px;
    align-items: start
}
.tc-participate-form-copy {
    position: sticky;
    top: 110px
}
.tc-participate-form-copy h2 {
    margin-bottom: 18px
}
.tc-participate-form-copy > a {
    font-weight: 800;
    text-decoration: none
}
.tc-participate-note {
    margin-top: 25px;
    padding: 18px 20px;
    background: #eef8f6;
    border-left: 3px solid var(--tc-secondary);
    border-radius: 0 10px 10px 0
}
.tc-public-form-card {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 34px;
    box-shadow: 0 10px 28px rgba(16, 46, 58, .04)
}
.tc-public-form-card .tc-form {
    max-width: none;
    font-family: inherit;
    color: var(--tc-text)
}
.tc-public-form-card .tc-form label {
    margin-bottom: 21px;
    font-size: 14px;
    font-weight: 800;
    color: #26363c
}
.tc-public-form-card .tc-form input, .tc-public-form-card .tc-form select, .tc-public-form-card .tc-form textarea {
    margin-top: 8px;
    padding: 13px 14px;
    border: 1px solid #c8d6d8;
    border-radius: 9px;
    background: #fff;
    color: var(--tc-text);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.45;
    transition: border-color .2s ease, box-shadow .2s ease
}
.tc-public-form-card .tc-form textarea {
    min-height: 180px;
    resize: vertical
}
.tc-public-form-card .tc-form input:focus, .tc-public-form-card .tc-form select:focus, .tc-public-form-card .tc-form textarea:focus {
    outline: 0;
    border-color: var(--tc-secondary);
    box-shadow: 0 0 0 3px rgba(28, 175, 141, .12)
}
.tc-public-form-card .tc-form small {
    margin-top: 6px;
    color: #697a80;
    font-weight: 500;
    line-height: 1.45
}
.tc-public-form-card .tc-form .tc-grid {
    gap: 16px
}
.tc-public-form-card .tc-form .tc-check {
    padding: 2px 0;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600 !important
}
.tc-public-form-card .tc-form .tc-check input {
    margin-top: 2px !important;
    accent-color: var(--tc-secondary)
}
.tc-public-form-card .tc-form button {
    min-height: 48px;
    padding: 12px 22px;
    border: 0;
    border-radius: 999px;
    background: var(--tc-secondary);
    color: #fff;
    font-family: inherit;
    font-weight: 900;
    cursor: pointer
}
.tc-public-form-card .tc-form button:hover {
    filter: brightness(.94)
}
.tc-public-form-card .tc-event-choice {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid #c8d6d8;
    border-radius: 12px;
    background: #f8fbfb
}
.tc-public-form-card .tc-event-choice legend {
    padding: 0 8px;
    font-size: 14px;
    font-weight: 900
}
.tc-public-form-card .tc-event-choice .tc-check {
    padding: 13px 4px;
    margin: 0;
    border-bottom: 1px solid #dce7e8
}
.tc-public-form-card .tc-event-choice .tc-check:last-child {
    border-bottom: 0
}
.tc-public-form-card .tc-event-choice .tc-check span {
    display: block
}
.tc-public-form-card .tc-event-choice .tc-check strong {
    display: block;
    font-size: 15px
}
.tc-public-form-card .tc-event-choice .tc-check small {
    display: block;
    margin-top: 3px
}
.tc-public-form-card .tc-notice {
    margin: 0;
    padding: 20px 22px;
    border: 1px solid #c7d8da;
    border-radius: 12px;
    background: #f5f9f9;
    color: #405158;
    line-height: 1.55
}
.tc-public-form-card .tc-notice-success {
    border-color: #b8dfd2;
    background: #edf8f4;
    color: #176b57
}
.tc-public-form-card .tc-notice-error {
    border-color: #edc6c6;
    background: #fff2f2;
    color: #8a3434
}
.tc-participate-empty {
    padding: 28px;
    border: 1px dashed #adc5c8;
    border-radius: 12px;
    color: var(--tc-muted)
}
.tc-participate-empty strong {
    display: block;
    color: var(--tc-text);
    font-size: 20px
}
.tc-participate-empty p {
    margin: 8px 0 0
}
.tc-participate-next {
    background: #fff
}
.tc-participate-next-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 70px;
    align-items: center
}
.tc-participate-next-grid h2 {
    margin-bottom: 16px
}
.tc-participate-next-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px
}
.tc-participate-next-actions > a:not(.tc-btn) {
    font-weight: 800;
    text-decoration: none
}
@media(max-width:960px) {
    .tc-participate-hero-grid, .tc-participate-form-grid, .tc-participate-next-grid {
        grid-template-columns: 1fr;
        gap: 38px
    }
    .tc-participate-form-copy {
        position: static
    }
    .tc-participate-jump-grid {
        grid-template-columns: 1fr
    }
    .tc-participate-jump a {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .14)
    }
    .tc-participate-jump a:last-child {
        border-bottom: 0
    }
}
@media(max-width:640px) {
    .tc-participate-hero {
        padding: 52px 0
    }
    .tc-participate-hero-card, .tc-public-form-card {
        padding: 24px
    }
    .tc-participate-jump a {
        padding: 22px 0
    }
    .tc-public-form-card .tc-form .tc-grid {
        grid-template-columns: 1fr
    }
    .tc-public-form-card .tc-event-choice {
        padding: 16px
    }
}
/* REBOUND & DARA v1.0 — nouvelles compositions éditoriales, identité 2concert-front conservée */
.rd-page h2 {
    max-width: 900px
}
.rd-page h3 {
    letter-spacing: -.015em
}
.rd-home-intro, .rd-concert-intro, .rd-after, .rd-form-section {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
    gap: 72px;
    align-items: start
}
.rd-highlight, .rd-repere {
    padding: 32px;
    border-radius: var(--tc-radius);
    background: var(--tc-secondary);
    color: #fff
}
.rd-highlight h3, .rd-highlight h2 {
    color: #FFF;
}

.rd-highlight .tc-btn, .rd-repere .tc-btn {
    margin-top: 10px
}
.rd-repere {
    background: var(--tc-soft);
    color: var(--tc-text);
    border-top: 5px solid #008F90;
}
.tc-section .rd-repere h3 {
    color: #008F90;
}
.rd-brief-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    margin: 34px 0
}
.rd-brief-grid article {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 30px;
    border-bottom: 4px solid var(--tc-secondary)
}
.rd-brief-note {
    font-size: 20px;
    max-width: 1000px;
    margin: 36px 0
}
.rd-event-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 32px;
    align-items: center;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 28px 34px
}
.rd-event-date {
    width: 92px;
    height: 92px;
    border-radius: 50%;
    background: var(--tc-primary);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center
}
.rd-event-date strong {
    font-size: 36px;
    line-height: 1
}
.rd-event-date span {
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em
}
.rd-event-card h2 {
    font-size: 30px;
    margin: 0 0 5px
}
.rd-split-title {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr);
    gap: 60px;
    align-items: start
}
.rd-masters {
    display: grid;
    gap: 24px
}
.rd-masters article {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--tc-border)
}
.rd-numbers {
    background: var(--tc-night);
    color: #fff;
    border-radius: var(--tc-radius);
    padding: 34px;
    position: sticky;
    top: 24px
}
.rd-numbers h2 {
    font-size: 34px
}
.rd-numbers h3 {
    margin-top: 28px;
    color: #a7eadb
}
.rd-number-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}
.rd-number-grid div {
    display: flex;
    flex-direction: column;
    border-top: 1px solid rgba(255, 255, 255, .18);
    padding-top: 14px
}

.rd-number-icon-image {
    background-color: var(--tc-night);
    padding: 12px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
}


.rd-number-grid strong {
    font-size: 25px;
    color: var(--tc-action);
}
.rd-number-grid span {
    font-size: 14px;
    color: #d9e6e8
}
.rd-objectives {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px
}
.rd-objectives article, .rd-objectives .rd-repere {
    padding: 30px;
    border-radius: var(--tc-radius)
}
.rd-objectives article {
    background: #fff;
    border: 1px solid var(--tc-border)
}
.rd-regulation {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 60px
}
.rd-regulation aside {
    background: #f2f8f7;
    border-radius: var(--tc-radius);
    padding: 32px
}
.rd-trajectory {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 24px 0
}
.rd-trajectory div {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    text-align: center
}
.rd-trajectory strong, .rd-trajectory span {
    display: block
}
.rd-trajectory span {
    font-size: 26px;
    font-weight: 900;
    color: var(--tc-primary)
}
.rd-media-text {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 58px;
    align-items: center;
    margin: 0 0 70px
}
.rd-media-text.rd-reverse > div:first-child {
    order: 2
}
.rd-placeholder {
    min-height: 220px;
    border: 1px dashed #a8b9bd;
    border-radius: var(--tc-radius);
    background: rgba(255, 255, 255, .6);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 25px;
    color: var(--tc-muted);
    font-weight: 700
}
.rd-two-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px
}
.rd-two-cols > article {
    min-width: 0
}
.rd-two-cols ul {
    padding-left: 22px
}
.rd-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 35px
}
.rd-timeline div {
    padding: 24px 20px;
    border-top: 4px solid var(--tc-primary);
    background: #fff
}
.rd-timeline div:nth-child(even) {
    background: #edf6f5
}
.rd-timeline strong, .rd-timeline span {
    display: block
}
.rd-timeline strong {
    margin-bottom: 8px
}
.rd-timeline .is-current {
    border-color: var(--tc-secondary)
}
.rd-period {
    display: flex;
    gap: 24px;
    margin: 28px 0 34px
}
.rd-period strong {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: 999px;
    padding: 10px 18px
}
.rd-events {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px
}
.rd-events article {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 26px;
    display: flex;
    flex-direction: column
}
.rd-events article > span {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
    color: var(--tc-secondary)
}
.rd-events article > strong {
    font-size: 24px;
    margin: 5px 0
}
.rd-events article > a {
    font-weight: 800;
    margin-top: auto
}
.rd-after-timeline {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 30px 0
}
.rd-after-timeline div {
    padding: 24px;
    background: #f2f8f7;
    border-radius: 14px
}
.rd-after-timeline strong, .rd-after-timeline span {
    display: block
}
.rd-after-timeline span {
    margin-top: 8px;
    color: var(--tc-muted)
}
.rd-guarantors {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    margin-top: 34px
}
.rd-guarantor-card {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    min-height: 180px;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    overflow: hidden;
    background: #fff
}
.rd-guarantor-photo {
    background: var(--tc-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0px;
    text-align: center;
    color: var(--tc-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
        max-height: 250px;
}
.rd-guarantor-body {
    padding: 30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start
}
.rd-guarantor-body .tc-eyebrow {
    margin: 0 0 12px;
    color: var(--tc-muted)
}
.rd-guarantor-body h3 {
    margin: 0 0 14px;
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.05
}
.rd-guarantor-body a {
    font-weight: 800;
    overflow-wrap: anywhere
}
.rd-values {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin: 24px 0
}
.rd-values span {
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: 12px;
    font-weight: 800
}
.rd-doc-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 30px 0
}
.rd-doc-grid a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 110px;
    padding: 22px;
    border: 1px solid var(--tc-border);
    border-radius: 14px;
    text-decoration: none;
    font-weight: 800;
    background: #fff
}
.rd-doc-grid span {
    font-size: 13px;
    color: var(--tc-muted);
    font-weight: 400
}
.rd-supports {
    display: grid;
    gap: 12px;
    margin-top: 28px
}
.rd-supports div {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    padding: 20px 0;
    border-bottom: 1px solid var(--tc-border)
}
.rd-resource-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px
}
.rd-resource-cols article {
    border-top: 4px solid var(--tc-secondary);
    padding: 24px;
    background: #f7faf9;
    border-radius: 0 0 14px 14px
}
.rd-tabs, .rd-faq-cats {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 30px
}
.rd-tabs a, .rd-faq-cats span {
    padding: 10px 16px;
    border-radius: 999px;
    background: #edf6f5;
    text-decoration: none;
    font-weight: 800;
    font-size: 14px
}
.rd-contrib-core, .rd-faq-core {
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 28px;
    background: #fff
}
.rd-faq-static details {
    border-bottom: 1px solid var(--tc-border);
    padding: 18px 0
}
.rd-faq-static summary {
    cursor: pointer;
    font-weight: 800;
    font-size: 18px
}
.rd-faq-cta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    margin-top: 35px;
    padding: 30px;
    background: var(--tc-night);
    color: #fff;
    border-radius: var(--tc-radius)
}
.rd-faq-cta h2 {
    margin: 0;
    font-size: 30px
}
.rd-form-card {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 30px
}
.tc-section-soft .rd-form-card {
    box-shadow: 0 16px 40px rgba(16, 46, 58, .06)
}
.rd-question-check {
    display: grid;
    grid-template-columns: 1fr .7fr;
    gap: 28px;
    align-items: center
}
.rd-search-box {
    border: 1px solid var(--tc-border);
    border-radius: 999px;
    padding: 16px 22px;
    color: var(--tc-muted)
}
.rd-question-links {
    grid-column: 1/-1;
    display: flex;
    gap: 24px;
    font-weight: 800
}
@media(max-width:960px) {
    .rd-home-intro, .rd-concert-intro, .rd-after, .rd-form-section, .rd-split-title, .rd-regulation, .rd-media-text {
        grid-template-columns: 1fr;
        gap: 36px
    }
    .rd-numbers {
        position: static
    }
    .rd-objectives, .rd-two-cols {
        grid-template-columns: 1fr
    }
    .rd-events {
        grid-template-columns: 1fr 1fr
    }
    .rd-timeline, .rd-after-timeline {
        grid-template-columns: 1fr 1fr
    }
    .rd-resource-cols {
        grid-template-columns: 1fr 1fr
    }
    .rd-media-text.rd-reverse > div:first-child {
        order: 0
    }
}
@media(max-width:640px) {
    .rd-brief-grid, .rd-number-grid, .rd-objectives, .rd-guarantors, .rd-doc-grid, .rd-events, .rd-timeline, .rd-after-timeline, .rd-resource-cols, .rd-question-check {
        grid-template-columns: 1fr
    }
    .rd-event-card {
        grid-template-columns: 1fr;
        align-items: start
    }
    .rd-event-date {
        width: 76px;
        height: 76px
    }
    .rd-period, .rd-supports div, .rd-question-links, .rd-faq-cta {
        flex-direction: column;
        align-items: flex-start
    }
    .rd-trajectory {
        grid-template-columns: 1fr 1fr
    }
    .rd-question-links {
        display: flex
    }
    .rd-question-links, .rd-question-check > * {
        grid-column: auto
    }
    .rd-values {
        grid-template-columns: 1fr
    }
}
/* REBOUND & DARA 1.0.2 — header rendez-vous, sticky directionnel et visuels projet */
.tc-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    transition: transform .32s ease, box-shadow .25s ease;
    will-change: transform
}
.tc-header.is-hidden {
    transform: translateY(-100%)
}
.tc-header.is-scrolled {
    box-shadow: 0 8px 24px rgba(16, 46, 58, .10)
}
.tc-next-event {
    background: var(--tc-secondary);
    color: #fff;
    font-size: 13px;
    line-height: 1.25
}
.tc-next-event-inner {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px
}
.tc-next-event-copy {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    white-space: nowrap
}
.tc-next-event-label {
    color: #a7eadb;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-size: 10px;
    font-weight: 900
}
.tc-next-event-copy strong {
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis
}
.tc-next-event-meta {
    color: #c7d4d7;
    font-size: 12px
}
.tc-next-event-link {
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    white-space: nowrap
}
.tc-next-event-link:hover {
    text-decoration: underline
}
.rd-project-figure {
    margin: 0;
    border-radius: var(--tc-radius);
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--tc-border)
}
.rd-project-figure img {
    display: block;
    width: 100%;
    height: auto
}
.rd-partner-logos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 18px 24px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--tc-border)
}
.rd-partner-logos img {
    display: block;
    max-width: 110px;
    max-height: 52px;
    width: auto;
    height: auto;
    object-fit: contain
}
.rd-cndp-values-figure {
    margin: 28px 0 0;
    border-radius: var(--tc-radius);
    overflow: hidden;
    background: #fff
}
.rd-cndp-values-figure img {
    display: block;
    width: 100%;
    height: auto
}
@media(max-width:960px) {
    .tc-next-event-meta {
        display: none
    }
    .tc-next-event-copy {
        gap: 10px
    }
    .tc-next-event-copy strong {
        max-width: 48vw
    }
}
@media(max-width:640px) {
    .tc-next-event-inner {
        min-height: 34px;
        gap: 10px
    }
    .tc-next-event-label {
        display: none
    }
    .tc-next-event-copy strong {
        font-size: 11px;
        max-width: 62vw
    }
    .tc-next-event-link {
        font-size: 11px
    }
    .rd-partner-logos {
        gap: 14px
    }
    .rd-partner-logos img {
        max-width: 90px;
        max-height: 44px
    }
}
/* REBOUND & DARA — correctifs 01 / v1.0.3 */
.rd-home-hero .tc-hero-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start
}

.rd-home-hero h1 {
    font-weight: normal;
}

.rd-hero-project-link {
    margin-top: 24px
}
.rd-home-intro > aside {
    position: sticky;
    top: 110px;
    align-self: start
}
.tc-global-cta {
    margin: 0
}
.tc-global-cta + .tc-footer {
    margin-top: 0
}
.rd-number-icons {
    grid-template-columns: 1fr 1fr;
    gap: 10px
}

.rd-number-icons-large {
    grid-template-columns: 1fr;
    padding-top: 9px;
}

.rd-number-icons > div {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 10px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .07)
}
.rd-number-icons img {
    width: 36px;
    height: 36px;
    object-fit: contain
}
.rd-number-icons p {
    margin: 0
}
.rd-number-icons strong, .rd-number-icons span {
    display: block
}
.rd-number-icons strong {
    font-size: 19px;
    line-height: 19px;
    margin-bottom: 8px;
}
.rd-number-icons span {
    font-size: 12px;
    line-height: 1.3
}



.rd-objectives-editorial {
    grid-template-columns: 1fr 1fr
}
.rd-objective-repere {
    margin-top: 22px
}
.rd-objective-repere .rd-repere {
    display: grid;
    grid-template-columns: minmax(220px, .35fr) 1fr;
    gap: 40px;
    align-items: start
}
.rd-objective-repere .rd-repere h3 {
    margin: 0
}
.rd-objective-repere .rd-repere .tc-eyebrow {
    grid-column: 1
}
.rd-objective-repere .rd-repere p:last-child {
    grid-column: 2;
    grid-row: 1/3;
    margin: 0
}
.rd-objective-wide {
    margin-top: 22px
}
.rd-objective-wide article {
    display: grid;
    grid-template-columns: minmax(260px, .42fr) 1fr;
    gap: 44px;
    padding: 30px;
    background: #fff;
    border-radius: var(--tc-radius)
}
.rd-objective-wide h3 {
    margin: 0
}
.rd-objective-wide p {
    margin: 0
}
.rd-process-wide {
    margin: 34px 0 0;
    text-align: center
}
.rd-process-wide img {
    width: 100%;
    max-height: 300px;
    object-fit: contain
}
.rd-regulation {
    align-items: start
}
.rd-trajectory-bars {
    height: 240px;
    display: flex;
    align-items: flex-end;
    gap: 10px;
    padding: 30px 6px 0
}
.rd-trajectory-bars > div {
    height: calc(38px + var(--v)*2.15px);
    flex: 1;
    min-width: 0;
    background: var(--tc-secondary);
    border-radius: 8px 8px 0 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    padding: 10px 4px;
    color: #fff
}
.rd-trajectory-bars strong {
    font-size: 16px
}
.rd-trajectory-bars span {
    margin-top: auto;
    padding-bottom: 8px;
    font-size: 11px;
    font-weight: 900
}
.rd-regulation-note {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: minmax(260px, .42fr) 1fr;
    gap: 44px;
    margin-top: 30px;
    padding: 28px 32px;
    background: #e8f6f2;
    border-radius: var(--tc-radius)
}
.rd-regulation-note h3, .rd-regulation-note p {
    margin: 0
}
.rd-dara-photo {
    margin-top: 22px
}
.rd-dara-photo img {
    width: 100%;
    aspect-ratio: 16/8;
    object-fit: cover;
    border-radius: var(--tc-radius)
}
.rd-project-calendar {
    margin-top: 50px;
    max-width: 900px
}
.tc-project-timeline {
    list-style: none;
    margin: 30px 0 0;
    padding: 0 0 0 26px;
    border-left: 2px solid #cbd9db
}
.tc-project-timeline li {
    position: relative;
    padding: 0 0 28px 28px
}
.tc-project-timeline li:before {
    content: "";
    position: absolute;
    left: -35px;
    top: 5px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 4px solid var(--tc-secondary)
}
.tc-project-timeline li.is-current:before {
    background: var(--tc-secondary)
}
.tc-project-timeline span, .tc-project-timeline strong, .tc-project-timeline small {
    display: block
}
.tc-project-timeline span {
    font-size: 12px;
    font-weight: 900;
    color: var(--tc-secondary);
    text-transform: uppercase;
    letter-spacing: .04em
}
.tc-project-timeline strong {
    margin-top: 3px;
    font-size: 18px
}
.tc-project-timeline small {
    margin-top: 5px;
    color: var(--tc-muted)
}
@media(max-width:960px) {
    .rd-home-intro > aside {
        position: static
    }
    .rd-objective-repere .rd-repere, .rd-objective-wide article, .rd-regulation-note {
        grid-template-columns: 1fr;
        gap: 16px
    }
    .rd-objective-repere .rd-repere p:last-child {
        grid-column: auto;
        grid-row: auto
    }
}
@media(max-width:640px) {
    .rd-number-icons, .rd-objectives-editorial {
        grid-template-columns: 1fr
    }
    .rd-trajectory-bars {
        gap: 5px;
        height: 200px
    }
    .rd-trajectory-bars > div {
        padding-left: 2px;
        padding-right: 2px
    }
    .rd-trajectory-bars strong {
        font-size: 12px
    }
    .rd-trajectory-bars span {
        font-size: 9px
    }
}
/* REBOUND & DARA 1.0.4 — peaufinage accueil
   Aucun contenu éditorial n'est modifié : uniquement rythme, header et correctifs visuels. */
/* Rendez-vous : une seule ligne compacte, centrée, avec l'inscription dans le flux. */
.tc-next-event-inner {
    justify-content: center;
    gap: 14px;
}
.tc-next-event-copy {
    justify-content: center;
    gap: 12px;
}
.tc-next-event-link {
    margin-left: 2px;
    padding-left: 14px;
    border-left: 1px solid rgba(255, 255, 255, .22);
}
/* Halo très discret, limité à la signature du site dans la têtière. */
.tc-brand {
    position: relative;
    isolation: isolate;
    min-height: 72px;
}
.tc-brand::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -58px;
    top: 50%;
    width: 250px;
    height: 105px;
    transform: translateY(-50%);
    pointer-events: none;
    opacity: .48;
    filter: blur(18px);
    background:
        radial-gradient(circle at 24% 52%, rgba(255, 220, 77, .55) 0 12%, transparent 34%), radial-gradient(circle at 48% 34%, rgba(28, 175, 141, .38) 0 14%, transparent 38%), radial-gradient(circle at 70% 58%, rgba(58, 158, 226, .30) 0 12%, transparent 38%);
}
.tc-brand-name, .tc-brand .custom-logo {
    position: relative;
    z-index: 1
}
/* Logos CNDP : les fichiers sont dans assets/images/logos/. */
.tc-cndp img {
    display: block;
    width: 200px;
    max-height: 52px;
    object-fit: contain
}
.tc-footer-cndp img {
    display: block;
    width: 150px;
    max-height: 62px;
    object-fit: contain;
    margin-top: 10px;
    background: #fff;
    border-radius: 4px;
    padding: 6px
}
.tc-footer-cndp span {
    display: block;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 11px;
    font-weight: 800;
    color: #b9c8cb
}
/* Hero accueil : même identité, mais plus compact et sans rupture de dégradé sur le bord gauche. */
.rd-home-hero {
    background: var(--tc-secondary);
    overflow: hidden;
}
.rd-home-hero .tc-hero-grid {
    min-height: 440px;
}
.rd-home-hero .tc-hero-copy {
    padding-top: 48px;
    padding-bottom: 48px;
}
.rd-home-hero .tc-hero-copy h1 {
    font-size: clamp(32px, 3.35vw, 52px);
    line-height: 1.045;
    max-width: 570px;
    margin-bottom: 24px;
}
.rd-home-hero .tc-hero-media {
    min-height: 440px
}
.rd-home-hero .tc-hero-media::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0 auto 0 0;
    width: 34px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(28, 175, 141, .24), transparent);
    opacity: 0;
}
/* Rythme de l'accueil : conserver les contenus, mieux distinguer les séquences. */
.rd-home .tc-section {
    padding-top: 72px;
    padding-bottom: 72px
}
.rd-home-intro {
    gap: 84px
}
.rd-home-intro > div {
    max-width: 780px
}
.rd-home-intro .rd-highlight {
    position: sticky;
    top: 170px;
    box-shadow: 0 18px 42px rgba(16, 46, 58, .10);
}
.rd-home .tc-section-soft {
    background: linear-gradient(180deg, #f4f9f8 0%, #eef6f5 100%);
}
.rd-home .rd-brief-grid article {
    transition: transform .2s ease, box-shadow .2s ease;
}
.rd-home .rd-brief-grid article:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(16, 46, 58, .07);
}
/* CTA bas : on garde volontairement le fond froid et net, sans halo décoratif. */
.tc-section-gradient {
    background: linear-gradient(115deg, var(--tc-primary), #13599c)
}
@media(max-width:960px) {
    .tc-next-event-inner {
        justify-content: center
    }
    .tc-next-event-copy {
        justify-content: center
    }
    .rd-home-intro .rd-highlight {
        position: static
    }
    .rd-home-hero .tc-hero-grid {
        min-height: 0
    }
    .rd-home-hero .tc-hero-media {
        min-height: 330px
    }
    .tc-brand::before {
        left: -42px;
        width: 210px
    }
}
@media(max-width:640px) {
    .tc-next-event-inner {
        justify-content: space-between
    }
    .tc-next-event-copy {
        justify-content: flex-start
    }
    .tc-next-event-link {
        border-left: 0;
        padding-left: 0;
        margin-left: 0
    }
    .rd-home-hero .tc-hero-copy h1 {
        font-size: 34px
    }
    .rd-home .tc-section {
        padding-top: 54px;
        padding-bottom: 54px
    }
    .tc-brand::before {
        left: -34px;
        width: 180px;
        height: 84px;
        opacity: .40
    }
}
/* REBOUND & DARA 1.0.5 — ajustements accueil suite au contrôle en situation.
   Contenus éditoriaux inchangés. */
/* Le groupe du prochain rendez-vous est réellement centré comme un seul ensemble. */
.tc-next-event .tc-next-event-inner {
    width: max-content;
    max-width: calc(100% - 48px);
    margin-inline: auto;
    justify-content: center;
    gap: 14px;
}
.tc-next-event .tc-next-event-copy {
    justify-content: center;
    gap: 12px
}
.tc-next-event .tc-next-event-link {
    margin-left: 0;
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, .22);
}
/* Halo de lumière uniquement derrière le nom du site dans la têtière. */
.tc-header-top {
    position: relative
}
.tc-brand {
    position: relative;
    isolation: isolate;
    overflow: visible
}
.tc-brand::before {
    z-index: 0;
    left: -44px;
    top: 50%;
    width: 300px;
    height: 100px;
    transform: translateY(-50%);
    opacity: .62;
    filter: blur(20px);
    background:
        radial-gradient(ellipse at 18% 58%, rgba(255, 215, 72, .48) 0 10%, transparent 32%), radial-gradient(ellipse at 42% 40%, rgba(43, 188, 150, .34) 0 13%, transparent 38%), radial-gradient(ellipse at 68% 56%, rgba(54, 151, 225, .30) 0 12%, transparent 38%);
}
.tc-brand-name, .tc-brand .custom-logo {
    position: relative;
    z-index: 1
}
/* Hero : même composition et mêmes contenus, titre un peu moins massif. */
.rd-home-hero .tc-hero-grid {
    min-height: 410px
}
.rd-home-hero .tc-hero-copy {
    padding-top: 42px;
    padding-bottom: 42px
}
.rd-home-hero .tc-hero-copy h1 {
    font-size: clamp(30px, 42px, 42px);
    line-height: 1.06;
    max-width: 540px;
    margin-bottom: 22px;
}
.rd-home-hero .tc-hero-media {
    min-height: 410px
}
@media(max-width:960px) {
    .tc-next-event .tc-next-event-inner {
        max-width: calc(100% - 32px)
    }
    .rd-home-hero .tc-hero-grid {
        min-height: 0
    }
    .rd-home-hero .tc-hero-media {
        min-height: 320px
    }
}
@media(max-width:640px) {
    .tc-next-event .tc-next-event-inner {
        width: min(calc(100% - 28px), var(--tc-shell));
        max-width: none;
        justify-content: space-between;
    }
    .tc-next-event .tc-next-event-copy {
        justify-content: flex-start
    }
    .tc-next-event .tc-next-event-link {
        padding-left: 0;
        border-left: 0
    }
    .rd-home-hero .tc-hero-copy h1 {
        font-size: 32px
    }
}
/* REBOUND & DARA 1.0.6 — peaufinage page Les projets */
/* Les chiffres : titre hors panneau, trois groupes clairement autonomes. */
.rd-numbers-wrap {
    position: sticky;
    top: 24px;
    align-self: start
}
.rd-numbers-wrap > h2 {
    margin: 0 0 18px;
    color: var(--tc-text);
    font-size: 34px
}
.rd-numbers-wrap .rd-numbers {
    position: static;
    top: auto;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    display: grid;
    gap: 16px
}
.rd-number-group {
    background: var(--tc-soft);
    color: #fff;
    border-radius: var(--tc-radius);
    padding: 25px 24px;
    /* box-shadow: 0 14px 34px rgba(16, 46, 58, .10) */
}
.rd-number-group h3 {
    margin: 0 0 16px;
    color: #fff;
    font-size: 20px
}
.rd-number-group .rd-number-grid {
    gap: 9px
}
.rd-number-group .rd-number-icons > div {
    background: #FFFFFF;
    border-top: 0;
    padding: 11px 9px
}

.rd-number-group .rd-number-icons-large > div {
    background-color: var(--tc-night);
}

.rd-number-group .rd-number-icons-large .rd-number-icon-image {
    background-color: #FFF;
}

.rd-number-group .rd-number-icons-large span {
    color: #FFF;
}



/* ReFuelEU : retour au module sobre du thème 2concert, sans histogramme forcé. */
.rd-regulation aside {
    overflow: hidden
}
.rd-regulation .rd-trajectory {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 24px 0;
    min-height: 0
}
.rd-regulation .rd-trajectory > div {
    height: auto !important;
    min-height: 82px;
    background: #fff;
    border: 1px solid rgba(16, 46, 58, .07);
    border-radius: 12px;
    padding: 14px 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 5px 15px rgba(16, 46, 58, .035)
}
.rd-regulation .rd-trajectory strong {
    font-size: 12px;
    color: var(--tc-muted);
    margin-bottom: 4px
}
.rd-regulation .rd-trajectory span {
    font-size: 26px;
    line-height: 1;
    font-weight: 900;
    color: var(--tc-primary)
}
/* L'encart pleine largeur ne peut plus déborder de son shell. */
.rd-regulation-note {
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden
}
.rd-regulation-note > * {
    min-width: 0
}
.rd-regulation-note p {
    overflow-wrap: anywhere
}
/* DARA : le visuel fait partie de l'encart de synergie. */
.rd-dara-synergy {
    overflow: hidden;
    padding-bottom: 0 !important
}
.rd-dara-synergy .rd-dara-photo {
    margin: 22px -30px 0
}
.rd-dara-synergy .rd-dara-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 0
}
/* Quelques respirations pour stabiliser le rythme de cette longue page. */
.rd-projects .rd-media-text + .rd-media-text {
    margin-top: 54px
}
.rd-projects .rd-two-cols {
    align-items: start
}
.rd-projects .rd-project-figure img {
    display: block
}
@media(max-width:960px) {
    .rd-numbers-wrap {
        position: static
    }
    .rd-number-group {
        padding: 24px
    }
    .rd-dara-synergy .rd-dara-photo {
        margin-left: -30px;
        margin-right: -30px
    }
}
@media(max-width:640px) {
    .rd-numbers-wrap > h2 {
        font-size: 30px
    }
    .rd-regulation .rd-trajectory {
        grid-template-columns: repeat(2, 1fr)
    }
    .rd-regulation-note {
        display: block
    }
    .rd-regulation-note h3 {
        margin-bottom: 12px
    }
}
/* REBOUND & DARA 1.0.7 — peaufinage page Les projets */
/* Objectifs : trois lignes éditoriales, titre à gauche / texte à droite. */
.rd-objectives-lines {
    margin-top: 30px;
    display: grid;
    gap: 0
}
.rd-objectives-lines article {
     
    padding: 32px 8px;
    border-top: 1px solid var(--tc-border);
     
}
.rd-objectives-lines article:first-child {
    border-top: 0;
    padding-top: 12px
}
.rd-objectives-lines p {
    margin: 0
}
 
.rd-objectives-lines p {
    max-width: 760px
}
.rd-objective-repere {
    margin-top: 30px
}
.rd-objective-repere .rd-repere {
    padding: 30px 34px
}
.rd-process-wide {
    margin-top: 38px
}
.rd-process-wide img {
    max-height: 440px
}
/* ReFuelEU : histogramme progressif inspiré du module du thème 2concert. */
.rd-regulation aside {
    overflow: visible
}
.rd-trajectory-bars {
    height: 250px;
    display: flex;
    align-items: flex-end;
    gap: 9px;
    padding: 28px 2px 0;
    margin: 10px 0 18px
}
.rd-trajectory-bars > div {
    height: calc(64px + var(--v)*2.2px);
    flex: 1;
    min-width: 0;
    background: linear-gradient(180deg, var(--tc-secondary), var(--tc-primary));
    border-radius: 10px 10px 3px 3px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding: 12px 4px 13px;
    box-shadow: 0 10px 22px rgba(16, 46, 58, .10)
}
.rd-trajectory-bars strong {
    font-size: 12px;
    line-height: 1.1;
    color: #fff;
    order: 1
}
.rd-trajectory-bars span {
    font-size: 22px;
    line-height: 1;
    font-weight: 900;
    color: #fff;
    margin-bottom: 6px;
    order: 2
}
/* Pourquoi REBOUND : même construction éditoriale que le repère SAF. */
.rd-regulation-note {
    display: grid !important;
    grid-template-columns: minmax(250px, .42fr) minmax(0, 1fr);
    gap: 44px;
    width: 100%;
    margin-top: 30px;
    padding: 30px 34px;
    background: var(--tc-soft);
    border-left: 5px solid var(--tc-secondary);
    border-radius: var(--tc-radius);
    box-sizing: border-box;
    overflow: visible
}
.rd-regulation-note h3, .rd-regulation-note p {
    margin: 0;
    min-width: 0
}
.rd-regulation-note p {
    overflow-wrap: normal;
    word-break: normal
}
/* DARA : photo dans l'encart, avec les mêmes marges que le texte. */
.rd-dara-synergy {
    padding: 30px !important;
    overflow: hidden
}
.rd-dara-synergy .rd-dara-photo {
    margin: 24px 0 0 !important
}
.rd-dara-synergy .rd-dara-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 12px
}
/* Images agrandissables : classe explicite, jamais appliquée aux logos. */
.tc-lightbox {
    display: block;
    position: relative;
    cursor: zoom-in;
    border-radius: inherit
}
.tc-lightbox::after {
    content: '+';
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(16, 46, 58, .88);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    opacity: 0;
    transform: translateY(4px);
    transition: .18s ease;
    pointer-events: none
}
.tc-lightbox:hover::after, .tc-lightbox:focus-visible::after {
    opacity: 1;
    transform: none
}
.tc-lightbox-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(5, 20, 27, .94);
    display: none;
    align-items: center;
    justify-content: center;
    padding: 34px
}
.tc-lightbox-modal.is-open {
    display: flex
}
.tc-lightbox-modal img {
    display: block;
    max-width: min(94vw, 1600px);
    max-height: 90vh;
    width: auto;
    height: auto;
    object-fit: contain;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .35)
}
.tc-lightbox-close {
    position: fixed;
    right: 24px;
    top: 20px;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: var(--tc-night);
    font-size: 30px;
    line-height: 1;
    cursor: pointer
}
body.tc-lightbox-open {
    overflow: hidden
}
@media(max-width:960px) {
    .rd-objectives-lines article, .rd-regulation-note {
        grid-template-columns: 1fr;
        gap: 16px
    }
    .rd-trajectory-bars {
        height: 220px
    }
    .rd-trajectory-bars > div {
        height: calc(60px + var(--v)*1.85px)
    }
}
@media(max-width:640px) {
    .rd-objectives-lines article {
        padding: 26px 0
    }
    .rd-objective-repere .rd-repere, .rd-regulation-note {
        padding: 24px
    }
    .rd-trajectory-bars {
        height: 185px;
        gap: 5px
    }
    .rd-trajectory-bars > div {
        height: calc(58px + var(--v)*1.35px);
        padding: 9px 2px
    }
    .rd-trajectory-bars strong {
        font-size: 10px
    }
    .rd-trajectory-bars span {
        font-size: 17px
    }
    .tc-lightbox-modal {
        padding: 18px
    }
    .tc-lightbox-close {
        right: 12px;
        top: 12px
    }
}
/* REBOUND & DARA 1.0.8 — corrections page Les projets */
/* Objectifs : conserver la disposition éditoriale, mais retrouver les cartes blanches. */
.rd-objectives-lines {
    gap: 18px;
    margin-top: 30px;
    display: grid;
    grid-template-columns: 3fr 3fr 3fr; 
}
.rd-objectives-lines article, .rd-objectives-lines article:first-child {
    background: #fff;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    padding: 30px 32px;
    box-shadow: 0 8px 24px rgba(16, 46, 58, .035)
}
.rd-objectives-lines article + article {
    border-top: 1px solid var(--tc-border)
}
/* Repère SAF : eyebrow immédiatement au-dessus du titre, texte dans la colonne de droite. */
.rd-objective-repere .rd-repere {
    display: grid;
    grid-template-columns: minmax(250px, .42fr) minmax(0, 1fr);
    gap: 52px;
    align-items: start
}
.rd-objective-repere .rd-repere .rd-repere-title {
    grid-column: 1;
    grid-row: 1
}
.rd-objective-repere .rd-repere .rd-repere-title .tc-eyebrow {
    margin: 0 0 8px
}
.rd-objective-repere .rd-repere .rd-repere-title h3 {
    margin: 0
}
.rd-objective-repere .rd-repere > p {
    grid-column: 2;
    grid-row: 1;
    margin: 0
}
/* Note REBOUND : même largeur que tout le contenu du shell, jamais hors marges. */
.rd-regulation-note {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0
}
@media(max-width:960px) {
    .rd-objectives-lines article, .rd-objective-repere .rd-repere {
        grid-template-columns: 1fr;
        gap: 16px
    }
    .rd-objective-repere .rd-repere > p {
        grid-column: 1;
        grid-row: auto
    }
    
    .rd-objectives-lines {
        grid-template-columns: 1fr;
    }
    
    
}
@media(max-width:640px) {
    .rd-objectives-lines article, .rd-objectives-lines article:first-child {
        padding: 24px
    }
}
/* V1.0.10 — Calendrier prévisionnel pleine largeur, contenu contraint au shell */
.rd-project-calendar-section {
    width: 100%;
    background: var(--tc-night);
    color: #fff;
}
.rd-project-calendar {
    margin: 0;
    max-width: none;
    padding: 56px 0 60px;
    border-radius: 0;
    background: transparent;
    color: #fff;
    box-shadow: none;
}
.rd-project-calendar h2 {
    color: #fff;
    margin-bottom: 8px
}
.rd-project-calendar .tc-project-timeline {
    position: relative;
    list-style: none;
    margin: 30px 0 0;
    padding: 0 0 0 42px;
    border-left: 0;
}
.rd-project-calendar .tc-project-timeline:before {
    content: "";
    position: absolute;
    left: 8px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: rgba(167, 234, 219, .42);
    transform: translateX(-50%);
}
.rd-project-calendar .tc-project-timeline li {
    position: relative;
    padding: 0 0 30px 0;
    min-height: 16px;
}
.rd-project-calendar .tc-project-timeline li:last-child {
    padding-bottom: 0
}
.rd-project-calendar .tc-project-timeline li:before {
    content: "";
    position: absolute;
    left: -42px;
    top: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    box-sizing: border-box;
    background: var(--tc-night);
    border: 3px solid #1caf8d;
    z-index: 2;
}
.rd-project-calendar .tc-project-timeline li.is-current {
    margin: 0 0 28px -14px;
    padding: 17px 20px 18px 14px;
    border-radius: 12px;
    background: rgba(28, 175, 141, .13);
    border: 1px solid rgba(167, 234, 219, .16);
}
.rd-project-calendar .tc-project-timeline li.is-current:before {
    left: -28px;
    top: 20px;
    background: #1caf8d;
    border-color: #a7eadb;
    box-shadow: 0 0 0 5px rgba(28, 175, 141, .16);
}
.rd-project-calendar .tc-project-timeline span {
    color: #a7eadb;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.rd-project-calendar .tc-project-timeline strong {
    margin-top: 4px;
    color: #fff;
    font-size: 18px;
    line-height: 1.3;
}
.rd-project-calendar .tc-project-timeline small {
    display: inline-flex;
    width: max-content;
    margin-top: 9px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #1caf8d;
    color: #fff;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .05em;
}
@media(max-width:640px) {
    .rd-project-calendar {
        padding: 38px 0 42px;
        border-radius: 0
    }
    .rd-project-calendar .tc-project-timeline {
        padding-left: 34px
    }
    .rd-project-calendar .tc-project-timeline:before {
        left: 7px
    }
    .rd-project-calendar .tc-project-timeline li:before {
        left: -34px;
        width: 14px;
        height: 14px
    }
    .rd-project-calendar .tc-project-timeline li.is-current {
        margin-left: -10px;
        padding: 15px 16px 16px 10px
    }
    .rd-project-calendar .tc-project-timeline li.is-current:before {
        left: -24px;
        top: 18px
    }
    .rd-project-calendar .tc-project-timeline strong {
        font-size: 16px
    }
}
/* V1.0.11 — calendrier : la section porte elle-même le fond sombre */
.rd-project-calendar-section {
    width: 100%;
    background: url("../images/bg-halo-2.png") center / cover no-repeat, var(--tc-night);
    color: #fff;
    padding: 72px 0 76px;
}
.rd-project-calendar-section .tc-shell {
    width: min(calc(100% - 48px), var(--tc-shell));
    margin-inline: auto;
}
.rd-project-calendar-section .rd-project-calendar {
    margin: 0;
    padding: 0;
    max-width: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
@media(max-width:640px) {
    .rd-project-calendar-section {
        padding: 48px 0 52px
    }
    .rd-project-calendar-section .rd-project-calendar {
        padding: 0
    }
}
/* V1.0.12 — rythme de la page La concertation */
/* Temps d'échange : rupture sombre pleine largeur. */
 
.rd-exchange-section .tc-btn {
    background: var(--tc-action);
    color: #fff !important
}
/* Bloc explicatif de l'après-concertation : fond soft. */
.rd-after-intro-section {
    background: linear-gradient(180deg, #f4f9f8, #eef6f5)
}
/* Calendrier dynamique : retour sur fond blanc. */
.rd-events-section {
    background: #fff
}
/* Timeline finale : même logique pleine largeur que le calendrier prévisionnel. */
.rd-after-dark-section {
    background: var(--tc-night);
    color: #fff
}
.rd-after-dark-section h2 {
    color: #fff
}
.rd-after-dark-section .tc-after-timeline li {
    border-top-color: rgba(255, 255, 255, .28)
}
.rd-after-dark-section .tc-after-timeline li:before {
    background: var(--tc-secondary)
}
.rd-after-dark-section .tc-after-timeline span {
    color: #a7eadb
}
.rd-after-dark-section .tc-after-timeline strong {
    color: #fff
}
.rd-after-dark-section .tc-after-timeline small {
    color: #b9cdd1
}
.rd-after-dark-section .tc-after-note {
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .12);
    color: #e7f0f2
}
@media(max-width:640px) {
    .rd-after-dark-section .tc-after-timeline li {
        border-left-color: rgba(255, 255, 255, .28)
    }
}
/* V1.0.13 — Design system de cartes réutilisables
   Utiliser .tc-card + une variante de surface selon le contexte. */
.tc-card {
    border-radius: var(--tc-radius);
    padding: 28px 30px;
    border: 1px solid transparent;
    box-sizing: border-box;
}
.tc-card > :first-child {
    margin-top: 0
}
.tc-card > :last-child {
    margin-bottom: 0
}
/* Carte blanche : contenus éditoriaux sur fonds blancs ou soft. */
.tc-card-white {
    background: #fff;
    border-color: var(--tc-border);
    color: var(--tc-text);
    box-shadow: 0 8px 24px rgba(16, 46, 58, .035);
}
.tc-card-white h2, .tc-card-white h3, .tc-card-white h4 {
    color: var(--tc-text)
}
/* Carte soft/verte : repères, focus et informations secondaires. */
.tc-card-soft, .tc-card-green {
    background: #dff3ee;
    border-color: rgba(28, 175, 141, .18);
    color: var(--tc-text);
}
.tc-card-soft h2, .tc-card-soft h3, .tc-card-soft h4, .tc-card-green h2, .tc-card-green h3, .tc-card-green h4 {
    color: var(--tc-text)
}
/* Carte bleue : mise en avant sur fond clair. */
.tc-card-blue {
    background: var(--tc-secondary);
    border-color: var(--tc-secondary);
    color: #fff;
}
.tc-card-blue h2, .tc-card-blue h3, .tc-card-blue h4 {
    color: #fff
}
.tc-card-blue p, .tc-card-blue li {
    color: #e5eff1
}
.tc-card-blue a:not(.tc-btn) {
    color: #a7eadb
}
/* Dark card : composant de référence pour tout sous-bloc posé sur une section bleu nuit. */
.tc-section-dark .tc-card-dark, .tc-card-dark {
    background: rgba(255, 255, 255, .055);
    border-color: rgba(167, 234, 219, .24);
    color: #fff;
    box-shadow: none;
}
.tc-section-dark .tc-card-dark h2, .tc-section-dark .tc-card-dark h3, .tc-section-dark .tc-card-dark h4, .tc-card-dark h2, .tc-card-dark h3, .tc-card-dark h4 {
    color: #fff
}
.tc-section-dark .tc-card-dark p, .tc-section-dark .tc-card-dark li, .tc-card-dark p, .tc-card-dark li {
    color: #e7f0f2
}
.tc-section-dark .tc-card-dark a:not(.tc-btn), .tc-card-dark a:not(.tc-btn) {
    color: #a7eadb
}
/* Concertation : deux cartes cohérentes sur la rupture sombre. */
.rd-exchange-section .rd-two-cols {
    align-items: stretch
}
.rd-exchange-section .tc-card-dark {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start
}
.rd-exchange-section .tc-card-dark .tc-btn {
    margin-top: auto
}
/* Note finale : même dark card, largeur maîtrisée et contraste garanti. */
.rd-after-dark-section .tc-after-note.tc-card-dark {
    background: rgba(255, 255, 255, .055) !important;
    border: 1px solid rgba(167, 234, 219, .24) !important;
    color: #e7f0f2 !important;
}
.rd-after-dark-section .tc-after-note.tc-card-dark p {
    color: #e7f0f2 !important
}
@media(max-width:640px) {
    .tc-card {
        padding: 23px 22px
    }
}
/* V1.0.14 — Variantes structurelles des cartes
   La surface (.tc-card-dark, .tc-card-white...) et les ornements sont indépendants. */
.tc-card-dark {
    border: none
}
.tc-card-border {
    border: 1px solid rgba(167, 234, 219, .24)
}
.tc-card-accent {
    position: relative;
    overflow: hidden
}
.tc-card-accent::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--tc-secondary);
}
.tc-card-no-accent::before {
    display: none !important
}
/* Concertation — cartes d'action compactes, sans trait latéral. */
.rd-exchange-section .tc-card-dark {
    height: auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 26px 28px;
}
.rd-exchange-section .tc-card-dark h3 {
    font-size: clamp(24px, 2.1vw, 32px);
    line-height: 1.08;
    margin: 0 0 12px;
}
.rd-exchange-section .tc-card-dark p {
    margin: 0 0 18px
}
.rd-exchange-section .tc-card-dark .tc-btn {
    margin-top: 0
}
/* Note finale — hauteur dictée uniquement par son contenu. */
.rd-after-dark-section .tc-after-note.tc-card-dark {
    height: auto !important;
    min-height: 0 !important;
    padding: 24px 30px !important;
    border: 0 !important;
    max-width: 900px;
}
.rd-after-dark-section .tc-after-note.tc-card-accent {
    padding-left: 34px !important
}
@media(max-width:760px) {
    .rd-guarantor-card {
        grid-template-columns: 120px minmax(0, 1fr);
        min-height: 150px
    }
    .rd-guarantor-body {
        padding: 22px
    }
}
@media(max-width:480px) {
  
    .rd-guarantor-photo {
        min-height: 150px
    }
    .rd-guarantor-body {
        padding: 22px
    }
}
/* V1.0.16 — Documentation */
/* Cartes documents : action de téléchargement explicite + interaction légère. */
.rd-doc-grid a {
    min-height: 118px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 22px 24px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rd-doc-grid a:hover {
    transform: translateY(-3px);
    border-color: rgba(28, 175, 141, .38);
    box-shadow: 0 14px 34px rgba(16, 46, 58, .08);
}
.rd-doc-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0
}
.rd-doc-copy strong {
    color: var(--tc-primary);
    font-size: 16px;
    line-height: 1.25
}
.rd-doc-copy small {
    color: var(--tc-muted);
    font-size: 13px;
    font-weight: 400
}
.rd-doc-download {
    flex: 0 0 auto;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border-radius: 999px;
    background: #eef8f6;
    color: var(--tc-primary) !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.rd-doc-download b {
    font-size: 12px;
    transition: transform .2s ease;
    position: relative;
    top: -2px;
}
.rd-doc-grid a:hover .rd-doc-download {
    background: var(--tc-secondary);
    color: #fff !important
}
.rd-doc-grid a:hover .rd-doc-download b {
    transform: translateY(2px)
}
/* Supports des temps d’échange : rupture sombre pleine largeur. */
.rd-supports-section {
    background: var(--tc-night);
    color: #fff
}
.rd-supports-section h2 {
    color: #fff
}
.rd-supports-section > .tc-shell > p {
    color: #dce9eb;
    max-width: 900px
}
.rd-supports-section .rd-supports {
    margin-top: 34px
}
.rd-supports-section .rd-supports div {
    padding: 22px 0;
    border-bottom-color: rgba(255, 255, 255, .18);
}
.rd-supports-section .rd-supports strong {
    color: #fff
}
.rd-supports-section .rd-supports span {
    color: #a7eadb
}
/* Ressources : conserver le filet supérieur mais arrondir réellement toute la carte. */
.rd-resource-cols article {
    border: 1px solid var(--tc-border);
    border-top: 4px solid var(--tc-secondary);
    border-radius: 14px;
    background: #f7faf9;
    overflow: hidden;
}
@media(max-width:760px) {
    .rd-doc-grid a {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px
    }
    .rd-doc-download {
        align-self: flex-start
    }
}
/* v1.0.17 — Contributions polish */
.rd-contributions-page .rd-contrib-core {
    padding: 30px;
    box-shadow: 0 10px 32px rgba(16, 46, 58, .035)
}
.rd-contributions-page .rd-contrib-core .tc-public-filters {
    gap: 10px
}
.rd-contributions-page .rd-contrib-core button, .rd-contributions-page .rd-contrib-core input[type="submit"], .rd-contributions-page .rd-contrib-core .button {
    border-radius: 999px !important
}
.rd-contributions-page .rd-contrib-core .tc-public-tabs button, .rd-contributions-page .rd-contrib-core [role="tab"] {
    border-radius: 999px !important;
    border-color: #cfe8e4 !important;
    background: #edf8f5 !important;
    color: #087e91 !important;
    transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease
}
.rd-contributions-page .rd-contrib-core .tc-public-tabs button:hover, .rd-contributions-page .rd-contrib-core [role="tab"]:hover {
    transform: translateY(-1px);
    background: #dff4ef !important;
    border-color: #a9ded3 !important
}
.rd-contributions-page .rd-contrib-core .tc-public-tabs button.is-active, .rd-contributions-page .rd-contrib-core .tc-public-tabs button.active, .rd-contributions-page .rd-contrib-core [role="tab"][aria-selected="true"] {
    background: var(--tc-secondary) !important;
    border-color: var(--tc-secondary) !important;
    color: #fff !important
}
.rd-contributions-info h3 {
    font-size: clamp(24px, 2.2vw, 34px);
    line-height: 1.08;
    margin: 0 0 20px;
    letter-spacing: -.025em
}
.tc-global-cta .tc-eyebrow {
    color: #fff !important
}
@media(max-width:760px) {
    .rd-contributions-page .rd-contrib-core {
        padding: 20px
    }
    .rd-contributions-info h3 {
        font-size: 25px
    }
}
/* v1.0.18 — Je participe : composition du thème de référence, contenus inchangés */
.rd-participate-layout {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(36px, 6vw, 90px);
    align-items: start
}
.rd-participate-layout > div {
    min-width: 0
}
.rd-participate-layout .rd-form-card {
    padding: clamp(24px, 3vw, 40px);
    border-radius: 16px
}
.rd-participate-layout .rd-form-card input:not([type=checkbox]):not([type=radio]), .rd-participate-layout .rd-form-card select, .rd-participate-layout .rd-form-card textarea {
    max-width: 100%;
    box-sizing: border-box
}
.rd-participate-layout .rd-form-card button[type=submit], .rd-participate-layout .rd-form-card input[type=submit] {
    border-radius: 999px;
    background: #1bae91;
    color: #fff;
    padding: 12px 22px;
    border: 0;
    cursor: pointer
}
.rd-participate-note {
    display: block;
    margin-top: 26px;
    padding: 20px 22px;
    border-radius: 0 10px 10px 0;
    background: #eaf7f3;
    border-left: 3px solid #1bae91
}
.rd-participate-check {
    grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
    gap: clamp(28px, 5vw, 72px)
}
.rd-participate-search-side {
    min-width: 0
}
.rd-participate-search-side .rd-question-links {
    display: flex;
    flex-wrap: wrap;
    margin-top: 20px;
    gap: 12px 22px
}
@media(max-width:960px) {
    .rd-participate-layout, .rd-participate-check {
        grid-template-columns: 1fr;
        gap: 30px
    }
}
/* v1.0.19 — recherche réelle vers le module contributions */
.rd-participate-search-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background-color: #FFF;
}
.rd-participate-search-form input {
    flex: 1;
    min-width: 160px;
    padding: 12px 16px;
    border: 1px solid var(--tc-border);
    border-radius: 999px
}
.rd-participate-search-form .tc-btn {
    min-height: 43px
}
.rd-participate-search-form:focus-within input {
    outline-color: var(--tc-secondary)
}
/* 1.0.20 — signature du projet : texte lisible, sans effet de gris. */
body.twoconcert-front .tc-header .tc-brand-name {
    color: #111820;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.03em;
    opacity: 1;
    text-transform: none;
}
body.twoconcert-front .tc-header .tc-brand {
    color: #111820;
    opacity: 1
}
@media(max-width:640px) {
    body.twoconcert-front .tc-header .tc-brand-name {
        font-size: 20px
    }
}
/* Listes éditoriales uniquement : exclusion des navigations, filtres,
   timelines et listes gérées par le plugin. */
body.twoconcert-front :is(.tc-section, .tc-page-hero, .tc-prose, .rd-content) ul:not([class]):not([role]) {
    list-style: none;
    padding-left: 0;
    margin-block: 16px 22px;
}
body.twoconcert-front :is(.tc-section, .tc-page-hero, .tc-prose, .rd-content) ul:not([class]):not([role]) > li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 10px;
}
body.twoconcert-front :is(.tc-section, .tc-page-hero, .tc-prose, .rd-content) ul:not([class]):not([role]) > li::before {
    content: '›';
    position: absolute;
    left: 2px;
    top: -1px;
    color: var(--tc-secondary);
    font-weight: 800;
    font-size: 1.25em;
    line-height: 1.2;
}
body.twoconcert-front :is(.tc-section, .tc-page-hero, .tc-prose, .rd-content) ul:not([class]):not([role]) > li:last-child {
    margin-bottom: 0
}
body.twoconcert-front .tc-section-dark ul:not([class]) > li::before {
    color: #a7eadb
}
/* 1.0.21 — Sticky éditorial, jamais sur mobile ni au-dessus du formulaire. */
@media(min-width:961px) {
    .rd-participate-layout > div:first-child {
        position: sticky;
        top: 125px;
        align-self: start
    }
    .rd-split-title > .rd-numbers {
        top: 125px
    }
    .rd-home-intro > aside {
        top: 125px
    }
}
@media(max-width:960px) {
    .rd-participate-layout > div:first-child {
        position: static
    }
}
/* Démonstrateur de composants — isolé de la mise en page publique */
.rd-styleguide .rd-sg-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px
}
.rd-styleguide .rd-sg-grid > * {
    min-width: 0
}
.rd-styleguide .rd-sg-block {
    margin: 0 0 32px
}
.rd-styleguide .rd-sg-swatch {
    min-height: 95px;
    border-radius: 12px;
    padding: 16px;
    font-weight: 700
}
.rd-styleguide .rd-sg-code {
    display: block;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: 12px;
    padding: 12px;
    border: 1px solid var(--tc-border);
    background: #f7faf9;
    border-radius: 8px;
    margin-top: 12px;
    color: #233
}
.rd-styleguide .rd-sg-dark {
    background: var(--tc-night);
    color: #fff;
    padding: 36px;
    border-radius: var(--tc-radius)
}
.rd-styleguide .rd-sg-dark h2, .rd-styleguide .rd-sg-dark h3 {
    color: #fff
}
@media(max-width:850px) {
    .rd-styleguide .rd-sg-grid {
        grid-template-columns: 1fr
    }
}
/* 2CONCERT palette system — v1.0.22: semantic tokens, no fixed accent shades */ :root {
    --tc-border: color-mix(in srgb, var(--tc-text) 12%, white);
    --tc-muted: color-mix(in srgb, var(--tc-text) 65%, white);
    --tc-primary-soft: color-mix(in srgb, var(--tc-primary) 10%, white);
    --tc-accent-soft: color-mix(in srgb, var(--tc-accent) 10%, white);
    --tc-accent-border: color-mix(in srgb, var(--tc-accent) 38%, transparent);
    --tc-dark-card: color-mix(in srgb, var(--tc-night) 88%, white);
    --tc-dark-border: color-mix(in srgb, white 20%, var(--tc-night));
    --tc-soft-surface: color-mix(in srgb, var(--tc-soft) 75%, white);
}
.tc-btn, .tc-btn-participate, .rd-form-card button[type=submit] {
    background: var(--tc-action)
}
.tc-section-soft {
    background: var(--tc-soft-surface)
}
.tc-section-gradient {
    background: url("../images/bg-halo-2.png") center / cover no-repeat, linear-gradient(115deg, var(--tc-primary), var(--tc-night));
    
    color: #FFFFFF;
}
.tc-section-gradient h2 {
    color: #FFFFFF;
}
.tc-hero {
    background: url("../images/bg-halo-2.png") center / cover no-repeat, linear-gradient(115deg, var(--tc-primary), var(--tc-night));
}
.rd-regulation aside, .rd-regulation-note, .rd-after-timeline div {
    background: var(--tc-soft-surface)
}
.rd-resource-cols article {
    background: var(--tc-soft-surface);
    border-top-color: var(--tc-accent);
    border-radius: var(--tc-radius)
}
.rd-trajectory-bars > div {
    background: var(--tc-primary)
}
.rd-tabs a, .rd-faq-cats span {
    background: var(--tc-primary-soft);
    color: var(--tc-primary)
}
.rd-brief-grid article {
    border-bottom-color: var(--tc-accent)
}
.rd-numbers h3, .tc-action-card-label {
    color: var(--tc-primary);
}
.rd-number-grid span {
    color: color-mix(in srgb, var(--tc-text) 70%, white);
}
.tc-project-timeline li:before {
    border-color: var(--tc-accent)
}
.tc-project-timeline li.is-current:before {
    background: var(--tc-accent)
}
.tc-project-timeline span {
    color: var(--tc-accent)
}
.rd-regulation-note, .rd-objective-repere .rd-repere {
    border-top-color: var(--tc-accent)
}
.tc-dark-card, .rd-dark-card {
    background: var(--tc-dark-card);
    border-color: var(--tc-dark-border)
}
.tc-section-night .tc-dark-card, .tc-section-night .rd-dark-card {
    color: #fff
}
/* Prefer color inheritance for content inside night sections. */
.tc-section-night .tc-dark-card p, .tc-section-night .rd-dark-card p {
    color: inherit
}
/* v1.0.23 — Couleurs sémantiques : calendrier et dégradé ReFuelEU. */
.rd-project-calendar .tc-project-timeline:before {
    background: color-mix(in srgb, var(--tc-action) 36%, var(--tc-night))
}
.rd-project-calendar .tc-project-timeline li:before {
    border-color: var(--tc-action)
}





.rd-project-calendar .tc-project-timeline li.is-current {
    background: #FFFFFF13;
    border-color: color-mix(in srgb, var(--tc-action) 24%, transparent)
}
.rd-project-calendar .tc-project-timeline li.is-current:before {
    background: var(--tc-action);
    border-color: color-mix(in srgb, var(--tc-action) 42%, white);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--tc-action) 18%, transparent)
}
.rd-project-calendar .tc-project-timeline span {
    color: color-mix(in srgb, var(--tc-action) 40%, white)
}
.rd-project-calendar .tc-project-timeline small {
    background: var(--tc-action);
    color: #fff
}
.rd-trajectory-bars > div {
    background: linear-gradient(180deg, color-mix(in srgb, var(--tc-primary) 48%, var(--tc-action)) 0%, var(--tc-primary) 100%)
}
/* Accents encore figés dans les composants de fond sombre. */
.rd-after-dark-section .tc-after-timeline li:before {
    background: var(--tc-action)
}
.rd-after-dark-section .tc-after-timeline span, .tc-section-dark .tc-eyebrow, .tc-factbox-label, .tc-mission-card .tc-eyebrow, .tc-cndp-principles span {
    color: color-mix(in srgb, var(--tc-action) 38%, white)
}
.tc-timeline li.is-current:before {
    background: var(--tc-action);
    box-shadow: 0 0 0 7px color-mix(in srgb, var(--tc-action) 18%, transparent)
}
.tc-timeline em {
    background: var(--tc-action)
}
.rd-participate-layout .rd-form-card button[type=submit], .rd-participate-layout .rd-form-card input[type=submit] {
    background: var(--tc-action)
}
.rd-participate-note {
    background: var(--tc-soft-surface);
    border-left-color: var(--tc-accent)
}
/* v1.0.25 — lisibilité du bandeau prochain rendez-vous */
.tc-next-event{font-size:15px}
.tc-next-event-inner{min-height:60px;gap:22px;padding-top:9px;padding-bottom:9px}
.tc-next-event-copy{flex-wrap:wrap;white-space:normal;gap:7px 18px}
.tc-next-event-label{font-size:12px;color:var(--tc-action,var(--tc-secondary))}
.tc-next-event-copy strong{font-size:16px;overflow:visible;text-overflow:clip}
.tc-next-event-meta{font-size:14px;color:color-mix(in srgb,white 82%,var(--tc-night))}
.tc-next-event-link{font-size:14px}
@media(max-width:680px){.tc-next-event-inner{align-items:flex-start;gap:12px}.tc-next-event-copy{display:block}.tc-next-event-copy>*{display:block;margin-bottom:5px}.tc-next-event-copy strong{font-size:14px}.tc-next-event-meta{font-size:12px}.tc-next-event-link{align-self:center}}

/* v1.0.28 : recherche des contributions repliable */
.rd-contributions-page .tc-public-filter-row[hidden]{display:none!important}
.rd-contributions-page .tc-public-tabs .rd-search-tab{font:inherit;font-size:13px;cursor:pointer;background:color-mix(in srgb,var(--tc-primary) 10%,white);border:1px solid color-mix(in srgb,var(--tc-primary) 20%,white);color:var(--tc-primary);border-radius:999px;padding:10px 17px;font-weight:700}
.rd-contributions-page .tc-public-tabs .rd-search-tab.is-active{background:var(--tc-primary);border-color:var(--tc-primary);color:#fff}
@media(max-width:760px){.tc-next-event .tc-next-event-link{display:none!important}}

/* v1.0.29 — ReFuelEU : segments empilés, style arrondi conservé. */
.rd-trajectory-stacked{align-items:flex-end;gap:9px;padding:22px 2px 0;height:250px;margin-bottom:12px}
.rd-trajectory-stacked>.rd-trajectory-item{height:auto;flex:1;min-width:0;background:none;box-shadow:none;border-radius:0;padding:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;color:var(--tc-text)}
.rd-trajectory-stacked .rd-trajectory-total{display:block;order:0;margin:0 0 8px;text-align:center;font-size:clamp(12px,1.25vw,19px);font-weight:900;line-height:1.1;color:var(--tc-primary)}
.rd-trajectory-stacked .rd-trajectory-stack{height:calc(40px + var(--v)*2px);width:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:10px 10px 3px 3px;box-shadow:0 10px 22px rgba(16,46,58,.10)}
.rd-trajectory-stacked .rd-trajectory-segment{height:var(--segment);min-height:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:clamp(10px,1.1vw,16px);line-height:1.1}
.rd-trajectory-stacked .rd-trajectory-non-synthetic{background:linear-gradient(160deg,color-mix(in srgb,var(--tc-secondary) 82%,white),var(--tc-secondary))}
.rd-trajectory-stacked .rd-trajectory-synthetic{background:linear-gradient(160deg,color-mix(in srgb,var(--tc-primary) 75%,var(--tc-action)),var(--tc-primary))}
.rd-trajectory-stacked .rd-trajectory-item>strong{order:2;display:block;margin-top:10px;text-align:center;color:var(--tc-text);font-size:12px;line-height:1.2}
.rd-trajectory-legend{display:flex;flex-wrap:wrap;gap:9px 17px;margin:10px 0 13px;font-size:12px;font-weight:650;color:var(--tc-text)}
.rd-trajectory-legend>span{display:inline-flex;align-items:center;gap:7px}
.rd-trajectory-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none}
.rd-trajectory-legend .rd-legend-non-synthetic{background:var(--tc-secondary)}
.rd-trajectory-legend .rd-legend-synthetic{background:var(--tc-primary)}
@media(max-width:600px){.rd-trajectory-stacked{gap:5px}.rd-trajectory-stacked .rd-trajectory-stack{height:calc(36px + var(--v)*1.7px)}.rd-trajectory-stacked .rd-trajectory-segment{font-size:10px}.rd-trajectory-legend{font-size:11px}}

/* v1.0.30 — lisibilité des petits segments ReFuelEU et note compacte */
.rd-trajectory-stacked .rd-trajectory-stack{height:calc(62px + var(--v)*2px)}
.rd-trajectory-stacked .rd-trajectory-segment{min-height:22px;flex-shrink:1}
.rd-trajectory-stacked .rd-trajectory-item[style*="--v:2;"] .rd-trajectory-segment{min-height:0}
.rd-regulation aside > small{display:block;line-height:1.35;margin-top:8px}
@media(max-width:600px){
 .rd-trajectory-stacked .rd-trajectory-stack{height:calc(60px + var(--v)*1.7px)}
 .rd-trajectory-stacked .rd-trajectory-segment{min-height:20px}
}

/* v1.0.32 — Objectifs interactifs et agrandissement des visuels */
.rd-objective-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rd-objective-cards .rd-objective-card{appearance:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:22px;text-align:left;cursor:pointer;font:inherit;color:var(--tc-text);background:#fff;border:1px solid var(--tc-border);border-radius:var(--tc-radius);padding:30px 32px;box-shadow:0 8px 24px rgba(16,46,58,.045);transition:transform .2s,box-shadow .2s,border-color .2s}
.rd-objective-cards .rd-objective-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(16,46,58,.11);border-color:var(--tc-primary)}
.rd-objective-card:focus-visible,.rd-objective-close:focus-visible,.rd-objective-back:focus-visible{outline:3px solid var(--tc-secondary);outline-offset:3px}
.rd-objective-card-title{font-weight:750;line-height:1.28;font-size:clamp(1rem,1.45vw,1.3rem);color:var(--tc-primary)}
.rd-objective-more{font-size:.9rem;color:var(--tc-secondary);font-weight:650;text-decoration:underline;text-underline-offset:3px}
.rd-objective-illustration{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,70px);align-items:center;margin-top:34px}
.rd-objective-illustration .rd-repere-compact{background:#fff;border:1px solid var(--tc-border);border-radius:var(--tc-radius);box-shadow:0 8px 24px rgba(16,46,58,.08);padding:clamp(24px,3vw,38px)}
.rd-repere-compact .tc-eyebrow{margin:0 0 6px}.rd-repere-compact h3{margin:0 0 20px;color:var(--tc-primary)}.rd-repere-compact p:last-child{margin:0;line-height:1.6}
.rd-objective-illustration .rd-process-wide{margin:0;min-width:0}.rd-objective-illustration .rd-process-wide img{width:100%;height:auto;object-fit:contain}
.rd-image-zoom{margin-top:9px;text-align:center;font-size:.83rem;font-weight:650;color:var(--tc-primary);pointer-events:none}
.rd-image-zoom span{font-size:1.2em;margin-right:4px}.tc-lightbox{cursor:zoom-in}
.rd-objective-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--tc-primary) 50%,transparent);z-index:99997;opacity:0;transition:opacity .25s}.rd-objective-overlay.is-open{opacity:1}
.rd-objective-dialog{position:fixed;z-index:99998;right:0;top:0;bottom:0;width:min(620px,58vw);background:#fff;box-shadow:-15px 0 45px rgba(0,0,0,.13);overflow:hidden;transform:translateX(100%);transition:transform .28s ease}.rd-objective-dialog.is-open{transform:translateX(0)}
.rd-objective-close{position:absolute;z-index:2;right:24px;top:16px;border:0;background:transparent;color:var(--tc-primary);font-size:2.6rem;line-height:1;cursor:pointer;padding:8px}
.rd-objective-dialog-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:clamp(85px,10vh,150px) clamp(28px,5vw,80px) 48px}
.rd-objective-detail h2{font-size:clamp(1.5rem,2.2vw,2.1rem);line-height:1.25;color:var(--tc-primary);margin:0 0 28px}.rd-objective-detail p{line-height:1.7;margin:0 0 38px}
.rd-objective-back{background:var(--tc-primary);color:#fff;border:0;border-radius:100px;padding:12px 27px;font:inherit;font-weight:650;cursor:pointer}
@media(max-width:960px){.rd-objective-cards{grid-template-columns:1fr}.rd-objective-illustration{grid-template-columns:1fr}.rd-objective-dialog{width:100%;height:100dvh;top:0;bottom:auto;transform:translateY(100%)}.rd-objective-dialog.is-open{transform:translateY(0)}.rd-objective-dialog-scroll{padding:100px 26px 45px}.rd-objective-cards .rd-objective-card{padding:24px}}
@media(prefers-reduced-motion:reduce){.rd-objective-dialog,.rd-objective-overlay,.rd-objective-card{transition:none!important}}

/* v1.0.33 — SAF repère in its own white section */
.rd-saf-section{background:#fff}
.rd-saf-section .rd-objective-illustration{margin-top:0}

/* v1.0.34 — Surface de carte mutualisée pour le graphique et la note ReFuelEU.
   Cette classe est volontairement indépendante des variantes de fonds doux. */
.tc-surface-card {
  background: #fff;
  border: 1px solid var(--tc-border);
  border-radius: var(--tc-radius);
  box-shadow: 0 8px 24px rgba(16, 46, 58, .08);
  padding: clamp(24px, 3vw, 38px);
  box-sizing: border-box;
}
.rd-regulation aside.tc-surface-card,
.rd-regulation .rd-regulation-note.tc-surface-card {
  background: #fff;
  border: 1px solid var(--tc-border);
  border-radius: var(--tc-radius);
  box-shadow: 0 8px 24px rgba(16, 46, 58, .08);
  padding: clamp(24px, 3vw, 38px);
}

/* v1.0.36 — ajustements éditoriaux et composants mutualisés */
.rd-repere{border-top:0;border-left:5px solid #008F90}
.tc-section h2,.tc-page-hero h1{font-size:clamp(28px,2.5vw,38px);line-height:1.08;letter-spacing:-.035em;margin:0 0 26px}
.tc-page-hero h1{margin:0}
.rd-transparency-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:clamp(24px,4vw,60px);align-items:center}
.rd-transparency-card h2{margin-bottom:12px}
.rd-transparency-card p:last-child{margin-bottom:0}
.rd-transparency-links{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.rd-transparency-links .tc-btn{text-align:center;justify-content:center}
.rd-transparency-secondary{background:transparent;color:var(--tc-primary);border:1px solid var(--tc-border)}
/* Les schémas gagnent en largeur sans altérer la lightbox ni les cartes */
.rd-saf-section .rd-objective-illustration{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,3vw,44px)}
.rd-saf-section .rd-process-wide img,.rd-projects .rd-project-figure img{max-width:100%;width:100%;height:auto;object-fit:contain}
@media(max-width:960px){.rd-transparency-card{grid-template-columns:1fr}.rd-saf-section .rd-objective-illustration{grid-template-columns:1fr}}

/* Section REBOUND sans organigramme */
.rd-media-text--solo{display:block}
.rd-media-text--solo>div{max-width:900px}

/* v1.0.38 — double mise en avant de la transparence et composition de la concertation */
.rd-participation-transparency .rd-transparency-card,
.rd-exchange-section .rd-transparency-card {background:#fff;color:var(--tc-text)}
.rd-transparency-links .tc-btn.rd-transparency-secondary {
  background:#f0f8f7;
  color:var(--tc-primary);
  border:1px solid var(--tc-primary);
  box-shadow:none;
}
.rd-transparency-links .tc-btn.rd-transparency-secondary:hover,
.rd-transparency-links .tc-btn.rd-transparency-secondary:focus-visible {
  background:var(--tc-primary);
  color:#fff;
}
.rd-exchange-grid {align-items:stretch}
.rd-exchange-section .rd-exchange-main {height:100%}
.rd-exchange-side {display:flex;flex-direction:column;gap:24px;min-width:0}
.rd-exchange-section .rd-exchange-side > .tc-card-dark {height:auto;flex:none}
.rd-exchange-section .rd-transparency-card--compact {
  display:block;
  padding:clamp(22px,2.5vw,32px);
  flex:1;
}
.rd-transparency-card--compact .tc-eyebrow {font-size:11px;letter-spacing:.12em;margin:0 0 12px}
.rd-transparency-card--compact h2 {font-size:clamp(22px,1.8vw,29px);line-height:1.12;letter-spacing:-.03em;margin:0 0 14px}
.rd-transparency-card--compact p:not(.tc-eyebrow) {font-size:15px;line-height:1.5;margin:0 0 18px}
.rd-transparency-card--compact .rd-transparency-links {gap:10px}
.rd-transparency-card--compact .rd-transparency-links .tc-btn {font-size:14px;padding:12px 14px}
@media(max-width:960px) {
  .rd-exchange-grid {grid-template-columns:1fr}
  .rd-exchange-section .rd-exchange-main {height:auto}
  .rd-exchange-side {gap:20px}
}

/* v1.0.39 — lisibilité de la carte blanche sur fond dégradé */
.tc-section-gradient .rd-transparency-card h2 {
  color: var(--tc-primary);
}
.rd-transparency-links .tc-btn.rd-transparency-secondary {
  background: var(--tc-primary);
  color: #fff;
  border: 1px solid var(--tc-primary);
  box-shadow: none;
}
.rd-transparency-links .tc-btn.rd-transparency-secondary:hover,
.rd-transparency-links .tc-btn.rd-transparency-secondary:focus-visible {
  background: var(--tc-dark);
  color: #fff;
  border-color: var(--tc-dark);
}
.rd-transparency-links .tc-btn span[aria-hidden="true"] {
  margin-left: 20px;
  display: inline-block;
}


/* v1.0.40 — panneau latéral générique réutilisable (2CONCERT Drawer). */
.tc-drawer-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--tc-primary) 50%,transparent);z-index:99999;opacity:0;transition:opacity .25s}
.tc-drawer-overlay.is-open{opacity:1}
.tc-drawer{position:fixed;z-index:100000;right:0;top:0;bottom:0;width:min(620px,58vw);background:#fff;color:var(--tc-text);box-shadow:-15px 0 45px rgba(0,0,0,.13);overflow:hidden;transform:translateX(100%);transition:transform .28s ease}
.tc-drawer.is-open{transform:translateX(0)}
.tc-drawer-close{position:absolute;z-index:2;right:24px;top:16px;border:0;background:transparent;color:var(--tc-primary);font-size:2.6rem;line-height:1;cursor:pointer;padding:8px}
.tc-drawer-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:clamp(85px,10vh,150px) clamp(28px,5vw,80px) 48px;box-sizing:border-box}
.tc-drawer #tc-drawer-title{font-size:clamp(1.5rem,2.2vw,2.1rem);line-height:1.25;color:var(--tc-primary);margin:0 0 28px}
.tc-drawer-content{line-height:1.7;overflow-wrap:anywhere}.tc-drawer-content p{margin:0 0 1.2em}
.tc-drawer-back{background:var(--tc-primary);color:#fff;border:0;border-radius:100px;padding:12px 27px;font:inherit;font-weight:650;cursor:pointer;margin-top:30px}
.tc-drawer-close:focus-visible,.tc-drawer-back:focus-visible{outline:3px solid var(--tc-secondary);outline-offset:3px}
@media(max-width:960px){.tc-drawer{width:100%;height:100dvh;top:0;bottom:auto;transform:translateY(100%)}.tc-drawer.is-open{transform:translateY(0)}.tc-drawer-scroll{padding:100px 26px 45px}}
@media(prefers-reduced-motion:reduce){.tc-drawer,.tc-drawer-overlay{transition:none!important}}

/* v1.0.41 — priorité aux boutons de la carte, y compris au survol dans un dégradé. */
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:hover,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:focus-visible {
  background: var(--tc-primary);
  color: #fff;
  border-color: var(--tc-primary);
  box-shadow: none;
}
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:hover,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:focus-visible {
  background: var(--tc-dark);
  border-color: var(--tc-dark);
  color: #fff;
}
/* Respecter l'attribut hidden même lorsque display est défini ailleurs. */
.tc-drawer[hidden], .tc-drawer-overlay[hidden] { display: none !important; }

/* v1.0.42 — panneau universel : lecture confortable, documents longs et tableaux. */
.tc-drawer { width: min(1100px, 68vw); max-width: 100vw; }
.tc-drawer-scroll { padding: 72px clamp(30px, 4vw, 72px) 50px; }
.tc-drawer #tc-drawer-title { font-size: clamp(23px, 2vw, 30px); line-height: 1.2; margin: 0 42px 24px 0; }
.tc-drawer-content { font-size: 16px; line-height: 1.6; overflow-wrap: break-word; }
.tc-drawer-content h1 { font-size: clamp(24px, 2.1vw, 32px); line-height: 1.22; letter-spacing: -.025em; margin: 0 0 22px; color: var(--tc-text); }
.tc-drawer-content h2 { font-size: clamp(21px, 1.8vw, 27px); line-height: 1.25; margin: 32px 0 14px; }
.tc-drawer-content h3 { font-size: clamp(18px, 1.5vw, 22px); line-height: 1.3; margin: 26px 0 12px; }
.tc-drawer-content p, .tc-drawer-content li { font-size: 1em; line-height: 1.65; }
.tc-drawer-content .tc-drawer-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 22px 0; }
.tc-drawer-content table { width: 100%; min-width: 650px; border-collapse: collapse; table-layout: auto; font-size: 14px; line-height: 1.5; }
.tc-drawer-content th, .tc-drawer-content td { vertical-align: top; padding: 12px 14px; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.tc-drawer-content th { line-height: 1.35; }
@media (max-width: 1199px) and (min-width: 961px) { .tc-drawer { width: 78vw; } }
@media (max-width: 960px) {
  .tc-drawer { width: 100%; height: 100dvh; }
  .tc-drawer-scroll { padding: 82px 22px 36px; }
  .tc-drawer-content { font-size: 15px; }
  .tc-drawer-content table { min-width: 650px; }
}
/* Même couleur dans tous les états du bouton secondaire, y compris sur fond dégradé. */
.rd-transparency-links a.tc-btn.rd-transparency-secondary,
.rd-transparency-links a.tc-btn.rd-transparency-secondary:hover,
.rd-transparency-links a.tc-btn.rd-transparency-secondary:focus-visible,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:hover,
.tc-section-gradient .rd-transparency-links a.tc-btn.rd-transparency-secondary:focus-visible {
  background: var(--tc-primary) !important;
  background-color: var(--tc-primary) !important;
  color: #fff !important;
  border: 1px solid var(--tc-primary) !important;
  box-shadow: none !important;
  filter: none !important;
}

/* v1.0.43 — ajustement de la bannière de rendez-vous sur mobile. */
@media (max-width: 640px) {
  .tc-next-event .tc-next-event-inner {
    width: max-content;
    max-width: 100%;
    justify-content: space-between;
    text-align: center;
  }
  .tc-next-event-copy strong {
    font-size: 11px;
    max-width: 100%;
  }
}

/* v1.0.45 — légende agrandissement incluse dans le lien lightbox */
.tc-lightbox .rd-image-zoom { pointer-events: none; cursor: zoom-in; }
.tc-lightbox:focus-visible .rd-image-zoom { text-decoration: underline; }
