body {
background: #CB9E9D;
background: radial-gradient(circle, rgba(203, 158, 157, 1) 20%, rgba(168, 159, 163, 1) 100%);
}

/* Conteneur commun : définit la largeur de l'ensemble */
main {
    max-width: 1450px;
    margin: 0 auto;
    padding: 0 1rem;
    color: #323232;
}

.jmas-presentation {
    text-align: justify;
    background: #e6955c;
    border: 1px solid currentColor;
    padding: 0.5rem 2rem 1.25rem 2rem;
    margin: 1rem 0;
}

.jmas-titre-illu-infos {
    color: #ff7d00;
    padding: 0 0 0 0.5rem;
    background: #ffffff;
    background: linear-gradient(53deg, rgba(255, 255, 255, 0.9) 22%, rgba(56, 115, 116, 0) 100%);
}

/* Ligne affiche + infos */
.jmas-flex-illu-infos {
    display: flex;
    align-items: flex-start;   /* l'affiche garde ses proportions */
    gap: 2rem;
}

.jmas-flex-illu-infos > img {
    flex: 0 0 35%;
    width: 35%;
    height: auto;
}

/* Colonne d'infos : s'étire à la hauteur de l'affiche */
.jmas-infos {
    flex: 1;
    min-width: 0;
    align-self: stretch;       /* même hauteur que l'affiche */
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 0;
}

.jmas-carte {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid currentColor;
    border-radius: 8px;
    padding: 1rem 1.25rem;
background: #e6955c;
background: linear-gradient(53deg, rgba(230, 149, 92, 1) 0%, rgba(168, 159, 163, 1) 100%);
}

.jmas-carte h3 { margin: 0 0 .4rem; }
.jmas-carte p  { margin: .3rem 0; }

.jmas-carte-lieu { justify-content: flex-start; }

.jmas-lieu-contenu {
    display: flex;
    align-items: stretch;      /* la carte prend la hauteur du texte */
    gap: 1rem;
    flex: 1;
}

.jmas-lieu-texte { flex: 1 1 50%; min-width: 0; }

.jmas-plan {
    flex: 1 1 50%;
    min-width: 0;
    min-height: 150px;
    border: 1px solid currentColor;
    border-radius: 6px;
}

/* Mobile : plan sous le texte */
@media (max-width: 700px) {
    .jmas-lieu-contenu { flex-direction: column; }
    .jmas-plan { flex: none; width: 100%; height: 220px; }
}

/* Bloc formulaire : même largeur que affiche + infos */
.jmas-visiteurs {
    margin: 2rem 0 0;
    padding: 1rem 1rem 0.5rem 1rem;
    text-align: center;
    border: 1px solid currentColor;
    border-radius: 8px;
    background: #E6955C;
}

.jmas-visiteurs h2 { margin-top: 0; }

/* À garder si ces classes ne sont pas définies ailleurs */
.jmas-bouton {
    display: inline-block;
    padding: .7rem 1.4rem;
    border: 2px solid currentColor;
    border-radius: 6px;
    font-weight: bold;
    text-decoration: none;
}
.jmas-a-venir { font-style: italic; opacity: .75; }

/* Mobile : on empile l'affiche et les infos */
@media (max-width: 700px) {
    .jmas-flex-illu-infos { flex-direction: column; align-items: center; }
    .jmas-flex-illu-infos > img { flex: none; width: 100%; max-width: 420px; }
    .jmas-infos { align-self: stretch; grid-template-rows: none; }
}

.jmas-video { position: relative; 
    width: 100%; max-width: 900px; 
    aspect-ratio: 16 / 9; 
    margin: 1rem auto; }

.jmas-video iframe { 
    position: absolute; 
    inset: 0; width: 100%; 
    height: 100%; 
    border: 0; }

.jmas-bouton { 
    display: inline-block; 
    padding: .7rem 1.4rem; 
    border: 2px solid currentColor; 
    border-radius: 6px; 
    font-weight: bold; 
    text-decoration: none; }

.jmas-a-venir { 
    font-style: italic; 
    opacity: .75; }

.jmas-programme { 
    border-collapse: collapse; 
    width: 100%; 
    max-width: 900px; }

.jmas-programme th, .jmas-programme td { 
    border: 1px solid currentColor; 
    padding: .5rem .75rem; 
    text-align: left; }