/* =========================
   Palette JB Services (depuis la carte)
   ========================= */
:root{
  --brand:#67878A;            /* vert-grisé signature */
  --brand-ink:#1A1E1E;        /* foncé pour textes/champs */
  --bg:#EAF1F1;               /* fond clair aquarelle */
  --bg-2:#D6E6E6;
  --card:#FFFFFF;
  --line:#D0DADA;
  --muted:#5B6A6C;
  --accent:#67878A;

  --radius:18px;
  --radius-sm:12px;
  --container:1100px;

  --shadow:0 10px 30px rgba(26,30,30,.08);
}

/* Reset léger */
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  padding-top:70px; /* espace pour compenser le header fixe */
  color:var(--brand-ink);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1000px 400px at 20% -10%, var(--bg-2), transparent 60%),
    radial-gradient(800px 500px at 80% -20%, var(--bg), transparent 70%),
    var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Layout */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}

/* Header fixé */
header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-logo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#fff}
.brand-stack{display:flex;flex-direction:column;line-height:1}
.brand-jb{font-family:"Allura", cursive;font-size:1.6rem;color:var(--brand-ink)}
.brand-name{font-family:"Playfair Display", serif;letter-spacing:.12em;font-weight:700;font-size:.72rem;background:var(--brand);color:#fff;border-radius:6px;padding:4px 8px;display:inline-block;margin-top:4px}

.nav-links{display:flex;align-items:center;gap:18px}
.nav-links a{color:var(--brand-ink);text-decoration:none;font-weight:600;opacity:.9}
.nav-links a:hover{color:var(--brand)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;padding:11px 18px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--brand-ink);text-decoration:none;font-weight:700;
  box-shadow:var(--shadow);transition:transform .15s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(26,30,30,.12)}
.btn--brand{background:var(--brand);color:#fff;border-color:transparent}
.btn--ghost{background:transparent}

/* Hero */
.hero{position:relative;padding:80px 0 40px}
.hero-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.kicker{display:inline-block;color:var(--muted);font-size:.95rem;margin-bottom:6px}
.hero h1{
  font-family:"Roboto", serif;
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height:1.1;margin:8px 0 10px;letter-spacing:.2px;color:var(--brand-ink);
}
.lead{font-size:1.12rem;color:#2b3132;max-width:58ch}
.bullets{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 24px}
.chip{
  font-size:.92rem;border:1px solid var(--line);padding:8px 12px;border-radius:999px;
  background:#fff;color:#2f3a3b;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}

.hero-art{
  position:relative;border-radius:var(--radius);
  background:linear-gradient(160deg, rgba(103,135,138,.10), rgba(255,255,255,.65));
  border:1px solid var(--line);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;min-height:300px;width: 900 px;height: 200px;overflow:hidden;
}
.hero-badge{
  width:320px;height:320px;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(26,30,30,.12));
}

/* Sections */
section{padding:72px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}
.section-head h2{
  font-family:"Playfair Display", serif;font-size: clamp(1.6rem, 2.2vw, 2.2rem);margin:0;color:#1f2425;
}
.section-head p{color:var(--muted);margin:8px 0 0}

/* Cards Services */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);border-color:#b7c7c8;box-shadow:0 18px 40px rgba(26,30,30,.1)}
.card h3{margin:4px 0 6px}
.card p{color:#344042;margin:0 0 10px}
.meta{color:var(--muted);font-size:.92rem}
.meta img {display: block;margin: 0 auto;}

/* Process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px}
.step .n{font-weight:800;color:var(--brand);font-size:1rem;margin-bottom:4px}
.step h4{margin:6px 0 6px}
.step p{color:#3b4344;margin:0}

/* Intégration SuperHote */
.integr{
  display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:stretch;
  background:linear-gradient(160deg, rgba(103,135,138,.06), rgba(255,255,255,.85));
  border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)
}
.integr ul{margin:12px 0 0;padding:0 0 0 18px;color:#2c3334}
.panel{border:1px dashed #b2c3c4;border-radius:14px;padding:16px;text-align:center;background:#f7fbfb}
.panel-title{font-family:"Playfair Display", serif;font-weight:700;margin-bottom:6px;color:#213032}

/* Témoignages */
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.quote{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;box-shadow:var(--shadow)}
.quote p{margin:0 0 10px;color:#1f2526}
.quote .who{color:var(--muted);font-size:.9rem}

/* Contact */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)
}
.form label{display:block;font-weight:600;margin:8px 0 6px}
.form input,.form textarea,.form select{
  width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);
  background:#fff;color:var(--brand-ink);font-size:1rem;
}
.form textarea{min-height:120px;resize:vertical}
.actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.aside{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.aside ul{padding-left:18px;margin:10px 0 0;color:#2f3637}

/* Footer */
footer{padding:28px 0 48px;color:#435254}
.foot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px}
.foot-brand{display:flex;align-items:center;gap:10px}
.links{display:flex;gap:14px;flex-wrap:wrap}
.links a{color:#435254;text-decoration:none}
.links a:hover{color:var(--brand)}

/* Effets de glissement et révélations */
.transition-cover{
  position:fixed;inset:0;pointer-events:none;
  background:
    linear-gradient(120deg, rgba(103,135,138,.22), rgba(103,135,138,.06) 40%, transparent 70%),
    radial-gradient(1000px 500px at 30% 50%, rgba(103,135,138,.18), transparent 60%);
  transform:translateX(-100%);z-index:999;
}
@keyframes slideCover{
  0%{transform:translateX(-100%)}
  50%{transform:translateX(0)}
  100%{transform:translateX(100%)}
}
.transition-cover.active{animation:slideCover 520ms cubic-bezier(.22,.61,.36,1)}

[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 520ms cubic-bezier(.22,.61,.36,1),transform 520ms cubic-bezier(.22,.61,.36,1)}
[data-reveal].is-visible{opacity:1;transform:translateY(0)}

/* Responsive */
@media (max-width: 980px){
  .hero-wrap,.integr,.contact{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .quotes{grid-template-columns:1fr}
  .hero{padding-top:60px}
}
@media (max-width: 640px){
  .nav-links{display:none}
  .cards,.steps{grid-template-columns:1fr}
  .container{padding:0 18px}
  .hero-art{min-height:280px}
  .hero-badge{width:240px;height:240px}
}

/* Accessibilité : réduire les animations si souhaité */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .transition-cover{display:none}
  [data-reveal]{opacity:1;transform:none}
}
/* ===== Slider JB (100% CSS) ===== */
.jb-slider { padding-top: 24px; }
.jb-slider .section-head p { color: var(--muted); }

/* on masque les radios */
.jb-slide-toggle { position: absolute; opacity: 0; pointer-events: none; }

/* Piste */
.jb-track{
  position: relative;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
  /* hauteur adaptable : aspect-ratio fixé par les cartes */
}

/* Cartes (slides) */
.jb-card{
  margin: 0;
  width: 100%;
  aspect-ratio: 16/9;
  display: grid;
  grid-template-rows: 1fr auto;
  background: #fff;
}
.jb-card img{
  width: 100%;
  height: 500px;
  object-fit: cover;
  display: block;
}
.jb-card figcaption{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  background: linear-gradient(0deg, rgba(103,135,138,.07), rgba(255,255,255,1));
  color: #213032;
  font-weight: 600;
}
.jb-card .tag{
  display: inline-block;
  font-size: .78rem;
  letter-spacing: .04em;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
}

/* Positionnement horizontal des slides (par transform) */
.jb-track{
  display: grid;
  grid-template-columns: repeat(4, 100%); /* nb de slides */
  transition: transform 520ms cubic-bezier(.22,.61,.36,1);
}

/* États (quel radio est actif) */
#slide-1:checked ~ .jb-track { transform: translateX(0%); }
#slide-2:checked ~ .jb-track { transform: translateX(-100%); }
#slide-3:checked ~ .jb-track { transform: translateX(-200%); }
#slide-4:checked ~ .jb-track { transform: translateX(-300%); }

/* Flèches */
.jb-arrows{
  position: relative;
  margin-top: 10px;
  height: 0; /* on sort les flèches au-dessus de la piste */
}
.jb-arrows label{
  position: absolute;
  top: -56px; /* au milieu vertical de la piste (ajuste si besoin) */
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  border: 1px solid var(--line);
  color: var(--brand-ink);
  font-size: 22px; font-weight: 700;
  cursor: pointer; user-select: none;
  box-shadow: var(--shadow);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.jb-arrows label:hover{ transform: translateY(-1px); box-shadow: 0 14px 30px rgba(26,30,30,.12); }
.jb-prev{ left: 12px; }
.jb-next{ right: 12px; }

/* On affiche la paire de flèches correspondant au slide actif */
#slide-1:checked ~ .jb-arrows .jb-prev { display: none; }
#slide-1:checked ~ .jb-arrows .alt-2,
#slide-1:checked ~ .jb-arrows .alt-3,
#slide-1:checked ~ .jb-arrows .alt-4 { display: none; }

#slide-2:checked ~ .jb-arrows .jb-prev,
#slide-2:checked ~ .jb-arrows .alt-3,
#slide-2:checked ~ .jb-arrows .alt-4 { display: none; }

#slide-3:checked ~ .jb-arrows .jb-prev,
#slide-3:checked ~ .jb-arrows .alt-2,
#slide-3:checked ~ .jb-arrows .alt-4 { display: none; }

#slide-4:checked ~ .jb-arrows .jb-prev,
#slide-4:checked ~ .jb-arrows .alt-2,
#slide-4:checked ~ .jb-arrows .alt-3 { display: none; }

/* Puces */
.jb-dots{
  display:flex; gap:10px; justify-content:center;
  margin-top:14px;
}
.jb-dots label{
  width: 15px; height: 25px; border-radius: 999px; text-align: center;
  background: #c9d6d7; cursor: pointer; border:1px solid var(--line);
  transition: transform .2s ease, background .2s ease;
}
.jb-dots label:hover{ transform: scale(1.12); }

/* état actif des puces */
#slide-1:checked ~ .jb-dots label[for="slide-1"],
#slide-2:checked ~ .jb-dots label[for="slide-2"],
#slide-3:checked ~ .jb-dots label[for="slide-3"],
#slide-4:checked ~ .jb-dots label[for="slide-4"]{
  background: var(--brand);
  border-color: transparent;
}

/* Responsive */
@media (max-width: 640px){
  .jb-arrows label{ top: -48px; width: 36px; height: 36px; font-size: 20px; }
  .jb-card{ aspect-ratio: 4/3; }
}
/* Auto-play slider: styles complémentaires */
.jb-slider { position: relative; }
.jb-slider:hover .jb-track { /* pour retour visuel: on pourrait changer le curseur si besoin */ cursor: default; }

/* Accessibilité : si l'utilisateur préfère réduire les animations, on neutralise tout effet */
@media (prefers-reduced-motion: reduce) {
  .jb-track { transition: none !important; }
}
/* === Section vidéos === */
.videos-section {
  padding: 70px 0;
}
.videos-section .section-head h2 {
  margin-bottom: 10px;
}
.videos-section .section-head p {
  color: var(--muted);
}

/* Grille des vidéos (responsive) */
.videos-grid {
  display: grid;
  width: 802px;
  grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
  gap: 24px;
  margin-top: 32px;
}

.video-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
}

.video-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* ratio 16:9 */
  background: #000;
}
.video-wrapper iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.video-caption {
  padding: 12px 16px;
  color: var(--brand-ink);
  font-weight: 600;
  font-size: 0.95rem;
  background: #f8f9fa;
  border-top: 1px solid var(--line);
  text-align: center;
}

/* Révélation + effets (si tu utilises data-reveal) */
[data-reveal] .videos-section {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 520ms cubic-bezier(.22,.61,.36,1), transform 520ms cubic-bezier(.22,.61,.36,1);
}
[data-reveal].is-visible .videos-section {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive mobile */
@media (max-width: 640px) {
  .video-caption {
    font-size: 0.9rem;
    padding: 10px 12px;
  }
}
