/* ═════════════ Page d'accueil (le thème commun est dans assets/commun/css/theme.css) ═════════════ */
:root { --rayon: 1.25rem; }

/* ─── Hero ─── */
.hero {
  position: relative; overflow: hidden;
  padding: 10rem 0 6rem;
  background:
    radial-gradient(1200px 500px at 50% -10%, var(--bleu-100), transparent 70%),
    linear-gradient(180deg, var(--bleu-50) 0%, #fff 100%);
}
.hero-bulle { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; }
.hero-bulle-1 { width: 380px; height: 380px; background: var(--bleu-300); top: 60px; left: -120px; }
.hero-bulle-2 { width: 320px; height: 320px; background: #bae6fd; bottom: -80px; right: -100px; }
.hero-eyebrow {
  display: inline-block; margin-bottom: 1.25rem;
  padding: .4rem 1rem; border-radius: 999px;
  background: #fff; color: var(--bleu-700);
  font-size: .875rem; font-weight: 600;
  box-shadow: 0 4px 14px -6px rgba(11, 92, 171, .35);
}
.hero-titre {
  font-size: clamp(2.3rem, 5.5vw, 4rem);
  font-weight: 800; line-height: 1.1; letter-spacing: -.02em;
  color: var(--bleu-900); margin-bottom: 1.25rem;
}
.hero-texte { font-size: 1.15rem; max-width: 40rem; margin: 0 auto 2rem; }

/* ─── Section solutions ─── */
.section-solutions { padding: 5rem 0; }
.section-titre { font-weight: 800; color: var(--bleu-900); letter-spacing: -.01em; }
.section-sous-titre { color: #5b7189; margin: 0; }

.carte-solution {
  border: 1px solid #e3eefb; border-radius: var(--rayon);
  overflow: hidden; text-decoration: none; color: inherit;
  background: #fff;
  box-shadow: 0 10px 30px -18px rgba(10, 37, 64, .35);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.carte-solution:hover, .carte-solution:focus-visible {
  transform: translateY(-6px);
  border-color: var(--bleu-300);
  box-shadow: 0 24px 40px -20px rgba(17, 112, 214, .45);
}
.carte-visuel {
  height: 230px; display: grid; place-items: center;
  background: linear-gradient(160deg, var(--bleu-50), var(--bleu-100));
  padding: 1.25rem; overflow: hidden;
}
.carte-visuel img {
  width: 100%; height: 100%; min-height: 0; object-fit: contain;
  transition: transform .4s ease;
}
.carte-solution:hover .carte-visuel img { transform: scale(1.05); }
.carte-visuel-icone { background: linear-gradient(135deg, var(--bleu-600), var(--cyan-400)); }
.carte-visuel-icone i { font-size: 5rem; color: rgba(255, 255, 255, .92); transition: transform .4s ease; }
.carte-solution:hover .carte-visuel-icone i { transform: scale(1.1); }

.carte-badge {
  align-self: flex-start;
  padding: .3rem .75rem; border-radius: 999px; margin-bottom: .9rem;
  background: var(--bleu-100); color: var(--bleu-700);
  font-size: .8rem; font-weight: 600;
}
.carte-titre { font-size: 1.3rem; font-weight: 700; color: var(--bleu-900); margin-bottom: .6rem; }
.carte-texte { font-size: .975rem; line-height: 1.6; margin-bottom: 1.25rem; }
.carte-lien { font-weight: 700; color: var(--bleu-600); }
.carte-lien i { display: inline-block; transition: transform .25s ease; }
.carte-solution:hover .carte-lien i { transform: translateX(4px); }

/* ─── Atouts ─── */
.section-atouts { padding: 4rem 0 5rem; background: var(--bleu-50); }
.atout-icone {
  width: 3.5rem; height: 3.5rem; margin: 0 auto 1rem;
  display: grid; place-items: center; border-radius: 1rem;
  background: #fff; color: var(--bleu-600); font-size: 1.5rem;
  box-shadow: 0 8px 20px -12px rgba(11, 92, 171, .5);
}
.atout-titre { font-size: 1.1rem; font-weight: 700; color: var(--bleu-900); }
.atout-texte { color: #5b7189; margin: 0; }

/* ─── Contact ─── */
.section-contact { padding: 5rem 0; }
.contact-carte {
  max-width: 560px; padding: 2.75rem 2rem;
  background: linear-gradient(180deg, #fff, var(--bleu-50));
  border: 1px solid #e3eefb; border-radius: 1.75rem;
  box-shadow: 0 20px 40px -24px rgba(10, 37, 64, .35);
}
.contact-photo {
  display: inline-block; padding: 4px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bleu-600), var(--cyan-400));
  margin-top: -5.5rem; margin-bottom: 1rem;
  box-shadow: 0 10px 24px -10px rgba(17, 112, 214, .6);
}
.contact-photo img {
  display: block; width: 110px; height: 110px; border-radius: 50%;
  object-fit: cover; border: 4px solid #fff; background: #fff;
}
.contact-surtitre { margin: 0 0 .25rem; font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--bleu-600); }
.contact-nom { font-weight: 800; color: var(--bleu-900); margin-bottom: .75rem; }
.contact-texte { margin: 0 auto 1.75rem; max-width: 26rem; }

/* ─── Accessibilité ─── */
@media (max-width: 767.98px) {
  .hero { padding: 8rem 0 4rem; }
  .section-contact { padding: 5.5rem 0 4rem; }
}

/* ─── Complément d'activité ─── */
.section-activite { padding: 5rem 0 1rem; }
.activite-carte {
  background: #fff; border: 1px solid var(--bordure); border-radius: 2rem; overflow: hidden;
  box-shadow: 0 30px 60px -34px rgba(10, 37, 64, .45); max-width: 1080px; margin: 0 auto;
}
.activite-visuel { min-height: 280px; position: relative; }
.activite-visuel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.activite-eyebrow {
  display: inline-block; padding: .35rem .9rem; border-radius: 999px; background: #fff4e0; color: #9a5b00;
  font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.activite-liste { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: .6rem; }
.activite-liste i { color: var(--bleu-600); margin-right: .45rem; }
.activite-liste .bi-gift { color: #d97706; }
