/* Links */
.link{border-bottom:1px solid transparent}
.link:hover{border-bottom-color:currentColor}

/* Dark theme accent on badges */
.hero .badge{background:linear-gradient(90deg, var(--primary), var(--accent)); color:#0b0f19}
.accent{color:var(--accent)}

/* ===== Case page: header meta card / layout helpers ===== */
.case-header{
  display:grid; gap:16px; grid-template-columns:2fr 1fr; align-items:start; margin-bottom:18px;
}
@media (max-width: 900px){ .case-header{grid-template-columns:1fr} }
.case-meta.card .card-body p{margin:.25rem 0}

/* ===== Carousel ===== */
.carousel{
  position:relative; border:1px solid var(--border); border-radius:16px; background:var(--card);
  overflow:hidden; box-shadow:var(--shadow); outline:none;
}
.carousel-track{display:flex; width:100%; transition:transform .35s ease}
.carousel-slide{
  min-width:100%; aspect-ratio:16/9; background:var(--bg-alt);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.carousel-slide img{
  width:100%; height:100%; object-fit:contain; object-position:center; background:var(--bg-alt);
}
.carousel-controls{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; pointer-events:none;
}
.carousel-prev, .carousel-next{
  pointer-events:auto; border:1px solid var(--border); background:rgba(0,0,0,.04);
  border-radius:50%; width:40px; height:40px; display:grid; place-items:center; margin:.6rem;
  backdrop-filter:blur(6px);
}
html[data-theme="dark"] .carousel-prev, html[data-theme="dark"] .carousel-next{ background:rgba(255,255,255,.08) }
.carousel-prev:hover, .carousel-next:hover{ box-shadow:var(--shadow) }
.carousel-prev svg, .carousel-next svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2 }

.carousel-thumbs{
  display:flex; gap:8px; padding:10px; border-top:1px solid var(--border); background:var(--card);
  overflow:auto;
}
.carousel-thumb{
  flex:0 0 auto; width:96px; height:60px; border:2px solid transparent; border-radius:10px; overflow:hidden; cursor:pointer;
  background:var(--bg-alt);
  display:flex; align-items:center; justify-content:center;
}
.carousel-thumb img{ width:100%; height:100%; object-fit:contain }
.carousel-thumb.is-active{ border-color:var(--primary) }

/* ===== Case: content spacing ===== */
.case section{margin:24px 0}
.case .section-title{margin-bottom:.4rem}

/* ===== Form status (inline alerts) ===== */
.form-status{margin-top:12px}
.alert{
  border:1px solid var(--border); border-left:4px solid var(--primary);
  background:var(--card); padding:.85rem 1rem; border-radius:12px; box-shadow:var(--shadow);
}
.alert-success{border-left-color:#22c55e}
.alert-error{border-left-color:#ef4444}
.alert p{margin:0}

/* ===== CTA Buttons (Contact, Hero, Navbar) ===== */
.btn-primary{
  background:linear-gradient(135deg, var(--primary), var(--accent));
  color:#fff !important;
  font-weight:600;
  border:none;
  box-shadow:0 3px 12px rgba(0,0,0,.2);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-primary:hover,
.btn-primary:focus{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,.25), 0 0 12px var(--accent);
  filter:brightness(1.1);
}

/* Nav-specific CTA */
.site-nav .btn-primary{
  padding:.55rem 1.2rem;
  border-radius:30px;
  font-size:.95rem;
  letter-spacing:.3px;
}

/* ✅ Garde-fou : le gradient et le texte blanc restent en nav, même au hover */
.site-nav .btn-primary,
.site-nav .btn-primary:hover,
.site-nav .btn-primary:focus{
  background:linear-gradient(135deg, var(--primary), var(--accent)) !important;
  color:#fff !important;
  border:none;
}
