/* Trail des Buis V19 — finitions vectorielles et cohérence visuelle.
   Surcouche non destructive : conservation des compositions et textes V18. */
:root{--tdb-violet:#6829d9;--tdb-ink:#17233a;--tdb-outline:rgba(111,60,187,.15)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
svg{shape-rendering:geometricPrecision}
button,a,input,textarea,select{font:inherit}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a57bfa;outline-offset:3px}
/* Icônes de réseaux : tracés vectoriels, sans glyphes de polices dépendants du système. */
.social{display:flex;align-items:center;gap:12px}
.social .social-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none}
.social .social-icon svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
/* Bordures, ombres et transitions cohérentes sans changer les gabarits. */
.home-card-v2,.course-card,.race-card,.card,.result-card,.info-card,.contact-card{backface-visibility:hidden}
.home-card-v2,.course-card,.race-card,.card,.result-card,.info-card{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .home-card-v2:hover,.course-card:hover,.race-card:hover{transform:translateY(-2px)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Laisser les contenus lisibles lorsque la hauteur disponible est réduite. */
@media (max-width:740px){html,body{overflow-x:clip} .social{gap:8px}}
/* Précision des surfaces, des tracés et des états interactifs. */
header .brand svg,header .brand b{flex-shrink:0}
header .nav a{white-space:nowrap;text-underline-offset:5px}
header .register,.primary,.home-card-v2,.nav a{cursor:pointer}
header .register,.primary{transition:filter .18s ease,box-shadow .18s ease,transform .18s ease}
@media (hover:hover) and (prefers-reduced-motion:no-preference){header .register:hover,.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}}
.card svg,.fact svg,.home-card-v2 svg{stroke-linecap:round;stroke-linejoin:round}
input,textarea,select{max-width:100%}
@media(max-width:740px){.nav{scrollbar-width:thin}header .register{white-space:nowrap}}
