/* =========================
   HOME — HERO SLIDER + CTA
   ========================= */

.hero-slider{
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 520px;
  overflow: hidden;
}

/* SLIDES */
.hero-slide{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 900ms ease;
  transform: scale(1.02);
  will-change: opacity, transform;
}

.hero-slide.active{
  opacity: 1;
  animation: kenburns 8s ease-out forwards;
}

.hero-slide:not(.active){
  animation: none;
}

/* KEN BURNS */
@keyframes kenburns{
  0%{ transform: scale(1.02); }
  100%{ transform: scale(1.10); }
}

/* OVERLAY (lisibilité bouton) */
.hero-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.45));
  pointer-events:none;
}

/* CTA */
.hero-cta-wrap{
  position:absolute;
  left:60px;
  bottom:60px;
  z-index:2;
  pointer-events:none;
}

.hero-btn{
  pointer-events:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:54px;
  padding:0 22px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(10,10,14,.35);
  color:rgba(255,255,255,.92);
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:13px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
  opacity:.92;
  transition: transform .14s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
}

.hero-btn:hover{
  transform: translateY(-2px);
  opacity:1;
  background:rgba(10,10,14,.50);
  border-color:rgba(255,255,255,.34);
}

.hero-btn:active{
  transform: translateY(0);
}

/* =========================
   HOME — PORTFOLIO PREVIEW
   ========================= */

.home-portfolio{
  padding: 90px 0 80px;
}

.home-portfolio-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}

.home-portfolio-title{
  margin:0;
  font-size:32px;
  letter-spacing:.02em;
}

.home-portfolio-link{
  color:var(--accent);
  font-weight:800;
  font-size:14px;
  letter-spacing:.04em;
  transition:opacity .16s ease, text-decoration-color .16s ease;
}

.home-portfolio-link:hover{
  opacity:.82;
  text-decoration:underline;
}

/* grid */
.home-portfolio-grid{
  display:grid;
  grid-template-columns:repeat(12, 1fr);
  gap:12px;
}

/* cartes image */
.shot{
  grid-column:span 4;
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  min-height:260px;
  box-shadow:0 18px 50px rgba(0,0,0,.30);
}

.shot-img{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  transform:scale(1.02);
  transition:transform .45s ease, filter .45s ease;
  will-change:transform;
}

.shot-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:flex-end;
  padding:16px;
  background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.65));
  opacity:.98;
}

.shot-label{
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(255,255,255,.92);
  background:rgba(10,10,14,.35);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  padding:8px 12px;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.shot:hover .shot-img{
  transform:scale(1.08);
  filter:brightness(1.08);
}

/* =========================
   HOME — ABOUT (storytelling)
   ========================= */

.home-about{
  padding:70px 0 100px;
  border-top:1px solid rgba(255,255,255,.08);
}

.home-about-grid{
  display:grid;
  grid-template-columns:420px 1fr;
  gap:42px;
  align-items:center;
}

.about-content{
  max-width:640px;
}

/* Photo */
.about-photo{
  position:relative;
  width:100%;
  aspect-ratio:4 / 5;
  border-radius:22px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 70px rgba(0,0,0,.35);
  overflow:hidden;
}

/* Contenu */
.about-topline{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  color:rgba(255,255,255,.70);
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:11px;
}

.about-pill{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  letter-spacing:.10em;
}

.about-dot{
  width:5px;
  height:5px;
  border-radius:999px;
  background:rgba(255,255,255,.35);
}

.about-title{
  margin:0 0 10px;
  font-size:40px;
  line-height:1.06;
  letter-spacing:.01em;
}

.about-accent{
  display:inline-block;
  border-bottom:2px solid rgba(255,255,255,.22);
  padding-bottom:2px;
}

.about-lead{
  margin:0 0 18px;
  color:rgba(255,255,255,.84);
  line-height:1.75;
  font-size:15px;
  max-width:70ch;
}

/* Corps + ligne accent */
.about-body{
  color:rgba(255,255,255,.78);
  line-height:1.78;
  font-size:15px;
  max-width:76ch;
  border-left:2px solid var(--accent);
  padding-left:22px;
  margin-top:14px;
}

.about-body p{
  margin:0 0 14px;
}

/* Citation */
.about-quote{
  margin:18px 0 0;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  position:relative;
  overflow:hidden;
}

.about-quote::before{
  content:"“";
  position:absolute;
  top:-14px;
  left:14px;
  font-size:70px;
  line-height:1;
  color:rgba(255,255,255,.10);
  font-weight:900;
}

.about-quote p{
  margin:0;
  color:rgba(255,255,255,.86);
  line-height:1.7;
  font-size:15px;
}

/* Signature */
.about-sign{
  margin-top:14px;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.60);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
}

.sign-line{
  height:1px;
  width:44px;
  background:rgba(255,255,255,.18);
}

/* Actions */
.about-actions{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:20px;
}

.about-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:52px;
  padding:0 18px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.92);
  color:#0b0b0f;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px;
  transition:transform .14s ease, opacity .14s ease;
}

.about-btn:hover{
  transform:translateY(-2px);
}

.about-btn:active{
  transform:translateY(0);
}

.about-link{
  color:var(--accent);
  font-weight:800;
  letter-spacing:.04em;
  transition:opacity .16s ease;
}

.about-link:hover{
  opacity:.82;
  text-decoration:underline;
}

/* =========================
   HOME — PROCESS (étapes)
   ========================= */

.home-process{
  padding:90px 0 100px;
  border-top:1px solid rgba(255,255,255,.06);
}

.process-head{
  text-align:center;
  margin-bottom:44px;
}

.process-title{
  margin:0 0 10px;
  font-size:34px;
  letter-spacing:.02em;
}

.process-sub{
  color:rgba(255,255,255,.65);
  max-width:560px;
  margin:0 auto;
  line-height:1.65;
}

.process-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.process-card{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:26px;
  transition:transform .22s ease, border-color .22s ease, background .22s ease;
}

.process-card:hover{
  transform:translateY(-6px);
  border-color:rgba(138,161,89,.70);
  background:rgba(255,255,255,.04);
}

.process-number{
  font-size:40px;
  font-weight:900;
  color:var(--accent);
  letter-spacing:.04em;
  margin-bottom:10px;
}

.process-card h3{
  margin:0 0 10px;
  font-size:18px;
}

.process-card p{
  margin:0;
  color:rgba(255,255,255,.70);
  line-height:1.65;
  font-size:15px;
}

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

@media (max-width: 900px){
  .hero-cta-wrap{
    left:30px;
    bottom:40px;
  }

  .hero-btn{
    height:50px;
    padding:0 18px;
    border-radius:12px;
  }

  .shot{
    grid-column:span 12;
    min-height:240px;
  }

  .home-about-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .about-title{
    font-size:32px;
  }

  .about-content{
    max-width:100%;
  }

  .process-grid{
    grid-template-columns:1fr;
  }
}

/* iOS / mobiles modernes */
@supports (height: 100svh){
  .hero-slider{
    height: 100svh;
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce){
  .hero-slide.active{
    animation:none;
  }

  .shot-img{
    transition:none;
  }

  .process-card{
    transition:none;
  }
}