/* =========================================================
   Cybalgo Audit – full CSS (EN) with brand + progress bar
   + Advanced toggle + clean grid
   ========================================================= */

:root {
  --ink:#111827; --muted:#4b5563;
  --card:#fff; --line:#e5e7eb; --soft:#f9fafb;

  /* Cybalgo brand */
  --brand-start:#ff4bcf; --brand-mid:#9a4dff; --brand-end:#3273ff; --brand-dark:#110417;
  --shadow:0 10px 30px rgba(16,7,25,.06);
}

/* ---------- WIDGET ---------- */
.cybalgo-audit-widget{
  background:var(--card); color:var(--ink);
  border:1px solid var(--line); border-radius:18px; padding:20px;
  box-shadow:var(--shadow); max-width:1100px; margin-inline:auto;
}
.cybalgo-audit-widget h3{ margin:0 0 8px; font-size:clamp(20px,2.2vw,28px); }
.cybalgo-audit-widget p{ margin:0 0 16px; color:var(--muted); }

/* ---------- FORM GRID ---------- */
.cybalgo-audit-form{
  display:flex; flex-direction:column; gap:16px;
}

/* Champs principaux */
.cyb-fields-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.cyb-field{ display:flex; flex-direction:column; gap:4px; }
.cyb-field label{ font-size:12px; font-weight:600; color:var(--muted); }
.cyb-required{ color:#ef4444; font-weight:700; }

.cybalgo-audit-form input,
.cybalgo-audit-form select{
  height:44px; padding:10px 12px; font-size:14px;
  background:#fff; color:var(--ink);
  border:1px solid var(--line); border-radius:10px; outline:none;
  transition:border-color .15s, box-shadow .15s;
}
.cybalgo-audit-form input::placeholder{ color:#6b7280; }
.cybalgo-audit-form input:focus,
.cybalgo-audit-form select:focus{
  border-color:#cbd5e1;
  box-shadow:0 0 0 3px rgba(50,115,255,.18);
}

/* ---------- ACTIONS ---------- */
.cyb-actions-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.cyb-buttons{ display:flex; gap:10px; }

/* Buttons */
#cyb-audit-run,#cyb-audit-pdf{
  height:44px; padding:0 16px; border-radius:10px; border:0;
  font-weight:700; color:#fff;
  background:linear-gradient(90deg,var(--brand-start),var(--brand-mid),var(--brand-end));
  box-shadow:0 4px 12px rgba(17,4,23,.18); cursor:pointer;
}
#cyb-audit-pdf[hidden]{ display:none; }
#cyb-audit-run:active,#cyb-audit-pdf:active{ transform:none; }

/* ---------- SWITCH ---------- */
.cyb-adv-toggle{ display:inline-flex; align-items:center; gap:8px; user-select:none; }
.cyb-adv-toggle input{ display:none; }
.cyb-adv-switch{
  width:34px; height:20px; border-radius:999px;
  background:#e9e9ee; border:1px solid var(--line);
  position:relative; transition:background .15s,border-color .15s;
}
.cyb-adv-switch::after{
  content:""; position:absolute; top:2px; left:2px;
  width:16px; height:16px; border-radius:50%; background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.12); transition:left .15s;
}
.cyb-adv-toggle input:checked + .cyb-adv-switch{
  background:linear-gradient(90deg,var(--brand-start),var(--brand-mid),var(--brand-end));
  border-color:transparent;
}
.cyb-adv-toggle input:checked + .cyb-adv-switch::after{ left:16px; }
.cyb-adv-label{ font-size:13px; font-weight:600; color:var(--ink); }

/* ---------- ADVANCED FIELDS ---------- */
.cyb-advanced-fields{ display:none; gap:12px; }
.cybalgo-audit-form.is-advanced #cyb-advanced-fields{
  display:grid; grid-template-columns:repeat(4,1fr);
}

/* ---------- PROGRESS BAR (inchangé) ---------- */
.cyb-progress[hidden]{ display:none !important; }
.cyb-progress{
  margin-top:10px; padding:10px 12px;
  border:1px solid var(--line); border-radius:12px; background:var(--soft);
}
.cyb-progress .bar{ position:relative; width:100%; height:10px; border-radius:999px; background:#eef2f7; overflow:hidden; }
.cyb-progress .bar .fill{
  position:absolute; left:0; top:0; height:100%; width:0%;
  border-radius:999px; background:linear-gradient(90deg,var(--brand-start),var(--brand-mid),var(--brand-end));
  transition:width .25s ease;
}
.cyb-progress .label{ margin-top:8px; font-size:12px; color:var(--muted); }

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .cyb-fields-row{ grid-template-columns:1fr 1fr; }
  .cybalgo-audit-form.is-advanced #cyb-advanced-fields{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .cyb-fields-row{ grid-template-columns:1fr; }
  .cybalgo-audit-form.is-advanced #cyb-advanced-fields{ grid-template-columns:1fr; }
  .cyb-actions-row{ flex-direction:column; align-items:flex-start; gap:8px; }
  .cyb-buttons{ width:100%; }
  #cyb-audit-run,#cyb-audit-pdf{ width:100%; }
}


/* --- Kill any theme "card" styling on the form -------------------------- */
.cybalgo-audit-widget .cybalgo-audit-form,
.cybalgo-audit-widget form#cyb-form {
  max-width: none !important;
  width: 100% !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Make the rows span the full width */
.cybalgo-audit-widget .cyb-fields-row,
.cybalgo-audit-widget .cyb-actions-row,
.cybalgo-audit-widget #cyb-advanced-fields {
  width: 100% !important;
}

/* Inputs shouldn’t force min-width (prevents overflow/wrapping issues) */
.cybalgo-audit-widget input,
.cybalgo-audit-widget select,
.cybalgo-audit-widget button {
  min-width: 0 !important;
}

/* Keep the grid you want (3 cols desktop, responsive below) */
.cybalgo-audit-widget .cyb-fields-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

@media (max-width: 900px){
  .cybalgo-audit-widget .cyb-fields-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px){
  .cybalgo-audit-widget .cyb-fields-row { grid-template-columns: 1fr; }
  .cybalgo-audit-widget .cyb-actions-row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .cybalgo-audit-widget .cyb-buttons { width: 100%; }
  .cybalgo-audit-widget #cyb-audit-run,
  .cybalgo-audit-widget #cyb-audit-pdf { width: 100%; }
}

/* Keep the actions row sane */
.cybalgo-audit-widget .cyb-actions-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

/* Optional: small tweak so "Advanced audit" label never collapses vertically */
.cybalgo-audit-widget .cyb-adv-toggle { white-space: nowrap; }










/* ====== Cybalgo Audit – layout overrides (place after your base CSS) ====== */

/* 1) Replace the flex wrapper with a vertical grid: rows = fields row, actions row, advanced row */
.cybalgo-audit-form{
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* Inputs inside our grid must NOT flex (override base "flex:1") */
.cybalgo-audit-form input,
.cybalgo-audit-form select,
.cybalgo-audit-form button{
  flex: 0 0 auto !important;
  width: 100%;
  min-width: 0;              /* prevents overflow in grid cells */
}

/* 2) First row: three equal columns for the three URL fields */
.cyb-fields-row{
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

/* 3) Actions row: [toggle] —— [spacer] —— [Analyze (+ PDF when shown)]  */
.cyb-actions-row{
  display: grid !important;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
}

/* Button group aligns to the right */
.cyb-buttons{
  display: inline-flex;
  gap: 8px;
  justify-self: end;
}

/* 4) Toggle: keep the switch + text on a single, non-breaking line and don't let it shrink */
.cyb-adv-toggle{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  user-select: none;
  min-width: max-content;      /* prevents the container from collapsing */
  white-space: nowrap;         /* keep text on one line */
}
.cyb-adv-label{
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

/* Switch visual */
.cyb-adv-toggle input{ display:none; }
.cyb-adv-switch{
  width:34px; height:20px; border-radius:999px;
  background:#e9e9ee; border:1px solid var(--line);
  position:relative; transition:background .15s,border-color .15s;
  flex-shrink:0;
}
.cyb-adv-switch::after{
  content:""; position:absolute; top:2px; left:2px;
  width:16px; height:16px; border-radius:50%; background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.12); transition:left .15s;
}
.cyb-adv-toggle input:checked + .cyb-adv-switch{
  background: linear-gradient(90deg,var(--brand-start),var(--brand-mid),var(--brand-end));
  border-color: transparent;
}
.cyb-adv-toggle input:checked + .cyb-adv-switch::after{ left:16px; }

/* 5) Advanced fields grid (hidden by default; shown by JS) */
.cyb-advanced-fields{
  display: none;
}
.cybalgo-audit-form.is-advanced #cyb-advanced-fields{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

/* 6) Responsive steps */
@media (max-width: 1100px){
  .cyb-fields-row{ grid-template-columns: repeat(2, 1fr); }
  .cybalgo-audit-form.is-advanced #cyb-advanced-fields{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px){
  .cyb-fields-row{ grid-template-columns: 1fr; }
  .cybalgo-audit-form.is-advanced #cyb-advanced-fields{ grid-template-columns: 1fr; }
  .cyb-actions-row{ grid-template-columns: 1fr; gap: 10px; }
  .cyb-buttons{ justify-self: stretch; }
  #cyb-audit-run, #cyb-audit-pdf{ width: 100%; }
}


/* if text accidentally gets inside the switch, hide it */
.cyb-adv-switch { font-size: 0; }






/* =========================================================
   ADVANCED AUDIT FIELDS (better UI)
   ========================================================= */

#cyb-advanced-fields {
  overflow: hidden;
  transition: all 0.35s ease;
  opacity: 0;
  padding: 0;
}

.cybalgo-audit-form.is-advanced #cyb-advanced-fields {
  opacity: 1;
  padding: 12px 0;
}

#cyb-advanced-fields .cyb-field {
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  transition: box-shadow .2s ease;
}

#cyb-advanced-fields .cyb-field:hover {
  box-shadow: 0 4px 10px rgba(17,4,23,0.06);
}

#cyb-advanced-fields label {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  color: var(--muted);
}

#cyb-advanced-fields input,
#cyb-advanced-fields select {
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 12px;
  height: 42px;
}

#cyb-advanced-fields input:focus,
#cyb-advanced-fields select:focus {
  border-color: var(--brand-mid);
  box-shadow: 0 0 0 3px rgba(154,77,255,0.2);
  outline: none;
}

/* =========================================================
   RESULTS DASHBOARD (Advanced Checks, Scores, etc.)
   ========================================================= */

.cyb-section {
  margin-top: 28px;
}

.cyb-h4 {
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-dark);
  margin-bottom: 12px;
}

.cyb-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  box-shadow: var(--shadow);
}

.cyb-scores-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(160px,1fr));
  gap: 18px;
}

.cyb-score-card {
  text-align: center;
}

.cyb-score-label {
  margin-top: 8px;
  font-size: 14px;
  font-weight: 600;
}

.cyb-checks li,
.cyb-competitors li,
.cyb-list li {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid #f1f1f1;
  font-size: 14px;
}

.cyb-checks li:last-child,
.cyb-competitors li:last-child,
.cyb-list li:last-child {
  border-bottom: none;
}

/* ===== Advanced Checks — tidy, aligned, responsive ===== */
.cyb-adv-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(240px, 1fr));
  gap: 18px;
}

@media (max-width: 1200px){ .cyb-adv-grid{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px){  .cyb-adv-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px){  .cyb-adv-grid{ grid-template-columns: 1fr; } }

.cyb-adv-grid h5{
  font-size: 15px;
  font-weight: 700;
  margin: 0 0 10px;
  color: var(--brand-mid);
}

/* list reset + clean rows */
.cyb-list{
  list-style: none;
  margin: 0;
  padding: 0;
}
.cyb-list li{
  display: flex;                 /* libellé à gauche, valeur à droite */
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
  line-height: 1.45;
  font-size: 14px;
}
.cyb-list li:last-child{ border-bottom: 0; }

/* petit point "status" optionnel à gauche (remplace les puces natives) */
.cyb-list li::before{
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #e2e8f0;
  flex: 0 0 6px;
}

/* la valeur se colle à droite (badge, <b>, <code>…) */
.cyb-list li .cyb-badge,
.cyb-list li b,
.cyb-list li code{
  margin-left: auto;
}

/* style des badges */
.cyb-badge{
  display: inline-block;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
}
.cyb-badge.ok{ background:#10b981; } /* green */
.cyb-badge.no{ background:#ef4444; } /* red */

/* chiffres lisibles à droite */
.cyb-list li b{
  min-width: 28px;
  text-align: right;
  font-weight: 700;
}

/* URL canonique lisible et qui casse proprement */
.cyb-list code{
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 2px 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* séparateur discret pour le sous-groupe "Headers" */
.cyb-list li u{
  text-decoration: none;
  font-weight: 700;
  color: var(--ink);
  opacity: .75;
}


/* Callout “Advanced Checks” card */
.cyb-card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px;
  box-shadow: var(--shadow);
}

/* Titre de section */
.cyb-h4{
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-dark);
  margin-bottom: 12px;
}



/* Badges Yes/No/OK/Missing */
.cyb-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
}

.cyb-badge.ok {
  background: #10b981; /* green */
}
.cyb-badge.no {
  background: #ef4444; /* red */
}

/* Recommendations list */
.cyb-recs {
  padding-left: 20px;
  font-size: 14px;
}
.cyb-recs li {
  margin-bottom: 6px;
}

/* Call to action */
.cyb-cta {
  margin-top: 28px;
  text-align: center;
}

.cyb-btn {
  display: inline-block;
  background: linear-gradient(90deg,var(--brand-start),var(--brand-mid),var(--brand-end));
  color: #fff;
  font-weight: 700;
  border-radius: 12px;
  padding: 12px 22px;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(17,4,23,.18);
  transition: transform .2s ease, box-shadow .2s ease;
}

.cyb-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(17,4,23,.25);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 700px) {
  .cyb-adv-grid {
    grid-template-columns: 1fr;
  }
}






/* Si jamais "hidden" reste posé, on l'écrase quand is-advanced est actif */
.cybalgo-audit-form.is-advanced #cyb-advanced-fields[hidden]{
  display: grid !important;
  visibility: visible !important;
}





/* ===== FIX advanced layout: remove nested-grid squeeze ===== */

/* 1) Le conteneur avancé ne doit pas être une grille 4 colonnes.
      On le laisse en bloc, et on gère les lignes internes. */
.cybalgo-audit-form.is-advanced #cyb-advanced-fields{
  display: block !important;
}

/* 2) Chaque .cyb-fields-row à l'intérieur des champs avancés devient
      UNE grille fluide avec colonnes min 220px (plus lisible). */
#cyb-advanced-fields .cyb-fields-row{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  width: 100%;
}

/* 3) Les cartes de champ ne doivent pas s'étirer bizarrement */
#cyb-advanced-fields .cyb-field{
  min-width: 0;               /* empêche les débordements */
}

/* 4) Inputs/selects toujours à 100% de la carte */
#cyb-advanced-fields input,
#cyb-advanced-fields select{
  width: 100%;
}

/* 5) Le titre "Advanced Information" sur toute la largeur et espacé */
#cyb-advanced-fields .cyb-h4{
  margin: 4px 0 10px;
}

/* 6) Responsive : passe en 2 puis 1 colonne proprement */
@media (max-width: 900px){
  #cyb-advanced-fields .cyb-fields-row{
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px){
  #cyb-advanced-fields .cyb-fields-row{
    grid-template-columns: 1fr;
  }
}

/* (Optionnel) un peu plus d’air dans les labels et éviter les sauts moches */
#cyb-advanced-fields label{
  white-space: normal !important;   /* autorise les retours à l'espace, pas lettre par lettre */
  word-break: keep-all;             /* ne coupe pas au milieu des mots latins */
  hyphens: manual;                  /* pas de césure automatique */
}









/* ===== Advanced Checks — force clean rows & no bullets ===== */

/* 1) Vire toutes les puces (thème + UA) */
.cybalgo-audit-widget ul.cyb-list,
.cybalgo-audit-widget .cyb-card ul.cyb-list{
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.cybalgo-audit-widget .cyb-list li::marker{ content: "" !important; }
.cybalgo-audit-widget .cyb-list li::before{ content: none !important; display: none !important; }

/* 2) Lignes clé/valeur, valeur poussée à droite */
.cybalgo-audit-widget .cyb-list li{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  line-height: 1.45 !important;
  font-size: 14px !important;
}
.cybalgo-audit-widget .cyb-list li:last-child{ border-bottom: 0 !important; }

/* 3) Les valeurs (badge / <b> / <code>) collent à droite */
.cybalgo-audit-widget .cyb-list li .cyb-badge,
.cybalgo-audit-widget .cyb-list li b,
.cybalgo-audit-widget .cyb-list li code{
  margin-left: auto !important;
  flex-shrink: 0;
  text-align: right;
}

/* 4) Canonical lisible et qui casse proprement */
.cybalgo-audit-widget .cyb-list code{
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  padding: 2px 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* 5) Grille stable 4→3→2→1 colonnes */
.cybalgo-audit-widget .cyb-adv-grid{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(240px, 1fr)) !important;
  gap: 18px !important;
}
@media (max-width:1200px){ .cybalgo-audit-widget .cyb-adv-grid{ grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width:900px){  .cybalgo-audit-widget .cyb-adv-grid{ grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width:640px){  .cybalgo-audit-widget .cyb-adv-grid{ grid-template-columns: 1fr !important; } }

/* 6) Titres de sous-sections */
.cybalgo-audit-widget .cyb-adv-grid h5{
  font-size: 15px !important;
  font-weight: 700 !important;
  margin: 0 0 10px !important;
  color: var(--brand-mid) !important;
}

/* 7) Badges */
.cybalgo-audit-widget .cyb-badge{ padding: 2px 8px; border-radius: 8px; font-size: 12px; font-weight: 700; color:#fff; }
.cybalgo-audit-widget .cyb-badge.ok{ background:#10b981; }
.cybalgo-audit-widget .cyb-badge.no{ background:#ef4444; }






/* ===== Nuke any bullets/icons the theme adds to Advanced Checks ===== */
.cybalgo-audit-widget .cyb-list,
.cybalgo-audit-widget .cyb-card .cyb-list{
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.cybalgo-audit-widget .cyb-list li{
  list-style: none !important;
  background: none !important;
  background-image: none !important;
  padding-left: 0 !important;
  position: relative; /* neutralise les layouts à puces absolues */
}

/* supprime toute puce/icone ajoutée par le thème */
.cybalgo-audit-widget .cyb-list li::before,
.cybalgo-audit-widget .cyb-list li::after,
.cybalgo-audit-widget .cyb-list li::marker{
  content: "" !important;
  display: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}



/* Laisser les menus <select> déborder du conteneur avancé quand il est ouvert */
.cybalgo-audit-form.is-advanced #cyb-advanced-fields{
  overflow: visible !important;  /* au lieu de hidden */
}

/* S'assurer que le select passe au-dessus des sections suivantes */
#cyb-advanced-fields .cyb-field{
  position: relative;            /* nouveau contexte empilé propre */
}
#cyb-advanced-fields select{
  position: relative;
  z-index: 5;                    /* au-dessus des cartes/scores */
}

/* (optionnel) si un parent quelconque clippe encore le menu :
   on neutralise l'overflow sur la widget/section */
.cybalgo-audit-widget,
.cybalgo-audit-widget .cyb-section,
.cybalgo-audit-widget .cyb-card{
  overflow: visible !important;
}


/* fermé */
#cyb-advanced-fields{
  max-height: 0;
  overflow: hidden;              /* OK quand fermé seulement */
  transition: max-height .3s ease, opacity .3s ease, padding .3s ease;
}
/* ouvert */
.cybalgo-audit-form.is-advanced #cyb-advanced-fields{
  max-height: 2000px;            /* assez grand pour le contenu */
  overflow: visible;             /* le menu peut déborder */
}





/* --- Advanced Checks: barre sous chaque titre de section --- */
.cyb-adv-grid h5{
  position: relative;
  padding-bottom: 8px;      /* espace au-dessus de la barre */
  margin-bottom: 12px;      /* espace en dessous de la barre */
}

.cyb-adv-grid h5::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--line, #ececec); /* fine barre */
  border-radius: 1px;
}

/* Optionnel : un léger trait en bas de CHAQUE bloc (titre + liste) */
.cyb-adv-grid > div{
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--line, #ececec);
}
.cyb-adv-grid > div:last-child{
  border-bottom: none;      /* pas de trait après le dernier en mobile */
}

/* En grand écran, si tu préfères uniquement une barre sous les titres,
   commente ou supprime le bloc "border-bottom" ci-dessus. */






/* === Advanced Checks : grille avec barres verticales + horizontales === */

/* Le conteneur de la grille */
.cyb-adv-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(260px, 1fr)) !important; /* 4 colonnes desktop */
  gap: 0 !important;                         /* pas d'espace -> lignes continues */
  background: #fff;

  /* Astuce "grille propre" : le conteneur dessine le bord D/B,
     chaque cellule dessine son bord H/G -> pas besoin de nth-child */
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* Chaque cellule (peu importe la classe) */
.cyb-adv-grid > *{
  padding: 16px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
  background: #fff;
}

 

/* ===== Responsive ===== */
@media (max-width: 1024px){
  .cyb-adv-grid{
    grid-template-columns: repeat(2, minmax(240px, 1fr)) !important;
  }
}
@media (max-width: 640px){
  .cyb-adv-grid{
    grid-template-columns: 1fr !important;
  }
}

 