/* Retouches visuelles globales — aucune modification de structure ni de texte */

html { scroll-behavior: smooth; }

::selection { background: rgba(0, 126, 167, .2); }

body {
  color: #34413d;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* Titres */
h1, h2, h3, .h1, .h2, .h3 {
  letter-spacing: -.015em;
  color: #1f2b27;
}
h2.h1, .h1, h1 { line-height: 1.2; }

/* Header : fond translucide pour rester lisible au défilement */
header.navbar.fixed-top {
  background: rgba(255, 255, 255, .78);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  backdrop-filter: saturate(160%) blur(12px);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .05), 0 6px 20px rgba(0, 0, 0, .04);
  transition: box-shadow .3s;
}
.navbar-nav .nav-link {
  position: relative;
  font-weight: 500;
  transition: color .2s;
}
@media (min-width: 992px) {
  .navbar-nav .nav-link::after {
    content: "";
    position: absolute;
    left: 1rem; right: 1rem; bottom: .35rem;
    height: 2px;
    border-radius: 2px;
    background: var(--ar-primary);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .25s ease;
  }
  .navbar-nav .nav-link:hover::after,
  .navbar-nav .nav-link.active::after { transform: scaleX(1); }
}

/* Fil d'Ariane */
.breadcrumb { font-weight: 500; }
.breadcrumb a { text-decoration: none; transition: color .2s; }
.breadcrumb a:hover { color: var(--ar-primary); }

/* Boutons */
.btn {
  border-radius: 50rem;
  font-weight: 600;
  transition: transform .2s, box-shadow .2s, background-color .2s, color .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { box-shadow: 0 6px 16px rgba(0, 126, 167, .25); }
.btn-primary:hover { box-shadow: 0 10px 22px rgba(0, 126, 167, .32); }

/* Cartes */
.card {
  border-radius: 1.25rem;
  transition: transform .3s ease, box-shadow .3s ease;
}
.card.bg-secondary,
.card.card-hover,
.card.card-hover-primary {
  box-shadow: 0 4px 18px rgba(31, 43, 39, .06);
}
.card.card-hover:hover,
.card.card-hover-primary:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(31, 43, 39, .12);
}
.card.bg-secondary { background-color: rgba(255, 255, 255, .85) !important; border: 1px solid rgba(0, 126, 167, .08) !important; }

/* Images et galeries */
.img-fluid, .zoom-effect-img, .swiper-slide img { border-radius: 1rem; }
.rounded-lg.shadow-lg, img.shadow-lg { box-shadow: 0 18px 40px rgba(31, 43, 39, .16) !important; }
.gallery-item { transition: transform .3s ease, box-shadow .3s ease; border-radius: 2rem; }
.gallery-item:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(31, 43, 39, .16); }
video { border-radius: 1.25rem; box-shadow: 0 18px 40px rgba(31, 43, 39, .16); }

/* Formulaires */
.form-control, .form-select {
  border-radius: .85rem;
  transition: border-color .2s, box-shadow .2s;
}
.form-control:focus, .form-select:focus {
  border-color: var(--ar-primary);
  box-shadow: 0 0 0 .25rem rgba(0, 126, 167, .15);
}

/* Liens dans le contenu */
main a:not(.btn):not(.nav-link):not(.navbar-brand):not(.card):not(.gallery-item) { transition: color .2s; }

/* Bouton retour en haut */
.btn-scroll-top { box-shadow: 0 6px 16px rgba(0, 0, 0, .15); }

/* Mobile */
@media (max-width: 767.98px) {
  body { line-height: 1.65; }
  .card { border-radius: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn, .card, .gallery-item { transition: none; }
}
