/* J'aime le Vietnam - temoignages.
   Built on the tokens already declared in jlv-design.css: cream ground,
   bordeaux accent, Cormorant display over Jost body, hairlines instead of
   shadows, one 10px radius for cards and inputs, pills for buttons. */

.jlv-avis-wrap{max-width:1280px;margin:0 auto;padding:0 24px}

/* ---------- stars ---------- */
.jlv-stars{display:inline-flex;align-items:center;gap:2px;vertical-align:middle}
.jlv-stars .jlv-star{fill:var(--jlv-line)}
.jlv-stars .jlv-star.is-on{fill:var(--jlv-gold)}
.jlv-stars .jlv-star.is-half{fill:var(--jlv-straw)}

/* ---------- summary ---------- */
.jlv-avis-resume{
  display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:32px;align-items:center;
  background:var(--jlv-cream-deep);border:1px solid var(--jlv-line);border-radius:var(--jlv-r-md);
  padding:32px;margin:0 0 48px
}
.jlv-avis-score{text-align:center;border-right:1px solid var(--jlv-line);padding-right:32px}
.jlv-avis-chiffre{
  font-family:var(--jlv-display);font-size:3.6rem;line-height:1.05;font-weight:500;
  color:var(--jlv-ink);margin:0 0 8px
}
.jlv-avis-chiffre span{font-size:1.4rem;color:var(--jlv-muted)}
.jlv-avis-nb{
  font-family:var(--jlv-body);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--jlv-accent-text);margin:10px 0 0
}
.jlv-avis-bars{display:flex;flex-direction:column;gap:7px}
.jlv-avis-bar{display:grid;grid-template-columns:14px 1fr 28px;gap:12px;align-items:center}
.jlv-avis-barlab,.jlv-avis-barnb{
  font-family:var(--jlv-body);font-size:.85rem;color:var(--jlv-muted);font-weight:400
}
.jlv-avis-barnb{text-align:right}
.jlv-avis-bartrack{
  display:block;height:7px;background:var(--jlv-white);
  border:1px solid var(--jlv-line);border-radius:var(--jlv-pill);overflow:hidden
}
.jlv-avis-bartrack span{display:block;height:100%;background:var(--jlv-gold)}

/* ---------- review cards ---------- */
.jlv-avis-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 56px;align-items:start
}
.jlv-avis{
  background:var(--jlv-white);border:1px solid var(--jlv-line);border-radius:var(--jlv-r-md);
  padding:28px 26px;display:flex;flex-direction:column;gap:14px
}
.jlv-avis-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.jlv-avis-verif{
  font-family:var(--jlv-body);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:500;color:var(--jlv-accent-text);
  border:1px solid var(--jlv-line);border-radius:var(--jlv-pill);padding:4px 11px;white-space:nowrap
}
.jlv-avis-titre{
  font-family:var(--jlv-display);font-size:1.5rem;line-height:1.15;font-weight:500;
  color:var(--jlv-ink);margin:0
}
.jlv-avis-texte{margin:0;flex:1}
.jlv-avis-texte p{
  font-family:var(--jlv-body);font-size:1rem;line-height:1.65;font-weight:350;
  color:var(--jlv-ink-soft);margin:0 0 12px
}
.jlv-avis-texte p:last-child{margin-bottom:0}
.jlv-avis-pied{border-top:1px solid var(--jlv-line);padding-top:14px;margin-top:2px}
.jlv-avis-qui{
  font-family:var(--jlv-body);font-size:.95rem;font-weight:500;color:var(--jlv-ink);
  margin:0;display:flex;flex-direction:column;gap:3px
}
.jlv-avis-meta{font-size:.82rem;font-weight:350;color:var(--jlv-muted)}
.jlv-avis-circuit,.jlv-avis-src{
  display:inline-block;margin-top:9px;font-family:var(--jlv-body);font-size:.82rem;
  color:var(--jlv-accent);text-decoration:none;border-bottom:1px solid var(--jlv-line);
  transition:color .18s ease,border-color .18s ease
}
.jlv-avis-circuit:hover,.jlv-avis-src:hover{color:var(--jlv-primary);border-color:var(--jlv-primary)}
.jlv-avis-src{display:block;color:var(--jlv-muted);border:0}

.jlv-avis-vide{
  font-family:var(--jlv-body);font-size:1.05rem;color:var(--jlv-muted);
  max-width:var(--jlv-measure);margin:0 0 48px
}
.jlv-avis-merci{
  font-family:var(--jlv-body);font-size:1rem;line-height:1.65;color:var(--jlv-ink);
  background:var(--jlv-cream-deep);border:1px solid var(--jlv-line);
  border-left:3px solid var(--jlv-accent);border-radius:var(--jlv-r-md);
  padding:18px 22px;margin:0 0 40px;max-width:var(--jlv-measure)
}

/* ---------- inline block on a circuit page ---------- */
.jlv-avis-inline{padding:0;margin:56px 0}
.jlv-avis-inline .jlv-avis-grid{grid-template-columns:repeat(3,1fr);margin-bottom:20px}
.jlv-avis-inline-score{
  display:flex;align-items:center;gap:12px;margin:0 0 24px;
  font-family:var(--jlv-body);font-size:.95rem;color:var(--jlv-muted)
}
.jlv-avis-tous{margin:0}
.jlv-avis-tous a{
  font-family:var(--jlv-body);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:500;color:var(--jlv-accent);text-decoration:none;border-bottom:1px solid var(--jlv-accent);
  padding-bottom:2px;transition:color .18s ease,border-color .18s ease
}
.jlv-avis-tous a:hover{color:var(--jlv-primary);border-color:var(--jlv-primary)}

/* ---------- the form ---------- */
.jlv-avis-form-wrap{
  background:var(--jlv-cream-deep);border:1px solid var(--jlv-line);border-radius:var(--jlv-r-md);
  padding:44px 44px 40px;margin:0 0 24px
}
.jlv-avis-form-titre{
  font-family:var(--jlv-display);font-size:2.2rem;line-height:1.05;font-weight:500;
  color:var(--jlv-ink);margin:0 0 12px
}
.jlv-avis-form-intro{
  font-family:var(--jlv-body);font-size:1.02rem;line-height:1.65;font-weight:350;
  color:var(--jlv-ink-soft);max-width:var(--jlv-measure);margin:0 0 32px
}
.jlv-avis-form label{
  display:block;font-family:var(--jlv-body);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:500;color:var(--jlv-muted);margin:0 0 7px
}
.jlv-avis-form input[type=text],
.jlv-avis-form input[type=email],
.jlv-avis-form textarea,
.jlv-avis-form select{
  width:100%;font-family:var(--jlv-body);font-size:1rem;font-weight:350;color:var(--jlv-ink);
  background:var(--jlv-white);border:1px solid var(--jlv-line);border-radius:var(--jlv-r-md);
  padding:13px 15px;transition:border-color .18s ease
}
.jlv-avis-form input:focus,
.jlv-avis-form textarea:focus,
.jlv-avis-form select:focus{outline:0;border-color:var(--jlv-accent)}
.jlv-avis-form textarea{resize:vertical;line-height:1.65}
.jlv-avis-form p{margin:0 0 22px}
.jlv-form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.jlv-form-aide{
  display:block;font-family:var(--jlv-body);font-size:.82rem;font-weight:350;
  color:var(--jlv-muted);margin-top:7px;text-transform:none;letter-spacing:0
}
.jlv-avis-form .required-mark{color:var(--jlv-accent)}

/* star picker: rendered right-to-left so :hover can light everything before it */
.jlv-avis-note{border:0;padding:0;margin:0 0 26px}
.jlv-avis-note legend{
  font-family:var(--jlv-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;color:var(--jlv-muted);margin:0 0 9px;padding:0
}
.jlv-notepick{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px}
.jlv-notepick input{position:absolute;opacity:0;width:1px;height:1px}
.jlv-notepick label{margin:0;cursor:pointer;line-height:0;padding:2px}
.jlv-notepick label svg{fill:var(--jlv-line);transition:fill .18s ease}
.jlv-notepick input:checked ~ label svg,
.jlv-notepick label:hover svg,
.jlv-notepick label:hover ~ label svg{fill:var(--jlv-gold)}
.jlv-notepick input:focus-visible + label svg{outline:2px solid var(--jlv-accent);outline-offset:2px}
.jlv-notepick label .screen-reader-text{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap
}

.jlv-avis-consent label{
  display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;
  font-size:.92rem;font-weight:350;color:var(--jlv-ink-soft);line-height:1.55
}
.jlv-avis-consent input{margin-top:3px;accent-color:var(--jlv-accent);flex:0 0 auto}
.jlv-avis-submit{margin:28px 0 14px !important}

/* honeypot: off-screen, never announced */
.jlv-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .jlv-avis-grid,.jlv-avis-inline .jlv-avis-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .jlv-avis-resume{grid-template-columns:1fr;gap:26px;padding:26px}
  .jlv-avis-score{border-right:0;border-bottom:1px solid var(--jlv-line);padding:0 0 22px}
  .jlv-avis-form-wrap{padding:32px 26px 28px}
  .jlv-avis-form-titre{font-size:1.8rem}
}
@media (max-width:640px){
  .jlv-avis-grid,.jlv-avis-inline .jlv-avis-grid{grid-template-columns:1fr}
  .jlv-form-row{grid-template-columns:1fr;gap:0}
  .jlv-avis-wrap{padding:0 18px}
}
