/* Thème : styles communs et composants. */
/* Base : palette, typographie et éléments communs. */
:root {
    --nuit:#1b1b19;
    --creme:#f1ece2;
    --blanc:#fffcf6;
    --gris:#625e57;
    --filet:#d9d1c2;
    --horizon:#8fa7bd;
    --horizon-f:#3e5a74;
    --kaki:#6e6a3c;
    --garance:#c0392b;
    --gros:'Barlow Condensed',sans-serif;
    --texte:'Barlow',sans-serif;
    --lecture:'Source Serif 4',serif;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--creme);
    color:var(--nuit);
    font:17px/1.6 var(--texte);
}
img {
    max-width:100%;
    height:auto;
    display:block;
}
a {
    color:inherit;
}
a:hover {
    color:var(--garance);
}
:focus-visible {
    outline:3px solid #bd551e;
    outline-offset:3px;
}
.wrap {
    width:min(1360px,calc(100% - 40px));
    margin-inline:auto;
}
.skip-link {
    position:absolute;
    left:-9999px;
    top:1rem;
    background:white;
    padding:12px;
    z-index:100;
}
.skip-link:focus {
    left:12px;
}
/* En-tête et navigation. */
.site-header {
    position:absolute;
    z-index:5;
    top:0;
    left:0;
    width:100%;
    color:#fff;
}
.site-header::before {
    content:"";
    position:absolute;
    inset:0 0 auto;
    height:150px;
    background:linear-gradient(180deg,rgba(10,12,14,.62),rgba(10,12,14,0));
    pointer-events:none;
}
.head-row { position:relative; }
.head-row {
    min-height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.brand {
    font-size:18px;
    font-weight:700;
    text-decoration:none;
}
.custom-logo-link img {
    max-height:58px;
    width:auto;
}
.main-nav,.main-nav .menu {
    display:flex;
    align-items:center;
    gap:clamp(12px,2vw,32px);
}
.main-nav ul {
    list-style:none;
    padding:0;
    margin:0;
}
.main-nav a {
    text-decoration:none;
    font-weight:600;
}
.contact-button,.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:11px 22px;
    background:var(--garance);
    color:#fff!important;
    text-decoration:none;
    font-weight:700;
}
.menu-toggle {
    display:none;
}
/* Accueil et grands bandeaux. */
.hero {
    min-height:min(800px,94vh);
    background:var(--nuit);
    color:#fff;
    position:relative;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
}
.hero:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(15,17,18,.78),rgba(15,17,18,.18)),linear-gradient(0deg,rgba(15,17,18,.7),transparent 70%);
}
.hero-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.hero-content {
    position:relative;
    z-index:1;
    padding:155px 0 65px;
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:.2em;
    font-size:12px;
    font-weight:700;
    margin:0 0 14px;
    color:var(--garance);
}
.hero .eyebrow {
    color:#f2d7a0;
}
.hero h1,.listing-head h1,.page-title h1,.single-head h1 {
    font:800 clamp(64px,12vw,174px)/.82 var(--gros);
    text-transform:uppercase;
    letter-spacing:-.02em;
    max-width:1050px;
    margin:0 0 40px;
}
.hero-lower {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    align-items:end;
}
.hero-lower>p {
    max-width:600px;
    font-size:19px;
    margin:0;
}
.hero-lower>div {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}
.button.light {
    background:transparent;
    border:1px solid #fff;
}
.ticker {
    overflow:hidden;
    background:var(--garance);
    color:white;
    font-weight:700;
    text-transform:uppercase;
    white-space:nowrap;
    padding:12px 0;
}
.ticker div {
    width:max-content;
    animation:marquee 38s linear infinite;
}
@keyframes marquee {
    to {
        transform: translateX(-50%);
    }
}
/* Sections et cartes. */
.approach,.section {
    padding:90px 0;
}
.approach {
    background:var(--blanc);
}
.approach h2,.section h2,.invite h2,.members-cta h2 {
    font:800 clamp(48px,8vw,100px)/.9 var(--gros);
    text-transform:uppercase;
    margin:0 0 42px;
}
.steps {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:34px;
}
.steps article {
    border-top:1px solid var(--filet);
    padding-top:20px;
}
.steps b {
    font:700 34px var(--gros);
    color:var(--garance);
}
.steps h3 {
    font-size:25px;
    margin:10px 0;
}
.steps p {
    max-width:420px;
    margin:0;
    color:var(--gris);
}
.section-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    margin-bottom:28px;
}
.section-heading h2 {
    margin-bottom:0;
}
.card-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.card {
    background:var(--blanc);
    min-width:0;
}
.card-media {
    height:280px;
    background:var(--horizon-f);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    text-decoration:none;
    color:#fff;
}
.card-media img {
    width:100%;
    height:100%;
    object-fit:cover;
}
.card-media span {
    font:900 82px var(--gros);
    opacity:.65;
}
.card-body {
    padding:22px;
}
.card-body h2 {
    font:800 33px/.96 var(--gros);
    text-transform:uppercase;
    margin:8px 0;
}
.card-body h2 a {
    text-decoration:none;
}
.card-body p:last-child {
    margin-bottom:0;
}
.card-body .eyebrow {
    font-size:11px;
}
.invite {
    background:var(--nuit);
    color:white;
    padding:90px 0;
}
.invite-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8vw;
    align-items:center;
}
.invite h2 {
    max-width:700px;
}
.invite-grid>div>p:not(.eyebrow) {
    font:21px/1.5 var(--lecture);
    max-width:600px;
    margin-bottom:28px;
}
.invite ul {
    list-style:none;
    padding:0;
    margin:0;
}
.invite li {
    padding:20px 0;
    border-top:1px solid #57564f;
    display:grid;
    gap:5px;
}
.invite li b {
    font-size:20px;
}
.invite li span {
    color:#cbc5b8;
}
.members-cta {
    background:var(--horizon-f);
    color:white;
}
.members-cta .eyebrow {
    color:#f2d7a0;
}
.members-cta a {
    font-weight:700;
}
/* Pages, archives et contenu éditorial. */
.listing-head {
    padding:170px 0 70px;
    background:var(--nuit);
    color:white;
}
.listing-head h1,.page-title h1,.single-head h1 {
    font-size:clamp(56px,9vw,120px);
    margin-bottom:15px;
}
.pagination {
    margin-top:48px;
}
.pagination .nav-links {
    display:flex;
    gap:12px;
    justify-content:center;
}
.pagination a,.pagination span {
    padding:12px 16px;
    background:var(--blanc);
}
.page-banner {
    height:240px;
    background:var(--horizon-f);
}
.page-cover,.single-cover {
    width:100%;
    max-height:680px;
    object-fit:cover;
}
.page-title {
    padding:50px 0 32px;
}
.page-title h1 {
    margin:0;
}
/* Mise en forme générale des blocs WordPress. */
.prose {
    font:20px/1.75 var(--lecture);
    max-width:760px;
    margin-inline:auto;
}
.prose h2,.prose h3,.prose h4 {
    font-family:var(--gros);
    line-height:1;
    text-transform:uppercase;
}
.prose h2 {
    font-size:42px;
    margin-top:1.8em;
}
.prose h3 {
    font-size:30px;
}
.prose p {
    margin:0 0 1.3em;
}
.tdp-contact-page { padding-bottom:48px; }
.tdp-contact-form { margin:24px 0 32px; }
.tdp-contact-form p { margin:0 0 20px; }
.tdp-contact-form label { display:block; margin-bottom:7px; font:700 18px/1.3 var(--texte); }
.tdp-contact-form input:not([type="hidden"]),.tdp-contact-form select,.tdp-contact-form textarea {
    display:block; width:100%; min-height:48px; padding:10px 12px; border:1px solid #777167; border-radius:2px;
    background:var(--blanc); color:var(--nuit); font:17px/1.5 var(--texte);
}
.tdp-contact-form textarea { min-height:170px; resize:vertical; }
.tdp-contact-form input:focus-visible,.tdp-contact-form select:focus-visible,.tdp-contact-form textarea:focus-visible { outline:3px solid #bd551e; outline-offset:2px; }
.tdp-contact-form .tdp-trap { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.tdp-contact-form .tdp-captcha input { max-width:260px; }
.tdp-contact-form [hidden] { display:none; }
.tdp-contact-form .button { border:0; cursor:pointer; font:700 17px/1.3 var(--texte); }
.tdp-contact-notice { padding:14px 18px; border-left:5px solid var(--horizon-f); background:var(--blanc); font:17px/1.5 var(--texte); }
.tdp-contact-notice.error { border-color:var(--garance); }
.tdp-contact-privacy { margin-top:28px!important; padding-top:18px; border-top:1px solid var(--filet); color:var(--gris); font:15px/1.6 var(--texte); }
.tdp-contact-email { font:17px/1.6 var(--texte); }
.prose a {
    color:var(--horizon-f);
}
.prose img {
    height:auto;
}
.prose figure {
    margin:2em 0;
}
.prose figcaption {
    font:15px/1.5 var(--texte);
    color:var(--gris);
    padding:8px 0;
}
.prose .alignwide {
    max-width:min(1100px,calc(100vw - 40px));
    width:min(1100px,calc(100vw - 40px));
    margin-left:50%;
    transform:translateX(-50%);
}
.prose .alignfull {
    max-width:100vw;
    width:100vw;
    margin-left:50%;
    transform:translateX(-50%);
}
.prose .wp-block-gallery {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:12px;
}
.prose .wp-block-gallery figure {
    margin:0;
}
.prose .wp-block-columns {
    gap:28px;
}
.single-head {
    max-width:850px;
    margin:55px auto 40px;
}
.single-head h1 {
    font-size:clamp(54px,8vw,112px);
}
.single-head .standfirst {
    font:25px/1.45 var(--lecture);
    max-width:740px;
}
.meta,.breadcrumbs {
    font-size:14px;
    color:var(--gris);
}
.breadcrumbs {
    padding-top:24px;
}
.article-layout {
    display:grid;
    grid-template-columns:minmax(0,760px) 240px;
    gap:70px;
    justify-content:center;
}
.toc {
    position:sticky;
    top:25px;
    font-size:15px;
}
.toc h2 {
    font:700 21px var(--texte);
}
.toc ol {
    padding-left:20px;
}
.toc li {
    margin:9px 0;
}
.related {
    padding:70px 0;
}
.related>h2 {
    font:800 40px var(--gros);
    text-transform:uppercase;
}
.related .card-grid {
    grid-template-columns:repeat(3,1fr);
}
.post-navigation {
    display:flex;
    justify-content:space-between;
    padding:25px 0;
    border-top:1px solid var(--filet);
}
.comments {
    padding:35px 0;
}
.site-footer {
    background:var(--nuit);
    color:var(--creme);
    padding:60px 0 100px;
}
.footer-title {
    display:block;
    font:800 clamp(44px,8vw,100px)/.9 var(--gros);
    text-transform:uppercase;
    text-decoration:none;
    margin-bottom:35px;
}
.site-footer .menu {
    display:flex;
    flex-wrap:wrap;
    gap:16px 26px;
    padding:0;
    list-style:none;
}
.site-footer p {
    color:#aaa;
}
.mobile-tabs {
    display:none;
}
.search-form {
    display:flex;
    gap:8px;
    margin:20px 0;
}
.search-form input {
    min-height:48px;
    padding:10px;
    border:1px solid var(--filet);
    font:inherit;
}
.search-form button {
    min-height:48px;
    padding:0 18px;
    border:0;
    background:var(--garance);
    color:white;
    font:700 16px var(--texte);
}
.screen-reader-text {
    position:absolute;
    left:-9999px;
}
.post-navigation a {
    min-height:44px;
}
.wp-block-image img,.wp-block-cover {
    border-radius:0;
}
.wp-block-table {
    overflow-x:auto;
}
.wp-block-button__link {
    background:var(--garance);
    color:white;
}
.wp-block-quote {
    border-left:4px solid var(--garance);
    padding-left:22px;
    font-style:italic;
}
.wp-block-separator {
    border-color:var(--filet);
}
/* Adaptations tablette et téléphone. */
@media(max-width:800px) {
    body {
        font-size:16px;
        padding-bottom:65px;
    }
    .wrap {
        width:calc(100% - 32px);
    }
    .head-row {
        min-height:72px;
    }
    .menu-toggle {
        display:block;
        min-height:44px;
        background:var(--garance);
        color:white;
        border:0;
        padding:0 14px;
        font:700 16px var(--texte);
    }
    .main-nav {
        display:none;
        position:absolute;
        top:72px;
        left:0;
        right:0;
        background:var(--nuit);
        padding:20px 16px 24px;
        align-items:stretch;
    }
    .main-nav.is-open {
        display:flex;
        flex-direction:column;
    }
    .main-nav .menu {
        display:flex;
        flex-direction:column;
        align-items:stretch;
    }
    .hero {
        min-height:740px;
        min-height:92svh;
    }
    .hero-content {
        padding:120px 0 42px;
    }
    .hero h1 {
        font-size:clamp(62px,17vw,115px);
        margin-bottom:28px;
    }
    .hero-lower {
        grid-template-columns:1fr;
        gap:24px;
    }
    .hero-lower>p {
        font-size:17px;
    }
    .hero-lower>div {
        display:grid;
    }
    .button {
        width:100%;
    }
    .approach,.section,.invite {
        padding:60px 0;
    }
    .approach h2,.section h2,.invite h2,.members-cta h2 {
        font-size:58px;
        margin-bottom:28px;
    }
    .steps,.invite-grid {
        grid-template-columns:1fr;
        gap:24px;
    }
    .steps article {
        padding:15px 0;
    }
    .section-heading {
        align-items:start;
        gap:12px;
        flex-direction:column;
    }
    .card-grid {
        grid-template-columns:1fr 1fr;
        gap:12px;
    }
    .card-media {
        height:190px;
    }
    .card-body {
        padding:15px;
    }
    .card-body h2 {
        font-size:25px;
    }
    .listing-head {
        padding:130px 0 48px;
    }
    .listing-head h1,.page-title h1,.single-head h1 {
        font-size:clamp(50px,14vw,86px);
    }
    .page-banner {
        height:150px;
    }
    .page-title {
        padding:35px 0 20px;
    }
    .prose {
        font-size:18px;
    }
    .prose h2 {
        font-size:34px;
    }
    .prose .alignwide,.prose .alignfull {
        max-width:calc(100vw - 32px);
        width:calc(100vw - 32px);
    }
    .prose .wp-block-columns {
        display:block;
    }
    .prose .wp-block-columns>.wp-block-column {
        margin-bottom:24px;
    }
    .single-head {
        margin:32px auto;
    }
    .single-head .standfirst {
        font-size:21px;
    }
    .article-layout {
        display:flex;
        flex-direction:column;
        gap:25px;
    }
    .article-layout aside {
        order:-1;
    }
    .toc {
        position:static;
        background:var(--blanc);
        padding:18px;
    }
    .related .card-grid {
        grid-template-columns:1fr;
    }
    .mobile-tabs {
        position:fixed;
        z-index:10;
        bottom:0;
        left:0;
        right:0;
        background:var(--nuit);
        color:white;
        display:flex;
        justify-content:space-around;
        padding:5px 4px max(5px,env(safe-area-inset-bottom));
        min-height:60px;
    }
    .mobile-tabs a {
        min-width:44px;
        min-height:48px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        text-decoration:none;
        font-size:12px;
    }
    .mobile-tabs .menu {
        display:contents;
        list-style:none;
    }
    .mobile-tabs .menu-item a {
        font-size:11px;
    }
    .site-footer {
        padding-bottom:30px;
    }
    .footer-title {
        font-size:54px;
    }
    .post-navigation {
        gap:16px;
    }
    .post-navigation a {
        max-width:48%;
    }
}
@media(max-width:440px) {
    .card-grid {
        grid-template-columns:1fr;
    }
    .card-media {
        height:220px;
    }
    .hero {
        min-height:820px;
        min-height:95svh;
    }
    .hero h1 {
        font-size:64px;
    }
    .mobile-tabs .menu-item a {
        font-size:10px;
    }
    .wp-block-gallery {
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media(prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        scroll-behavior:auto!important;
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
    }
}
/* Ajustements ciblés des pages existantes. */
/* Ajustements des titres et contenus issus des articles. */
h1 {
    overflow-wrap:break-word;
    hyphens:auto;
}
.single-head {
    max-width:1100px;
}
.single-head h1 {
    font-size:clamp(2.2rem,5vw,4.5rem);
    line-height:.92;
}
.page-banner {
    height:auto;
    min-height:300px;
    padding:150px 0 48px;
    display:flex;
    align-items:flex-end;
    color:#fff;
}
.page-banner .wrap {
    width:min(1360px,calc(100% - 40px));
}
.page-banner .eyebrow {
    color:#f2d7a0;
}
.page-banner h1 {
    font-size:clamp(2.6rem,7vw,6rem);
    margin:0 0 12px;
}
.page-banner .standfirst {
    font:22px/1.45 var(--lecture);
    max-width:760px;
    margin:0;
}
body.page-slug-nos-membres .page-content {
    max-width:1100px;
}
body.page-slug-nos-membres .page-content>.wp-block-gallery {
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
}
body.page-slug-nos-membres .page-content>figure.wp-block-image {
    display:inline-block;
    vertical-align:top;
    width:calc(20% - 12px);
    margin:8px 12px 14px 0;
}
body.page-slug-nos-membres .page-content figure figcaption {
    font-size:13px;
    line-height:1.35;
    padding:5px 0;
}
body.page-slug-nos-membres .page-content .wp-block-gallery figure {
    min-width:0;
}
@media(max-width:800px) {
    .single-head h1 {
        font-size:clamp(2.2rem,8vw,3.2rem);
    }
    .page-banner {
        min-height:210px;
        padding:110px 0 34px;
    }
    .page-banner .wrap {
        width:calc(100% - 32px);
    }
    body.page-slug-nos-membres .page-content>.wp-block-gallery {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    body.page-slug-nos-membres .page-content>figure.wp-block-image {
        width:calc(50% - 12px);
    }
}
/* Ajustements des portraits. */
/* Grille des portraits de la page membres. */
body.page-slug-nos-membres .page-content {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
    max-width:1100px;
}
body.page-slug-nos-membres .page-content>.wp-block-columns {
    display:contents;
}
body.page-slug-nos-membres .page-content>.wp-block-columns>.wp-block-column {
    display:contents;
}
body.page-slug-nos-membres .page-content figure.wp-block-image {
    min-width:0;
    width:auto;
    margin:0;
}
body.page-slug-nos-membres .page-content figure.wp-block-image img {
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
}
body.page-slug-nos-membres .page-content figure.wp-block-image figcaption {
    font-size:13px;
    line-height:1.35;
    padding:5px 0;
    margin:0;
}
@media(min-width:1100px) {
    body.page-slug-nos-membres .page-content {
        grid-template-columns:repeat(5,minmax(0,1fr));
    }
}
@media(max-width:799px) {
    body.page-slug-nos-membres .page-content {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:20px;
    }
}
.mobile-tabs svg {
    width:22px;
    height:22px;
    flex:none;
    color:currentColor;
}
/* Ajustements de la page des membres. */
/* Éléments hors portraits sur la page membres. */
body.page-slug-nos-membres .page-content>:not(.wp-block-columns) {
    grid-column:1/-1;
}
body.page-slug-nos-membres .page-content {
    margin-inline:auto;
}

/* Page article : grille, lecture, médias et outils. */
.article-progress { position: fixed; z-index: 30; inset: 0 0 auto; height: 3px; pointer-events: none; }
.article-progress span { display: block; width: 0; height: 100%; background: var(--garance); transform-origin: left; }
.article-shell { width: min(1400px, calc(100% - 48px)); }
.single-cover { width: 100%; max-height: none; object-fit: contain; }
.single-head { width: min(800px, 100%); max-width: none; margin: 54px auto 38px; }
.single-head h1 { font-size: clamp(2.5rem, 5.2vw, 4.7rem); line-height: .98; }
.article-essential { margin-top: 28px; padding: 20px 24px; border-left: 4px solid var(--garance); background: var(--blanc); font: 20px/1.55 var(--lecture); }
.article-essential p { margin: 0; }
.article-essential .essential-label { margin-bottom: 6px; color: var(--garance); font: 700 12px/1.4 var(--texte); letter-spacing: .12em; text-transform: uppercase; }
.article-grid { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 800px) minmax(0, 240px); column-gap: 40px; align-items: start; justify-content: center; }
.article-content { width: 100%; max-width: 800px; margin: 0 auto; font: 20px/1.7 var(--lecture); }
.article-content h2, .article-content h3, .article-content h4 { scroll-margin-top: 24px; }
.article-content h2 { font-size: 42px; }
.article-content h3 { font-size: 32px; }
.article-content > :first-child { margin-top: 0; }
.article-content img { display: block; width: auto; max-width: min(1400px, calc(100vw - 48px)); height: auto; object-fit: contain; margin-inline: auto; }
.article-content figure,
.article-content .wp-block-image figure,
.article-content figure.aligncenter,
.article-content .wp-block-gallery,
.article-content .wp-block-columns,
.article-content .alignwide,
.article-content .alignfull {
    width: min(1400px, calc(100vw - 48px));
    max-width: none;
    display: block;
    margin: 2.2em calc(50% - min(700px, 50vw - 24px));
}
.article-content p:has(> img:only-child) {
    width: min(1400px, calc(100vw - 48px));
    max-width: none;
    display: block;
    margin: 2.2em calc(50% - min(700px, 50vw - 24px));
}
/* Le cadre div.wp-block-image ne doit pas ajouter de marge autour de la figure élargie. */
.article-content div.wp-block-image { margin: 0; }
.article-content figure img,
.article-content .wp-block-image figure img,
.article-content figure.aligncenter img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-inline: auto;
}
/* WordPress met les légendes en « table-caption » : les remettre en bloc sous l'image. */
.article-content figure figcaption,
.article-content .wp-block-image figcaption,
.article-content .wp-block-image .aligncenter > figcaption {
    display: block;
    caption-side: initial;
    width: min(800px, 100%);
    margin: 10px auto 0;
    text-align: center;
}
/* Images dans des colonnes : c'est la rangée de colonnes qui s'élargit, pas chaque image. */
.article-content .wp-block-columns figure,
.article-content .wp-block-columns .wp-block-image figure,
.article-content .wp-block-columns figure.aligncenter {
    width: auto;
    max-width: 100%;
    margin: 0 0 1em;
}
/* Rangées de colonnes (styles de WordPress non chargés par le thème) : côte à côte, empilées sur téléphone. */
.article-content .wp-block-columns {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}
.article-content .wp-block-column {
    flex: 1 1 0;
    min-width: 0;
}
@media (max-width: 781px) {
    .article-content .wp-block-columns { flex-direction: column; }
}
/* Les débords calculés sur 100vw ne doivent jamais créer de défilement horizontal. */
.article-shell { overflow-x: clip; }
.article-content figure img { max-width: 100%; }
.article-content figcaption { width: min(800px, 100%); margin-inline: auto; text-align: center; }
.article-content .alignwide img, .article-content .alignfull img { max-width: 100%; }
.article-content .wp-block-gallery { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 20px; }
.article-content .wp-block-gallery figure { width: auto; max-width: 100%; margin: 0; }
.article-content .wp-block-gallery img { max-width: 100%; }
.article-rail { min-width: 0; }
.article-rail-left { grid-column: 1; grid-row: 1; }
.article-rail-right { grid-column: 3; grid-row: 1; }
.toc, .article-facts { position: static; max-height: calc(100vh - 48px); overflow-y: auto; padding: 18px 16px; background: var(--blanc); font-size: 14px; }
.has-article-observers .toc, .has-article-observers .article-facts { position: sticky; top: 24px; transition: opacity .25s ease; }
.toc.is-obscured, .article-facts.is-obscured { opacity: 0; pointer-events: none; }
.toc h2, .article-facts h2 { margin: 0 0 12px; font: 700 17px/1.3 var(--texte); }
.toc ol { margin: 0; padding-left: 20px; }
.toc li { margin: 8px 0; }
.toc li.toc-level-3, .toc li.toc-level-4 { margin-left: 10px; font-size: 13px; }
.toc a, .article-facts a { text-underline-offset: 3px; }
.article-facts p { margin: 0 0 12px; line-height: 1.45; }
.article-facts .fact-links { overflow-wrap: anywhere; }
.article-actions { display: grid; gap: 8px; margin-top: 16px; }
.article-action { min-height: 42px; padding: 8px 10px; border: 1px solid var(--nuit); background: transparent; color: var(--nuit); font: 600 14px var(--texte); cursor: pointer; text-align: left; }
.article-action:hover { background: var(--nuit); color: white; }
.copy-status { min-height: 1.4em; color: var(--horizon-f); font-weight: 700; }
.heading-anchor { display: inline-block; margin-left: .45em; color: var(--horizon-f); font: 600 .65em/1 var(--texte); text-decoration: none; opacity: 0; transition: opacity .15s ease; vertical-align: .15em; }
.article-content h2:hover .heading-anchor, .article-content h3:hover .heading-anchor, .article-content h4:hover .heading-anchor, .heading-anchor:focus-visible { opacity: 1; }
.article-tools-mobile { display: none; }
.association-note { margin: 56px auto 24px; padding: 22px 24px; max-width: 900px; background: var(--blanc); }
.association-note h2 { margin: 0 0 8px; font: 700 22px var(--gros); text-transform: uppercase; }
.association-note p { margin: 0; }
.article-breadcrumbs-bottom { padding: 18px 0; border-top: 1px solid var(--filet); }
.related { padding: 46px 0; }
.related .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.post-navigation { gap: 20px; }
.post-navigation > span { max-width: 48%; }
.post-nav-next { margin-left: auto; text-align: right; }

/* Tablette et téléphone : outils dans un bloc repliable, contenu pleine largeur. */
@media (min-width: 801px) and (max-width: 1199px) {
    .article-shell { width: calc(100% - 48px); }
    .article-grid { display: block; }
    .article-rail { display: none; }
    .article-tools-mobile { display: block; max-width: 800px; margin: 0 auto 28px; }
    .article-tools-mobile details { background: var(--blanc); }
    .article-tools-mobile summary { padding: 16px 20px; font-weight: 700; cursor: pointer; }
    .article-tools-mobile-content { padding: 0 20px 20px; }
    .article-tools-mobile .toc, .article-tools-mobile .article-facts { position: static; max-height: none; overflow: visible; padding: 16px 0; background: transparent; border-top: 1px solid var(--filet); }
    .article-content { max-width: 800px; }
    .article-content figure, .article-content .alignwide, .article-content .alignfull, .article-content .wp-block-gallery { max-width: calc(100vw - 48px); }
}

@media (max-width: 800px) {
    .article-shell { width: calc(100% - 32px); }
    .single-head { margin: 32px auto 24px; }
    .single-head h1 { font-size: clamp(2.35rem, 10vw, 3.35rem); }
    .article-essential { padding: 16px 18px; font-size: 18px; }
    .article-grid { display: block; }
    .article-rail { display: none; }
    .article-tools-mobile { display: block; margin: 0 0 24px; }
    .article-tools-mobile details { background: var(--blanc); }
    .article-tools-mobile summary { min-height: 52px; padding: 14px 16px; font-weight: 700; cursor: pointer; }
    .article-tools-mobile-content { padding: 0 16px 16px; }
    .article-tools-mobile .toc, .article-tools-mobile .article-facts { position: static; max-height: none; overflow: visible; padding: 16px 0; background: transparent; border-top: 1px solid var(--filet); }
    .article-content { max-width: none; font-size: 18px; line-height: 1.7; }
    .article-content h2 { font-size: 34px; }
    .article-content figure, .article-content .alignwide, .article-content .wp-block-gallery, .article-content .alignfull { max-width: calc(100vw - 32px); }
    .article-content figcaption { padding-inline: 12px; }
    .heading-anchor { opacity: 1; }
    .related .card-grid { grid-template-columns: 1fr; }
    .association-note { margin-top: 36px; }
}

@media (prefers-reduced-motion: reduce) {
    .has-article-observers .toc, .has-article-observers .article-facts, .heading-anchor { transition: none; }
}

/* Téléphone : les photos de l'article prennent toute la largeur (sauf tailles fixées dans l'éditeur). */
@media (max-width: 800px) {
    .article-content figure,
    .article-content .wp-block-image figure,
    .article-content figure.aligncenter {
        width: 100%;
        margin-inline: 0;
    }
    .article-content figure img { width: 100%; }
}

/* Audit : article sans image, contraste, focus, bandeau, défilement. */
.tdp-sans-couverture .site-header { position:relative; background:var(--nuit); }
.members-cta :focus-visible, .page-banner :focus-visible, .hero :focus-visible, .listing-head :focus-visible, .invite :focus-visible, .site-header :focus-visible, .site-footer :focus-visible, .mobile-tabs :focus-visible { outline-color:#fff; }
.ticker:hover div { animation-play-state:paused; }
.page-entry, .articles-intro { overflow-x:clip; }
.mobile-tabs a, .mobile-tabs .menu-item a { font-size:12px; }
.article-action { min-height:44px; }
.menu-toggle[hidden] { display:none !important; }

/* Logo à côté du nom du site (sans lien imbriqué). */
.brand { display:inline-flex; align-items:center; gap:12px; }
.brand-logo { height:48px; width:auto; }

/* Pages Articles et Contact : photo en fond de l'en-tête, titre posé dessus. */
.listing-head.has-cover,.page-banner.has-cover { position:relative; overflow:hidden; min-height:min(560px,70vh); display:flex; align-items:flex-end; }
.listing-head.has-cover:after,.page-banner.has-cover:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,17,18,.75),rgba(15,17,18,.2)),linear-gradient(0deg,rgba(15,17,18,.7),transparent 70%); }
.listing-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.listing-head.has-cover .wrap,.page-banner.has-cover .wrap { position:relative; z-index:1; }
.listing-head.has-cover .eyebrow { color:#f2d7a0; }

/* Bandeau de cookies (inc/consentement.php). */
.tdp-cookies { position:fixed; z-index:20; left:16px; right:16px; bottom:16px; max-width:760px; margin:0 auto; background:var(--blanc); color:var(--nuit); border:1px solid var(--filet); box-shadow:0 6px 30px rgba(0,0,0,.25); padding:18px 20px; display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center; }
.tdp-cookies[hidden] { display:none; }
.tdp-cookies__texte { flex:1 1 380px; }
.tdp-cookies h2 { font:700 20px/1.2 var(--gros); text-transform:uppercase; margin:0 0 6px; }
.tdp-cookies p { margin:0; font-size:15px; line-height:1.5; }
.tdp-cookies__choix { display:flex; gap:10px; flex:0 0 auto; }
.tdp-cookies .button { border:0; cursor:pointer; font:700 16px/1.3 var(--texte); min-width:120px; }
.tdp-cookies-lien { background:none; border:0; padding:0; color:inherit; font:inherit; text-decoration:underline; cursor:pointer; }
.tdp-cookies-lien[hidden] { display:none; }
@media(max-width:800px) {
    .tdp-cookies { left:8px; right:8px; bottom:calc(68px + env(safe-area-inset-bottom)); padding:14px; }
    .tdp-cookies__choix { width:100%; }
    .tdp-cookies .button { flex:1; }
}
