<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Running Café : La Communauté des Coureurs et du Café</title>
    <meta name="description" content="Découvrez la culture running café : coffee runs, bienfaits de la caféine sur la performance, et comment rejoindre ou créer votre communauté de coureurs.">
    <link rel="canonical" href="https://runningcafe.fr/">
    
    <link rel="icon" type="image/svg+xml" href="/favicon.svg">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet">
    <style>
        /* ── Design tokens (injected per-site) ── */
        :root {
            --color-primary:#7c2d12;--color-secondary:#b45309;--color-accent:#f59e0b;--font-body:'Nunito Sans',system-ui,sans-serif;--radius:16px;
            --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
            --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
            --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        /* ── Reset ── */
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        html {
            scroll-behavior: smooth;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
        }

        /* ── Selection ── */
        ::selection {
            background: var(--color-accent, #4f46e5);
            color: #fff;
        }

        ::-moz-selection {
            background: var(--color-accent, #4f46e5);
            color: #fff;
        }

        /* ── Body ── */
        body {
            font-family: var(--font-body), system-ui, -apple-system, sans-serif;
            font-size: clamp(16px, 1vw + 14px, 18px);
            line-height: 1.7;
            color: var(--color-text, #1a1a2e);
            background: var(--color-bg, #ffffff);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            text-rendering: optimizeLegibility;
            overflow-x: hidden;
        }

        /* Subtle background texture */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            background:
                radial-gradient(ellipse 80% 60% at 50% -20%, color-mix(in srgb, var(--color-primary, #4f46e5) 4%, transparent), transparent),
                radial-gradient(ellipse 60% 40% at 100% 100%, color-mix(in srgb, var(--color-accent, #4f46e5) 3%, transparent), transparent);
            pointer-events: none;
            z-index: -1;
        }

        img { max-width: 100%; height: auto; display: block; }

        /* ── Links ── */
        a {
            color: var(--color-primary);
            text-decoration: none;
            transition: color 0.3s var(--ease-out-quart);
        }

        a:hover { color: var(--color-accent); }

        /* ── Typography ── */
        h1, h2, h3, h4, h5, h6 {
            line-height: 1.2;
            font-weight: 700;
            color: var(--color-heading, var(--color-text));
            letter-spacing: -0.02em;
        }

        h1 {
            font-size: clamp(2rem, 5vw + 0.5rem, 3.25rem);
            margin-bottom: 0.5em;
            letter-spacing: -0.035em;
            font-weight: 800;
            line-height: 1.1;
        }

        h2 {
            font-size: clamp(1.5rem, 3vw + 0.25rem, 2.25rem);
            margin-top: 2.5em;
            margin-bottom: 0.6em;
            letter-spacing: -0.025em;
        }

        h3 {
            font-size: clamp(1.2rem, 2vw + 0.25rem, 1.65rem);
            margin-top: 2em;
            margin-bottom: 0.5em;
        }

        p {
            margin-bottom: 1.4em;
            color: var(--color-text, #1a1a2e);
        }

        ul, ol {
            margin-bottom: 1.4em;
            padding-left: 1.4em;
        }

        li {
            margin-bottom: 0.4em;
            padding-left: 0.25em;
        }

        li::marker {
            color: var(--color-accent, #4f46e5);
        }

        /* ── Blockquote ── */
        blockquote {
            position: relative;
            margin: 2em 0;
            padding: 1.5em 1.75em 1.5em 2em;
            background: linear-gradient(
                135deg,
                color-mix(in srgb, var(--color-primary, #4f46e5) 4%, var(--color-bg, #fff)),
                color-mix(in srgb, var(--color-accent, #4f46e5) 3%, var(--color-bg, #fff))
            );
            border: 1px solid color-mix(in srgb, var(--color-primary, #4f46e5) 10%, transparent);
            border-left: 3px solid var(--color-accent, #4f46e5);
            border-radius: 0 var(--radius, 12px) var(--radius, 12px) 0;
            font-style: italic;
            color: var(--color-text, #1a1a2e);
        }

        blockquote::before {
            content: '\201C';
            position: absolute;
            top: -0.15em;
            left: 0.3em;
            font-size: 3.5em;
            line-height: 1;
            color: var(--color-accent, #4f46e5);
            opacity: 0.15;
            font-family: Georgia, serif;
        }

        blockquote p:last-child { margin-bottom: 0; }

        /* ── Code ── */
        code {
            font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace;
            font-size: 0.875em;
            background: color-mix(in srgb, var(--color-primary, #4f46e5) 6%, var(--color-bg, #fff));
            padding: 0.15em 0.45em;
            border-radius: 5px;
            border: 1px solid color-mix(in srgb, var(--color-primary, #4f46e5) 8%, transparent);
        }

        pre {
            margin: 1.75em 0;
            padding: 1.5em 1.75em;
            background: #1a1a2e;
            color: #e8eaf0;
            border-radius: var(--radius, 12px);
            overflow-x: auto;
            line-height: 1.65;
            box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.05);
        }

        pre code {
            background: none;
            padding: 0;
            border: none;
            color: inherit;
            font-size: 0.85em;
        }

        strong { font-weight: 700; }
        em { font-style: italic; }

        /* ── Table ── */
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 2em 0;
            border-radius: var(--radius, 12px);
            overflow: hidden;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
        }

        th, td {
            padding: 0.85em 1.15em;
            text-align: left;
            border-bottom: 1px solid var(--color-border, #e8e8e8);
        }

        th {
            font-weight: 600;
            font-size: 0.8em;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: var(--color-text-muted, #666);
            background: color-mix(in srgb, var(--color-primary, #4f46e5) 3%, var(--color-bg, #fff));
        }

        tr:hover td {
            background: color-mix(in srgb, var(--color-primary, #4f46e5) 2%, var(--color-bg, #fff));
        }

        /* ── Layout ── */
        .site-wrapper {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        .site-content { flex: 1; }

        .container {
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 clamp(1.25rem, 4vw, 2.5rem);
        }

        .container--narrow {
            max-width: 760px;
        }

        /* ── Hero ── */
        .hero {
            position: relative;
            padding: clamp(3rem, 8vw, 6rem) 0 clamp(2rem, 5vw, 3.5rem);
            text-align: center;
            overflow: hidden;
        }

        .hero::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse 70% 50% at 50% 0%, color-mix(in srgb, var(--color-primary, #4f46e5) 6%, transparent), transparent),
                radial-gradient(ellipse 50% 50% at 80% 80%, color-mix(in srgb, var(--color-accent, #4f46e5) 4%, transparent), transparent);
            pointer-events: none;
        }

        .hero h1 {
            position: relative;
            margin-bottom: 0.25em;
        }

        .hero-description,
        .hero-subtitle {
            position: relative;
            font-size: clamp(1.05rem, 1.5vw + 0.5rem, 1.25rem);
            color: var(--color-text-muted, #666);
            max-width: 640px;
            margin: 0.5em auto 0;
            line-height: 1.65;
        }

        /* ── Hero image ── */
        .hero-image-wrap {
            max-width: 900px;
            margin: 0 auto 2rem;
            padding: 0 clamp(1.25rem, 4vw, 2.5rem);
        }

        .hero-image-wrap img,
        .hero-image {
            width: 100%;
            object-fit: cover;
            border-radius: var(--radius, 12px);
            aspect-ratio: 16 / 9;
            box-shadow:
                0 8px 32px rgba(0, 0, 0, 0.08),
                0 2px 8px rgba(0, 0, 0, 0.04);
        }

        /* ── Article content ── */
        .article-content {
            max-width: 720px;
            margin: 0 auto;
            padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 4vw, 2.5rem) clamp(3rem, 6vw, 5rem);
        }

        /* ── H2 ── */
        .article-content h2 {
            font-size: clamp(1.6rem, 3vw + 0.25rem, 2rem);
            font-weight: 700;
            letter-spacing: -0.025em;
            line-height: 1.2;
            margin-top: 3.5rem;
            margin-bottom: 0.75em;
            padding-top: 3.5rem;
            color: var(--color-heading, var(--color-text));
            position: relative;
        }

        /* Thin centered separator above H2 */
        .article-content h2::before {
            content: '';
            display: block;
            width: 40px;
            height: 1px;
            background: color-mix(in srgb, var(--color-text, #1a1a2e) 20%, transparent);
            margin: 0 auto 2rem;
        }

        /* First H2 needs no separator or extra top space */
        .article-content h2:first-child {
            margin-top: 0;
            padding-top: 0;
        }

        .article-content h2:first-child::before {
            display: none;
        }

        /* ── H3 ── */
        .article-content h3 {
            font-size: clamp(1.15rem, 1.5vw + 0.25rem, 1.3rem);
            font-weight: 600;
            letter-spacing: -0.01em;
            line-height: 1.3;
            color: var(--color-heading, var(--color-text));
            margin-top: 2.25rem;
            margin-bottom: 0.6em;
        }

        /* ── Paragraphs ── */
        .article-content p {
            margin-bottom: 1.5em;
            font-size: clamp(1rem, 0.3vw + 0.95rem, 1.0625rem);
            line-height: 1.8;
            color: var(--color-text, #1a1a2e);
        }

        /* Lead paragraph after H2 */
        .article-content h2 + p {
            font-size: clamp(1.05rem, 0.5vw + 0.95rem, 1.15rem);
            line-height: 1.75;
            color: var(--color-text-muted, #555);
        }

        /* ── Lists ── */
        .article-content ul,
        .article-content ol {
            margin-bottom: 1.5em;
            padding-left: 1.5em;
        }

        .article-content ul {
            list-style: none;
            padding-left: 0;
        }

        .article-content ol {
            list-style: decimal;
            padding-left: 1.5em;
        }

        .article-content li {
            margin-bottom: 0.5em;
            line-height: 1.75;
            font-size: clamp(1rem, 0.3vw + 0.95rem, 1.0625rem);
        }

        .article-content ul > li {
            position: relative;
            padding-left: 1.4em;
        }

        .article-content ul > li::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0.65em;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--color-accent, #4f46e5);
            opacity: 0.5;
        }

        .article-content ol > li::marker {
            color: var(--color-accent, #4f46e5);
            font-weight: 600;
            font-size: 0.9em;
        }

        /* ── Blockquote ── */
        .article-content blockquote {
            position: relative;
            margin: 2em 0;
            padding: 0.25em 0 0.25em 1.5em;
            border-left: 3px solid var(--color-accent, #4f46e5);
            background: none;
            border-top: none;
            border-right: none;
            border-bottom: none;
            border-radius: 0;
        }

        .article-content blockquote::before {
            display: none;
        }

        .article-content blockquote p {
            font-size: clamp(1.05rem, 0.5vw + 0.95rem, 1.15rem);
            font-style: italic;
            line-height: 1.7;
            color: var(--color-text-muted, #555);
        }

        .article-content blockquote p:last-child {
            margin-bottom: 0;
        }

        /* ── HR ── */
        .article-content hr {
            border: none;
            margin: 3rem 0;
            height: 1px;
            background: color-mix(in srgb, var(--color-text, #1a1a2e) 10%, transparent);
            max-width: 40px;
            margin-left: auto;
            margin-right: auto;
        }

        /* ── Strong ── */
        .article-content strong {
            font-weight: 700;
            color: var(--color-heading, var(--color-text));
        }

        /* ── Links ── */
        .article-content a {
            color: var(--color-primary);
            text-decoration: underline;
            text-decoration-color: color-mix(in srgb, var(--color-primary, #4f46e5) 30%, transparent);
            text-underline-offset: 3px;
            text-decoration-thickness: 1px;
            transition: text-decoration-color 0.3s ease, color 0.3s ease;
        }

        .article-content a:hover {
            text-decoration-color: var(--color-accent, #4f46e5);
            color: var(--color-accent);
        }

        /* ── Images ── */
        .article-content img {
            width: calc(100% + 80px);
            max-width: 800px;
            margin-left: -40px;
            border-radius: var(--radius, 12px);
            margin-top: 2em;
            margin-bottom: 2em;
            box-shadow:
                0 4px 24px rgba(0, 0, 0, 0.06),
                0 1px 6px rgba(0, 0, 0, 0.03);
        }

        /* ── Code blocks ── */
        .article-content pre {
            max-width: 100%;
            margin: 2em 0;
            border-radius: var(--radius, 12px);
        }

        .article-content code {
            font-size: 0.875em;
        }

        /* ── Table ── */
        .article-content table {
            max-width: 100%;
        }

        /* ── Responsive: images fall back to full-width on small screens ── */
        @media (max-width: 800px) {
            .article-content img {
                width: 100%;
                margin-left: 0;
            }
        }

        /* ── Breadcrumb ── */
        .breadcrumb {
            display: flex;
            align-items: center;
            gap: 0.5em;
            padding: 0.6rem 0;
            font-size: 0.82rem;
            color: var(--color-text-muted, #999);
            max-width: 1100px;
            margin: 0 auto;
        }

        .breadcrumb a {
            color: var(--color-text-muted, #999);
            transition: color 0.2s ease;
        }

        .breadcrumb a:hover {
            color: var(--color-primary);
        }

        .breadcrumb-sep {
            opacity: 0.4;
            font-size: 0.7em;
        }

        .breadcrumb-current {
            color: var(--color-text, #333);
            font-weight: 500;
        }

        /* ── Cards section ── */
        .cards-section {
            position: relative;
            padding: clamp(3rem, 6vw, 5rem) 0 clamp(3.5rem, 7vw, 6rem);
        }

        .cards-section::before {
            content: '';
            position: absolute;
            inset: 0;
            background: color-mix(in srgb, var(--color-primary, #4f46e5) 2%, var(--color-bg, #fff));
            clip-path: polygon(0 4%, 100% 0, 100% 100%, 0 100%);
        }

        .cards-section > * {
            position: relative;
        }

        .cards-section-title {
            text-align: center;
            margin-bottom: 0.35em;
            font-size: clamp(1.5rem, 3vw, 2.1rem);
        }

        .cards-section-subtitle {
            text-align: center;
            color: var(--color-text-muted, #666);
            font-size: clamp(0.9rem, 1.2vw, 1.05rem);
            margin-bottom: clamp(2rem, 4vw, 3rem);
            max-width: 500px;
            margin-left: auto;
            margin-right: auto;
        }

        .cards-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: clamp(1.25rem, 2.5vw, 1.75rem);
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 clamp(1rem, 3vw, 2rem);
        }
        /* Adapte la grille au nombre exact de cartes : pas de colonne vide
           ni d'orphelin sur une 2e ligne. */
        .cards-grid[data-count="2"] { grid-template-columns: repeat(2, 1fr); max-width: 800px; }
        .cards-grid[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
        .cards-grid[data-count="4"] { grid-template-columns: repeat(4, 1fr); }
        .cards-grid[data-count="5"] { grid-template-columns: repeat(5, 1fr); max-width: 1320px; }
        .cards-grid[data-count="6"] { grid-template-columns: repeat(3, 1fr); }
        @media (max-width: 1024px) {
            .cards-grid,
            .cards-grid[data-count="3"],
            .cards-grid[data-count="4"],
            .cards-grid[data-count="5"],
            .cards-grid[data-count="6"] { grid-template-columns: repeat(2, 1fr); }
        }
        @media (max-width: 600px) {
            .cards-grid,
            .cards-grid[data-count="2"],
            .cards-grid[data-count="3"],
            .cards-grid[data-count="4"],
            .cards-grid[data-count="5"],
            .cards-grid[data-count="6"] { grid-template-columns: 1fr; }
        }

        /* ── Card ── */
        .card {
            position: relative;
            background: var(--color-surface, #fff);
            border: 1px solid color-mix(in srgb, var(--color-border, #e8e8e8) 60%, transparent);
            border-radius: var(--radius, 12px);
            overflow: hidden;
            transition:
                transform 0.4s var(--ease-out-expo),
                box-shadow 0.4s var(--ease-out-expo),
                border-color 0.3s ease;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.02);
        }

        .card:hover {
            transform: translateY(-6px);
            box-shadow:
                0 20px 40px rgba(0, 0, 0, 0.06),
                0 8px 16px rgba(0, 0, 0, 0.04);
            border-color: color-mix(in srgb, var(--color-primary, #4f46e5) 15%, transparent);
        }

        .card-image-wrap {
            position: relative;
            overflow: hidden;
            aspect-ratio: 16 / 10;
        }

        .card-image-wrap img,
        .card-image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s var(--ease-out-expo);
        }

        .card:hover .card-image-wrap img,
        .card:hover .card-image {
            transform: scale(1.05);
        }

        .card-image-wrap::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 50%;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.06), transparent);
            pointer-events: none;
            transition: opacity 0.3s ease;
        }

        .card:hover .card-image-wrap::after {
            opacity: 0.6;
        }

        .card-body {
            padding: 1.35rem 1.5rem 1.65rem;
        }

        .card-body h3 {
            font-size: clamp(1rem, 1.2vw + 0.25rem, 1.15rem);
            margin: 0 0 0.5em;
            line-height: 1.35;
            letter-spacing: -0.01em;
        }

        .card-body h3 a {
            color: var(--color-heading, var(--color-text));
            text-decoration: none;
            transition: color 0.25s ease;
        }

        .card-body h3 a:hover {
            color: var(--color-primary);
        }

        .card-body p {
            font-size: 0.9rem;
            color: var(--color-text-muted, #666);
            line-height: 1.6;
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        /* ── Featured image ── */
        .featured-image-wrap {
            max-width: 1000px;
            margin: 0 auto 2rem;
            padding: 0 clamp(1.25rem, 4vw, 2.5rem);
        }

        .featured-image-wrap img,
        .featured-image {
            width: 100%;
            aspect-ratio: 21 / 9;
            object-fit: cover;
            border-radius: var(--radius, 12px);
            box-shadow:
                0 8px 32px rgba(0, 0, 0, 0.08),
                0 2px 8px rgba(0, 0, 0, 0.04);
        }

        /* ── Related section ── */
        .related-section {
            position: relative;
            max-width: 1200px;
            margin: 0 auto;
            padding: clamp(3rem, 6vw, 5rem) clamp(1.25rem, 4vw, 2.5rem) clamp(3.5rem, 7vw, 6rem);
        }

        .related-section::before {
            content: '';
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 60px;
            height: 3px;
            background: linear-gradient(90deg, transparent, var(--color-accent, #4f46e5), transparent);
            border-radius: 2px;
        }

        .related-section h2 {
            text-align: center;
            margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
            margin-top: 0;
            font-size: clamp(1.3rem, 2.5vw, 1.75rem);
        }

        /* ── Reading progress bar ── */
        .reading-progress {
            position: fixed;
            top: 0;
            left: 0;
            width: 0%;
            height: 3px;
            background: linear-gradient(90deg, var(--color-primary, #4f46e5), var(--color-accent, #4f46e5));
            z-index: 9999;
            transition: width 0.1s linear;
            border-radius: 0 2px 2px 0;
        }

        /* ── Utility ── */
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0,0,0,0);
            white-space: nowrap;
            border: 0;
        }

        /* ── Fade-in animation ── */
        .fade-up {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo);
        }

        .fade-up.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* ── Responsive ── */
        @media (max-width: 768px) {
            .hero { padding: clamp(2rem, 6vw, 3rem) 0 clamp(1.5rem, 4vw, 2rem); }
            .cards-grid { grid-template-columns: 1fr; gap: 1.25rem; }
            .article-content {
                padding: 1.5rem 1.15rem 2.5rem;
            }
            .article-content h2 {
                font-size: clamp(1.5rem, 5vw, 2rem);
                padding-top: clamp(2rem, 5vw, 3rem);
            }
            .article-content h2:nth-of-type(even) {
                margin-left: calc(-1 * 1.15rem);
                margin-right: calc(-1 * 1.15rem);
                padding-left: 1.15rem;
                padding-right: 1.15rem;
            }
            .article-content h3 {
                padding: 1em 1em 0.1em;
            }
            .article-content h3 + p,
            .article-content h3 + ul,
            .article-content h3 + ol,
            .article-content h3 + blockquote {
                padding-left: 1em;
                padding-right: 1em;
            }
            .article-content h3 + p + ul,
            .article-content h3 + p + ol {
                padding-left: 1em;
                padding-right: 1em;
            }
            .article-content blockquote {
                padding: 1.5em 1.25em;
                font-size: clamp(1.05rem, 1vw + 0.8rem, 1.2rem);
                text-align: left;
            }
            .article-content blockquote p {
                text-align: left;
            }
            .related-section { padding: 2.5rem 1.25rem 3rem; }
            .breadcrumb { padding: 0.75rem 1.25rem 0; }
            .hero-image-wrap { padding: 0 1.25rem; }
            .featured-image-wrap { padding: 0 1.25rem; }
        }

        @media (max-width: 480px) {
            h1 { font-size: clamp(1.65rem, 7vw, 2.25rem); }
            .card-body { padding: 1.15rem 1.25rem 1.35rem; }
            .article-content h3::before {
                width: 6px;
                height: 6px;
                margin-right: 0.5em;
            }
            .article-content ol > li::before {
                font-size: 0.7em;
            }
        }

        /* ── Back to top ── */
        .back-to-top {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: var(--color-primary, #1a365d);
            color: #fff;
            border: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            visibility: hidden;
            transform: translateY(12px);
            transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s var(--ease-out-expo), background 0.2s ease, box-shadow 0.2s ease;
            box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
            z-index: 90;
            -webkit-tap-highlight-color: transparent;
        }

        .back-to-top.is-visible {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .back-to-top:hover {
            background: var(--color-accent, #4f46e5);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.18);
            transform: translateY(-2px);
        }

        .back-to-top:active {
            transform: translateY(0);
        }

        .back-to-top svg {
            width: 20px;
            height: 20px;
        }

        @media (max-width: 768px) {
            .back-to-top { bottom: 1.25rem; right: 1.25rem; width: 40px; height: 40px; }
            .back-to-top svg { width: 18px; height: 18px; }
        }

        /* ── Print ── */
        @media print {
            body::before,
            .reading-progress,
            .back-to-top,
            .cards-section::before { display: none; }
            .card { break-inside: avoid; box-shadow: none; border: 1px solid #ddd; }
        }
    </style>
</head>
<body>
    <div class="site-wrapper">
        <style>
    .header-a {
        position: sticky;
        top: 0;
        z-index: 100;
        background: rgba(255, 255, 255, 0.72);
        backdrop-filter: blur(20px) saturate(180%);
        -webkit-backdrop-filter: blur(20px) saturate(180%);
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        font-family: var(--font-body, system-ui, -apple-system, sans-serif);
        transition: box-shadow 0.3s ease;
    }

    .header-a.ha-scrolled {
        box-shadow: 0 1px 12px rgba(0, 0, 0, 0.08);
    }

    .header-a .ha-inner {
        max-width: 1200px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 68px;
        padding: 0 2rem;
    }

    .header-a .ha-logo {
        font-size: 1.35rem;
        font-weight: 800;
        color: var(--color-primary, #111);
        text-decoration: none;
        letter-spacing: -0.03em;
        line-height: 1;
        transition: color 0.2s ease;
        flex-shrink: 0;
    }

    .header-a .ha-logo:hover {
        color: var(--color-accent, #4f46e5);
    }

    .header-a .ha-nav {
        display: flex;
        align-items: center;
        gap: 0.15rem;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }

    .header-a .ha-nav a {
        position: relative;
        padding: 0.5rem 0.85rem;
        font-size: 0.88rem;
        font-weight: 500;
        color: var(--color-text, #555);
        text-decoration: none;
        transition: color 0.2s ease;
        white-space: nowrap;
    }

    .header-a .ha-nav a::after {
        content: '';
        position: absolute;
        bottom: 2px;
        left: 50%;
        width: 0;
        height: 2px;
        background: var(--color-primary, #111);
        border-radius: 1px;
        transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1), left 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .header-a .ha-nav a:hover {
        color: var(--color-primary, #111);
    }

    .header-a .ha-nav a:hover::after {
        width: 60%;
        left: 20%;
    }

    .header-a .ha-cta {
        flex-shrink: 0;
    }

    .header-a .ha-cta a {
        display: inline-flex;
        align-items: center;
        gap: 0.4rem;
        padding: 0.5rem 1.2rem;
        font-size: 0.85rem;
        font-weight: 600;
        color: #fff;
        background: var(--color-primary, #111);
        border-radius: var(--radius, 8px);
        text-decoration: none;
        transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    }

    .header-a .ha-cta a:hover {
        background: var(--color-accent, #4f46e5);
        transform: translateY(-1px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    }

    .header-a .ha-cta a:active {
        transform: translateY(0);
    }

    .header-a .ha-cta:empty {
        display: none;
    }

    /* Hamburger */
    .header-a .ha-burger {
        display: none;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        position: relative;
        z-index: 120;
        -webkit-tap-highlight-color: transparent;
    }

    .header-a .ha-burger-line {
        display: block;
        width: 22px;
        height: 2px;
        background: var(--color-primary, #111);
        border-radius: 2px;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
        position: absolute;
    }

    .header-a .ha-burger-line:nth-child(1) { transform: translateY(-7px); }
    .header-a .ha-burger-line:nth-child(2) { transform: translateY(0); }
    .header-a .ha-burger-line:nth-child(3) { transform: translateY(7px); }

    .header-a .ha-burger.is-active .ha-burger-line:nth-child(1) {
        transform: rotate(45deg);
    }

    .header-a .ha-burger.is-active .ha-burger-line:nth-child(2) {
        opacity: 0;
    }

    .header-a .ha-burger.is-active .ha-burger-line:nth-child(3) {
        transform: rotate(-45deg);
    }

    /* Side panel */
    .ha-panel-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0);
        z-index: 9998;
        pointer-events: none;
        transition: background 0.35s ease;
    }

    .ha-panel-backdrop.is-visible {
        background: rgba(0, 0, 0, 0.3);
        pointer-events: auto;
    }

    .ha-panel {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(340px, 85vw);
        background: #fff;
        z-index: 9999;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
        display: flex;
        flex-direction: column;
        padding: 5.5rem 2rem 2rem;
        box-shadow: -8px 0 30px rgba(0, 0, 0, 0.08);
        overflow-y: auto;
    }

    .ha-panel.is-open {
        transform: translateX(0);
    }

    .ha-panel-logo {
        font-size: 1.25rem;
        font-weight: 800;
        color: var(--color-primary, #111);
        text-decoration: none;
        letter-spacing: -0.03em;
        margin-bottom: 1.5rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    .ha-panel a {
        display: block;
        padding: 0.85rem 0;
        font-size: 1.05rem;
        font-weight: 500;
        color: var(--color-text, #333);
        text-decoration: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        transition: color 0.2s ease, padding-left 0.2s ease;
    }

    .ha-panel a:last-child {
        border-bottom: none;
    }

    .ha-panel a:hover {
        color: var(--color-primary, #111);
        padding-left: 0.5rem;
    }

    .ha-panel-cta {
        margin-top: auto;
        padding-top: 1.5rem;
    }

    .ha-panel-cta a {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0.75rem 1.5rem;
        font-size: 0.95rem;
        font-weight: 600;
        color: #fff;
        background: var(--color-primary, #111);
        border-radius: var(--radius, 8px);
        text-decoration: none;
        border-bottom: none;
        transition: background 0.2s ease;
    }

    .ha-panel-cta a:hover {
        background: var(--color-accent, #4f46e5);
        padding-left: 0;
    }

    .ha-panel-cta:empty {
        display: none;
    }

    @media (max-width: 768px) {
        .header-a .ha-inner { padding: 0 1.25rem; height: 60px; }
        .header-a .ha-nav { display: none; }
        .header-a .ha-cta { display: none; }
        .header-a .ha-burger { display: flex; }
    }
</style>

<div class="header-a">
    <div class="ha-inner">
        <a href="/" class="ha-logo"><span style="display:inline-flex;align-items:center;gap:10px;"><img src="/logo.svg" alt="runningcafe.fr" style="width:42px;height:42px;object-fit:contain;"><span>runningcafe.fr</span></span></a>
        <div class="ha-nav"><a href="/conseils-running/">Conseils Running</a><a href="/cafe-et-performance/">Café &amp; Performance</a><a href="/evenements-running/">Événements</a><a href="/equipement-running/">Équipement</a></div>
        <div class="ha-cta"></div>
        <button class="ha-burger" aria-label="Menu" onclick="headerAToggle()">
            <span class="ha-burger-line"></span>
            <span class="ha-burger-line"></span>
            <span class="ha-burger-line"></span>
        </button>
    </div>
</div>
<!-- Panel mobile hors du header sticky (backdrop-filter casse position:fixed) -->
<div class="ha-panel-backdrop" onclick="headerAClose()"></div>
<div class="ha-panel">
    <a href="/" class="ha-panel-logo"><span style="display:inline-flex;align-items:center;gap:10px;"><img src="/logo.svg" alt="runningcafe.fr" style="width:42px;height:42px;object-fit:contain;"><span>runningcafe.fr</span></span></a>
    <a href="/conseils-running/">Conseils Running</a><a href="/cafe-et-performance/">Café &amp; Performance</a><a href="/evenements-running/">Événements</a><a href="/equipement-running/">Équipement</a>
    <div class="ha-panel-cta"></div>
</div>

<script>
(function(){
    var hdr = document.querySelector('.header-a');
    var panel = document.querySelector('.ha-panel');
    var backdrop = document.querySelector('.ha-panel-backdrop');
    var burger = hdr.querySelector('.ha-burger');

    window.headerAToggle = function() {
        var open = panel.classList.toggle('is-open');
        backdrop.classList.toggle('is-visible', open);
        burger.classList.toggle('is-active', open);
        document.body.style.overflow = open ? 'hidden' : '';
    };

    window.headerAClose = function() {
        panel.classList.remove('is-open');
        backdrop.classList.remove('is-visible');
        burger.classList.remove('is-active');
        document.body.style.overflow = '';
    };

    var last = 0;
    window.addEventListener('scroll', function() {
        var now = Date.now();
        if (now - last < 50) return;
        last = now;
        hdr.classList.toggle('ha-scrolled', window.scrollY > 10);
    }, {passive: true});
})();
</script>

        <main class="site-content">
            <div class="hero">
    <div class="container container--narrow">
        <h1 class="fade-up">Running Café : La Communauté des Coureurs Passionnés de Café</h1>
        <p class="hero-subtitle fade-up">Découvrez la culture running café : coffee runs, bienfaits de la caféine sur la performance, et comment rejoindre ou créer votre communauté de coureurs.</p>
    </div>
</div>

<div class="hero-image-wrap fade-up"><img src="/images/runningcafe-fr.jpg" alt="Running Café : La Communauté des Coureurs Passionnés de Café" class="featured-image"></div>

<div class="article-content fade-up">
    <h2>Quand le café devient le rituel du coureur</h2>
<p>Le running et le café partagent une même culture du plaisir et de la performance. L'un soutient l'endurance, l'autre récompense l'effort. Les coffee runs prolifèrent dans les grandes villes françaises depuis quelques années, rassemblant des milliers de coureurs autour d'un double espresso après la sortie.</p>
<p>Le concept du running café repose sur une idée simple : courir ensemble, puis boire un café ensemble. Cette combinaison crée un sentiment d'appartenance que les salles de sport classiques reproduisent difficilement. La piste, le trottoir, puis le comptoir : un rituel en trois temps.</p>
<p>Les chiffres sont clairs. En 2023, le nombre de clubs de running urbains intégrant un volet café a progressé de 34 % en Europe occidentale. Paris, Lyon, Bordeaux, Nantes : chaque ville voit émerger ses propres collectifs de coureurs-caféinomanes.</p>
<hr>
<h2>La caféine, alliée physiologique du coureur</h2>
<h3>Ce que dit la science sur la performance</h3>
<p>La caféine est l'une des rares substances reconnues par l'Agence mondiale antidopage comme ergogénique, capable d'améliorer les performances sportives de façon mesurable. Une dose de 3 à 6 mg par kilogramme de poids corporel (soit environ deux expressos pour un coureur de 70 kg) augmente l'endurance de 2 à 4 % selon les méta-analyses publiées dans le <em>Journal of Applied Physiology</em>.</p>
<p>Concrètement, la caféine retarde la perception de la fatigue en bloquant les récepteurs à l'adénosine, la molécule responsable de la sensation d'épuisement. Elle mobilise aussi les acides gras comme source d'énergie, préservant les réserves de glycogène musculaire. Un avantage réel au-delà du 30e kilomètre.</p>
<p>Le pic de concentration plasmatique survient 45 à 60 minutes après ingestion. Un café bu avant l'échauffement arrive donc exactement au bon moment pour les premières foulées intenses.</p>
<h3>Café avant ou après la course ?</h3>
<p>La question divise la communauté running. Avant, la caféine favorise la mobilisation des graisses et réduit la perception de l'effort. Après, elle accélère la resynthèse du glycogène musculaire quand elle est associée à des glucides : une étude de l'Université de Birmingham a montré une récupération 66 % plus rapide dans ce cas.</p>
<p>La plupart des running cafés ont tranché : on court d'abord, on boit ensuite. Cette logique n'est pas que physiologique. Elle construit un moment de décompression collective, où la sueur et l'essoufflement cèdent la place à la chaleur d'une tasse et aux récits de kilomètres.</p>
<p>Certains groupes pratiquent les deux. Un café léger au départ, un long flat white au retour. L'essentiel reste d'écouter son corps et d'adapter sa consommation à sa tolérance individuelle.</p>
<hr>
<h2>L'anatomie d'un running café réussi</h2>
<h3>Le format coffee run : mode d'emploi</h3>
<p>Un coffee run typique suit une structure rodée. Le groupe se retrouve à 7h ou 8h du matin, souvent le samedi, devant un café partenaire. La distance varie entre 5 et 15 kilomètres selon le niveau affiché ; le rythme reste conversationnel, sans compétition ni chronométrage.</p>
<p>Le retour au café est le cœur social de l'événement. Trente minutes à une heure d'échanges autour d'une table, où les sujets glissent naturellement du plan d'entraînement aux recommandations de chaussures, puis aux inscriptions aux prochaines courses locales.</p>
<p>Cette formule fonctionne parce qu'elle lève les barrières du running club traditionnel. Pas de licence, pas de chrono imposé, pas de hiérarchie. Juste des gens qui aiment courir et apprécient un bon café.</p>
<h3>Les ingrédients d'une communauté solide</h3>
<p>Une communauté running café ne se crée pas par accident. Les groupes les plus durables ont en commun un rendez-vous hebdomadaire fixe (l'habitude naît de la régularité), un accueil sincère des débutants, et un lieu partenaire qui comprend la culture de la course.</p>
<p>Le barista qui connaît les prénoms, la terrasse assez grande pour vingt paires de chaussures de trail, le menu qui propose quelque chose pour tout le monde après l'effort : ces détails font la différence entre un groupe qui dure et un collectif éphémère.</p>
<p>Les outils numériques renforcent la cohésion. Un groupe Strava pour partager les segments, une newsletter mensuelle avec les résultats des membres, un canal WhatsApp pour les conditions météo du lendemain. La technologie ne remplace pas le lien humain, elle le prolonge.</p>
<hr>
<h2>Café et nutrition sportive : aller plus loin que l'espresso</h2>
<h3>Les types de café adaptés aux coureurs</h3>
<p>Tous les cafés ne se valent pas du point de vue sportif. L'espresso concentre la caféine sans les sucres ajoutés des boissons lactées sucrées. Le cold brew, infusé à froid pendant 12 à 24 heures, libère une caféine plus progressive et moins acide, ce qui convient aux estomacs sensibles avant une longue sortie.</p>
<p>Le flat white, à base de lait entier ou végétal, apporte des protéines et des glucides en plus de la caféine : une option intéressante en récupération. L'Américano long, très hydratant, convient aux sorties où la réhydratation prime.</p>
<p>Un profil à suivre dans l'écosystème running français : <a href="https://fragilerunner.fr/">Fragile Runner : coureur du dimanche</a>, qui explore avec humour et précision les réalités du running amateur, dont les rituels caféinés qui ponctuent chaque sortie du week-end.</p>
<h3>Caféine et hydratation : démêler les idées reçues</h3>
<p>L'effet diurétique du café est régulièrement cité contre sa consommation avant le sport. Les études récentes nuancent fortement ce point : pour les consommateurs habituels, la caféine à dose modérée (moins de 400 mg par jour) ne provoque pas de déshydratation notable.</p>
<p>Une tasse d'espresso contient environ 200 ml de liquide et 60 mg de caféine. L'effet net sur le bilan hydrique est quasi neutre pour un coureur qui consomme du café régulièrement. Les non-consommateurs ou les personnes sensibles devront, eux, compenser davantage.</p>
<p>La règle pratique : boire un verre d'eau pour chaque café consommé avant l'effort. Simple, applicable immédiatement.</p>
<hr>
<h2>La culture running café en France : état des lieux</h2>
<h3>Des villes pionnières aux villes émergentes</h3>
<p>Paris concentre les initiatives les plus visibles. Le collectif Morning Runners, les coffee runs organisés par certains magasins spécialisés, les partenariats entre cafés de spécialité et marques de running : l'écosystème s'est structuré rapidement dans la capitale.</p>
<p>Lyon et Bordeaux suivent de près, avec des scènes café de spécialité dynamiques qui ont naturellement absorbé la culture running. Marseille, Toulouse et Strasbourg voient émerger leurs propres formats, souvent portés par des indépendants plutôt que par des franchises.</p>
<p>Les villes moyennes ne sont pas en reste. Annecy, Grenoble, Montpellier : partout où le trail et la montagne structurent la pratique sportive, le café du retour de sortie prend une dimension presque rituelle.</p>
<h3>Le café de spécialité, partenaire naturel du running</h3>
<p>Le mouvement du café de spécialité (<em>specialty coffee</em>) et la culture running partagent des valeurs communes : traçabilité, rigueur technique, communauté engagée. Un barista qui sélectionne des grains de la Yirgacheffe et un coureur qui affine sa foulée sur des données GPS : deux formes de perfectionnisme passionné qui se reconnaissent facilement.</p>
<p>Les cafés de spécialité accueillent naturellement les coureurs. Ils ouvrent tôt, proposent des formats nomades (cups à emporter), et leurs équipes comptent souvent des sportifs. Plusieurs enseignes françaises ont formalisé ces partenariats en sponsorisant des courses locales ou en mettant des vestiaires à disposition.</p>
<p>Ce croisement des cultures fidélise une clientèle identitaire. Un coureur qui découvre son café de quartier via un coffee run devient souvent un client hebdomadaire. Le running café n'est pas qu'une tendance lifestyle : c'est un modèle économique qui fonctionne.</p>
<hr>
<h2>Rejoindre ou créer sa communauté running café</h2>
<h3>Trouver son groupe</h3>
<p>Chercher un coffee run dans sa ville passe rarement par les canaux officiels. Instagram reste le réseau de référence : les hashtags #coffeerun, #runningcafé, et les géolocalisations des cafés spécialisés permettent d'identifier les groupes actifs en quelques minutes.</p>
<p>Strava clubs, meetup.com et les groupes Facebook locaux complètent le tableau. Certains magasins de running organisent eux-mêmes des sorties hebdomadaires avec ravitaillement caféiné, une bonne porte d'entrée pour les coureurs qui cherchent un cadre structuré.</p>
<p>Le plus simple reste parfois d'entrer dans un café de spécialité un samedi matin et de demander directement. Les baristas connaissent leur quartier, et la plupart savent si un groupe de coureurs s'y retrouve régulièrement.</p>
<h3>Lancer son propre coffee run</h3>
<p>Créer un coffee run ne demande ni statut associatif ni budget. Il faut un point de départ fixe (de préférence un café partenaire), une distance et un niveau clairement communiqués, et un rendez-vous régulier. Le bouche-à-oreille fait le reste.</p>
<p>Les premiers mois exigent de la constance : maintenir le rendez-vous même à trois participants, documenter chaque sortie sur les réseaux sociaux, cultiver la relation avec le café d'accueil. La croissance organique d'un running café prend généralement six à douze mois pour atteindre une masse critique.</p>
<p>L'identité visuelle compte aussi. Un nom, un logo simple, un hashtag : ces éléments semblent anecdotiques mais facilitent la reconnaissance et le sentiment d'appartenance, deux moteurs de toute communauté sportive durable.</p>
<hr>
<h2>Le running café comme pratique de bien-être globale</h2>
<p>Au-delà de la performance et de la sociabilité, le running café répond à un besoin plus profond : celui d'une pratique sportive ancrée dans le quotidien, non consumériste, accessible sans équipement sophistiqué.</p>
<p>Courir 8 kilomètres puis partager un café avec des inconnus devenus familiers, c'est un acte de résistance subtil contre l'individualisation des pratiques sportives. Les applications de fitness, les abonnements en ligne, les entraînements virtuels proposent chacun leur version solitaire de l'effort. Le running café propose autre chose. Du réel, du local, des gens.</p>
<p>Cette dimension explique en partie pourquoi le mouvement résiste aux changements de tendances. Les coffee runs ne sont pas une mode instagrammable passagère. Ils représentent une façon de vivre la ville, de créer du lien, de faire de chaque kilomètre parcouru un prétexte à se retrouver autour d'une tasse.</p>

</div>

<div class="cards-section">
    <div class="container">
        <h2 class="cards-section-title fade-up">Nos articles</h2>
        <div class="cards-grid" data-count="4">
            <div class="card fade-up">
    <div class="card-image-wrap">
        <img src="/images/conseils-running.jpg" alt="Conseils Running : Progressez et Courez Mieux Chaque Jour" loading="lazy">
    </div>
    <div class="card-body">
        <h3><a href="/conseils-running/">Conseils Running : Progressez et Courez Mieux Chaque Jour</a></h3>
        <p>Allure, foulée, nutrition, blessures : découvrez tous les conseils running essentiels pour progresser efficacement et courir mieux, semaine après semaine.</p>
    </div>
</div>
<div class="card fade-up">
    <div class="card-image-wrap">
        <img src="/images/cafe-et-performance.jpg" alt="Café et Performance Sportive : La Boisson des Coureurs" loading="lazy">
    </div>
    <div class="card-body">
        <h3><a href="/cafe-et-performance/">Café et Performance Sportive : La Boisson des Coureurs</a></h3>
        <p>Caféine et running : dosage, timing, effets prouvés. Tout ce que la science dit sur le café comme outil de performance pour les coureurs. Guide expert.</p>
    </div>
</div>
<div class="card fade-up">
    <div class="card-image-wrap">
        <img src="/images/evenements-running.jpg" alt="Événements Running : Courses, Rassemblements et Sorties Communautaires" loading="lazy">
    </div>
    <div class="card-body">
        <h3><a href="/evenements-running/">Événements Running : Courses, Rassemblements et Sorties Communautaires</a></h3>
        <p>Découvrez tous les types d&#039;événements running en France : courses sur route, trails, rassemblements communautaires et sorties de groupe. Guide complet 2024.</p>
    </div>
</div>
<div class="card fade-up">
    <div class="card-image-wrap">
        <img src="/images/equipement-running.jpg" alt="Équipement Running : Choisir le Bon Matériel pour Courir" loading="lazy">
    </div>
    <div class="card-body">
        <h3><a href="/equipement-running/">Équipement Running : Choisir le Bon Matériel pour Courir</a></h3>
        <p>Chaussures, tenues, montres GPS, hydratation : notre guide complet pour choisir le bon équipement running selon votre niveau et votre budget.</p>
    </div>
</div>

        </div>
    </div>
</div>

<script>
(function(){
    var els = document.querySelectorAll('.fade-up');
    if (!els.length) return;
    if ('IntersectionObserver' in window) {
        var obs = new IntersectionObserver(function(entries) {
            entries.forEach(function(e) {
                if (e.isIntersecting) {
                    e.target.classList.add('is-visible');
                    obs.unobserve(e.target);
                }
            });
        }, { threshold: 0.01, rootMargin: '50px 0px 0px 0px' });
        els.forEach(function(el) {
            // Si deja visible au chargement, afficher direct
            var rect = el.getBoundingClientRect();
            if (rect.top < window.innerHeight) {
                el.classList.add('is-visible');
            } else {
                obs.observe(el);
            }
        });
    } else {
        els.forEach(function(el) { el.classList.add('is-visible'); });
    }
})();
</script>

        </main>
        <style>
    .footer-c {
        position: relative;
        padding: clamp(3rem, 6vw, 4.5rem) clamp(1.25rem, 4vw, 2rem) 0;
        margin-top: auto;
        background: linear-gradient(
            180deg,
            var(--color-bg, #fff) 0%,
            color-mix(in srgb, var(--color-primary, #4f46e5) 4%, var(--color-bg, #fff)) 100%
        );
        border-top: 1px solid color-mix(in srgb, var(--color-border, #e8e8e8) 50%, transparent);
    }

    .footer-c .footer-grid {
        max-width: 1140px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 2fr 1fr 1fr;
        gap: clamp(2rem, 3.5vw, 3rem);
    }

    .footer-c .footer-brand .brand-name {
        font-size: 1.25rem;
        font-weight: 800;
        color: var(--color-primary);
        margin-bottom: 0.8rem;
        letter-spacing: -0.02em;
    }

    .footer-c .footer-brand p {
        font-size: 0.88rem;
        color: var(--color-text-muted, #888);
        line-height: 1.65;
        margin-bottom: 1.35rem;
    }

    .footer-c .social-links {
        display: flex;
        gap: 0.6rem;
    }

    .footer-c .social-links a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        border-radius: 50%;
        background: color-mix(in srgb, var(--color-primary, #4f46e5) 8%, var(--color-bg, #fff));
        color: var(--color-text-muted, #888);
        font-size: 0.75rem;
        font-weight: 700;
        transition:
            background 0.35s cubic-bezier(0.16, 1, 0.3, 1),
            color 0.25s ease,
            transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
            box-shadow 0.35s ease;
        text-decoration: none;
    }

    .footer-c .social-links a:hover {
        background: var(--color-primary);
        color: #fff;
        transform: translateY(-3px);
        box-shadow: 0 6px 16px color-mix(in srgb, var(--color-primary, #4f46e5) 25%, transparent);
    }

    .footer-c .footer-col h4 {
        font-size: 0.72rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: var(--color-text-muted, #999);
        margin-bottom: 1.1rem;
    }

    .footer-c .footer-col ul { list-style: none; padding: 0; margin: 0; }

    .footer-c .footer-col ul li { margin-bottom: 0.55rem; }

    .footer-c .footer-col ul a {
        font-size: 0.9rem;
        color: var(--color-text, #333);
        transition: color 0.25s ease, transform 0.25s ease;
        display: inline-block;
    }

    .footer-c .footer-col ul a:hover {
        color: var(--color-primary);
        transform: translateX(3px);
    }

    .footer-c .footer-bottom {
        max-width: 1140px;
        margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
        padding: 1.25rem 0;
        border-top: 1px solid color-mix(in srgb, var(--color-border, #e8e8e8) 50%, transparent);
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.6rem;
        font-size: 0.8rem;
        color: var(--color-text-muted, #999);
    }

    .footer-c .footer-bottom a {
        position: relative;
        color: var(--color-text-muted, #999);
        transition: color 0.25s ease;
    }

    .footer-c .footer-bottom a::after {
        content: '';
        position: absolute;
        bottom: -2px;
        left: 0;
        width: 0;
        height: 1px;
        background: var(--color-primary);
        transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .footer-c .footer-bottom a:hover {
        color: var(--color-primary);
    }

    .footer-c .footer-bottom a:hover::after {
        width: 100%;
    }

    @media (max-width: 768px) {
        .footer-c .footer-grid {
            grid-template-columns: 1fr 1fr;
            gap: 2rem;
        }
        .footer-c .footer-bottom {
            flex-direction: column;
            text-align: center;
        }
    }

    @media (max-width: 480px) {
        .footer-c .footer-grid {
            grid-template-columns: 1fr;
        }
    }
</style>

<div class="footer-c">
    <div class="footer-grid">
        <div class="footer-brand">
            <div class="brand-name">runningcafe.fr</div>
            <p>Votre ressource en ligne de confiance.</p>
            <div class="social-links">
                <a href="#" aria-label="Facebook"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 21v-7.5h2.5l.4-3h-2.9V8.6c0-.9.2-1.5 1.5-1.5h1.6V4.4c-.3 0-1.2-.1-2.3-.1-2.3 0-3.8 1.4-3.8 3.9v2.2H8v3h2.5V21h3z"/></svg></a><a href="#" aria-label="Instagram"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1" fill="currentColor"/></svg></a>
            </div>
        </div>
        <div class="footer-col">
            <h4>Pages</h4>
            <ul>
                <li><a href="/conseils-running/">Conseils Running</a></li><li><a href="/cafe-et-performance/">Café &amp; Performance</a></li><li><a href="/evenements-running/">Événements</a></li><li><a href="/equipement-running/">Équipement</a></li>
            </ul>
        </div>
        <div class="footer-col">
            <h4>Informations</h4>
            <ul>
                
            </ul>
        </div>
    </div>
    <div class="footer-bottom">
        <span>&copy; 2026 runningcafe.fr. Tous droits r&eacute;serv&eacute;s.</span>
        <span><li><a href="/cgu-mentions-legales/">CGU &amp; Mentions Legales</a></li></span>
    </div>
</div>

    </div>
    <button class="back-to-top" aria-label="Retour en haut" onclick="window.scrollTo({top:0,behavior:'smooth'})">
        <svg fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M5 15l7-7 7 7"/></svg>
    </button>
    <script>
    (function(){
        var btn = document.querySelector('.back-to-top');
        var last = 0;
        window.addEventListener('scroll', function() {
            var now = Date.now();
            if (now - last < 80) return;
            last = now;
            btn.classList.toggle('is-visible', window.scrollY > 400);
        }, {passive: true});
    })();
    </script>
</body>
</html>
