style.css

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f9f9f9;
    margin: 0;
    padding: 40px 20px;
    color: #333;
    overflow-x:hidden;
}

.portfolio-section {
    max-width: 1200px;
    margin: 0 auto;
}

.portfolio-section h2 {
    text-align: center;
    font-size: 2.5rem;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.portfolio-section .subtitle {
    text-align: center;
    color: #666;
    margin-bottom: 40px;
}

/* Grille Responsive (Mobile First) */
.gallery-grid {
    display: grid;
    grid-template-columns: 1fr; /* 1 seule colonne sur mobile */
    gap: 20px;
}

/* Conteneur d'image */
.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    height: 300px; /* Hauteur fixe par défaut */
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Évite que l'image soit déformée */
    transition: transform 0.5s ease;
}

/* Effet de survol (Zoom + Assombrissement élégant) */
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.overlay span {
    color: #fff;
    font-size: 1.2rem;
    font-weight: 600;
    border: 2px solid #fff;
    padding: 10px 20px;
    text-transform: uppercase;
}

.gallery-item:hover img {
    transform: scale(1.1); /* Zoom de l'image */
}

.gallery-item:hover .overlay {
    opacity: 1; /* Apparition du texte */
}

/* --- RESPONSIVE : Tablettes et Écrans --- */
@media (min-width: 768px) {
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr); /* 3 colonnes sur PC */
    }

    /* Gestion des formats spéciaux sur grand écran */
    .gallery-item.wide {
        grid-column: span 2; /* Prend 2 colonnes de large */
    }

    .gallery-item.tall {
        grid-row: span 2; /* Prend 2 lignes de haut */
        height: 620px; /* Ajustement de la hauteur */
    }
  }
body {
 .hero{
  width:100%;
  overflow:hidden;
}

  .hero::before{
  filter: contrast(1.05) saturate(0.9);
  animation: heroZoom 14s ease forwards;
}
}

:root{
  --bg:#221812;
  --surface:#221a14;
  --text:#f5f1e8;
  --muted:#b9b2a6;
  --line:rgba(255,255,255,0.07);
  --accent:#c8a882;
  --max-width:1450px;

 


--accent:#c8a882;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
  line-height:1.7;
}



/* =========================
   TYPOGRAPHY PREMIUM RESET
========================= */

h1,h2,h3{
  font-family:'Cormorant Garamond',serif;
  font-weight:200;
  letter-spacing:-0.02em;
}

p{
  color:var(--muted);
}

/* =========================
   CONTAINER
========================= */

.container{
  width:min(92%, var(--max-width));
  margin:auto;
}

/* =========================
   SECTIONS (IMPORTANT RENDU LUXE)
========================= */

.section{
  padding:160px 0;
  position:relative;
}

/* ligne très fine type editorial */
.section::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:var(--line);
}

/* =========================
   EYEBROW
========================= */

.eyebrow {
  display: inline-block;
  font-size: 25px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: white;

  padding: 10px 10px;
  border-radius: 10px;

  background: rgba(0, 0, 0, 0.20);

  backdrop-filter: blur(1px);

  margin-bottom: 16px;
}


/* =========================
   HERO (gros upgrade visuel)
========================= */
.hero::before{
  content:"";
  position:absolute;
  inset:0;

  background:
    linear-gradient(
      to bottom,
      rgba(23,17,13,0.20),
      rgba(23,17,13,0.60),
      rgba(15,10,8,0.92)
    ),
    url('assets/images/hero.webp');

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;

  filter:
    contrast(1.04)
    brightness(0.88)
    saturate(0.92);

  transform:scale(1.04);

  animation:heroZoom 14s ease forwards;
}

html,
body{
  overflow-x:hidden;
  width:100%;
}

body{
  position:relative;
}

section{
  overflow:hidden;
}

.hero{
  overflow:hidden;
}

.hero{
  width:100%;
  overflow:hidden;
}

.hero {
  padding-top: 140px;
}

.hero{
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  position:relative;
}

.hero-content{
  position:relative;
  z-index:2;
  padding-bottom:120px;

  display:flex;
  flex-direction:column;
  gap:28px;
  max-width:900px;
}
@keyframes heroZoom{
  from{
    transform:scale(1.08);
  }
  to{
    transform:scale(1);
  }
}
.title{
  font-size:clamp(3.2rem,8vw,7.4rem);
  line-height:0.95;
  max-width:1100px;
}

.hero p{
  margin-top:34px;
  max-width:650px;
  color:rgba(255,255,255,0.72);
}

/* =========================
   BUTTONS (plus luxe)
========================= */

.btn{
  padding:16px 30px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.18);
  background:transparent;
  color:var(--text);
  transition:0.4s ease;
  display:inline-block;
}

.btn:hover{
  background:var(--text);
  color:var(--bg);
  transform:translateY(-2px);
}
.btn-primary{
  background: transparent;
  color: var(--text);
  border:1px solid rgba(255,255,255,0.18);
}

/* =========================
   MANIFESTO (plus éditorial)
========================= */

.manifesto{
  display:grid;
  grid-template-columns:1.3fr 0.7fr;
  gap:90px;
  align-items:end;
}

.manifesto-text{
  font-size:clamp(2.2rem,5vw,4.8rem);
  line-height:1.05;
}

/* =========================
   SERVICES (plus architecture)
========================= */
@media (max-width: 768px){

  .services-grid{
    grid-template-columns: 1fr !important;
  }

}

img{
  max-width:100%;
  display:block;
}

*{
  box-sizing:border-box;
}

.service{
  position:relative;
  overflow:hidden;
  padding:40px;
  display:flex;
  gap:30px;
  border:1px solid rgba(255,255,255,0.06);
  background:linear-gradient(145deg, #1a1410, #15100c);
}

.service::before{
  content:"";
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0.70;
  filter:contrast(0.8) brightness(0.8);
  z-index:0;
}

.services-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:50px;
}

.service{
  background:linear-gradient(145deg, #161616, #121212);
  border:1px solid rgba(140, 97, 97, 0.06);
  padding:46px;
  min-height:340px;
  transition:0.6s ease;
  border-radius: 15px;
  overflow:hidden;
}

.service:hover{
  transform:translateY(-8px);
  border-color:rgba(255,255,255,0.14);
}

.service h3{
  font-size:2.6rem;
  margin-bottom:18px;
}
.service::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,0.10),
    rgba(0,0,0,0.2)
  );
  z-index:1;
}
.service > div{
  position:relative;
  z-index:2;
}
.service:nth-child(1)::before{
  background-image:url('assets/images/cloisons.jpg');
}

.service:nth-child(2)::before{
  background-image:url('assets/images/plafond.jpg');
}

.service:nth-child(3)::before{
  background-image:url('assets/images/isolation.jpg');
}

.service:nth-child(4)::before{
  background-image:url('assets/images/ossature.jpg');
}

/* =========================
   GALLERY (effet premium)
========================= */
.overlay {
  pointer-events: none;
}
.gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* CARD */
.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  transition: transform 0.35s ease;
}

/* IMAGE */
.gallery-item img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.gallery-item img,
.overlay {
  pointer-events: auto !important;
}
/* CONTENT */
.gallery-content {
  position: absolute;
  inset: auto 0 0 0;
  padding: 20px;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.72),
    rgba(0,0,0,0)
  );
  color: white;
}

/* TITLES */
.gallery-content h3 {
  font-size: 18px;
  margin-bottom: 6px;
  font-weight: 500;
}

.gallery-content p {
  font-size: 13px;
  line-height: 1.5;
  opacity: 0.9;
}

/* HOVER */
.gallery-item:hover img {
  transform: scale(1.05);
}




/* =========================
   PROCESS (plus design studio)
========================= */

.process-item{
  display:grid;
  grid-template-columns:120px 1fr 1fr;
  gap:50px;
  padding-bottom:50px;
  border-bottom:1px solid var(--line);
}

.process-step{
  color:var(--muted);
}

/* =========================
   CTA (très premium)
========================= */

.cta{
  text-align:center;
  padding:200px 0;
}

.cta h2{
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.2;
}
/* =========================
   ANIMATION (plus fluide)
========================= */

.fade-up{
  opacity:0;
  transform:translateY(50px);
  transition:1.2s cubic-bezier(.2,.8,.2,1);
}

.fade-up.visible{
  opacity:1;
  transform:translateY(0);
}

/* =======================
   NAVBAR BASE (STICKY)
======================= */

.nav{
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(14,14,14,0.55);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

/* container */
.nav-inner{
  width: min(94%, var(--max-width));
  margin: auto;
  height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* =======================
   LOGO
======================= */

.logo{
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.9rem;
  letter-spacing: 0.04em;
  color: var(--text);
  text-decoration: none;
}

/* =======================
   MENU DESKTOP
======================= */

.nav-links{
  display: flex;
  gap: 42px;
  font-size: 0.9rem;
  color: var(--muted);
}

.nav-links a{
  position: relative;
  transition: 0.4s ease;
  color: inherit;
  text-decoration: none;
}

.nav-links a::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;
  width:0%;
  height:1px;
  background:var(--text);
  transition:0.4s ease;
}

.nav-links a:hover{
  color: var(--text);
}

.nav-links a:hover::after{
  width: 100%;
}

/* =======================
   BURGER (hidden desktop)
======================= */

.burger{
  display: none;
  font-size: 28px;
  background: none;
  border: none;
  color: var(--text);
  cursor: pointer;
}

/* =======================
   MOBILE
======================= */

@media (max-width: 768px){

  /* burger visible */
  .burger{
    display: block;
  }

  /* logo plus petit */
  .logo{
    font-size: 1.4rem;
  }

  /* menu caché par défaut */
  .nav-links{
    display: none;
    position: absolute;
    top: 92px;
    right: 20px;
    flex-direction: column;
    gap: 14px;
    background: rgba(14,14,14,0.95);
    padding: 16px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.08);
  }

  /* menu ouvert */
  .nav-links.active{
    display: flex;
  }
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-row {
  display: flex;
  gap: 12px;
}

input, select, textarea {
  
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  font-size: 14px;
  outline: none;
  transition: border 0.2s ease;
  background: #fff;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #999;
}

textarea {
  resize: vertical;
  min-height: 120px;
}

button {
  padding: 12px 16px;
  border: none;
  border-radius: 8px;
  background: #111;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

button:hover {
  opacity: 0.85;
}

 
.lightbox{
  position:fixed;
  inset:0;

  background:
    radial-gradient(
      circle at top,
      rgba(255,255,255,0.10) 0%,
      rgba(255,255,255,0.03) 20%,
      rgba(0,0,0,0.96) 65%
    );

  backdrop-filter:blur(24px);

  display:flex;
  align-items:center;
  justify-content:center;

  opacity:0;
  visibility:hidden;

  transition:0.35s ease;

  z-index:9999;
}

.lightbox img{
   box-shadow:
    0 30px 80px rgba(0,0,0,0.55);
  opacity:0;
  transform:scale(0.92);
}

.lightbox.active img{
  opacity:1;
  transform:scale(1);
}

.lightbox.active{
  opacity:1;
  visibility:visible;
}

.lightbox img{
  max-width:90vw;
  max-height:78vh;

  object-fit:contain;

  border-radius:10px;

  transform:scale(0.96);
  transition:0.35s ease;
}

.lightbox.active img{
  transform:scale(1);
}

.lightbox img{
  opacity:0;
  transform:scale(0.92);
}

.lightbox.active img{
  opacity:1;
  transform:scale(1);
} 

.lightbox-btn:hover{
  background:rgba(255,255,255,0.2);
}

.lightbox-btn.prev{
  left:30px;
}

.lightbox-btn.next{
  right:30px;
}

.lightbox-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:24px;
}

.lightbox-caption{
  color:white;
  font-size:0.95rem;
  letter-spacing:0.08em;
  text-transform:uppercase;

  padding:12px 18px;
  border:1px solid rgba(255,255,255,0.2);

  background:rgba(255,255,255,0.05);
  backdrop-filter:blur(12px);

  border-radius:999px;
}


.overlay{
  pointer-events:none;
}

/* =========================
   LINKS
========================= */

a,
a:visited,
a:hover,
a:active{
  color:var(--text);
  text-decoration:none;
}