/* ================= HERO ================= */

.section-hero {
  background: transparent;
  color: var(--color-text-white);
  padding: 0;
}
.hero-banner {
  position: relative;
  min-height: clamp(560px, 72vh, 860px);
  display: flex;
  align-items: flex-start;
  background-image: url("/assets/img/400JpgdpiLogo.jpg");
  background-size: contain;
  background-position: center 60%;
  background-repeat: no-repeat;
  background-color: var(--color-background);
  overflow: hidden;
  border-radius: calc(var(--radius) * 1.6);
}
.hero-banner {
  padding: var(--spacing-sm) 0;
}
.hero-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    160deg,
    var(--color-hero-tint-strong),
    var(--color-hero-tint)
  );
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(255, 255, 255, 0.85), transparent 22%),
    linear-gradient(to top, rgba(255, 255, 255, 0.9), transparent 24%),
    linear-gradient(to right, rgba(255, 255, 255, 0.75), transparent 18%),
    linear-gradient(to left, rgba(255, 255, 255, 0.75), transparent 18%),
    radial-gradient(60% 80% at 50% 50%, rgba(251, 118, 30, 0.2), transparent 70%);
  pointer-events: none;
}
.hero-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 70%, rgba(255, 255, 255, 0.9) 100%);
  pointer-events: none;
}
.hero-banner::after {
  content: "";
  position: absolute;
  inset: -10% -15%;
  background:
    radial-gradient(40% 40% at 30% 30%, rgba(255, 255, 255, 0.25), transparent 60%),
    radial-gradient(35% 35% at 70% 45%, rgba(251, 118, 30, 0.18), transparent 65%),
    radial-gradient(45% 45% at 50% 70%, rgba(251, 118, 30, 0.12), transparent 70%);
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.8;
}
.section-hero h1,
.section-hero p {
  color: var(--color-text-white);
}
.section-hero .btn-link {
  color: var(--color-text-white);
  border-color: var(--color-text-white);
}

.hero-content {
  position: relative;
  z-index: 2;
  width: var(--size-full);
  padding: var(--spacing-md) var(--spacing-md) calc(var(--spacing-xl) * 1.5);
  display: flex;
  justify-content: center;
  align-self: flex-start;
}

.hero-panel {
  max-width: 760px;
  padding: calc(var(--spacing-xl) * 1.2);
  border-radius: calc(var(--radius) * 1.4);
  background: rgba(251, 118, 30, 0.28);
  border: var(--size-border-thin) solid rgba(255, 255, 255, 0.45);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(5px);
  text-align: center;
  margin-top: 0;
}

.hero-text {
  min-width: 0;
}

/* ================= SERVICES ================= */

.services-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--spacing-lg);
  margin-top: var(--spacing-lg);
}

.service-card {
  background-color: var(--color-background);
  border: var(--size-border-thin) solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--spacing-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast);
  flex: 1 1 var(--size-card-min);
  max-width: var(--size-card-max);
  flex: 1 1 calc(var(--size-grid-third) - var(--spacing-lg));
  max-width: calc(var(--size-grid-third) - var(--spacing-lg));
}
.service-card:hover {
  transform: translateY(calc(var(--size-card-hover-shift) * -1));
}

@media (max-width: var(--bp-lg)) {
  .service-card {
    flex: 1 1 calc(var(--size-grid-half) - var(--spacing-lg));
    max-width: calc(var(--size-grid-half) - var(--spacing-lg));
  }
}


/* ================= FEATURES (Why choose us) ================= */

.features-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-lg);
  margin-top: var(--spacing-lg);
}

.feature-item {
  background-color: var(--color-background);
  padding: var(--spacing-lg);
  border: var(--size-border-thin) solid var(--color-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  flex: 1 1 var(--size-card-min);
  max-width: var(--size-card-max);
  text-align: left;
}

/* ================= PROJECT GALLERY ================= */

.project-gallery {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-lg);
  margin-top: var(--spacing-lg);
}

.project-card {
  flex: 1 1 var(--size-card-min);
  max-width: var(--size-card-max-small);
}
.project-card img {
  width: var(--size-full);
  height: auto;
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}


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

/* Responsive home: cartes lisibles et empilement sur mobile */
@media (max-width: 640px) {
  .hero-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .hero-panel {
    max-width: 100%;
    text-align: center;
  }
  .services-grid,
  .features-grid,
  .project-gallery {
    justify-content: center;
  }
  .service-card,
  .feature-item,
  .project-card,
  .flex-grid .flex-card {
    flex: 1 1 var(--size-grid-full);
    max-width: var(--size-full);
  }
}

@media (min-width: 641px) and (max-width: 900px) {
  .service-card,
  .feature-item,
  .project-card,
  .flex-grid .flex-card {
    flex: 1 1 calc(var(--size-grid-half) - var(--spacing-lg));
    max-width: calc(var(--size-grid-half) - var(--spacing-lg));
  }
}

@media (min-width: 901px) and (max-width: 1024px) {
  .service-card,
  .feature-item,
  .project-card,
  .flex-grid .flex-card {
    flex: 1 1 calc(var(--size-grid-third) - var(--spacing-lg));
    max-width: calc(var(--size-grid-third) - var(--spacing-lg));
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  .service-card,
  .feature-item,
  .project-card,
  .flex-grid .flex-card {
    flex: 1 1 calc(var(--size-grid-third) - var(--spacing-lg));
    max-width: calc(var(--size-grid-third) - var(--spacing-lg));
  }
}

@media (min-width: 1281px) {
  .flex-grid .flex-card {
    flex: 1 1 calc(25% - var(--spacing-lg));
    max-width: calc(25% - var(--spacing-lg));
  }
}



/* flex sample */
/* ================= FLEX GRID UTILE ================= */

.flex-grid {
  display: flex;
  flex-wrap: wrap;
  /* justify-content: space-between; */
  justify-content: center;
  gap: var(--spacing-lg);
  margin-top: var(--spacing-xl);
}
.flex-card {
  background-color: var(--color-background);
  border: var(--size-border-thin) solid var(--color-border);
  border-radius: var(--radius);
  padding: var(--spacing-lg);
  box-shadow: var(--shadow-card); /* ombre plus marquée même sans hover */
  transition: transform var(--transition-base), box-shadow var(--transition-base);
  flex: 1 1 calc(var(--size-grid-third) - var(--spacing-lg));
  max-width: calc(var(--size-grid-third) - var(--spacing-lg));
  position: relative;
  overflow: hidden; /* pour contenir la ligne accent */
}
.flex-card h3 {
  color: var(--color-primary);
}

/* Ligne accent (cachée par défaut) */
.flex-card::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0; /* 👉 tu peux mettre top:0; si tu préfères en haut */
  height: var(--size-accent-height);
  background: linear-gradient(90deg, var(--color-accent-line-start), var(--color-accent-line-end));
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--transition-base);
}

/* Effet volant + ligne accent visible */
.flex-card:hover {
  transform: translateY(calc(var(--size-card-hover-shift-lg) * -1)) scale(var(--size-hover-scale));
  box-shadow: var(--shadow-xl);
}

.flex-card:hover::after {
  transform: scaleX(1);
}
