/* ============================================
   THEME BLOCK - Sections colorées fullscreen

   Structure :
   - Marges : 140px haut/bas, 110px gauche/droite
   - Layout 50-50 : titre+texte | cases
   - Cases : 150px hauteur fixe, alignées haut-gauche, padding 10px + 40px droite
   - Texte : 2 colonnes (à résoudre)
   ============================================ */

.theme-block {
    position: relative;
    width: 100%;
    padding: 0;
    margin: 0;
}

.theme-block__container {
    max-width: 100%;
    margin: 0;
    padding: 140px 110px;
    display: flex;
    gap: 75px;
    align-items: flex-start;
}

/* Limiter la largeur à 1600px sur grands écrans */
@media (min-width: 1600px) {
    .theme-block__container {
        padding-left: calc((100vw - 1600px) / 2 + 110px);
        padding-right: calc((100vw - 1600px) / 2 + 110px);
    }
}

/* ============================================
   ZONE GAUCHE/DROITE - Titre + Texte (50%)
   ============================================ */

.theme-block__main {
    flex: 1 1 50%;
    max-width: 50%;
}

.theme-block__title {
    font-family: 'tt-commons-pro', 'TT Commons Pro', sans-serif !important;
    font-size: 51px;
    font-weight: 200 !important;
    line-height: 1.2;
    margin-bottom: 30px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Texte sur 2 colonnes - VERSION PROPRE */
.theme-block__content {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 25px;
    column-count: 2;
    column-gap: 40px;
}

.theme-block__content p {
    margin-bottom: 15px;
}

/* ============================================
   ZONE GAUCHE/DROITE - Cases (50%)
   ============================================ */

.theme-block__themes {
    flex: 1 1 50%;
    max-width: 50%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.theme-block__themes-title {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 300;
    line-height: 25px;
    margin-bottom: 15px;
}

.theme-block__themes-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.theme-block__theme-item {
    height: 150px;
    border: none;
    transition: all 0.3s ease;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.theme-block__theme-link,
.theme-block__theme-text {
    display: block;
    padding: 10px 50px 10px 10px;
    font-family: var(--font-body);
    font-size: 28px;
    font-weight: 200;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    color: inherit;
    white-space: normal;
    height: 100%;
    width: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ============================================
   LAYOUT VARIANTS
   ============================================ */

.theme-block--text-right .theme-block__container {
    flex-direction: row-reverse;
}

/* ============================================
   COULEURS DE FOND - Originales
   ============================================ */

.bg-red {
    background-color: #FF0000;
    color: #FFFFFF;
}

.bg-orange {
    background-color: #FF6600;
    color: #FFFFFF;
}

.bg-blue {
    background-color: #0066FF;
    color: #FFFFFF;
}

.bg-green {
    background-color: #006633;
    color: #FFFFFF;
}

.bg-black {
    background-color: #000000;
    color: #FFFFFF;
}

.bg-white {
    background-color: #FFFFFF;
    color: #000000;
}

.bg-gray {
    background-color: #F5F5F5;
    color: #000000;
}

/* ============================================
   COULEURS DES CASES - Teintes plus foncées (pas du noir transparent)
   ============================================ */

/* ROUGE → Rouge foncé lumineux */
.bg-red .theme-block__theme-item {
    background-color: #CC0000;
}

.bg-red .theme-block__theme-item:hover {
    background-color: #B30000;
}

/* ORANGE → Orange foncé lumineux */
.bg-orange .theme-block__theme-item {
    background-color: #E65C00;
}

.bg-orange .theme-block__theme-item:hover {
    background-color: #CC5200;
}

/* BLEU → Bleu foncé lumineux */
.bg-blue .theme-block__theme-item {
    background-color: #0052CC;
}

.bg-blue .theme-block__theme-item:hover {
    background-color: #0047B3;
}

/* VERT → Vert foncé lumineux */
.bg-green .theme-block__theme-item {
    background-color: #00522A;
}

.bg-green .theme-block__theme-item:hover {
    background-color: #00451F;
}

/* NOIR → Gris moyen */
.bg-black .theme-block__theme-item {
    background-color: #333333;
}

.bg-black .theme-block__theme-item:hover {
    background-color: #4D4D4D;
}

/* BLANC → Gris clair */
.bg-white .theme-block__theme-item {
    background-color: #E0E0E0;
}

.bg-white .theme-block__theme-item:hover {
    background-color: #CCCCCC;
}

/* GRIS → Gris moyen */
.bg-gray .theme-block__theme-item {
    background-color: #D0D0D0;
}

.bg-gray .theme-block__theme-item:hover {
    background-color: #BBBBBB;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1024px) {
    .theme-block__container {
        padding: 100px 80px;
        gap: 40px;
    }

    .theme-block__title {
        font-size: 40px;
    }

    .theme-block__theme-item {
        height: 120px;
    }

    .theme-block__theme-link,
    .theme-block__theme-text {
        font-size: 24px;
        padding: 10px 40px 10px 10px;
    }
}

@media (max-width: 768px) {
    .theme-block__container {
        flex-direction: column;
        padding: 60px 40px;
        gap: 30px;
    }

    .theme-block__main,
    .theme-block__themes {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .theme-block__title {
        font-size: 32px;
    }

    .theme-block__content {
        column-count: 1;
        font-size: 14px;
        line-height: 22px;
    }

    .theme-block__theme-item {
        height: 100px;
    }

    .theme-block__theme-link,
    .theme-block__theme-text {
        font-size: 20px;
        padding: 10px 30px 10px 10px;
    }

    .theme-block--text-right .theme-block__container {
        flex-direction: column;
    }
}
