/* HERO */
.hero{
  position:relative;
  min-height:440px;
  background:#ddd url("../images/hero.jpg") center/cover no-repeat;
  padding:50px;
}

.hero .box{
  position:absolute;
  right:5%;
  background:#fff;
  width:min(640px,92%);
  padding:28px 28px 24px;
  box-shadow:0 18px 60px rgba(0,0,0,.18);
}

.hero h2{
  margin:0 0 10px;
  font-family:"Playfair Display",serif;
  font-size:44px;
  line-height:1.05;
}

.hero p{ margin:0 0 18px; color:#333; }

/* SECTIONS */
.section{ padding:60px 0; }
.title{ font-size:44px; font-weight:800; text-align:center; margin:0 0 12px; }
.subtitle{ text-align:center; color:#555; margin:0 0 40px; line-height:1.6; }

/* GRIDS */
.grid3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px; align-items:stretch; }
.card{ background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.1); transition: all .3s ease; }
.card:hover{ box-shadow:0 16px 40px rgba(0,0,0,.15); transform: translateY(-4px); }
.card img{ width:100%; display:block; height:100%; object-fit:cover; }
.card .pad{ padding:24px; }

/* BAND */
.band{ background:var(--orange); color:#fff; }
.band h3{ margin:0 0 20px; text-align:center; font-size:44px; font-weight:800; }
.band .two{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; align-items:center; }
.band .three{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; margin-top:24px; }
.band .img{ position:relative; overflow:hidden; border-radius:12px; }
.img-projet{ width:100%; height:100%; object-fit:cover; display:block; }
.bloc-txt{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); padding:24px; border-radius:12px; }
.bloc-txt h2{ margin:0 0 10px; font-size:20px; }
.bloc-txt p{ margin:0; opacity:.95; }

/* ========== PARTNERS CAROUSEL ========== */
.logos-wrapper{
  position:relative;
  overflow:hidden;
  background:#fff;
  padding:30px 0;
}

.logos-container{
  display:flex;
  gap:28px;
  animation: scroll-continuous 45s linear infinite;
  will-change:transform;
}

.logos-container:hover{
  animation-play-state:paused;
}

.logoBox{
  flex:0 0 200px;
  height:120px;
  background:#fff;
  border:1px solid #f0f0f0;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
  transition: all .3s cubic-bezier(0.34, 1.56, 0.64, 1);
  padding:12px;
}

.logoBox:hover{
  box-shadow:0 12px 32px rgba(0,0,0,.15);
  transform:translateY(-6px) scale(1.05);
  border-color:#ddd;
}

.logo-part{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}

@keyframes scroll-continuous{
  0%{
    transform:translateX(0);
  }
  100%{
    transform:translateX(calc(-228px * 3));
  }
}

@media (prefers-reduced-motion:reduce){
  .logos-container{
    animation:none;
  }
}

/* CONTACT */
.contact{
  position:relative;
  background:#111 url("../images/contact-bg.jpg") center/cover no-repeat;
  padding:80px 0;
}
.contact:before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.45); }
.contact .container{ position:relative; }
.contact h3{ color:#fff; text-align:center; font-size:52px; margin:0 0 12px; }
.contact p{ color:#fff; text-align:center; margin:0 0 32px; opacity:.9; font-size:16px; }

form{
  max-width:720px;
  margin:0 auto;
  background:#fff;
  border-radius:14px;
  padding:28px;
  box-shadow:0 18px 60px rgba(0,0,0,.25);
}
label{ display:block; font-weight:700; margin:14px 0 8px; color:#222; }
input,textarea{ width:100%; padding:12px 14px; border:1px solid #e0e0e0; border-radius:8px; font:inherit; transition: all .2s ease; }
input:focus,textarea:focus{ outline:none; border-color:#ff8200; box-shadow:0 0 0 3px rgba(255,130,0,.1); }
textarea{ min-height:140px; resize:vertical; }

/* FOOTER */
footer{ background:var(--blue); color:#fff; padding:26px 0; }
.footerGrid{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; align-items:start; }
.footerGrid a{ display:block; margin:6px 0; font-weight:600; }

.newsletter{ display:flex; flex-direction:column; align-items:center; }
.newsletter input{ border:none; margin:10px; }
.newsletter .send{ background:var(--dark); color:#fff; border-radius:999px; padding:12px 18px; font-weight:800; border:none; }

.copy{ margin-top:14px; font-size:13px; opacity:.9; }

/* ========== RESPONSIVE ========== */
  .logos-container{
    animation: scroll-continuous 35s linear infinite;
  }

  .logoBox{
    flex:0 0 160px;
    height:100px;
  }

  .logo-part{
    max-width:85%;
  }
}

@media (max-width:640px){
  .logos-wrapper{
    padding:24px 0;
  }

  .logos-container{
    gap:16px;
    animation: scroll-continuous 30s linear infinite;
  }

  .logoBox{
    flex:0 0 140px;
    height:90px;
    padding:8px;
    border-radius:8px;
  }

  .logo-part{
    max-width:90%;
  }
}

@media (max-width:640px){
  .section{ padding:40px 0; }
  .title{ font-size:28px; }
  .subtitle{ font-size:14px; margin:0 0 24px; }

  .hero .box{
    width:min(90%, 500px);
    padding:20px;
  }

  .hero h2{ font-size:28px; }

  .card .pad{ padding:16px; }

  .band { padding: 40px 0; }
  .band h3{ font-size:28px; margin:0 0 16px; }
  .band .two{ gap:16px; }
  .band .three{ grid-template-columns:1fr; gap:16px; }

  .bloc-txt{ padding:16px; }
  .bloc-txt h2{ font-size:16px; }

  form{ padding:20px; }
  label{ margin:10px 0 6px; font-size:14px; }
  input,textarea{ padding:10px 12px; font-size:14px; }

  .contact h3{ font-size:28px; margin:0 0 10px; }
  .contact p{ margin:0 0 24px; }

  .footerGrid{ gap:16px; }
}
