/* TRAIL DES BUIS · V89 / SYSTÈME GRAPHIQUE COMMUN
   Cible : pages secondaires uniquement ; accueil V88 conservé à l'identique.
   SVG et éléments HTML natifs : aucun chargement externe, aucune police distante.
*/
:root{
  --tdb-ink:#10152e;
  --tdb-muted:#626783;
  --tdb-line:rgba(100,78,180,.16);
  --tdb-purple:#7829f8;
  --tdb-blue:#3565ff;
  --tdb-surface:#fff;
  --tdb-radius-card:24px;
  --tdb-radius-control:13px;
  --tdb-shadow-card:0 16px 40px rgba(24,16,67,.085),0 3px 12px rgba(24,16,67,.035);
  --tdb-shadow-hover:0 24px 56px rgba(24,16,67,.14),0 7px 18px rgba(24,16,67,.065);
  --tdb-ease:cubic-bezier(.2,.75,.25,1);
}
:where(body.page-event,body.page-courses,body.page-info,body.page-results,body.page-contact){
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
/* Géométrie et netteté d'une seule famille d'icônes */
:where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(
 .history-grid .ico svg,.course-card .stat svg,.card>svg,.contact-line svg,.strip-icon svg,
 .facts svg,.fact svg,.contact-card svg
){
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  stroke-width:1.8!important;
  vector-effect:non-scaling-stroke;
  shape-rendering:geometricPrecision;
  flex-shrink:0;
}
/* Surfaces communes : même matière, coins et élévation. */
.page-event .history-grid article,
.page-info article.card,
.page-contact .form-card,
.page-contact .contact-card{
  border:1px solid var(--tdb-line)!important;
  border-radius:var(--tdb-radius-card)!important;
  box-shadow:var(--tdb-shadow-card)!important;
  background-color:rgba(255,255,255,.97)!important;
  transition:box-shadow .24s var(--tdb-ease),border-color .24s ease,transform .24s var(--tdb-ease)!important;
}
.page-event .history-grid article,
.page-info article.card,
.page-contact .form-card,
.page-contact .contact-card{min-width:0}
.page-event .history-grid article p,
.page-info article.card p,
.page-contact .contact-card{line-height:1.55}
/* Encadrement des symboles / fond ivoire-lavande. */
.page-event .history-grid .ico,
.page-contact .contact-line>i{
  width:50px!important;height:50px!important;
  border:1px solid rgba(115,67,238,.16)!important;
  border-radius:15px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:linear-gradient(145deg,#f8f5ff,#ece4ff)!important;
  color:#7233f1!important;
  box-shadow:inset 0 1px rgba(255,255,255,.8);
}
.page-event .history-grid .ico svg,
.page-contact .contact-line>i svg{width:25px!important;height:25px!important}
.page-info article.card>svg{
  width:46px!important;height:46px!important;
  padding:10px!important;
  border:1px solid rgba(115,67,238,.15)!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,#f9f6ff,#eee6ff)!important;
  color:#7134f2!important;
  overflow:visible!important;
  box-shadow:inset 0 1px rgba(255,255,255,.85);
}
/* Accordeons : interaction simple, états distincts et sans saut de mise en page. */
.page-info .cards .tdb-accordion{
  position:relative;
  border-radius:23px!important;
  padding:22px 24px!important;
}
.page-info .cards .tdb-accordion h2{
  color:var(--tdb-ink)!important;
  font-weight:850!important;
  letter-spacing:-.025em!important;
  overflow-wrap:anywhere;
}
.page-info .cards .tdb-accordion p{color:#5d6581!important}
.page-info .cards .tdb-accordion .circle{
  width:42px!important;height:42px!important;
  border-radius:14px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  background:#f2ebff!important;color:#7134f2!important;
  border:1px solid rgba(115,67,238,.14)!important;
  font-size:23px!important;font-weight:400!important;
  transition:transform .2s ease,background .2s ease!important;
}
.page-info .cards .tdb-accordion.is-open .circle{
  background:#7134f2!important;color:#fff!important;
}
.page-info .cards .tdb-accordion.is-open{
  border-color:rgba(113,52,242,.43)!important;
  box-shadow:var(--tdb-shadow-hover)!important;
}
.page-info .cards .tdb-accordion-panel{
  border-top:1px solid rgba(113,52,242,.14)!important;
}
/* Contact : champs nets et hiérarchie de titres harmonisée. */
.page-contact .form-card h2,
.page-contact .contact-card h2{
  color:var(--tdb-ink)!important;
  letter-spacing:-.035em!important;
}
.page-contact .form-card :is(input,textarea){
  border:1px solid #dedaf0!important;
  background:#faf9fd!important;
  border-radius:12px!important;
  color:var(--tdb-ink)!important;
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease!important;
}
.page-contact .form-card :is(input,textarea):hover{border-color:#b8a9e9!important}
.page-contact .form-card :is(input,textarea):focus{
  outline:0!important;
  background:#fff!important;
  border-color:#7c3df4!important;
  box-shadow:0 0 0 4px rgba(124,61,244,.10)!important;
}
.page-contact .contact-line{
  border-bottom-color:rgba(110,81,174,.12)!important;
}
/* Boutons : mêmes proportions, contrastes et animation. Le CTA de l'accueil n'est pas modifié. */
:where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(.course-link,.result-button,.primary){
  font-family:inherit!important;
  letter-spacing:.012em!important;
  font-weight:820!important;
  border-radius:var(--tdb-radius-control)!important;
  background:linear-gradient(108deg,#8230ff 0%,#6127f5 52%,#3764fd 100%)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 9px 20px rgba(100,50,225,.16)!important;
  transition:transform .22s var(--tdb-ease),box-shadow .22s ease,filter .22s ease!important;
  text-decoration:none!important;
  -webkit-tap-highlight-color:transparent;
}
:where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(.course-link,.result-button,.primary):active{
  transform:translateY(0)!important;filter:brightness(.95);
}
:where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(a,button,input,textarea,select):focus-visible{
  outline:3px solid #8e5bff!important;
  outline-offset:3px!important;
}
.page-courses .course-card,
.page-results .course-card{
  border-radius:24px!important;
  box-shadow:var(--tdb-shadow-card)!important;
  transition:transform .24s var(--tdb-ease),box-shadow .24s ease!important;
}
/* Pictos statistiques : même taille visuelle et même gabarit sur les cartes. */
.page-courses .course-card .stat i,
.page-results .course-card .stat .stat-icon{
  flex:0 0 46px!important;
  width:46px!important;height:46px!important;
  border-radius:14px!important;
  border:1px solid rgba(114,62,246,.1)!important;
  background:linear-gradient(145deg,#f8f5ff,#f0e9ff)!important;
}
.page-courses .course-card .stat i svg,
.page-results .course-card .stat .stat-icon svg{
  width:24px!important;height:24px!important;
}
.page-courses .course-card .stat,
.page-results .course-card .stat{min-width:0!important}
.page-courses .course-card .stat span,
.page-results .course-card .stat span{min-width:0}
.page-courses .course-card .stat :is(strong,small),
.page-results .course-card .stat :is(b,small){overflow-wrap:normal}
/* Boutons disponibles uniquement dans les cartes : éviter les fonds et textes rognés. */
.page-courses .course-card .course-link,
.page-results .course-card .result-button{min-height:43px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .page-event .history-grid article:hover,
  .page-info article.card:hover,
  .page-contact :is(.form-card,.contact-card):hover{
    transform:translateY(-3px)!important;
    border-color:rgba(113,52,242,.32)!important;
    box-shadow:var(--tdb-shadow-hover)!important;
  }
  :where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(.course-link,.result-button,.primary):hover{
    transform:translateY(-2px)!important;
    filter:brightness(1.07);
    box-shadow:0 14px 30px rgba(100,50,225,.25)!important;
  }
}
/* Différenciation et densité sur petit écran, sans modifier les fonds V88. */
@media(max-width:680px){
  .page-info .cards .tdb-accordion{padding:19px 19px!important}
  .page-event .history-grid article,
  .page-contact :is(.form-card,.contact-card){border-radius:20px!important}
  .page-courses .course-card .stat i,
  .page-results .course-card .stat .stat-icon{flex-basis:40px!important;width:40px!important;height:40px!important}
}
@media(prefers-reduced-motion:reduce){
  :where(.page-event,.page-courses,.page-info,.page-results,.page-contact) :is(.course-link,.result-button,.primary,.tdb-accordion,.form-card,.contact-card,article){
    transition:none!important;transform:none!important;
  }
}
