/* Landing */


.carousel-wrapper {
    width: 100%;
    height: 75vh;
    position: relative;
    overflow: hidden;
}

.carousel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
  
  .slides {
    display: flex;
    transition: transform 0.5s ease-in-out;
    height: 100%;
  }
  
  .slide {
    flex: 0 0 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
  }
  
  .slide-background {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    filter: brightness(70%);
  }
  
  .slide-overlay {
    width: clamp(300px, 40vw, 700px);
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 1s ease-out, opacity 1s ease-out;
    opacity: 0;
    z-index: 2;
    pointer-events: none;
  }
  
  .slide.active .slide-overlay {
    opacity: 1;
    transform: translate(-50%, -50%); /* ✅ destination : centre exact */
  }  
  
  .nav-dots {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    z-index: 3;
  }
  
  .dot {
    height: 12px;
    width: 12px;
    margin: 0 5px;
    background-color: #bbb;
    border-radius: 50%;
    display: inline-block;
    cursor: pointer;
    transition: background-color 0.3s;
  }
  
  .dot.active {
    background-color: #fff;
    transform: scale(1.3);
    box-shadow: 0 0 2px #333;
  }
  
  /* Responsive */
  @media (max-width: 768px) {
    .carousel-wrapper {
      height: 65vh;
    }
  }

  @media (max-width: 480px) {
    .carousel-wrapper {
      height: 60vh;
    }
}


/* Intro compacte et lisible */
.home-intro{
  max-width: 760px;
  margin: 32px auto 16px;
  padding: 32px 16px;
  text-align: center;
}

/* H1 moins massif */
.home-intro h1{
  font-size: clamp(1.3rem, 2.1vw, 1.9rem);
  line-height: 1.3;
  margin-bottom: .6rem;
  font-weight: 700;
}

/* Paragraphe = même base que le site */
.home-intro p{
  color: #515561;
  font-size: 18px;
  line-height: 30px;
  margin: .5rem 0 .75rem 0;
}

/* "FLC 22" en léger accent, sans créer un nouveau titre */
.home-intro .brand-name{
  font-weight: 600;
}

/* Bloc texte harmonisé sous les cartes des pages matériaux */
.win-text{
  max-width: 980px;        /* même largeur que les autres sections de contenu */
  margin: 24px auto 40px;  /* espace au-dessus & surtout avant la section suivante */
  padding: 0 16px;
  text-align: center;
}

.win-text h2{
  font-size: clamp(1.2rem, 1.9vw, 1.6rem);
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 8px;
  text-transform: none;     /* pas d'upper-case forcé */
}

.win-text p{
  color: #515561;
  font-size: 18px;
  line-height: 30px;
  margin: .25rem 0;
}

/* Resserre l'espace entre les cartes et le bloc texte */
.product + .win-text{
  margin-top: 16px;
}

/* Évite que le bloc suivant colle */
.win-text + .configurateur{
  margin-top: 24px;
}

/* product card */

.productcard {
    background: #fff;
    padding: 50px 0 128px;
}

.productcardcontainer {
    max-width: 1300px;
    margin: auto;
}

.productcard .logo {
    display: flex;
    align-items: center;  
    margin-bottom: 22px;
  }
  
.productcard .sectiontitle img {
    width: 32px;
    margin-right: 16px;
}

.productcard .sectiontitle {
    text-align: center;
    margin-bottom: 64px;
}

.productcard .sectiontitle .title {
    display: flex;
}

.productcard .sectiontitle .maintitle {
    font-weight: bold;
    font-size: 40px;
    margin-bottom: 12.8px;

}
  
.productcard .sectiontitle h2 {
    font-weight: lighter;
    font-size: 19.2px;
}

.sectioncontainer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}
  
.productcard .card {
    width: 583px;
    height: 240px;
    border-radius: 20px;
    margin-top: 16px;
    transition: 0.3s;
}

.productcard .card:hover {
    transform: scale(1.05);
}

.productcard .bigcard:hover {
    transform: scale(1.03);
}

.productcard .fenetres {
    background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 100%), url(../img/prod-fenetres.webp);
    background-size: cover;
    background-position: center;
}

.productcard .portes {
    background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 100%), url(../img/prod-portes.webp);
    background-size: cover;
    background-position: center;
}

.productcard .bigcard {
    background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 100%), url(../img/prod-gamme.webp);
    background-size: cover;
    background-position: center;
    width: 583px;
    height: 498px;
    border-radius: 20px;
    margin-top: 16px;
    transition: 0.3s;
}

.productcard .cardtext {
    padding: 80px;
}

.productcard .cardtext .subtitle h3{
    color: #EDEDED;
    font-size: 16px;
    font-weight: 400;
    text-transform: uppercase;
}

.productcard .cardtext .title h2{
    color: #fff;
    font-size: 22px;
    font-weight: 700;
}


@media screen and (max-width:1200px) {
    .sectioncontainer{
      max-width: 600px;
    }
  }

@media screen and (max-width:900px) {
    .productcard .sectioncontainer{
      width: 80%;
    }

    .productcard .leftcol, .productcard .rightcol {
        width: 100%;
    }

    .productcard .card, .productcard .bigcard {
        width: 100%;
    }
}


/* A PROPOS */ 

.aboutus .container {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    background: #D9DFE9;
}

.aboutus .text {
    width: 50%;
    padding: 150px 8%;
}

.aboutus .picture {
    width: 50%;
    background: url(../img/a-propos.webp) no-repeat center;
    background-size: cover;
}

.aboutus h1 {
    color: #252628;
    margin-bottom: 40px;
    font-weight: 700;
    font-size: 36px;
}

.aboutus p {
    color: #515561;
    margin-bottom: 60px;
    font-size: 18px;
    line-height: 30px;
}

.aboutus .secondary_btn {
    color: #515561;
    padding: 1.5rem 2.5rem;
    outline: none;
    border-radius: 35px;
    border: solid 1px #515561;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: .3s;
}

.aboutus .secondary_btn:hover {
    background: rgba(0, 0, 0, 0.07);
}
@media screen and (max-width:960px) {
    .aboutus .text {
        width: 100%;
        padding: 100px 10%;
    }

    .aboutus .picture {
        width: 100%;
        height: 360px;
    }
}

@media screen and (max-width:600px) {
    .aboutus .text {
        padding: 100px 30px;
    }
}

/* Partner */

.partner .container {
    background: #fff;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}

.partner .text {
    width: 50%;
    padding: 100px 8%;
}

.partner h1 {
    color: #252628;
    margin-bottom: 40px;
    font-weight: 700;
    font-size: 36px;
}

.partner p {
    color: #515561;
    margin-bottom: 60px;
    font-size: 18px;
    line-height: 30px;
}

.partner .brand {
    width: 50%;
}

.partner .brandcontainer {
    flex-wrap: wrap;
    display: flex;
    justify-content: center;
    padding: 40px;
}

.partner .brandcard {
    width: 10vw;
    height: 10vw;
    border-radius: 20px;
    margin: 25px;
    transition: 0.3s;
}

.partner .brandimg {
    height: 100%;
    width: 100%;
}

@media screen and (max-width:960px) {
    .partner .container {
        flex-direction: column;
        margin: 20px 0;
    }

    .partner .text {
        width: 100%;
        padding: 20px 10% 50px;
    }

    .partner .brand {
        width: 100%;
    }

    .partner p {
        color: #515561;
        margin-bottom: 30px;
        font-size: 18px;
        line-height: 30px;
    }

    .partner .brandcontainer {
        margin-top: 0;
    }

    .partner .brandcard {
        width: 24vw;
        height: 24vw;
        border-radius: 20px;
        margin: 25px;
        transition: 0.3s;
    }
}


/* Review */

.review {
    background: #D9DFE9;
    padding: 128px 0;
}

.review .container {
    max-width: 1300px;
    margin: auto;
}

.review .head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 16px;
}

.review .title {
    max-width: 768px;
}

.review .title h1 {
    font-weight: bold;
    font-size: 40px;
    margin-bottom: 19px;
    color: #252628;
}

.review .title p {
    font-weight: lighter;
    font-size: 19px;
    color: #515561;
}

.review .action_btn {
    background-color: #337AB7;
    color: #fff;
    padding: 16px 24px;
    border: none;
    outline: none;
    border-radius: 25px;
    padding: 24px 40px;
    border-radius: 35px;
    cursor: pointer;
    transition: .3s; 
}

.review .action_btn:hover {
    background: #5aa2e0;
}

.review .secondary_btn {
    color: #515561;
    padding: 1.5rem 2.5rem;
    outline: none;
    border-radius: 35px;
    border: solid 1px #515561;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: .3s;
}

.review .secondary_btn:hover {
    background: rgba(0, 0, 0, 0.07);
}

.review .reviewcontainer {
    margin-top: 64px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.review .reviewcard {
    width: 388px;
    height: auto;
    border-radius: 25px;
    background: #fff;
    border: 1px solid #D4D2E3;
    padding: 48px 32px;
    margin: 16px;
}

.review .stars {
    font-size: 26px;
    color:  #D4D2E3;
    margin-bottom: 11px;
}

.review .stars .active {
    color: #F1C40F;
}

.review .text p {
    font-size: 1.125;
    color: #595959;
    line-height: 30px;
    font-weight: 400;
    margin-bottom: 24px;
}

.review .text h2 {
    font-weight: 700;
    font-size: 20px;
    line-height: 20px;
    color: #515561;
}

.toggle-wrapper { margin: 6px 0 0; text-align: right; }

.toggle-avis {
    color: #007BFF;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    padding: 0;                    /* supprime le padding excessif */
}

.toggle-avis:hover { text-decoration: underline; }

/* Assure un peu d’aération entre les paragraphes s’ils étaient perdus */
.review-short,
.review-full { margin: 0 0 12px; line-height: 1.45; }

.review .text p.toggle-wrapper {
    margin: 2px 0 0;     /* petit écart au-dessus, plus rien dessous */
    line-height: 1;      /* hauteur minimale */
}

/* Le lien lui-même : aucun padding superflu */
.review .text p.toggle-wrapper .toggle-avis {
    padding: 0;
    line-height: 1;      /* même hauteur que le parent */
}



@media screen and (max-width:992px) {
    .review .head {
        width: 80%;
        margin: auto;
    }

    .review .reviewbtn {
        margin-top: 64px;
        width: 100%;
        text-align: center;
    }

    .review .action_btn {
        padding: 19px 10%;
    }

    .review .secondary_btn {
        padding: 19px 10%;
    }

} 

/* Instagram */

.instagram {
    background: #fff;
    padding: 128px 0;
}

.instagram .container {
    max-width: 1300px;
    margin: auto;
}

.instagram .title {
    text-align: center;
    margin-bottom: 64px;
    max-width: 700px;
    margin: auto;
}

.instagram .title h1 {
    font-weight: bold;
    font-size: 40px;
    margin-bottom: 19px;
    color: #252628;
}

.instagram .title h1 b{
    color: #5D5A88;
}

.instagram .title p {
    font-weight: lighter;
    font-size: 19px;
    color: #515561;
}

.instagram .cardcontainer {
    flex-wrap: wrap;
    display: flex;
    justify-content: center;
    margin-top: 64px;
}

.instagram .card {
    width: 284px;
    height: 284px;
    border-radius: 20px;
    margin: 16px;
    overflow: hidden;
    position: relative;
    background: none !important;
}

.instagram .card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    transition: transform 0.3s ease;
    transform: translateZ(0);
    will-change: transform;
}

.instagram .card:hover img {
    transform: scale(1.02);
}

.instagram .followbtn {
    text-align: center;
    margin: 48px auto;
}

.instagram .action_btn {
    padding: 24px 40px;
    border-radius: 35px;
    background-color: #337AB7;
    color: #fff;
    border: none;
    outline: none;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: .3s;
}





@media screen and (max-width:992px) {
    .instagram .reviewbtn {
        margin-top: 64px;
        width: 100%;
        text-align: center;
    }

    .instagram .action_btn {
        padding: 24px 20%;
    }

}

@media screen and (max-width:640px) {
    .instagram .card {
        width: 176px;
        height: 176px;
        border-radius: 20px;
        margin: 5px;
    }
}