/* Boutons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--ff-ui);font-weight:600;font-size:.95rem;
  padding:13px 22px;border-radius:var(--r-md);
  text-decoration:none;cursor:pointer;border:1.5px solid transparent;
  transition:transform var(--t-fast),background var(--t-fast),color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast);
  white-space:nowrap;
  letter-spacing:.005em;
  line-height:1;
}
.btn svg{width:18px;height:18px;flex-shrink:0;}
.btn-primary{
  background:var(--accent);color:var(--on-accent);
  border-color:var(--accent);
}
.btn-primary:hover{background:#16453C;border-color:#16453C;transform:translateY(-1px);box-shadow:0 8px 18px rgba(31,91,78,.22);}
.btn-wa{
  background:var(--wa-green);color:#fff;border-color:var(--wa-green);
}
.btn-wa:hover{background:var(--wa-dark);border-color:var(--wa-dark);transform:translateY(-1px);box-shadow:0 8px 18px rgba(18,140,126,.22);}
.btn-ghost{
  background:transparent;color:var(--text);border-color:var(--border-strong);
}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);}
.btn-light{background:#fff;color:var(--text);border-color:#fff;}
.btn-light:hover{background:transparent;color:#fff;border-color:#fff;}
.btn-sm{padding:10px 16px;font-size:.86rem;}
.btn-block{width:100%;}

/* Chips */
.chip{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--ff-ui);font-size:.78rem;font-weight:500;
  padding:7px 13px;border-radius:999px;
  background:color-mix(in srgb,var(--accent) 12%,var(--bg));
  color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
  line-height:1;
}
.chip svg{width:13px;height:13px;}

/* Card stripe (layout impose) */
.c-stripe{
  background:color-mix(in srgb,var(--text) 3%,var(--bg));
  border-left:4px solid var(--accent);
  border-radius:0 var(--r-md) var(--r-md) 0;
  padding:24px 24px 22px;
  transition:transform var(--t-fast),box-shadow var(--t-fast),border-left-color var(--t-fast);
  display:flex;flex-direction:column;gap:10px;
  min-height:100%;
}
.c-stripe:hover{transform:translateX(2px);box-shadow:0 6px 18px rgba(30,46,41,.06);}

/* Etoiles */
.stars{display:inline-flex;gap:2px;color:#E0A82E;}
.stars svg{width:16px;height:16px;}

/* Hero rating badge (note Google in hero) */
.hero-rating-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--border);
  border-radius:999px;
  padding:7px 14px;
  font-family:var(--ff-ui);font-size:.82rem;color:var(--text);
  text-decoration:none;
  backdrop-filter:blur(4px);
  margin-bottom:18px;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.hero-rating-badge:hover{background:#fff;border-color:var(--accent);}
.hero-rating-badge strong{font-weight:700;color:var(--text);}
.hero-rating-badge .stars{color:#E0A82E;}
.hero-rating-badge .dot{color:var(--text-mute);}

/* Formulaire */
.form-grid{display:flex;flex-direction:column;gap:14px;}
.field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.field label{font-family:var(--ff-ui);font-size:.82rem;font-weight:500;color:var(--text);}
.field input,.field textarea,.field select{
  width:100%;min-width:0;
  font:inherit;font-size:1rem;
  padding:13px 14px;
  border:1.5px solid var(--border);
  border-radius:var(--r-md);
  background:#fff;color:var(--text);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.field textarea{resize:vertical;min-height:120px;font-family:var(--ff-body);}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);
}
.field-error{color:#B0421B;font-size:.82rem;margin-top:2px;}
.form-success{
  background:color-mix(in srgb,var(--accent) 12%,var(--bg));
  border:1px solid var(--accent);
  border-radius:var(--r-md);
  padding:18px;
  color:var(--accent);
  font-family:var(--ff-ui);font-weight:500;
  text-align:center;
}

/* Modal mentions legales */
.modal{
  position:fixed;inset:0;
  z-index:var(--z-modal);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.modal-overlay{position:absolute;inset:0;background:rgba(20,30,28,.55);}
.modal-box{
  position:relative;
  background:var(--surface);
  border-radius:var(--r-lg);
  max-width:540px;width:100%;max-height:85vh;
  overflow-y:auto;
  padding:32px 28px 28px;
  box-shadow:0 24px 60px rgba(0,0,0,.25);
}
.modal-close{
  position:absolute;top:12px;right:12px;
  width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;
  background:transparent;color:var(--text);
  transition:background var(--t-fast);
}
.modal-close:hover{background:color-mix(in srgb,var(--text) 8%,transparent);}
.modal-close svg{width:18px;height:18px;}
.modal-box h2{font-size:1.4rem;margin-bottom:14px;color:var(--text);}
.modal-box h3{font-size:.92rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:18px 0 8px;font-family:var(--ff-ui);}
.modal-box p{font-size:.92rem;color:var(--text-2);line-height:1.65;}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;
  z-index:var(--z-lightbox);
  background:rgba(15,22,20,.94);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.lightbox img{
  max-width:92vw;max-height:88vh;
  object-fit:contain;
  border-radius:var(--r-md);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.lb-btn{
  position:absolute;
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.10);color:#fff;
  display:grid;place-items:center;
  backdrop-filter:blur(8px);
  transition:background var(--t-fast),transform var(--t-fast);
}
.lb-btn:hover{background:rgba(255,255,255,.22);}
.lb-close{top:18px;right:18px;}
.lb-prev{top:50%;left:18px;transform:translateY(-50%);}
.lb-next{top:50%;right:18px;transform:translateY(-50%);}
.lb-btn svg{width:22px;height:22px;}
@media(max-width:560px){
  .lb-btn{width:42px;height:42px;}
  .lb-prev{left:10px;}
  .lb-next{right:10px;}
  .lb-close{top:10px;right:10px;}
}

/* Badge "Ouvert maintenant" */
.open-badge{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-ui);font-size:.85rem;font-weight:500;
  padding:6px 12px;border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.5);
  color:var(--text);
}
.open-dot{
  width:9px;height:9px;border-radius:50%;
  background:#7B8983;
  flex-shrink:0;
}
.open-badge.is-open .open-dot{
  background:#3D8674;
  box-shadow:0 0 0 0 rgba(61,134,116,.6);
  animation:open-pulse 2.4s ease-out infinite;
}
.open-badge.is-closed .open-dot{background:#B85432;}
@keyframes open-pulse{
  0%{box-shadow:0 0 0 0 rgba(61,134,116,.55);}
  70%{box-shadow:0 0 0 8px rgba(61,134,116,0);}
  100%{box-shadow:0 0 0 0 rgba(61,134,116,0);}
}
@media(prefers-reduced-motion:reduce){
  .open-badge.is-open .open-dot{animation:none;}
}

/* Avis card */
.avis-card{
  background:var(--surface);
  border-radius:var(--r-md);
  padding:24px 22px;
  border-left:4px solid var(--accent);
  display:flex;flex-direction:column;gap:14px;
}
.avis-card blockquote{
  font-family:var(--ff-body);
  color:var(--text);
  font-size:.98rem;
  line-height:1.65;
  font-style:normal;
}
.avis-card blockquote::before{
  content:"\201C";
  font-family:var(--ff-display);
  font-size:2.2rem;
  color:var(--accent);
  line-height:0;
  vertical-align:-.35em;
  margin-right:4px;
}
.avis-meta{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:var(--ff-ui);font-size:.82rem;color:var(--text-mute);
  margin-top:auto;
}
.avis-author{display:flex;flex-direction:column;}
.avis-author strong{color:var(--text);font-weight:600;font-size:.88rem;}
.avis-date{color:var(--text-mute);font-size:.78rem;margin-top:2px;}
.badge-google{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.74rem;color:var(--text-mute);
}
.badge-google svg{width:14px;height:14px;}

/* FAQ */
.faq-list{display:flex;flex-direction:column;}
.faq-item{border-top:1px solid var(--border);}
.faq-item:last-child{border-bottom:1px solid var(--border);}
.faq-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:22px 0;
  font-family:var(--ff-display);font-weight:600;font-size:1.08rem;
  color:var(--text);text-align:left;line-height:1.3;
  transition:color var(--t-fast);
}
.faq-trigger:hover{color:var(--accent);}
.faq-chevron{
  width:24px;height:24px;flex-shrink:0;
  display:grid;place-items:center;
  border-radius:50%;
  background:color-mix(in srgb,var(--accent) 12%,var(--bg));
  color:var(--accent);
  transition:transform var(--t-fast),background var(--t-fast);
}
.faq-chevron::before{
  content:"";width:8px;height:8px;
  border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;
  transform:rotate(45deg) translate(-1.5px,-1.5px);
}
.faq-trigger[aria-expanded="true"] .faq-chevron{
  transform:rotate(180deg);
  background:var(--accent);color:var(--on-accent);
}
.faq-answer{
  overflow:hidden;
  max-height:0;
  transition:max-height var(--t-med);
}
.faq-answer p{padding:0 0 22px;color:var(--text-2);line-height:1.65;}
.faq-answer p + p{padding-top:8px;}
