/* ============================================================
   418 DevOps : mini-audit GEO
   ============================================================ */

.geo-boite{
  background:linear-gradient(170deg,rgba(42,58,94,.6),rgba(20,30,54,.65));
  border:1px solid var(--bord-doux);border-radius:var(--rayon);
  padding:clamp(22px,3.4vw,34px);margin-top:34px;
}
.geo-saisie{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.geo-saisie input[type=text]{
  flex:1;min-width:240px;
  font:inherit;font-size:1.05rem;color:var(--texte);
  background:rgba(12,19,34,.6);border:1px solid var(--bord);
  border-radius:var(--rayon-s);padding:13px 15px;
}
.geo-saisie input[type=text]:focus-visible{border-color:var(--ambre);outline:none}
.geo-saisie .bouton{flex:none}
.geo-leurre{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.geo-note-vie{margin:14px 0 0;font-size:.86rem;color:var(--faible);max-width:70ch}

/* ---------- attente ---------- */
.geo-attente{display:flex;align-items:center;gap:14px;margin-top:22px;color:var(--doux);font-size:.95rem}
/* sans cette règle, display:flex l'emporterait sur l'attribut hidden */
.geo-attente[hidden]{display:none}
.geo-rond{
  flex:none;width:20px;height:20px;border-radius:50%;
  border:2px solid var(--bord);border-top-color:var(--ambre);
  animation:geo-tourne 900ms linear infinite;
}
@keyframes geo-tourne{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .geo-rond{animation:none;border-top-color:var(--ambre)}
}

/* ---------- en-tête du rapport ---------- */
.geo-entete{
  display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,36px);align-items:center;
  background:linear-gradient(150deg,rgba(42,58,94,.68),rgba(20,30,54,.68));
  border:1px solid var(--bord-doux);border-radius:var(--rayon);
  padding:clamp(22px,3vw,32px);margin-top:30px;
}
.geo-note{
  flex:none;display:flex;align-items:baseline;gap:2px;
  font-family:var(--mono);line-height:1;
}
.geo-note .chiffre{font-size:clamp(3rem,7vw,4.4rem);font-weight:500}
.geo-note .sur{font-size:1.1rem;color:var(--faible)}
.geo-note.bon .chiffre{color:var(--menthe)}
.geo-note.moyen .chiffre{color:var(--ambre)}
.geo-note.grave .chiffre{color:#ff7a6b}
.geo-resume{flex:1;min-width:260px}
.geo-resume h2{margin:0 0 4px;font-size:1.3rem;overflow-wrap:anywhere}
.geo-resume p{margin:0 0 16px;color:var(--faible);font-size:.9rem}

.geo-barres{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.geo-barres li{display:grid;grid-template-columns:minmax(120px,1.2fr) 3fr auto;gap:12px;align-items:center;font-size:.86rem}
.geo-barres .titre{color:var(--doux)}
.geo-barres .piste{height:6px;background:rgba(12,19,34,.7);border-radius:3px;overflow:hidden}
.geo-barres .remplie{display:block;height:100%;border-radius:3px;background:var(--ambre)}
.geo-barres .remplie.bon{background:var(--menthe)}
.geo-barres .remplie.grave{background:#ff7a6b}
.geo-barres .valeur{font-family:var(--mono);font-size:.8rem;color:var(--faible)}
@media (max-width:560px){
  .geo-barres li{grid-template-columns:1fr auto;grid-template-areas:"titre valeur" "piste piste"}
  .geo-barres .titre{grid-area:titre}
  .geo-barres .valeur{grid-area:valeur}
  .geo-barres .piste{grid-area:piste}
}

/* ---------- tableaux ---------- */
.geo-famille{margin-top:28px}
.geo-famille h3{font-size:1.2rem;display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.geo-sous-note{font-family:var(--mono);font-size:.82rem;color:var(--faible);font-weight:400}
.geo-table{width:100%;border-collapse:collapse;font-size:.93rem}
.geo-table tr{border-top:1px solid var(--bord-doux)}
.geo-table tr:last-child{border-bottom:1px solid var(--bord-doux)}
.geo-table th{
  text-align:left;font-weight:600;color:var(--texte);padding:11px 16px 11px 0;
  width:30%;vertical-align:top;
}
.geo-table .pastille{
  display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:9px;
  background:var(--faible);vertical-align:middle;
}
.geo-table tr.v-bon .pastille{background:var(--menthe)}
.geo-table tr.v-moyen .pastille{background:var(--ambre)}
.geo-table tr.v-grave .pastille{background:#ff7a6b}
.geo-table td{padding:11px 16px 11px 0;vertical-align:top;color:var(--doux)}
.geo-table td.valeur{font-family:var(--mono);font-size:.84rem;color:var(--texte);width:22%;overflow-wrap:anywhere}
.geo-table td.explication{font-size:.9rem}
@media (max-width:760px){
  .geo-table, .geo-table tbody, .geo-table tr, .geo-table th, .geo-table td{display:block;width:auto}
  .geo-table th{padding-bottom:6px}
  .geo-table td{padding:0 0 6px 17px}
  .geo-table td.valeur{width:auto}
  .geo-table tr{padding:14px 0}
}

.geo-pages{list-style:none;margin:0;padding:0;font-size:.9rem}
.geo-pages li{padding:9px 0;border-top:1px solid var(--bord-doux);color:var(--doux);overflow-wrap:anywhere}
.geo-pages em{color:var(--faible);font-style:normal;font-family:var(--mono);font-size:.8rem;margin-left:8px}

.geo-suite{
  margin-top:28px;padding:clamp(22px,3vw,32px);
  background:linear-gradient(150deg,rgba(42,58,94,.6),rgba(20,30,54,.6));
  border:1px solid var(--bord-doux);border-left:3px solid var(--ambre);
  border-radius:var(--rayon);
}
.geo-suite h3{margin-bottom:10px}
.geo-suite p{color:var(--doux)}
.geo-suite .heros-actions{margin-top:22px}
.geo-lien{font-size:.85rem;color:var(--faible);margin-top:22px;overflow-wrap:anywhere}

/* ---------- comparatif ---------- */
.geo-comparatif{width:100%;border-collapse:collapse;margin-top:26px;font-size:.95rem}
.geo-comparatif caption{text-align:left;color:var(--faible);font-size:.85rem;padding-bottom:10px}
.geo-comparatif th,.geo-comparatif td{
  text-align:left;padding:10px 16px 10px 0;border-top:1px solid var(--bord-doux);vertical-align:top;
}
.geo-comparatif thead th{border-top:none;color:var(--texte);font-size:.86rem;text-transform:uppercase;letter-spacing:.04em}
.geo-comparatif tbody th{font-weight:500;color:var(--doux);width:26%}
.geo-comparatif td{color:var(--doux)}
@media (max-width:640px){
  .geo-comparatif thead{display:none}
  .geo-comparatif tr{display:block;border-top:1px solid var(--bord-doux);padding:12px 0}
  .geo-comparatif th,.geo-comparatif td{display:block;border:none;padding:2px 0;width:auto}
  .geo-comparatif tbody th{color:var(--texte);font-weight:600}
  .geo-comparatif td::before{content:attr(data-col) " : ";color:var(--faible)}
}


/* ---------- demande du plan d'action ---------- */
.geo-envoi{margin-top:22px}
.geo-envoi-ligne{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.geo-envoi-ligne input[type=email]{
  flex:1;min-width:230px;font:inherit;font-size:1rem;color:var(--texte);
  background:rgba(12,19,34,.65);border:1px solid var(--bord);
  border-radius:var(--rayon-s);padding:12px 14px;
}
.geo-envoi-ligne input[type=email]:focus-visible{border-color:var(--ambre);outline:none}
.geo-envoi-ligne .bouton{flex:none}
.geo-consent{align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.45;color:var(--doux)}
.geo-consent input{margin-top:3px;flex:none}
.geo-mention{margin:14px 0 0;font-size:.82rem;color:var(--faible);max-width:74ch}
.geo-confirme{
  margin:0;padding:14px 16px;border-radius:var(--rayon-s);
  background:rgba(79,216,168,.12);border:1px solid rgba(79,216,168,.35);
  color:var(--texte);font-size:.95rem;
}
