/* Pages publiques du site (écoles, admission, concours et examens, actualités). S'appuie sur accueil.css (variables --lp-*). */
.lp-links a.est-actif { color: var(--lp-brand); font-weight: 700; }
.sp-bandeau { padding: 7.5rem 0 2.5rem; background: linear-gradient(180deg, var(--lp-soft), var(--lp-bg)); border-bottom: 1px solid var(--lp-line); }
.sp-surtitre { display: inline-block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--lp-brand); margin: 0 0 .5rem; }
.sp-titre { margin: 0 0 .6rem; font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.15; color: var(--lp-ink); }
.sp-chapo { margin: 0; max-width: 46rem; color: var(--lp-muted); font-size: 1.05rem; }
.sp-contenu { padding-top: 2.5rem; }
.sp-recherche { display: flex; gap: .6rem; margin-top: 1.4rem; max-width: 34rem; flex-wrap: wrap; }
.sp-recherche input { flex: 1 1 14rem; padding: .75rem 1rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 12px); font: inherit; background: var(--lp-card); color: var(--lp-ink); }
.sp-recherche input:focus { outline: 2px solid var(--lp-brand); outline-offset: 1px; }
.sp-grille { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); list-style: none; padding: 0; margin: 0; }
.sp-carte { display: flex; flex-direction: column; gap: .7rem; padding: 1.2rem; background: var(--lp-card); border: 1px solid var(--lp-line); border-radius: var(--lp-radius); box-shadow: var(--lp-shadow); color: inherit; text-decoration: none; height: 100%; }
a.sp-carte:hover { border-color: var(--lp-brand); transform: translateY(-2px); transition: .15s; }
.sp-carte h2, .sp-carte h3 { margin: 0; font-size: 1.05rem; color: var(--lp-ink); }
.sp-carte p { margin: 0; color: var(--lp-muted); font-size: .92rem; }
.sp-tete { display: flex; gap: .8rem; align-items: center; }
.sp-logo { width: 52px; height: 52px; border-radius: 14px; object-fit: contain; background: var(--lp-tint); border: 1px solid var(--lp-line); flex: 0 0 auto; }
.sp-initiale { display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: var(--lp-brand); font-size: 1.3rem; }
.sp-ligne { display: flex; gap: .45rem; align-items: flex-start; color: var(--lp-muted); font-size: .88rem; }
.sp-ligne i { color: var(--lp-brand); margin-top: .15rem; }
.sp-pastilles { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; }
.sp-pastille { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; border-radius: 999px; background: var(--lp-soft); color: var(--lp-brand); font-size: .78rem; font-weight: 600; }
.sp-pastille-ok { background: color-mix(in srgb, var(--edu-color-success, color-mix(in srgb, var(--edu-color-success) 72%, #000)) 14%, var(--lp-card)); color: var(--edu-success-text, var(--edu-color-success, color-mix(in srgb, var(--edu-color-success) 72%, #000))); }
.sp-pastille-info { background: color-mix(in srgb, var(--edu-color-info, var(--edu-color-primary)) 14%, var(--lp-card)); color: var(--edu-info-text, var(--edu-color-info, var(--edu-color-primary))); }
.sp-pastille-attention { background: color-mix(in srgb, var(--edu-color-warning, var(--edu-color-accent)) 14%, var(--lp-card)); color: var(--edu-warning-text, var(--edu-color-warning, var(--edu-color-accent))); }
.sp-etapes { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-bottom: 2rem; }
.sp-etape { display: flex; gap: .8rem; padding: 1rem; background: var(--lp-tint); border-radius: 14px; }
.sp-etape b { display: inline-flex; width: 2rem; height: 2rem; border-radius: 50%; background: var(--lp-brand); color: var(--lp-on-brand); align-items: center; justify-content: center; flex: 0 0 auto; }
.sp-etape p { margin: .15rem 0 0; color: var(--lp-muted); font-size: .9rem; }
.sp-titre-section { margin: 2rem 0 1rem; font-size: 1.25rem; color: var(--lp-ink); }
.sp-vide { text-align: center; padding: 3rem 1rem; border: 1px dashed var(--lp-line); border-radius: var(--lp-radius); color: var(--lp-muted); }
.sp-vide i { font-size: 2.2rem; color: var(--lp-brand); display: block; margin-bottom: .5rem; }
.sp-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
.sp-fiche { display: grid; gap: 1.6rem; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 860px) { .sp-fiche { grid-template-columns: 1fr; } .sp-bandeau { padding-top: 6.5rem; } }
.sp-article { max-width: 46rem; line-height: 1.7; color: var(--lp-ink); }
.sp-article p { margin: 0 0 1rem; }
.sp-meta { color: var(--lp-muted); font-size: .88rem; display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1rem; }
.sp-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.sp-liste li a { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 12px); color: var(--lp-ink); text-decoration: none; background: var(--lp-card); }
.sp-liste li a:hover { border-color: var(--lp-brand); }
.sp-liste small { color: var(--lp-muted); }
.sp-liste li > span { display: block; padding: .75rem 1rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 12px); background: var(--lp-card); }

/* Avis, formulaires publics (contact, avis) */
.sp-etoiles-saisie { display: inline-flex; flex-direction: row-reverse; gap: .15rem; font-size: 1.6rem; }
.sp-etoiles-saisie input { position: absolute; opacity: 0; width: 0; height: 0; }
.sp-etoiles-saisie label { color: var(--lp-muted); cursor: pointer; }
.sp-etoiles-saisie input:checked ~ label,
.sp-etoiles-saisie label:hover,
.sp-etoiles-saisie label:hover ~ label { color: var(--edu-color-warning, var(--edu-color-accent)); }
.sp-etoiles-saisie input:focus-visible + label { outline: 2px solid var(--lp-brand); outline-offset: 2px; border-radius: var(--edu-radius-sm, 8px); }
.sp-formulaire { display: grid; gap: .9rem; max-width: 32rem; margin-top: 1rem; }
.sp-champ { display: grid; gap: .35rem; }
.sp-champ label { font-weight: 600; font-size: .88rem; color: var(--lp-ink); }
.sp-champ input[type="text"], .sp-champ input[type="email"], .sp-champ textarea {
    padding: .65rem .85rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 10px); font: inherit; background: var(--lp-card); color: var(--lp-ink);
}
.sp-champ input:focus, .sp-champ textarea:focus { outline: 2px solid var(--lp-brand); outline-offset: 1px; }
.sp-aide { margin: 0; font-size: .82rem; color: var(--lp-muted); }

/* La fiche école empile plusieurs .sp-carte dans l'aside (Contact, Nous contacter) : */
/* annule le height:100% pensé pour une carte unique dans une grille (.sp-grille). */
.sp-fiche aside { display: flex; flex-direction: column; gap: 1.6rem; }
.sp-fiche aside .sp-carte { height: auto; }

/* Alertes de la fiche (succès, erreur) : jetons sémantiques, lisibles en mode sombre */
.sp-alerte { display: flex; gap: .6rem; align-items: flex-start; max-width: 46rem; margin: 0 0 1rem; padding: .75rem 1rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 12px); background: var(--lp-card); color: var(--lp-ink); }
.sp-alerte i { margin-top: .15rem; }
.sp-alerte-succes { border-color: var(--edu-color-success, color-mix(in srgb, var(--edu-color-success) 72%, #000)); background: color-mix(in srgb, var(--edu-color-success, color-mix(in srgb, var(--edu-color-success) 72%, #000)) 10%, var(--lp-card)); }
.sp-alerte-succes i { color: var(--edu-success-text, var(--edu-color-success, color-mix(in srgb, var(--edu-color-success) 72%, #000))); }
.sp-alerte-erreur { border-color: var(--edu-color-danger, var(--edu-color-danger)); background: color-mix(in srgb, var(--edu-color-danger, var(--edu-color-danger)) 10%, var(--lp-card)); }
.sp-alerte-erreur i { color: var(--edu-danger-text, var(--edu-color-danger, var(--edu-color-danger))); }
.sp-erreur-champ { margin: 0; font-size: .82rem; color: var(--edu-danger-text, var(--edu-color-danger, var(--edu-color-danger))); }
.sp-champ .est-invalide { border-color: var(--edu-color-danger, var(--edu-color-danger)); }
.sp-champ-case { display: flex; flex-direction: row; align-items: flex-start; gap: .5rem; }
.sp-champ-case label { font-weight: 500; }

/* Éléments de la fiche */
.sp-surtitre a { color: inherit; }
.sp-tete-titre { margin: .4rem 0 .6rem; }
.sp-titre-nu { margin: 0; }
.sp-titre-premier { margin-top: 0; }
.sp-vide-marge { margin-top: 1.5rem; }
.sp-avis { margin-bottom: 1rem; }
.sp-avis-pied { color: var(--lp-muted); }
.sp-avis-date { color: var(--lp-muted); font-size: .85rem; }
.sp-lien-heritage { color: inherit; }
.sp-libelle { font-weight: 600; font-size: .88rem; color: var(--lp-ink); }
.sp-formulaire .form-control { padding: .65rem .85rem; border: 1px solid var(--lp-line); border-radius: var(--edu-radius-md, 10px); font: inherit; background: var(--lp-card); color: var(--lp-ink); width: 100%; }
.sp-formulaire .edu-captcha-ligne { display: flex; align-items: center; gap: .6rem; margin-bottom: .5rem; }
.sp-formulaire .invalid-feedback { color: var(--edu-danger-text, var(--edu-color-danger, var(--edu-color-danger))); font-size: .82rem; }
.sp-champ input[type="checkbox"] { margin-top: .25rem; accent-color: var(--lp-brand); }
.sp-piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Étoiles saisies : icône Tabler dans chaque libellé */
.sp-etoiles-saisie label i { display: block; }
