body{margin:0;
  background-color: #2a2a2a;}

@font-face {
    font-family: Archer semibold;
    src: url(../fonts/Archer\ Semibold.otf);
}
.hero{
  background-image:url(../images/background.gif);
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.search-bar {
  position: absolute;
  top: 24px;
  right: 257px;
  z-index: 10;
  display: flex;
  align-items: center;
  border-radius: 20px;
  padding: 7px 16px;
  gap: 8px;
  width: 210px;}
    
.hero-texte {
    position: absolute;
    top: 50%;
    left: 6%;
    transform: translateY(-50%);
    z-index: 10;
    max-width: 1500px;
    color:#cc0000;
    font-family: archer semibold;
    font-size: 3.1rem;
}

#logoimg {
height: 50 px;
width: 245px;
top:24px;
padding: 28px 48px}

.bloc-image-texte{display: flex;}

#bloc-texte{ width:80%;}

#about-titre {
    font-family: 'Montserrat', sans-serif;
    font-size: 3rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #cc0000;
    margin-bottom: 50px;
    margin-top: 0px;
   margin-left: 100px;
   padding-top: 50px;}

#sous-titre {
   font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: white ;
    margin-bottom: 30px;
    padding-left:100px;

}

#imgblock{
  background-image: url(../images/Capture\ d\'écran\ 2026-07-13\ 140445.png);
  width: 780px;
  height: 459px;
  background-size: cover;
  margin-left: 100px;
  margin-top: 20px;}

#bloc-texte p {
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.85;
    color:white;
    width:40%;
    padding-left: 150px;
    padding-top: 100px;
}

.about{ margin:0;
background-color: #2a2a2a;}

#cinematekabout{
    height: 300px;
    width: 100%;
}

.separateur {
    width: 100%;
    height: 1px;
    background: #3a3a3a;
    margin: 50px 0;}

/* ======================================================
   BLOC ROYALE — corrigé : texte et image alignés
   (avant : 64% + 45% = 109% -> ça débordait et ça cassait
   l'alignement. Un seul padding-left sur le parent au lieu
   de marges différentes sur chaque élément à l'intérieur.)
   ====================================================== */
.bloc-royale {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 40px;
    padding-left: 100px;
    box-sizing: border-box;
}

#bloc-royale-texte {
    width: 55%;
    box-sizing: border-box;
}

#bloc-royale-texte h2 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #bbb;
    margin-bottom: 28px;
}

#bloc-royale-texte p {
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.85;
    color: #ffffff;
    margin-bottom: 16px;
    width: 100%;
}

#bloc-royale-image {
   background-image: url(../images/about\ -10.png);
    width: 38%;
    height: 550px;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}

#bloc-royale-texte ul li {
    font-size: 0.80rem;
    font-weight: 300;
    line-height: 1.8;
    color: white;
    position: relative;
    width: 100%;
}

li::marker{color: red;}

.nav-vertical {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 115px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    padding-right: 28px;
    gap: 24px;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(3px);
    color:white;
}

.nav-vertical a{
  color:white;
  text-decoration: none;
}

.bloc-programme{ 
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: #2a2a2a;}

/* ======================================================
   PROGRAMME — corrigé : remplacement du position:absolute
   + largeurs fixes en px (qui ne marchaient que sur grand
   écran) par du Flexbox responsive. Une seule règle pour
   tous les blocs #top-programmeXX et #programme-imageXX
   au lieu de la répéter 6 fois avec des valeurs différentes.
   ====================================================== */
#top-programme01,
#top-programme02 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  width: 90%;
  max-width: 1300px;
  margin: 0 auto 80px auto;
  padding: 40px;
  border: 4px solid red;
  box-sizing: border-box;
}

/* Pas besoin de flex-direction ici : l'alternance affiche/texte
   vient simplement de l'ordre des divs dans le HTML (l'affiche est
   en premier pour les films 1/3/5, en second pour les films 2/4/6). */

/* .poster-wrap réserve la bonne place dans la mise en page flex
   (comme le faisait #programme-imageXX avant) — c'est LUI que le
   texte "voit". L'affiche à l'intérieur peut alors déborder de ce
   cadre avec position:absolute.
   IMPORTANT : flex-grow est à 0 ici (le "1" du milieu) pour que
   la largeur du cadre reste stable et prévisible — avant, le
   cadre "grandissait" pour remplir l'espace vide du
   justify-content:center, et le débordement négatif se faisait
   avaler par cet espace vide au lieu de dépasser du bord rouge. */
.poster-wrap {
  position: relative;
  flex: 0 1 420px;
  width: 420px;
  height: 630px;
}

[id^="programme-image"] {
  position: absolute;
  top: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  border-radius: 4px;
}

/* côté qui dépasse : vers l'extérieur du cadre seulement
   (gauche pour la 1ère affiche du bloc, droite pour la 2e) —
   uniquement en largeur, la hauteur reste alignée sur le cadre */
.poster-wrap:first-child [id^="programme-image"] {
  left: -60px;
  right: 0;
}
.poster-wrap:last-child [id^="programme-image"] {
  left: 0;
  right: -60px;
}

#programme-image01{ background-image:url(../images/midsommar_xlg.jpg); }
#programme-image02{ background-image: url(../images/in-the-mood-for-love-64a9abe4947b9.jpg); }
#programme-image03{ background-image:url(../images/the-social-network-55ec74738c7eb.jpg); }
#programme-image04{ background-image:url(../images/the-shape-of-water-5a4e4240b8afd.jpg); }
#programme-image05{ background-image:url(../images/28\ years\ later.png); }
#programme-image06{ background-image:url(../images/chungking-express-5391fd6b1be0b.jpg); }

#product-info {
  flex: 1 1 380px;
  max-width: 550px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: white;
}

#product-info p {
  font-size: 1rem;
  margin-bottom: 12px;
}

#film-titre{
  color:white;
  font-size: 1.3rem;
  margin-bottom: 6px;
}

#reservez-btn {
 border: red solid 3px;
  border-radius: 50px;
  padding: 10px 25px;
  cursor: pointer;
  font-size: 1rem;
  background-color:#2a2a2a;
  color: white;
  transition:background 0.3s ease;
  align-self: flex-start;
}

#reservez-btn:hover {
  background:white;
  color: black;}   

.bloc-newsletter{ 
  margin: 0;
  padding: 0;
  width: 100%;
  height:auto;
} 

p {
  font-family: "Raleway", sans-serif;
  font-size: 18px;
  color:white;}

li{
  font-family: "Raleway", sans-serif;
  font-size: 18px;
  color:white;}

#paragraphe {
  margin-top:50px;
  margin-bottom: 100px;
}
#formulaire{
  width: 86%;
  margin-left: 80px;
} 
  
.boite {
  border: 1px dashed lightblue;
  padding-left: 430px;
  padding-right: 430px;
  padding-bottom: 50px;
  padding-top: 50px;
    }
label {
  display: inline-block;
  width: 120px;
  font-size: 13px;
  color:white;
    }

input, select {
   width: 500px;
   padding: 5px;
   margin-bottom: 10px;
   font-size: 18px;
   font-family: raleway;
    }

button {
      display: block;
      margin: 15px auto;
      padding: 8px 30px;
      background-color: #eeeeee;
      border: none;
      cursor: pointer;
    }

button:hover {
      background-color: #e8442a;
      color: white;
    }

.bloc-infos{ 
   margin: 0;
   padding: 0;
   width: 100%;
   height:auto;
  } 

/* ======================================================
   INFOS PRATIQUES — corrigé : le iframe avait des
   attributs width="1780" height="880" fixes dans le HTML,
   ça débordait de sa boîte et le texte se retrouvait
   par-dessus la carte. Technique "iframe responsive" :
   le parent a une hauteur fixe + overflow:hidden, et le
   iframe est étiré en position:absolute à 100%/100%.
   ====================================================== */
#infos-map{
   position: relative;
   width: 100%;
   height: 500px;
   overflow: hidden;
   border-radius: 12px;
   margin-top: 20px;
   margin-bottom: 30px;
}

#infos-map iframe {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   border: 0;
}

#adresse {
  display:flex; 
  flex-direction: column;}

#infos-texte {
  padding-left:100px;
  padding-right: 100px;
}

h3{
  font-family: raleway;
  font-size: 20px;
  color:white;
}
h4 {color: #cc0000;}
.contacts-txt {
  display: flex;
  width: 100%;
  justify-content: center;}

#txt-droite{
  padding: 50px;
}

#contact-img{
  background-image: url(../images/Cinematek.logopng.png);}
.bloc-contact {
  padding-bottom: 40px;
}

.bloc-footer{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height:fit-content;
background-color: #121212 ;}

#footer-txt{  display: flex;
  width: 100%;
   align-items: center;
  justify-content: center;
padding: 20px;
}
#footer-txt p {
  font-size: 16px;
}

  @media (max-width: 700px) {

    /* --- HERO --- */
    .hero {
        height: 60vh;
        background-position: center;
    }

    .hero-texte {
        font-size: 1.6rem;
        left: 5%;
        top: 55%;
        transform: translateY(-50%);
        max-width: 90%;
    }

    .search-bar {
        right: 20px;
        width: 150px;
        padding: 5px 10px;
    }

    /* --- NAVIGATION VERTICALE → devient horizontale --- */
    .nav-vertical {
        position: static;
        width: 100%;
        height: auto;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;
        padding: 10px 0;
        background: rgba(255,255,255,0.1);
        backdrop-filter: blur(2px);
    }

    .nav-vertical a {
        font-size: 0.8rem;
    }

    /* --- ABOUT : image + texte passent en colonne --- */
    .bloc-image-texte {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    #imgblock {
        width: 90%;
        height: 250px;
        margin: 0;
    }

    #bloc-texte p {
        width: 90%;
        padding: 0;
        font-size: 0.9rem;
        line-height: 1.6;
    }

    #about-titre,
    #sous-titre {
        margin-left: 0;
        text-align: center;
        padding-left: 0;
    }

    /* --- SECTION ROYALE --- */
    .bloc-royale {
        flex-direction: column;
        align-items: center;
        padding-left: 0;
    }

    #bloc-royale-image {
        width: 90%;
        height: 300px;
        margin: 20px 0;
    }

    #bloc-royale-texte {
        width: 90%;
    }

    #bloc-royale-texte p,
    #bloc-royale-texte ul li {
        width: 100%;
        font-size: 0.9rem;
    }

    /* --- PROGRAMME : chaque film devient une colonne --- */
    #top-programme01,
    #top-programme02 {
        flex-direction: column;
        width: 100%;
        margin-left: 0;
        padding: 20px;
        gap: 20px;
    }

    .poster-wrap {
        position: static;
        width: 100%;
        max-width: 100%;
        height: 250px;
    }

    [id^="programme-image"],
    .poster-wrap:first-child [id^="programme-image"],
    .poster-wrap:last-child [id^="programme-image"] {
        position: static;
        top: auto;
        bottom: auto;
        left: auto;
        right: auto;
        width: 100%;
        height: 100%;
    }

    #product-info {
        width: 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    #product-info p {
        width: 100%;
        font-size: 0.9rem;
    }

    #reservez-btn {
        margin: 20px auto;
        align-self: center;
    }

    /* --- NEWSLETTER --- */
    .boite {
        padding: 20px;
        width: 90%;
        margin: 0 auto;
    }

    input, select {
        width: 100%;
    }

    #formulaire {
        margin-left: 0;
        width: 100%;
    }

    /* --- INFOS PRATIQUES --- */
    #infos-map {
        height: 300px;
    }

    #infos-texte {
        padding: 0 20px;
    }

    /* --- CONTACT --- */
    .contacts-txt {
        flex-direction: column;
        padding: 20px;
    }

    #txt-gauche,
    #txt-droite {
        padding: 0;
        width: 100%;
    }

    /* --- FOOTER --- */
    #footer-txt {
        padding: 20px;
        text-align: center;
    }
}

/* --- Tablette / écran moyen (≤ 1024px) --- */
@media (max-width: 1024px) {

  .search-bar {
    right: 130px;
    width: 160px;
  }

  #logoimg {
    width: 180px;
    padding: 20px 24px;
  }

  .bloc-image-texte {
    flex-wrap: wrap;
  }

  #imgblock {
    width: 60%;
    margin-left: 40px;
  }

  #bloc-texte {
    width: 100%;
  }

  #bloc-texte p {
    width: 70%;
    padding-left: 40px;
    padding-top: 40px;
  }

  #about-titre {
    margin-left: 40px;
  }

  #sous-titre {
    padding-left: 40px;
  }

  .bloc-royale {
    padding-left: 40px;
  }

  #bloc-royale-image {
    width: 45%;
    height: 400px;
  }

  #infos-texte {
    padding-left: 40px;
    padding-right: 40px;
  }

  /* --- le gros du bug : formulaire newsletter --- */
  .boite {
    padding-left: 40px;
    padding-right: 40px;
  }

  #formulaire {
    margin-left: 40px;
    width: 90%;
  }

  input, select {
    width: 100%;
    max-width: 500px;
    box-sizing: border-box;
  }
}