/* ==========================================================================
   jeux_de_societe.css — Hub Jeux de Société
   Thème : grille moderne et colorée, esprit ludique multi-générations
   ========================================================================== */

* { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family: 'Quicksand', 'Avenir Next', 'Segoe UI', sans-serif;
    line-height: 1.6;
    color: #2a2a3a;
    background: #f7f4ee;
    background-image:
        radial-gradient(circle at 10% 20%, rgba(255, 200, 87, .25) 0%, transparent 40%),
        radial-gradient(circle at 90% 80%, rgba(120, 200, 220, .25) 0%, transparent 45%),
        radial-gradient(circle at 50% 50%, rgba(220, 130, 180, .15) 0%, transparent 50%);
    min-height: 100vh;
}

.hub-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px 60px;
}

.back-link {
    display: inline-block;
    margin-bottom: 20px;
    color: #5a4a8a;
    text-decoration: none;
    font-size: 0.95em;
    border-bottom: 2px dotted #5a4a8a;
    padding-bottom: 1px;
}
.back-link:hover { color: #1a1a3a; }

/* HERO ====================================================================== */
.hub-hero {
    background: linear-gradient(135deg, #5a4a8a 0%, #c25e8a 50%, #f5a04b 100%);
    color: #fff;
    padding: 60px 30px;
    border-radius: 24px;
    text-align: center;
    margin-bottom: 40px;
    box-shadow: 0 18px 40px rgba(90, 74, 138, .25);
    position: relative;
    overflow: hidden;
}

.hub-hero::before {
    content: '';
    position: absolute;
    top: -40px; left: -40px;
    width: 180px; height: 180px;
    background: rgba(255, 255, 255, .15);
    border-radius: 50%;
}
.hub-hero::after {
    content: '';
    position: absolute;
    bottom: -50px; right: -30px;
    width: 220px; height: 220px;
    background: rgba(255, 255, 255, .12);
    border-radius: 50%;
}

.hub-hero h1 {
    font-size: 3em;
    font-weight: 800;
    letter-spacing: -1px;
    margin-bottom: 14px;
    position: relative;
    z-index: 1;
}

.hub-hero .tagline {
    font-size: 1.2em;
    font-weight: 400;
    opacity: 0.95;
    position: relative;
    z-index: 1;
}

/* SECTIONS ================================================================== */
.section {
    background: #fff;
    border-radius: 18px;
    padding: 30px 32px;
    margin-bottom: 28px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
}

.section h2 {
    font-size: 1.6em;
    color: #5a4a8a;
    margin-bottom: 16px;
    font-weight: 700;
    border-bottom: 3px solid #ffc857;
    padding-bottom: 8px;
    display: inline-block;
}

.section h3 {
    font-size: 1.15em;
    color: #c25e8a;
    margin: 18px 0 8px;
    font-weight: 700;
}

.section p { margin-bottom: 12px; }
.section ul, .section ol { margin: 10px 0 12px 28px; }
.section li { margin-bottom: 6px; }
.section strong { color: #5a4a8a; }

/* GRILLE DE JEUX ============================================================ */
.games-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
    margin-top: 18px;
}

.game-card {
    display: block;
    border-radius: 16px;
    padding: 28px 22px;
    text-decoration: none;
    color: #fff;
    font-weight: 700;
    text-align: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 6px 16px rgba(0,0,0,.12);
    min-height: 130px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.game-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 26px rgba(0,0,0,.18);
}

.game-card .game-emoji {
    font-size: 2.4em;
    margin-bottom: 8px;
    line-height: 1;
}

.game-card .game-name {
    font-size: 1.15em;
    letter-spacing: 0.5px;
}

.game-card .game-tag {
    font-size: 0.8em;
    font-weight: 400;
    margin-top: 6px;
    opacity: 0.9;
}

.gc-echecs   { background: linear-gradient(135deg, #2a3a5e, #4a5a82); }
.gc-go       { background: linear-gradient(135deg, #8a2828, #c0392b); }
.gc-monopoly { background: linear-gradient(135deg, #c0392b, #e74c3c); }
.gc-scrabble { background: linear-gradient(135deg, #b08d57, #d6a96d); }
.gc-poker    { background: linear-gradient(135deg, #1a4d2e, #2d7a4d); }
.gc-jdr      { background: linear-gradient(135deg, #4a2a5e, #7a4a8a); }

/* CLASSIFICATION ============================================================ */
.classif-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-top: 14px;
}

.classif-card {
    background: #f7f4ee;
    border-radius: 12px;
    padding: 18px;
    border-left: 5px solid #ffc857;
}
.classif-card.violet { border-left-color: #5a4a8a; }
.classif-card.rose   { border-left-color: #c25e8a; }
.classif-card.bleu   { border-left-color: #3a8ab5; }
.classif-card.vert   { border-left-color: #4a9d6c; }
.classif-card.orange { border-left-color: #f5a04b; }

.classif-card h3 {
    font-size: 1.05em;
    margin: 0 0 6px 0;
    color: #2a2a3a;
}

.classif-card p { font-size: 0.95em; margin: 0; }

/* TIMELINE ================================================================== */
.timeline {
    margin: 18px 0;
    border-left: 3px solid #ffc857;
    padding-left: 22px;
}
.timeline-event {
    position: relative;
    padding-bottom: 14px;
}
.timeline-event::before {
    content: '';
    position: absolute;
    left: -29px;
    top: 6px;
    width: 12px; height: 12px;
    background: #c25e8a;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px #ffc857;
}
.timeline-event .date {
    font-weight: 700;
    color: #5a4a8a;
    margin-right: 8px;
}

/* TABLE ===================================================================== */
.section table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    font-size: 0.95em;
}
.section th {
    background: #5a4a8a;
    color: #fff;
    padding: 10px 12px;
    text-align: left;
    font-weight: 700;
}
.section td {
    padding: 10px 12px;
    border-bottom: 1px solid #ece7dc;
}
.section tr:nth-child(even) td { background: #faf7f1; }

/* RESPONSIVE ================================================================ */
@media (max-width: 700px) {
    .hub-hero h1 { font-size: 2.2em; }
    .hub-hero { padding: 40px 18px; }
    .section { padding: 22px 18px; }
}
