/* RESET DE BASE*/
body, h1, h2, h3, p, ul, li {
  margin: 0;
  padding: 0;
}
ul {
  padding-left: 1rem;
}
body {
  font-family: system-ui, sans-serif;
  line-height: 1.6;
  background: #fff;
  color: #222;
}

/*VARIABLES*/
:root {
  /* Couleurs principales */
  --accent: #d32f2f;       /* rouge principal */
  --accent-2: #b71c1c;     /* rouge foncé (hover) */

  /* Texte & fonds */
  --text: #222;
  --bg: #fff;
  --alt: #f7f8fa;          /* fond pâle des sections .alt */

  /* UI */
  --border: #ddd;
  --muted: #555;
  --shadow: 0 2px 6px rgba(0,0,0,0.1);
  --radius: 12px;          /* rayon par défaut pour les cartes/images */
}

  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial;
    color:var(--text);
    background:var(--bg);
    line-height:1.6;
  }
  
  .container{width:min(1120px,92%);margin-inline:auto}
  .section{padding:72px 0}
  .section.alt{background:var(--alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
  .section-title{font-size:2rem;line-height:1.2;margin:0 0 12px}
  .section-subtitle{color:var(--muted);margin:0 0 28px}
  
  .btn{
    display:inline-block;padding:12px 18px;border-radius:999px;
    text-decoration:none;border:1px solid transparent;font-weight:600
  }
  .btn-primary{background:var(--accent);color:#fff}
  .btn-primary:hover{background:var(--accent-2)}
  .btn-ghost{border-color:var(--accent);color:var(--accent)}
  .btn-ghost:hover{background:rgba(46,125,246,.08)}
  
  .site-header{
    position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:50
  }
  .header-inner{display:flex;align-items:center;justify-content:space-between;height:68px}
  .brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}
  .brand-logo{width:44px;height:44px}
  .brand-name{font-weight:800;line-height:1}
  .nav{display:flex;gap:18px;align-items:center}
  .nav a{color:var(--text);text-decoration:none}
  .nav a:hover{color:var(--accent)}
  .nav-toggle{display:none;font-size:28px;background:none;border:none}
  
  /* Espacement entre les éléments du menu */
.nav {
  display: flex;
  gap: 28px; /* Augmenté (avant 18px) */
  align-items: center;
}

/* Forcer le texte du bouton "Prendre rendez-vous" en blanc */
.nav .btn-primary {
  color: #fff !important; /* reste blanc */
}

/* Listes simples (cartes Services) */
.mini-checklist {
  margin: 12px 0 0;
  padding-left: 18px;
  list-style-type: disc;
  color: var(--muted);
}

.mini-checklist li {
  margin: 6px 0;
}

  @media (max-width: 860px){
    .nav{position:fixed;inset:68px 0 auto 0;background:#fff;border-bottom:1px solid var(--border);
      padding:16px;display:none;flex-direction:column;gap:12px}
    .nav.open{display:flex}
    .nav-toggle{display:block}
  }
  
  .hero{padding:72px 0 40px;background:linear-gradient(180deg,#eef4ff 0,#fff 60%)}
  .hero-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center}
  .hero-copy h1{font-size:2.4rem;margin:0 0 8px}
  .lead{color:var(--muted);font-size:1.05rem}
  .hero-cta{display:flex;gap:12px;margin:20px 0}
  .trust{display:flex;gap:18px;flex-wrap:wrap;padding:0;margin:12px 0 0;list-style:none;color:var(--muted)}
  .hero-media img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow)}
  
  @media (max-width: 960px){
    .hero-inner{grid-template-columns:1fr}
    .hero-media{order:-1}
  }
  
  .grid{display:grid;gap:20px}
  .cards{grid-template-columns:repeat(4,1fr)}
  @media (max-width: 1080px){.cards{grid-template-columns:repeat(3,1fr)}}
  @media (max-width: 820px){.cards{grid-template-columns:repeat(2,1fr)}}
  @media (max-width: 560px){.cards{grid-template-columns:1fr}}
  
  .card{
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    padding:20px;box-shadow:var(--shadow)
  }
  .card h3{margin-top:0}
  
  .checklist{margin:12px 0 0;padding-left:18px}
  .checklist li{margin:6px 0}
  
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 8px;padding:0;list-style:none}
  .steps li{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
  .step-num{
    display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
    background:var(--accent);color:#fff;font-weight:700;margin-bottom:8px
  }
  .cta-center{text-align:center;margin-top:20px}
  
  @media (max-width: 940px){.steps{grid-template-columns:repeat(2,1fr)}}
  @media (max-width: 520px){.steps{grid-template-columns:1fr}}
  
  .about-grid{grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
  .about-media img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow)}
  .bullets{padding-left:18px;margin:12px 0}
  .bullets li{margin:6px 0}
  
/* Accordéon : base */
.accordion { display: grid; gap: 14px; }
.accordion-item { border: 1px solid var(--border); border-radius: 12px; background: #fff; overflow: hidden; }
.accordion-header {
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  padding: 16px 18px;
  font-weight: 700;
  cursor: pointer;
}
.accordion-panel { padding: 0 18px 16px; display: none; }
.accordion-item.open .accordion-panel { display: block; }
.accordion-item.open .accordion-header { color: var(--accent); }

/* (Optionnel) focus visible au clavier */
.accordion-header:focus { outline: 3px solid rgba(46,125,246,.35); outline-offset: 2px; }

  #year{font-variant-numeric:tabular-nums}
  
  /* Calendly + sticky booking */
.calendly-wrap{
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    box-shadow:var(--shadow);overflow:hidden
  }
  
  /* Bandeau sticky */
  .sticky-booking{
    position:fixed;left:16px;right:16px;bottom:16px;
    display:flex;gap:12px;justify-content:center;align-items:center;
    background:#ffffffee;backdrop-filter:saturate(1.1) blur(6px);
    border:1px solid var(--border);border-radius:999px;padding:10px 12px;
    box-shadow:var(--shadow);z-index:60
  }
  .sticky-booking span{color:var(--muted)}
  @media (max-width:520px){
    .sticky-booking{flex-direction:column;align-items:stretch}
  }
  
  /* ====== Footer sombre type maquette ====== */
.site-footer.dark{
    background:#373d42; /* sombre */
    color:#e9edf2;
    border-top:none;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1fr 1.2fr .6fr;
    gap:24px;
    align-items:center;
    text-align:center;
    padding:28px 0 20px;
  }
  .footer-links{
    list-style:none;
    margin:0 0 14px;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .footer-links a{
    color:#e9edf2;
    text-decoration:none;
  }
  .footer-links a:hover{ text-decoration:underline }
  
  .btn-danger{
    background:#e1463f;
    color:#fff !important;
    border:1px solid transparent;
    padding:12px 18px;
    border-radius:12px;
    font-weight:700;
    display:inline-block;
  }
  .btn-danger:hover{ background:#c53a33 }
  
  /* Coordonnées au centre */
  .footer-contact p{
    margin:8px 0;
    font-size:1.05rem;
  }
  .footer-contact a{
    color:#e9edf2;
    text-decoration:none;
  }
  .footer-contact a:hover{ text-decoration:underline }
  
  /* Réseaux à droite */
  .footer-social{
    display:flex;
    gap:20px;
    justify-content:center;
  }
  .footer-social .social{
    display:inline-grid;
    place-items:center;
    width:40px; height:40px;
    border-radius:8px;
    background:#2f3438;
  }
  .footer-social .social:hover{ filter:brightness(1.1) }
  
  /* Couleurs des icônes */
  .footer-social .fb{ color:#1877F2; }
  .footer-social .li{ color:#0A66C2; }
  .footer-social .yt{ color:#FF2E2E; }
  
  /* Séparateur + bas de page */
  .footer-sep{
    border:0;
    height:1px;
    background:rgba(255,255,255,.5);
    width:min(85%, 1024px);
    margin:12px auto 8px;
  }
  .footer-bottom{
    text-align:center;
    padding:10px 0 24px;
    color:#cfd6dd;
    font-size:.95rem;
  }
  
  /* Responsive */
  @media (max-width:900px){
    .footer-top{ grid-template-columns:1fr; gap:16px; }
  }
  
  /* ====== Section Consultation personnalisée ====== */
.booking .container{width:min(1120px,92%)}
.booking-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:36px;
  align-items:center;
}
.booking-title{
  font-size:2.4rem;
  line-height:1.15;
  margin:0 0 14px;
  color:#e1463f; /* rouge du bouton */
  letter-spacing:.2px;
}
.booking-text{
  color:var(--muted);
  font-size:1.08rem;
  margin:0 0 26px;
  max-width:56ch;
}
.booking-cta{
  font-size:1.05rem;
  padding:14px 22px;
  border-radius:12px;
}

/* Cadre vidéo à droite */
.booking-media{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#000;
  aspect-ratio: 16 / 9;   /* garde le bon ratio */
}
.booking-media iframe,
.booking-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.play-badge{
  position:absolute;
  right:16px;
  bottom:16px;
  width:56px;height:56px;
  border-radius:50%;
  border:0;
  background:#ffffffd9;
  font-weight:700;
  cursor:default;
}

/* Bouton rouge déjà défini dans le footer ; on duplique au cas où */
.btn-danger{
  background:#e1463f;
  color:#fff !important;
  border:1px solid transparent;
  padding:12px 18px;
  border-radius:12px;
  font-weight:800;
  display:inline-block;
}
.btn-danger:hover{ background:#c53a33 }

/* Responsive */
@media (max-width: 980px){
  .booking-grid{ grid-template-columns:1fr; }
  .booking-media{ order:-1; }
  .booking-title{ font-size:2rem }
}

/* ====== Hero avec vidéo BG (fix visibilité & ratio) ====== */
.hero{
    position:relative;
    min-height:90vh;              /* assure une vraie hauteur visible */
    padding:120px 0 60px;
    color:#fff;
    overflow:hidden;              /* masque tout débordement vidéo */
  }
  .hero-bg{
    position:absolute;
    inset:0;
    z-index:0;                    /* >>> plus de -1 */
    overflow:hidden;
  }
  .hero-video{
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    min-width:100%;
    min-height:100%;
    width:auto; height:auto;
    object-fit:cover;
  }
  .hero-inner{ position:relative; z-index:2; }
  .hero::after{
    content:"";
    position:absolute; inset:0; z-index:1;
    background:rgba(0,0,0,.45);   /* assombrit pour lisibilité */
  }
  .hero-copy h1, .hero-copy p, .hero-copy ul, .hero-copy a{ color:#fff; }
  
  /* Panels cachés par défaut via [hidden] */
.accordion-panel[hidden]{ display:none !important; }

/* ================================
   TYPOGRAPHIE GLOBALE
================================ */
h1, h2, h3 {
  margin: 1em 0 0.5em;
  font-weight: 600;
}
p {
  margin-bottom: 1em;
}
a {
  color: var(--accent);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

/* ================================
   BOUTONS
================================ */
.btn {
  display: inline-block;
  padding: 0.6em 1.2em;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease;
}
.btn-primary {
  background: var(--accent);
  color: #fff;
}
.btn-primary:hover {
  background: #b71c1c;
}
.btn-ghost {
  border: 1px solid var(--accent);
  color: var(--accent);
  background: transparent;
}
.btn-ghost:hover {
  background: var(--accent);
  color: #fff;
}
.btn-danger {
  background: #b71c1c;
  color: #fff;
}
.btn-danger:hover {
  background: #9a0007;
}

/* ================================
   BLOG LISTE
================================ */
.blog-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.blog-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  overflow: hidden;
  background: #fff;
  transition: transform 0.2s ease;
}
.blog-card:hover {
  transform: translateY(-3px);
}
.blog-card img {
  width: 100%;
  display: block;
}
.blog-card-content {
  padding: 16px;
}
.blog-card-content h3 {
  margin-top: 0;
  font-size: 1.2rem;
}
.blog-card-content p {
  color: var(--muted);
  font-size: 0.9rem;
}

/* ================================
   ARTICLE (POST)
================================ */
.post-header {
  padding: 56px 0 20px;
  background: linear-gradient(180deg, #eef4ff 0, #fff 60%);
  text-align: center;
}
.post-title {
  font-size: 2rem;
  margin: 0 0 10px;
}
.post-meta {
  color: var(--muted);
}
.post-content {
  padding: 28px 0;
  max-width: 720px;
  margin: 0 auto;
}
.post-content img {
  max-width: 100%;
  border-radius: 12px;
  box-shadow: var(--shadow);
  margin: 20px 0;
}
blockquote {
  font-style: italic;
  padding: 12px 18px;
  border-left: 4px solid var(--accent);
  background: #f9f9f9;
  border-radius: 4px;
  margin: 20px 0;
}

/* ================================
   FAQ (accordéon natif <details>)
================================ */
.faq summary {
  cursor: pointer;
  font-weight: 600;
  margin: 0.8em 0;
}
.faq details[open] summary {
  color: var(--accent);
}
.faq p {
  margin: 0.5em 0 1em 1.2em;
}

/* ================================
   CHECKLIST
================================ */
.checklist {
  border: 2px solid var(--accent);
  padding: 18px;
  border-radius: 12px;
  background: #fff9f9;
  margin-top: 28px;
}
.checklist h3 {
  margin-top: 0;
  color: var(--accent);
}
.checklist ul {
  list-style-type: none !important;
  padding: 0;
  margin: 0;
}
.checklist li {
  margin: 8px 0;
  display: flex;
  align-items: center;
}
.checklist input[type="checkbox"] {
  margin-right: 8px;
  transform: scale(1.15);
  accent-color: var(--accent);
}

/* ================================
   FOOTER
================================ */
.site-footer {
  margin-top: 48px;
  padding: 32px 0;
  background: #222;
  color: #fff;
}
.site-footer a {
  color: #fff;
}
.site-footer .footer-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px;
}
.footer-col {
  flex: 1;
  min-width: 200px;
}
.footer-links {
  list-style: none;
  padding: 0;
}
.footer-links li {
  margin: 6px 0;
}
.footer-links a {
  color: #ddd;
}
.footer-links a:hover {
  color: #fff;
}
.footer-social a {
  margin-right: 12px;
  color: #fff;
}
.footer-bottom {
  text-align: center;
  margin-top: 24px;
  font-size: 0.9rem;
  color: #aaa;
}

/* petit indicateur + / – sur la droite */
.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 900;
}
.faq-list details[open] summary::after { content: "–"; }

/* focus clavier visible */
.faq-list summary:focus { outline: 3px solid rgba(46,125,246,.35); outline-offset: 2px; }

.post-cover {
  width: 100%;             /* occupe toute la largeur du conteneur */
  max-height: 220px;       /* limite la hauteur */
  object-fit: cover;       /* recadre proprement sans déformer */
  border-radius: 8px;
  margin: 16px 0 32px;
  box-shadow: var(--shadow);
}



