/* RideSpot — feuille de style commune (accueil, pages pros, à propos, pages terrain).
   Extraite telle quelle de index.html : aucun changement visuel. */
/* ============ TOKENS ============ */
:root{
  --night:#101114;        /* fond charbon */
  --carbon:#17191d;       /* surface 1 */
  --carbon2:#1e2127;      /* surface 2 */
  --line:#2a2d34;        /* séparateurs statiques */
  --line-ctl:#5f666f;    /* bordures de CONTRÔLE : 3:1 minimum sur le charbon */
  --dust:#efe9dd;         /* blanc poussière */
  --muted:#9aa0ab;
  --orange:#ff5e1f;       /* orange piste */
  --orange-soft:rgba(255,94,31,.14);
  --c-mx:#ff5e1f; --c-quad:#8fd14f; --c-buggy:#45c4ff; --c-enduro:#c084fc; --c-x4:#e3b341;
  --radius:14px;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --font-body:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-data:"Azeret Mono",ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body{
  background:var(--night);
  color:var(--dust);
  font-family:var(--font-body);
  font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{ /* grain de terre — à 5 % il était invisible */
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.14;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.68' numOctaves='3' seed='7'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='0.72'/%3E%3C/svg%3E");
}
/* Poussière en suspension : très basse fréquence, elle casse l'aplat du fond
   sans jamais devenir un motif reconnaissable. */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background:
    radial-gradient(1100px 620px at 78% -8%,rgba(255,94,31,.09),transparent 62%),
    radial-gradient(760px 520px at 4% 108%,rgba(227,179,65,.05),transparent 60%);
}
::selection{background:var(--orange);color:#15110d}
[hidden]{display:none!important} /* hidden gagne toujours sur display:flex */
/* Surfaces du navigateur : elles font partie du design, pas des réglages par défaut. */
html{scrollbar-color:#3a3e47 var(--night);scrollbar-width:thin}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--night)}
::-webkit-scrollbar-thumb{background:#33373f;border:3px solid var(--night);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:#474c56}
input,textarea,select{caret-color:var(--orange)}
.data,.hstat b{font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:4px}

.wrap{width:min(1180px,92%);margin:0 auto;position:relative;z-index:2}

/* ============ TYPO ============ */
.eyebrow{
  font-family:var(--font-data);font-size:.72rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:.6rem;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block}
.h-display{
  font-weight:900;text-transform:uppercase;font-style:italic;
  font-stretch:86%;          /* axe de chasse : les titres français sont longs */
  letter-spacing:-.025em;line-height:.92;
}
h1.h-display{font-size:clamp(2.6rem,6.4vw,4.9rem)}
/* Sous ~420px, le plancher de 2.6rem dépasse la largeur utile : « UNE SEULE
   CARTE » (insécable) se ferait rogner par l'overflow caché du hero. */
@media (max-width:430px){ h1.h-display{font-size:2rem} }
@media (max-width:360px){ h1.h-display{font-size:1.78rem} }
h2.h-display{font-size:clamp(1.7rem,3.6vw,2.6rem);margin:.65rem 0 1rem}
.h-display em{font-style:italic;color:var(--orange);position:relative;white-space:nowrap}
.lead{color:var(--muted);font-size:1.06rem;max-width:56ch}
.data{font-family:var(--font-data)}

/* damier — ligne d'arrivée */
.finish{
  height:10px;opacity:.5;
  background:repeating-conic-gradient(var(--dust) 0 25%, transparent 0 50%) 0 0/18px 18px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  background:rgba(16,17,20,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-in{width:min(1180px,94%);margin:0 auto;display:flex;align-items:center;gap:1.4rem;height:64px}
.logo{display:flex;align-items:center;gap:.55rem;font-weight:900;font-size:1.18rem;letter-spacing:-.02em;text-transform:uppercase}
.logo svg{flex:none}
.logo b{color:var(--orange);font-style:italic}
.nav-links{display:flex;gap:1.5rem;margin-left:auto;align-items:center}
.nav-links a{font-size:.92rem;color:var(--muted);transition:color .15s}
.nav-links a:hover{color:var(--dust)}
.nav-cta{display:flex;gap:.6rem;align-items:center;margin-left:1rem}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:8px;width:42px;height:38px;color:var(--dust);font-size:1.1rem}
.user-pill{
  display:flex;align-items:center;gap:.5rem;background:var(--carbon2);border:1px solid var(--line);
  border-radius:99px;padding:.3rem .8rem .3rem .35rem;font-size:.88rem;
}
.user-pill .avatar{width:26px;height:26px;border-radius:50%;background:var(--orange);color:#15110d;display:grid;place-items:center;font-weight:800;font-size:.8rem}
.badge-pro{font-family:var(--font-data);font-size:.62rem;letter-spacing:.12em;background:var(--orange);color:#15110d;border-radius:5px;padding:.1rem .4rem;font-weight:700}
.spinner{width:15px;height:15px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============ BOUTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--orange);color:#15110d;border:none;border-radius:10px;
  font-weight:800;font-size:.95rem;padding:.85rem 1.5rem;letter-spacing:.01em;
  transition:transform .15s,box-shadow .15s,background .15s;
  box-shadow:0 6px 20px rgba(255,94,31,.25);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,94,31,.35)}
.btn:active{transform:translateY(0)}
.btn-ghost{background:transparent;color:var(--dust);border:1px solid var(--line-ctl);box-shadow:none}
.btn-ghost:hover{border-color:var(--dust);box-shadow:none}
.btn-sm{padding:.5rem .95rem;font-size:.85rem;border-radius:8px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:wait;transform:none}

/* ============ HERO ============ */
.hero{position:relative;padding:150px 0 84px;overflow:hidden}
/* Photographie de hero : pilote à contre-jour dans la poussière.
   Le voile est un dégradé et non un aplat — il protège la lisibilité du
   texte à gauche tout en laissant la poussière respirer à droite. */
.hero-photo{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url("../img/hero.jpg") 46% 48%/cover no-repeat;
  /* miroir : le pilote passe à droite, hors de la colonne de texte */
  transform:scaleX(-1);
}
/* Voile séparé de la photo, donc non miroité : opaque sous le texte,
   presque transparent sur la poussière. */
.hero-scrim{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:
    linear-gradient(90deg,
      rgba(16,17,20,.95) 0%, rgba(16,17,20,.88) 30%,
      rgba(16,17,20,.55) 52%, rgba(16,17,20,.22) 74%, rgba(16,17,20,.42) 100%),
    linear-gradient(180deg,
      rgba(16,17,20,.72) 0%, rgba(16,17,20,.12) 30%,
      rgba(16,17,20,.42) 76%, var(--night) 100%);
}
.hero-glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(640px 380px at 84% 18%,rgba(255,94,31,.13),transparent 65%),
    radial-gradient(520px 320px at 8% 88%,rgba(69,196,255,.05),transparent 60%);
}
/* Le « nowrap » du titre impose sa largeur d'encre comme min-content : la
   colonne droite perd ~24px sur la grille. C'est assumé — forcer minmax(0)
   casse la composition du titre en cinq lignes avec « OFF-ROAD » coupé. */
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.hero .lead{margin:1.3rem 0 2rem}
.hero-actions{display:flex;gap:.85rem;flex-wrap:wrap}
.hero-stats{display:flex;gap:2.4rem;margin-top:2.6rem;flex-wrap:wrap}
.hstat{display:flex;flex-direction:column;gap:.15rem}
.hstat b{font-family:var(--font-data);font-size:1.55rem;font-weight:700;color:var(--dust)}
.hstat span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.hero-side{display:flex;flex-direction:column;gap:1.6rem;justify-content:flex-end;min-height:330px}
/* Le tracé décoratif faisait doublon par-dessus une vraie photographie :
   deux « routes » dans le même cadre. La photo porte désormais la colonne. */
.track-art{display:none}
.track-art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 14px 34px rgba(0,0,0,.5))}
/* carte d'entrée pro dans le hero */
.hero-pro{
  background:linear-gradient(180deg,rgba(255,94,31,.08),transparent 60%),var(--carbon);
  border:1px solid var(--line);border-radius:16px;padding:1.35rem 1.4rem;
  box-shadow:0 16px 38px rgba(0,0,0,.34);
}
.hero-pro h2{font-size:1.06rem;font-weight:800;letter-spacing:-.01em;line-height:1.3}
.hero-pro p{font-size:.88rem;color:var(--muted);margin-top:.4rem;line-height:1.55}
.hero-pro-foot{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line);
}
.hero-pro-price{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}
.hero-pro-price b{
  font-family:var(--font-body);font-size:1.42rem;font-weight:800;color:var(--orange);
  font-variant-numeric:tabular-nums;letter-spacing:-.025em;
}
.hero-pro-price small{font-size:.72rem;color:var(--muted);letter-spacing:.03em}
.track-line{stroke-dasharray:2400;stroke-dashoffset:2400;animation:draw 3.2s ease-out .3s forwards}
.track-dash{stroke-dasharray:3 14;opacity:0;animation:fadein 1s ease 2.4s forwards}
.track-pin{opacity:0;animation:droppin .5s cubic-bezier(.16,1,.3,1) forwards}
.track-pin.p1{animation-delay:1.4s}.track-pin.p2{animation-delay:1.9s}.track-pin.p3{animation-delay:2.4s}.track-pin.p4{animation-delay:2.9s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:.85}}
@keyframes droppin{0%{opacity:0;transform:translateY(-16px)}100%{opacity:1;transform:translateY(0)}}

/* ============ SECTIONS ============ */
.section{padding:84px 0}
.section-head{margin-bottom:2.2rem}
.section-head .lead{margin-top:.2rem}

/* ============ CARTE ============ */
.map-shell{
  display:grid;grid-template-columns:350px 1fr;gap:0;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--carbon);
  box-shadow:var(--shadow);
}
.map-side{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:600px;max-height:600px}
.map-filters{padding:1.1rem 1.1rem .9rem;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.8rem}
.search-box{position:relative}
.search-box input{
  width:100%;background:var(--night);border:1px solid var(--line);border-radius:10px;
  color:var(--dust);padding:.7rem .9rem .7rem 2.4rem;font-size:.95rem;font-family:inherit;
}
.search-box input::placeholder{color:#5d626c}
.search-box svg{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:#5d626c}
.filter-row{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{
  background:var(--night);border:1px solid var(--line);color:var(--muted);
  border-radius:99px;padding:.34rem .8rem;font-size:.8rem;font-weight:600;transition:all .15s;
}
.chip:hover{color:var(--dust);border-color:#3a3e47}
.chip.on{background:var(--orange-soft);border-color:var(--orange);color:var(--orange)}
.chip .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.4rem;vertical-align:1px}
select.ctry{
  background:var(--night);border:1px solid var(--line);color:var(--dust);border-radius:10px;
  padding:.55rem .8rem;font-size:.88rem;font-family:inherit;width:100%;
}
.results-bar{padding:.65rem 1.1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.results-bar .data{font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.geo-btn{background:none;border:none;color:var(--orange);font-size:.8rem;font-weight:700;display:flex;gap:.35rem;align-items:center}
.map-list{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.mitem{
  display:flex;gap:.85rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--line);
  width:100%;background:none;border-left:3px solid transparent;color:inherit;text-align:left;
  transition:background .15s;align-items:center;
}
.mitem:hover{background:var(--carbon2)}
.mitem.active{border-left-color:var(--orange);background:var(--carbon2)}
.mitem-thumb{width:52px;height:52px;border-radius:10px;flex:none;position:relative;overflow:hidden}
.mitem-body{min-width:0;flex:1}
.mitem-body h4{font-size:.92rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mitem-body p{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mitem-price{font-family:var(--font-data);font-size:.82rem;font-weight:700;flex:none;text-align:right}
.mitem-price small{display:block;color:var(--muted);font-size:.62rem;font-weight:400}
.lock-mini{color:var(--muted)}
#map{height:600px;width:100%;background:#0b0c0e;z-index:1}

/* Leaflet thème sombre */
.leaflet-container{font-family:var(--font-body)}
/* Le fond de carte Esri est un gris moyen : on le ramène dans la palette
   charbon du site. Le filtre ne porte que sur les tuiles, pas sur les pins. */
/* Tuiles OSM (claires) ramenées en sombre pour coller au thème charbon. */
.leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.62) contrast(1.05) saturate(.55)}
.leaflet-popup-content-wrapper{background:var(--carbon2);color:var(--dust);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}
.leaflet-popup-content{margin:0;width:248px!important}
.leaflet-popup-tip{background:var(--carbon2);border:1px solid var(--line)}
.leaflet-container a.leaflet-popup-close-button{color:var(--muted);padding:6px 8px 0 0}
.leaflet-bar a{background:var(--carbon2);color:var(--dust);border-bottom:1px solid var(--line)}
.leaflet-bar a:hover{background:var(--night);color:var(--orange)}
.leaflet-control-attribution{background:rgba(16,17,20,.75)!important;color:#6a707b!important;font-size:.62rem}
.leaflet-control-attribution a{color:#8b93a0!important}
.pop-card{padding:.9rem .95rem}
.pop-card h4{font-size:.98rem;font-weight:800;line-height:1.25;margin-bottom:.2rem}
.pop-card .loc{font-size:.76rem;color:var(--muted);margin-bottom:.55rem}
.pop-meta{display:flex;gap:.45rem;align-items:center;margin-bottom:.7rem;flex-wrap:wrap}
.pop-lock{font-size:.76rem;color:var(--muted);background:var(--night);border:1px dashed var(--line);border-radius:8px;padding:.5rem .6rem;margin-bottom:.7rem;line-height:1.45}

/* pins */
.pin{position:relative;width:32px;height:40px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}
.pin .tear{
  position:absolute;inset:0 0 8px 0;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--orange);border:2px solid rgba(255,255,255,.85);
}
.pin .ico{position:absolute;top:5px;left:50%;transform:translateX(-50%);color:#15110d;z-index:2}
.pin.locked .tear{background:#3a3e47;border-style:dashed;border-color:#6a707b}
.pin.locked .ico{color:#aab0ba}
.pin.mine .tear{box-shadow:0 0 0 4px rgba(143,209,79,.35)}
.pin-mx .tear{background:var(--c-mx)} .pin-quad .tear{background:var(--c-quad)}
.pin-buggy .tear{background:var(--c-buggy)} .pin-enduro .tear{background:var(--c-enduro)} .pin-x4 .tear{background:var(--c-x4)}
.map-legend{display:flex;gap:1.1rem;flex-wrap:wrap;margin-top:1rem;align-items:center}
.map-legend span{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:.4rem}
.map-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}

/* ============ BADGES TYPE & PLAQUES ============ */
.tbadge{
  font-family:var(--font-data);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;border-radius:6px;padding:.18rem .5rem;color:#15110d;display:inline-block;
}
.tb-mx{background:var(--c-mx)}.tb-quad{background:var(--c-quad)}.tb-buggy{background:var(--c-buggy)}
.tb-enduro{background:var(--c-enduro)}.tb-x4{background:var(--c-x4)}
.plate{
  font-family:var(--font-data);font-weight:700;background:var(--dust);color:#15110d;
  border-radius:8px;padding:.3rem .65rem;font-size:.92rem;display:inline-block;
  border:2px solid #15110d;box-shadow:0 2px 0 #000;
}
.plate small{font-size:.6rem;font-weight:600;display:block;line-height:1;margin-top:1px;letter-spacing:.05em}
.plate.free{background:var(--c-quad)}

/* ============ CARTES TERRAIN ============ */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:1.3rem}
.tcard{
  background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,border-color .2s;
  position:relative;
}
.tcard:hover{transform:translateY(-4px);border-color:#3a3e47}
.tmedia{height:158px;position:relative;overflow:hidden}
/* Profil de piste, pas de collines : crête lointaine, puis table, whoops,
   double et réception au premier plan. Le dessin doit dire « terrain », pas
   « paysage générique ». */
.tmedia::after{
  content:"";position:absolute;inset:auto 0 0 0;height:74%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 120' preserveAspectRatio='none'%3E%3Cpath d='M0 120 L0 86 L38 70 L72 79 L112 56 L152 71 L192 50 L242 68 L292 53 L342 71 L400 59 L400 120 Z' fill='rgba(10,10,12,0.42)'/%3E%3Cpath d='M0 120 L0 104 L28 104 L43 85 L76 85 L88 104 L103 104 L111 94 L119 104 L127 93 L135 104 L143 94 L151 104 L182 104 L199 79 L239 79 L253 104 L281 104 L294 90 L318 90 L329 104 L400 104 L400 120 Z' fill='rgba(7,7,9,0.72)'/%3E%3Cg stroke='rgba(255,255,255,0.06)' stroke-width='1.2' fill='none'%3E%3Cpath d='M0 112 L400 112'/%3E%3Cpath d='M0 116 L400 116'/%3E%3C/g%3E%3C/svg%3E") bottom/100% 100% no-repeat;
}
/* Voile sur les photos de carte : les badges et la plaque de prix doivent
   rester lisibles quel que soit le cliché, et l'image doit rester dans
   le monde sombre du site. */
.tmedia-photo img{filter:saturate(.92) contrast(1.05) brightness(.86)}
.tmedia-photo::before{
  content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(10,10,12,.5) 0%,rgba(10,10,12,.12) 38%,rgba(10,10,12,.72) 100%);
}
.tmedia-photo::after{opacity:.35}
.tmedia .tbadge{position:absolute;top:.8rem;left:.8rem;z-index:3}
.tmedia .plate{position:absolute;bottom:.7rem;right:.7rem;z-index:3}
.tmedia .flag{position:absolute;top:.8rem;right:.8rem;z-index:3;font-family:var(--font-data);font-size:.66rem;background:rgba(16,17,20,.7);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:.18rem .45rem;letter-spacing:.08em}
.g-mx{background:linear-gradient(135deg,#5a2410,#a3441c 55%,#d96a2b)}
.g-quad{background:linear-gradient(135deg,#1d3312,#3f6b22 55%,#6fa53b)}
.g-buggy{background:linear-gradient(135deg,#0e2c3d,#1c5b80 55%,#3592c4)}
.g-enduro{background:linear-gradient(135deg,#2a1a45,#54348c 55%,#8a5fd0)}
.g-x4{background:linear-gradient(135deg,#3d2c10,#7a5a1e 55%,#b58a35)}
.tbody{padding:1rem 1.05rem 1.1rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.tbody h3{font-size:1.04rem;font-weight:800;line-height:1.3}
.tloc{font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:.35rem}
.trow{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.6rem}
.stars{font-family:var(--font-data);font-size:.82rem;color:#f5c044}
.stars span{color:var(--muted);font-size:.74rem}
.tlen{font-family:var(--font-data);font-size:.76rem;color:var(--muted)}
.tcard .btn{margin:0 1.05rem 1.05rem;}
.tcard.locked .tbody h3,.tcard.locked .tloc{filter:blur(5px);user-select:none}
.lock-strip{
  position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;gap:.5rem;
  align-items:center;justify-content:center;background:rgba(16,17,20,.45);
  opacity:0;transition:opacity .2s;text-align:center;padding:1rem;
}
.tcard.locked:hover .lock-strip{opacity:1}
.tcard.locked .lock-tag{
  position:absolute;top:.65rem;right:.65rem;z-index:5;background:rgba(16,17,20,.8);
  border:1px solid var(--line);border-radius:8px;padding:.25rem .55rem;font-size:.68rem;
  font-family:var(--font-data);letter-spacing:.1em;color:var(--dust);display:flex;gap:.3rem;align-items:center;
}
.pending-tag{position:absolute;top:.65rem;right:.65rem;z-index:5;background:#f5c044;color:#15110d;border-radius:8px;padding:.25rem .55rem;font-size:.66rem;font-family:var(--font-data);font-weight:700;letter-spacing:.08em}

/* ============ ÉTAPES / PROPRIO ============ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.step{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.4rem}
.step .num{
  font-family:var(--font-data);font-weight:700;font-size:.8rem;color:var(--orange);
  border:1px solid var(--orange);border-radius:8px;width:34px;height:34px;display:grid;place-items:center;margin-bottom:1rem;
}
.step h3{font-size:1.08rem;font-weight:800;margin-bottom:.4rem}
.step p{font-size:.92rem;color:var(--muted)}
.owner-band{
  margin-top:64px;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  display:grid;grid-template-columns:1.1fr .9fr;background:linear-gradient(120deg,var(--carbon),var(--carbon2));
}
.owner-copy{padding:2.6rem 2.4rem}
.owner-copy h3{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:900;text-transform:uppercase;font-style:italic;line-height:1.05;margin-bottom:.9rem}
.owner-copy h3 em{color:var(--c-quad)}
.owner-copy ul{list-style:none;margin:1.2rem 0 1.6rem;display:flex;flex-direction:column;gap:.6rem}
.owner-copy li{display:flex;gap:.6rem;font-size:.95rem;color:var(--muted);align-items:flex-start}
.owner-copy li svg{flex:none;color:var(--c-quad);margin-top:3px}
.owner-art{position:relative;min-height:280px;background:
  radial-gradient(420px 260px at 70% 30%,rgba(143,209,79,.16),transparent 60%),var(--night)}
.owner-art svg{position:absolute;inset:0;width:100%;height:100%}

/* ============ TARIFS ============ */
.price-toggle{display:inline-flex;background:var(--carbon);border:1px solid var(--line);border-radius:99px;padding:.3rem;gap:.2rem;margin:0 0 2rem}
.price-toggle button{background:none;border:none;color:var(--muted);font-weight:700;font-size:.88rem;padding:.5rem 1.2rem;border-radius:99px}
.price-toggle button.on{background:var(--orange);color:#15110d}
.price-toggle .save{font-size:.68rem;font-family:var(--font-data);margin-left:.35rem;opacity:.85}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem;max-width:860px}
.pcard{background:var(--carbon);border:1px solid var(--line);border-radius:18px;padding:2rem 1.8rem;display:flex;flex-direction:column;position:relative}
.pcard.hot{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange),0 22px 60px rgba(255,94,31,.15)}
.pcard .tag{position:absolute;top:-13px;left:1.6rem;background:var(--orange);color:#15110d;font-family:var(--font-data);font-size:.66rem;font-weight:700;letter-spacing:.12em;padding:.3rem .7rem;border-radius:7px}
.pcard h3{font-size:1rem;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-data);color:var(--muted);margin-bottom:1rem}
.pprice{display:flex;align-items:baseline;gap:.4rem;margin-bottom:.3rem}
.pprice b{font-family:var(--font-data);font-size:2.9rem;font-weight:700;letter-spacing:-.03em}
.pprice span{color:var(--muted);font-size:.9rem}
.pnote{font-size:.8rem;color:var(--muted);margin-bottom:1.4rem;min-height:1.2em}
.pcard ul{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.8rem;flex:1}
.pcard li{display:flex;gap:.6rem;font-size:.93rem;align-items:flex-start;color:var(--dust)}
.pcard li.off{color:#5d626c;text-decoration:line-through}
.pcard li svg{flex:none;margin-top:4px;color:var(--orange)}
.pcard li.off svg{color:#5d626c}
.owner-free-note{margin-top:1.6rem;font-size:.88rem;color:var(--muted);display:flex;gap:.5rem;align-items:center}
.owner-free-note b{color:var(--c-quad)}

/* ============ FAQ ============ */
.faq{max-width:760px}
.faq details{border:1px solid var(--line);border-radius:12px;background:var(--carbon);margin-bottom:.8rem;overflow:hidden}
.faq summary{padding:1.05rem 1.2rem;font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-data);color:var(--orange);font-size:1.2rem;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-body{padding:0 1.2rem 1.1rem;color:var(--muted);font-size:.94rem}

/* ============ FOOTER ============ */
footer{border-top:1px solid var(--line);padding:3rem 0 2.2rem;margin-top:40px;background:var(--carbon)}
.foot-grid{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}
.foot-grid p{color:var(--muted);font-size:.88rem;max-width:34ch;margin-top:.6rem}
.foot-links{display:flex;gap:3rem;flex-wrap:wrap}
.foot-links h4{font-family:var(--font-data);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem}
.foot-links a{display:block;font-size:.9rem;color:var(--dust);opacity:.8;margin-bottom:.5rem}
.foot-links a:hover{opacity:1;color:var(--orange)}
.foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.4rem;font-size:.78rem;color:#6a707b}

/* ============ MODALES ============ */
.overlay{
  position:fixed;inset:0;z-index:90;background:rgba(8,9,11,.7);backdrop-filter:blur(6px);
  display:none;align-items:flex-start;justify-content:center;overflow-y:auto;padding:4vh 1rem;
}
.overlay.open{display:flex}
.modal{
  background:var(--carbon);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);
  width:100%;max-width:480px;position:relative;animation:pop .25s cubic-bezier(.16,1,.3,1);
}
.modal.wide{max-width:640px}
.modal.xl{max-width:820px}
@keyframes pop{from{transform:translateY(14px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.modal-head{padding:1.4rem 1.6rem 0;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.modal-head h3{font-size:1.25rem;font-weight:900;text-transform:uppercase;font-style:italic}
.modal-head p{color:var(--muted);font-size:.88rem;margin-top:.2rem}
.modal-body{padding:1.3rem 1.6rem 1.6rem}
.x-btn{background:none;border:1px solid var(--line);color:var(--muted);width:34px;height:34px;border-radius:9px;font-size:1rem;flex:none}
.x-btn:hover{color:var(--dust);border-color:var(--dust)}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.8rem;font-weight:700;margin-bottom:.4rem;color:var(--dust)}
.field label small{color:var(--muted);font-weight:400}
.field input,.field select,.field textarea{
  width:100%;background:var(--night);border:1px solid var(--line);border-radius:10px;
  color:var(--dust);padding:.72rem .9rem;font-size:.95rem;font-family:inherit;
}
.field textarea{resize:vertical;min-height:90px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--orange)}
.field .hint{font-size:.74rem;color:var(--muted);margin-top:.3rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form-err{color:#ff7a6b;font-size:.82rem;margin:-0.4rem 0 .8rem;display:none}
.form-err.show{display:block}
.auth-tabs{display:flex;gap:.4rem;background:var(--night);border-radius:11px;padding:.3rem;margin-bottom:1.3rem}
.auth-tabs button{flex:1;background:none;border:none;color:var(--muted);font-weight:700;padding:.55rem;border-radius:8px;font-size:.9rem}
.auth-tabs button.on{background:var(--carbon2);color:var(--dust)}
.demo-note{font-family:var(--font-data);font-size:.68rem;color:#6a707b;text-align:center;margin-top:1rem;letter-spacing:.04em}
.serv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.serv-grid label{
  display:flex;gap:.45rem;align-items:center;background:var(--night);border:1px solid var(--line);
  border-radius:9px;padding:.5rem .6rem;font-size:.8rem;cursor:pointer;font-weight:600;margin:0;
}
.serv-grid label:has(input:checked){border-color:var(--orange);color:var(--orange);background:var(--orange-soft)}
.serv-grid input{width:auto;accent-color:var(--orange)}
#miniMap{height:230px;border-radius:12px;border:1px solid var(--line);margin-top:.4rem;z-index:1}
.photo-drop{
  border:1.5px dashed var(--line);border-radius:12px;padding:1.2rem;text-align:center;
  color:var(--muted);font-size:.88rem;cursor:pointer;transition:border-color .15s;
}
.photo-drop:hover{border-color:var(--orange);color:var(--dust)}
.photo-previews{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}
.photo-previews .ph{width:74px;height:74px;border-radius:10px;overflow:hidden;position:relative;border:1px solid var(--line)}
.photo-previews .ph img{width:100%;height:100%;object-fit:cover}
.photo-previews .ph button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:6px;border:none;background:rgba(16,17,20,.85);color:#fff;font-size:.7rem;line-height:1}

/* checkout */
.plan-pick{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.2rem}
.plan-pick button{
  background:var(--night);border:1.5px solid var(--line);border-radius:12px;padding:.85rem .9rem;
  color:var(--dust);text-align:left;transition:border-color .15s;
}
.plan-pick button.on{border-color:var(--orange);background:var(--orange-soft)}
.plan-pick b{font-family:var(--font-data);font-size:1.15rem;display:block}
.plan-pick span{font-size:.74rem;color:var(--muted)}
.plan-pick .eco{color:var(--c-quad);font-weight:700}
.pay-total{display:flex;justify-content:space-between;align-items:center;background:var(--night);border:1px solid var(--line);border-radius:11px;padding:.8rem 1rem;margin:1.1rem 0;font-size:.92rem}
.pay-total b{font-family:var(--font-data);font-size:1.2rem}
.secure-line{display:flex;gap:.45rem;align-items:center;justify-content:center;color:var(--muted);font-size:.76rem;margin-top:.8rem}
.success-pane{text-align:center;padding:1.4rem 0 .4rem}
.success-pane .check{
  width:74px;height:74px;border-radius:50%;background:var(--orange);display:grid;place-items:center;
  margin:0 auto 1.2rem;animation:pop .4s cubic-bezier(.16,1,.3,1);color:#15110d;
}
.success-pane h4{font-size:1.4rem;font-weight:900;text-transform:uppercase;font-style:italic;margin-bottom:.5rem}
.success-pane p{color:var(--muted);font-size:.92rem;margin-bottom:1.4rem}

/* détail terrain */
.det-gallery{display:grid;grid-template-columns:2fr 1fr;gap:.5rem;height:230px;border-radius:14px;overflow:hidden;margin-bottom:1.2rem}
.det-gallery .g{position:relative;overflow:hidden}
.det-gallery .g img{width:100%;height:100%;object-fit:cover}
.det-gallery .gside{display:grid;grid-template-rows:1fr 1fr;gap:.5rem}
.det-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap}
.det-head h3{font-size:1.45rem;font-weight:900;line-height:1.15}
.det-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:1.1rem 0}
.dstat{background:var(--night);border:1px solid var(--line);border-radius:11px;padding:.7rem .8rem}
.dstat small{display:block;font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-data);margin-bottom:.2rem}
.dstat b{font-size:.95rem}
.det-serv{display:flex;gap:.45rem;flex-wrap:wrap;margin:.9rem 0 1.1rem}
.det-serv span{font-size:.76rem;background:var(--night);border:1px solid var(--line);border-radius:99px;padding:.3rem .7rem;color:var(--muted)}
.det-lockbox{
  border:1.5px dashed var(--orange);background:var(--orange-soft);border-radius:13px;
  padding:1.1rem 1.2rem;margin-top:1rem;
}
.det-lockbox h5{font-weight:800;margin-bottom:.3rem;display:flex;gap:.45rem;align-items:center}
.det-lockbox p{font-size:.86rem;color:var(--muted);margin-bottom:.9rem}
.det-contact{background:var(--night);border:1px solid var(--line);border-radius:13px;padding:1rem 1.2rem;margin-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.det-contact .data{font-size:.95rem}
.det-contact small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.2rem}

/* toast */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);z-index:120;
  background:var(--carbon2);border:1px solid rgba(255,94,31,.45);
  border-radius:12px;padding:.85rem 1.2rem;font-size:.9rem;box-shadow:var(--shadow);
  opacity:0;pointer-events:none;transition:all .25s;max-width:90%;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ============ RESPONSIVE ============ */
@media (max-width:1023px){
  .hero-grid{grid-template-columns:1fr}
  .hero-side{max-width:560px;margin:0 auto;width:100%}
  .track-art{max-width:560px;margin:0 auto}
  .map-shell{grid-template-columns:1fr}
  .map-side{max-height:380px;min-height:0;border-right:none;border-bottom:1px solid var(--line)}
  #map{height:440px}
  .steps{grid-template-columns:1fr}
  .owner-band{grid-template-columns:1fr}
  .owner-art{min-height:200px}
  .pgrid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .nav-links{display:none}
  /* Le parcours payant ne doit pas disparaître derrière le burger :
     seul le contrôle pro reste visible dans la barre. */
  .nav-cta{display:flex;margin-left:auto;gap:.45rem;min-width:0}
  .nav-cta > *:not(.nav-pro):not(.nav-dash){display:none}
  .nav-cta .nav-dash{max-width:150px;overflow:hidden;white-space:nowrap}
  .burger{margin-left:.45rem}
  .nav-links.open{display:flex;position:fixed;top:64px;left:0;right:0;background:var(--carbon);flex-direction:column;padding:1.2rem 5%;gap:1.1rem;border-bottom:1px solid var(--line);margin:0}
  .nav-links.open .only-mobile{display:flex;gap:.6rem;flex-wrap:wrap}
  .burger{display:block}
  .hero{padding:120px 0 60px}
  .hero-side{min-height:0}
  .nav-cta .nav-pro{white-space:nowrap;padding:.45rem .7rem}
  .section{padding:60px 0}
  .field-row,.serv-grid{grid-template-columns:1fr}
  .det-stats{grid-template-columns:repeat(2,1fr)}
  .hero-stats{gap:1.5rem}
  .det-gallery{grid-template-columns:1fr;height:200px}
  .det-gallery .gside{display:none}
}
.only-mobile{display:none}

/* ============================================================
   RIDESPOT — AJOUTS B2B (pros, dashboard, centrale, trust score,
   traduction, lead magnet, services)
   ============================================================ */

/* sélecteur de langue */
.lang-switch{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--carbon)}
.lang-switch button{background:none;border:none;color:var(--muted);font-family:var(--font-data);font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:.4rem .55rem}
.lang-switch button.on{background:var(--orange);color:#15110d}
.lang-switch button:not(.on):hover{color:var(--dust)}

/* bandeau "gratuit pour les pilotes" dans le hero */
.free-pill{display:inline-flex;align-items:center;gap:.5rem;background:rgba(143,209,79,.12);border:1px solid rgba(143,209,79,.4);color:var(--c-quad);border-radius:99px;padding:.4rem .9rem;font-size:.82rem;font-weight:700;margin-bottom:1.3rem;font-family:var(--font-data);letter-spacing:.02em}
.free-pill .dotlive{width:8px;height:8px;border-radius:50%;background:var(--c-quad);box-shadow:0 0 0 0 rgba(143,209,79,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(143,209,79,.5)}70%{box-shadow:0 0 0 7px rgba(143,209,79,0)}100%{box-shadow:0 0 0 0 rgba(143,209,79,0)}}

/* prix membre / lead magnet sur les fiches */
.price-block{display:flex;flex-direction:column;align-items:flex-end;gap:1px;line-height:1.1}
.price-public{font-family:var(--font-data);font-size:.72rem;color:#6a707b;text-decoration:line-through}
.price-member{font-family:var(--font-data);font-weight:700;font-size:1rem;color:var(--c-quad)}
.price-member small{font-size:.58rem;display:block;letter-spacing:.04em;font-weight:600}
.member-hint{font-size:.74rem;color:var(--c-quad);display:flex;gap:.3rem;align-items:center;margin-top:.2rem;font-weight:600}
.member-hint.lock{color:var(--muted)}

/* badge "traduit auto" */
.auto-trad{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-data);font-size:.62rem;letter-spacing:.06em;color:#7fb3e0;background:rgba(69,196,255,.1);border:1px solid rgba(69,196,255,.3);border-radius:6px;padding:.16rem .45rem;margin-bottom:.7rem}

/* ===== ESPACE PRO : grille des catégories ===== */
/* La section qui vend porte sa propre matière : ornières de pneus en fond,
   très assombries. Elle rompt l'uniformité du défilement sans changer la
   palette ni concurrencer le texte. */
.pro-hero{
  position:relative;isolation:isolate;
  background:linear-gradient(180deg,var(--carbon),var(--night));
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.pro-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(23,25,29,.94) 0%,rgba(16,17,20,.89) 45%,var(--night) 100%),
    url("../img/texture-dirt.jpg") center/cover no-repeat;
}
/* ---- Grille tarifaire (l'objet de décision de l'espace pro) ---- */
.plans{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));
  gap:1.3rem;max-width:860px;margin:2.6rem auto 0;
}
.plan{
  background:var(--carbon);border:1px solid var(--line);border-radius:18px;
  padding:1.9rem 1.7rem 1.7rem;display:flex;flex-direction:column;position:relative;
  transition:border-color .2s,transform .2s;
}
.plan:hover{transform:translateY(-3px);border-color:#3a3e47}
.plan-featured{
  border-color:rgba(255,94,31,.55);
  background:linear-gradient(180deg,rgba(255,94,31,.07),transparent 46%),var(--carbon);
  box-shadow:0 20px 48px rgba(0,0,0,.42);
}
.plan-featured:hover{border-color:var(--orange)}
.plan-tag{
  position:absolute;top:-11px;left:1.7rem;
  font-family:var(--font-data);font-size:.62rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;background:var(--orange);color:#15110d;
  border-radius:6px;padding:.25rem .55rem;
}
.plan-head h3{font-size:1.3rem;font-weight:800;letter-spacing:-.01em}
.plan-head p{font-size:.9rem;color:var(--muted);margin-top:.35rem;max-width:34ch}
.plan-price{
  display:flex;align-items:baseline;gap:.45rem;
  margin:1.4rem 0 .2rem;padding-bottom:1.3rem;border-bottom:1px solid var(--line);
}
/* Le prix est lu avant tout le reste : police de texte, pas monospace —
   en mono, la virgule et l'euro occupent une cellule pleine et le prix
   se lit « 29 , 99  € ». */
.plan-price b{
  font-family:var(--font-body);font-size:2.5rem;font-weight:800;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;line-height:1;
}
.plan-featured .plan-price b{color:var(--orange)}
.plan-price span{font-size:.78rem;color:var(--muted);letter-spacing:.04em}
.plan-feat{list-style:none;margin:1.3rem 0 1.7rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.plan-feat li{display:flex;gap:.6rem;font-size:.92rem;line-height:1.45;align-items:flex-start}
.plan-feat li::before{
  content:"";flex:none;width:15px;height:15px;margin-top:.22rem;background:var(--orange);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/15px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/15px no-repeat;
}
.plans-note{
  max-width:860px;margin:1.4rem auto 0;text-align:center;
  font-size:.88rem;color:var(--muted);line-height:1.6;
}
.plans-note b{color:var(--c-quad);font-weight:700}
.grid-more{display:flex;justify-content:center;margin-top:2rem}
/* Mention de mise en avant payante (L111-7) */
.promo-tag{display:inline-block;align-self:flex-start;width:auto;margin-bottom:.35rem;font-family:var(--font-data);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);border:1px solid rgba(255,94,31,.4);border-radius:5px;padding:.12rem .4rem}
/* Pied de fiche : annonceur, signalement, classement & avis */
.det-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;margin-top:1.3rem;padding-top:.9rem;border-top:1px solid var(--line);font-size:.76rem;color:var(--muted)}
.det-legal a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.det-legal a:hover{color:var(--orange)}
/* Marqueur des 26 fiches de démonstration : tant qu'elles sont fictives,
   elles doivent se déclarer partout où elles apparaissent. */
.demo-tag{
  /* en bas à gauche : le haut-gauche appartient au badge de discipline,
     le bas-droit à la plaque de prix. */
  position:absolute;bottom:.7rem;left:.8rem;z-index:5;
  font-family:var(--font-data);font-size:.58rem;font-weight:700;letter-spacing:.14em;
  background:rgba(16,17,20,.82);color:#c9cfd9;border:1px solid rgba(201,207,217,.32);
  border-radius:5px;padding:.2rem .45rem;backdrop-filter:blur(4px);
}
.free-listing{
  max-width:640px;margin:2.6rem auto 0;text-align:center;
  font-size:.9rem;color:var(--muted);line-height:1.65;
}
.linklike{
  background:none;border:none;padding:0;font:inherit;font-weight:700;
  color:var(--c-quad);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.linklike:hover{color:var(--dust)}

.pro-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.3rem}
.pcat{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem;display:flex;flex-direction:column;transition:transform .2s,border-color .2s;position:relative}
.pcat:hover{transform:translateY(-4px);border-color:var(--orange)}
.pcat.free-cat:hover{border-color:var(--c-quad)}
.pcat .ic{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--orange-soft);color:var(--orange);margin-bottom:1.1rem}
.pcat.free-cat .ic{background:rgba(143,209,79,.12);color:var(--c-quad)}
.pcat h3{font-size:1.12rem;font-weight:800;margin-bottom:.5rem}
.pcat .pc-desc{font-size:.9rem;color:var(--muted);margin-bottom:1rem;flex:1}
/* Le prix se décide dans la grille tarifaire au-dessus : ici il n'est plus
   qu'une précision par métier, et les CTA restent secondaires. */
.pcat .pc-price{font-family:var(--font-body);font-weight:700;font-size:.98rem;margin-bottom:.3rem;color:var(--dust);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.pcat .pc-price small{font-size:.7rem;color:var(--muted);font-weight:400}
.pro-cats .btn{background:transparent;color:var(--dust);border:1px solid var(--line-ctl);box-shadow:none}
.pro-cats .btn:hover{border-color:var(--orange);color:var(--orange);transform:none}
.pro-cats .free-cat .btn:hover{border-color:var(--c-quad);color:var(--c-quad)}
.pro-cats-head{
  text-align:center;margin:3.4rem auto 1.6rem;max-width:560px;
}
.pro-cats-head h3{font-size:1.18rem;font-weight:800;letter-spacing:-.01em}
.pro-cats-head p{font-size:.9rem;color:var(--muted);margin-top:.4rem}
.pcat .pc-price .free-txt{color:var(--c-quad)}
.pcat .pc-comm{font-size:.78rem;color:var(--muted);margin-bottom:1.1rem}
.pcat ul{list-style:none;display:flex;flex-direction:column;gap:.45rem;margin:.4rem 0 1.2rem}
.pcat li{display:flex;gap:.5rem;font-size:.86rem;color:var(--dust);align-items:flex-start}
.pcat li svg{flex:none;margin-top:3px;color:var(--orange)}
.pcat.free-cat li svg{color:var(--c-quad)}

/* bandeau MRR / valeur pro */
.pro-band{margin-top:60px;border:1px solid var(--line);border-radius:18px;padding:2.4rem;background:radial-gradient(600px 300px at 80% 20%,rgba(255,94,31,.12),transparent 60%),var(--carbon);text-align:center}
.pro-band h3{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:900;text-transform:uppercase;font-style:italic;margin-bottom:.8rem}
.pro-band p{color:var(--muted);max-width:60ch;margin:0 auto 1.6rem}
.pro-band .stat-row{display:flex;justify-content:center;gap:3rem;flex-wrap:wrap;margin-bottom:2rem}
.pro-band .stat-row b{font-family:var(--font-data);font-size:2rem;display:block;color:var(--orange)}
.pro-band .stat-row span{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* ===== TRUST SCORE ===== */
.trust-wrap{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.trust-card{background:var(--carbon);border:1px solid var(--line);border-radius:18px;padding:1.8rem;box-shadow:var(--shadow)}
.trust-top{display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}
.trust-av{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#ff8a5c);display:grid;place-items:center;font-weight:900;font-size:1.3rem;color:#15110d}
.trust-name{font-weight:800;font-size:1.05rem}
.trust-tag{font-family:var(--font-data);font-size:.7rem;color:var(--c-quad);letter-spacing:.06em}
.trust-gauge{height:12px;border-radius:99px;background:var(--night);overflow:hidden;border:1px solid var(--line);margin:.4rem 0}
.trust-gauge i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ff5e1f,#f5c044,#8fd14f)}
.trust-scale{display:flex;justify-content:space-between;font-family:var(--font-data);font-size:.66rem;color:var(--muted)}
.trust-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.2rem}
.tlvl{font-family:var(--font-data);font-size:.66rem;letter-spacing:.06em;border-radius:7px;padding:.25rem .6rem;font-weight:700}
.tlvl.elite{background:rgba(245,192,68,.16);color:#f5c044;border:1px solid rgba(245,192,68,.4)}
.tlvl.ok{background:rgba(143,209,79,.14);color:var(--c-quad);border:1px solid rgba(143,209,79,.35)}
.tlvl.warn{background:rgba(255,94,31,.14);color:var(--orange);border:1px solid rgba(255,94,31,.4)}
.trust-list{list-style:none;display:flex;flex-direction:column;gap:.9rem}
.trust-list li{display:flex;gap:.8rem;align-items:flex-start}
.trust-list .ti{width:38px;height:38px;border-radius:10px;flex:none;display:grid;place-items:center;background:var(--orange-soft);color:var(--orange)}
.trust-list h4{font-size:.98rem;font-weight:800;margin-bottom:.15rem}
.trust-list p{font-size:.88rem;color:var(--muted)}

/* ===== DASHBOARD PRO ===== */
.modal.dash{max-width:980px}
.dash-shell{display:grid;grid-template-columns:208px 1fr;min-height:520px}
.dash-side{border-right:1px solid var(--line);padding:1.2rem .9rem;display:flex;flex-direction:column;gap:.2rem;background:var(--night);border-radius:0 0 0 18px}
.dash-side .biz{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem 1rem;border-bottom:1px solid var(--line);margin-bottom:.8rem}
.dash-side .biz .av{width:34px;height:34px;border-radius:9px;background:var(--orange);color:#15110d;display:grid;place-items:center;font-weight:800;flex:none}
.dash-side .biz small{display:block;font-size:.68rem;color:var(--muted)}
.dash-tab{display:flex;align-items:center;gap:.6rem;background:none;border:none;color:var(--muted);text-align:left;padding:.6rem .7rem;border-radius:9px;font-size:.88rem;font-weight:600;width:100%}
.dash-tab:hover{background:var(--carbon2);color:var(--dust)}
.dash-tab.on{background:var(--orange-soft);color:var(--orange)}
.dash-tab svg{flex:none}
.dash-tab .pro-lock{margin-left:auto;font-size:.62rem;font-family:var(--font-data);color:#6a707b}
.dash-content{padding:1.5rem 1.7rem;overflow-y:auto;max-height:72vh}
.dash-content h3{font-size:1.2rem;font-weight:900;text-transform:uppercase;font-style:italic;margin-bottom:.3rem}
.dash-content .sub{color:var(--muted);font-size:.88rem;margin-bottom:1.3rem}
.dash-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.5rem}
.kpi{background:var(--night);border:1px solid var(--line);border-radius:12px;padding:1rem}
.kpi small{font-family:var(--font-data);font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:.3rem}
.kpi b{font-family:var(--font-data);font-size:1.5rem;font-weight:700}
.kpi .up{color:var(--c-quad);font-size:.72rem;font-weight:700}

/* widget réservation (preview) */
.book-widget{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--carbon2);max-width:340px}
.book-widget .bw-head{background:var(--orange);color:#15110d;padding:.7rem 1rem;font-weight:800;font-size:.9rem;display:flex;justify-content:space-between;align-items:center}
.book-widget .bw-body{padding:1rem}
.book-widget .bw-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.86rem}
.book-widget .bw-slots{display:flex;gap:.4rem;flex-wrap:wrap;margin:.7rem 0}
.book-widget .slot{font-family:var(--font-data);font-size:.74rem;border:1px solid var(--line);border-radius:7px;padding:.3rem .5rem;color:var(--muted)}
.book-widget .slot.on{border-color:var(--orange);color:var(--orange);background:var(--orange-soft)}
.embed-code{background:var(--night);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;font-family:var(--font-data);font-size:.74rem;color:#8fd14f;overflow-x:auto;white-space:pre;margin-top:1rem}
.upsell{border:1.5px dashed var(--orange);background:var(--orange-soft);border-radius:13px;padding:1.4rem;text-align:center}
.upsell h4{font-weight:800;margin-bottom:.4rem}
.upsell p{color:var(--muted);font-size:.88rem;margin-bottom:1rem}

/* centrale d'achat */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem}
.shop-card{background:var(--night);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.shop-card .sc-img{height:96px;display:grid;place-items:center;color:var(--orange)}
.shop-card .sc-img svg{width:34px;height:34px}
.shop-card .sc-b{padding:.7rem .8rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.shop-card .sc-n{font-size:.84rem;font-weight:700;line-height:1.25}
.shop-card .sc-cat{font-family:var(--font-data);font-size:.6rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.shop-card .sc-price{margin-top:auto;display:flex;align-items:baseline;gap:.4rem}
.shop-card .sc-price b{font-family:var(--font-data);color:var(--c-quad);font-weight:700}
.shop-card .sc-price s{font-size:.7rem;color:#6a707b}
.shop-card .sc-add{background:var(--carbon2);border:none;border-top:1px solid var(--line);color:var(--orange);font-weight:700;font-size:.8rem;padding:.5rem}
.shop-card .sc-add:hover{background:var(--orange-soft)}
.shop-bar{display:flex;justify-content:space-between;align-items:center;background:var(--night);border:1px solid var(--line);border-radius:11px;padding:.7rem 1rem;margin-bottom:1.2rem;font-size:.86rem}
.shop-bar .data{font-family:var(--font-data);color:var(--c-quad);font-weight:700}

/* billetterie */
.evt-card{background:var(--night);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;flex-wrap:wrap}
.evt-card .ev-date{font-family:var(--font-data);text-align:center;color:var(--orange);flex:none}
.evt-card .ev-date b{font-size:1.3rem;display:block}
.evt-card .ev-meta h4{font-size:.96rem;font-weight:800}
.evt-card .ev-meta p{font-size:.8rem;color:var(--muted)}
.evt-card .ev-boost{font-family:var(--font-data);font-size:.66rem;background:rgba(245,192,68,.16);color:#f5c044;border:1px solid rgba(245,192,68,.35);border-radius:7px;padding:.2rem .5rem}

/* services annexes */
.svc-band{margin-top:60px;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;background:linear-gradient(120deg,var(--carbon),var(--carbon2))}
.svc-copy{padding:2.6rem 2.4rem}
.svc-copy h3{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:900;text-transform:uppercase;font-style:italic;line-height:1.05;margin-bottom:.9rem}
.svc-copy h3 em{color:var(--c-buggy)}
.svc-copy .price-from{font-family:var(--font-data);font-size:1.6rem;font-weight:700;color:var(--dust);margin:.4rem 0 1rem}
.svc-copy ul{list-style:none;margin:1rem 0 1.6rem;display:flex;flex-direction:column;gap:.55rem}
.svc-copy li{display:flex;gap:.6rem;font-size:.92rem;color:var(--muted);align-items:flex-start}
.svc-copy li svg{flex:none;color:var(--c-buggy);margin-top:3px}
.svc-art{position:relative;min-height:280px;background:radial-gradient(420px 260px at 60% 40%,rgba(69,196,255,.16),transparent 60%),var(--night)}
.svc-art svg{position:absolute;inset:0;width:100%;height:100%}

/* track days / anti-rodéo */
.track-band{margin-top:64px;border:1px solid rgba(255,94,31,.35);border-radius:18px;padding:2.4rem;background:radial-gradient(500px 280px at 15% 30%,rgba(255,94,31,.14),transparent 60%),var(--carbon);display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}
.track-band h3{font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:900;text-transform:uppercase;font-style:italic;margin-bottom:.7rem}
.track-band p{color:var(--muted);max-width:54ch;font-size:.94rem}

/* catégorie picker (signup pro) */
.cat-pick{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.2rem}
.cat-pick button{display:flex;align-items:center;gap:.8rem;background:var(--night);border:1.5px solid var(--line);border-radius:12px;padding:.8rem .9rem;color:var(--dust);text-align:left}
.cat-pick button.on{border-color:var(--orange);background:var(--orange-soft)}
.cat-pick .ci{width:34px;height:34px;border-radius:9px;background:var(--carbon2);display:grid;place-items:center;flex:none;color:var(--orange)}
.cat-pick .ci svg{width:19px;height:19px}
.cat-pick b{display:block;font-size:.92rem}
.cat-pick span{font-size:.74rem;color:var(--muted)}
.cat-pick .cprice{margin-left:auto;font-family:var(--font-data);font-weight:700;font-size:.85rem;flex:none}
.ht-note{font-size:.74rem;color:var(--muted);text-align:center;margin-top:-.4rem;margin-bottom:.8rem}

@media (max-width:1023px){
  .trust-wrap{grid-template-columns:1fr;gap:2rem}
  .svc-band{grid-template-columns:1fr}
  .svc-art{min-height:200px}
  .track-band{grid-template-columns:1fr;text-align:center}
  .dash-shell{grid-template-columns:1fr}
  .dash-side{flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);border-radius:0}
  .dash-side .biz{width:100%}
  .dash-content{max-height:none}
}
.only-mobile{display:none}
/* consentements & options (inscription) */
.opt-line{display:flex;gap:.55rem;align-items:flex-start;font-size:.84rem;color:var(--muted);cursor:pointer;margin-bottom:.9rem}
.opt-line input{margin-top:3px;accent-color:var(--orange);flex:none}
.opt-line a{color:var(--orange)}
.consent-line{background:var(--night);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem}
/* bandeau cookies */
/* (bandeau cookies retiré — aucun traceur non nécessaire, Voie A) */
/* Label RideSpot */
.label-badge{font-family:var(--font-data);font-size:.6rem;font-weight:700;letter-spacing:.06em;border-radius:7px;padding:.22rem .5rem;border:1px solid}
.lb-verifie{background:rgba(143,209,79,.16);color:var(--c-quad);border-color:rgba(143,209,79,.4)}
.lb-bronze{background:rgba(205,127,50,.18);color:#e0965a;border-color:rgba(205,127,50,.45)}
.lb-argent{background:rgba(190,198,210,.16);color:#c8cfd9;border-color:rgba(190,198,210,.4)}
.lb-or{background:rgba(245,192,68,.18);color:#f5c044;border-color:rgba(245,192,68,.45)}
/* profil : machines */
.mach-row{display:flex;gap:.4rem;align-items:center;margin-bottom:.4rem;font-size:.84rem}
.mach-row .rm{background:none;border:1px solid var(--line);color:var(--muted);border-radius:7px;width:26px;height:26px;flex:none}
.mach-row .rm:hover{color:var(--orange);border-color:var(--orange)}
.parr-code{display:flex;align-items:center;gap:.6rem;background:var(--night);border:1px dashed var(--line);border-radius:10px;padding:.6rem .8rem;margin-bottom:1rem}
.parr-code b{font-family:var(--font-data);letter-spacing:.08em;color:var(--c-quad)}

/* ============ Revue d'octobre 2026 : nouveaux éléments ============ */
.hstat-ico{display:inline-flex;color:var(--orange)}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.plate.np-plate{background:var(--carbon2);color:var(--muted);border:1px solid var(--line)}
.det-np{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;border:1px dashed var(--line-ctl);border-radius:12px;padding:.8rem .9rem;margin:1rem 0}
.det-np .np-tag{flex:1 1 100%;font-size:.8rem;color:var(--muted)}
.fav-btn.on{border-color:var(--c-quad);color:var(--c-quad)}
.soon-tag{display:inline-block;font-family:var(--font-data);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;vertical-align:middle;border:1px solid rgba(227,179,65,.5);color:var(--c-x4);background:rgba(227,179,65,.1);border-radius:6px;padding:.18rem .45rem;margin-left:.4rem}
.stat-curve{border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;margin:1rem 0}
.stat-curve small{display:block;font-size:.76rem;color:var(--muted);margin-bottom:.4rem}
.stat-curve svg{width:100%;height:70px;display:block}
.stat-axis{display:flex;justify-content:space-between;font-family:var(--font-data);font-size:.66rem;color:var(--muted);margin-top:.3rem}
.stat-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem}
.stat-bar{display:grid;grid-template-columns:1fr auto;gap:.2rem .6rem;align-items:center;font-size:.84rem;margin-bottom:.45rem}
.stat-bar i{grid-column:1/3;height:5px;border-radius:3px;background:var(--orange);opacity:.75;display:block}
.stat-bar b{font-family:var(--font-data);font-size:.8rem}
.kpi .down{color:#ff8a8a;font-size:.74rem}
/* Page /pros : grille à 5 formules, formulaires */
.plans.plans-5{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));max-width:none}
.plan .plan-free{color:var(--c-quad)}
.plan.plan-soon{opacity:.85;border-style:dashed}
.page-hero{padding:120px 0 40px}
.page-hero .lead{max-width:62ch}
.pro-form{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;max-width:860px}
.pro-form h3{font-size:1.15rem;font-weight:900;text-transform:uppercase;font-style:italic;margin-bottom:.4rem}
.pro-form .sub{color:var(--muted);font-size:.9rem;margin-bottom:1rem}
.form-ok{color:var(--c-quad);font-weight:700;display:none;margin-top:.8rem}
.form-ok.show{display:block}
#lsMap{height:260px;border-radius:12px;border:1px solid var(--line)}
.claim-note{border:1px solid rgba(255,94,31,.45);background:var(--orange-soft);border-radius:10px;padding:.7rem .9rem;font-size:.88rem;margin-bottom:1rem}
.about-card{background:var(--carbon);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;max-width:760px;margin-bottom:1.4rem}
.about-av{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#15110d;font-weight:900;font-size:1.4rem;margin-bottom:1rem}
/* Pages terrain (/terrain/<nom>) et terrains par département */
.fiche-main{padding:110px 0 56px;min-height:60vh}
.fiche-wrap{max-width:860px}
.crumbs{font-size:.8rem;color:var(--muted);margin-bottom:1.1rem}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--orange)}
.det-title{font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:900;line-height:1.12}
.tlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}
.tl-card{display:flex;flex-direction:column;gap:.25rem;background:var(--carbon);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;color:var(--dust);transition:border-color .2s}
.tl-card:hover{border-color:var(--orange)}
.tl-card b{font-size:1rem}
@media (max-width:640px){.fiche-main .det-gallery{height:180px}.fiche-main .det-stats{grid-template-columns:1fr 1fr}}
