/* SignalNids Rando 3.0 — thème compatible V2.8 / V2.9, desktop + PWA portrait.
   Photos Unsplash sous https://unsplash.com/license ; image locale en arrière-plan de secours.
   Aucun style GPS Live, carte Leaflet, header ni rail de navigation global n'est remplacé. */
.snr300-page{--snr300-forest:#14553b;--snr300-border:#e0eadf;--snr300-muted:#667e6e;--snr300-surface:#f8faf6;color:#234c35;background:#fbfaf7}
.snr300-page :where(.snr300-container,.snr300-grid,.snr300-primary,.snr300-secondary,.snr300-card,.snr300-route-card,.snr300-route-text,.snr300-badge){box-sizing:border-box;min-width:0;max-width:100%}
.snr300-page .snr300-hero{min-height:clamp(270px,28vw,400px)}
.snr300-preparer .snr300-hero{--sn280-photo:url('https://images.unsplash.com/photo-1501785888041-af3ef285b470?auto=format&fit=crop&w=2200&q=86')}
.snr300-pour-moi .snr300-hero{--sn280-photo:url('https://images.unsplash.com/photo-1470770841072-f978cf4d019e?auto=format&fit=crop&w=2200&q=86')}
.snr300-defis .snr300-hero{--sn280-photo:url('https://images.unsplash.com/photo-1472396961693-142e6e269027?auto=format&fit=crop&w=2200&q=86')}
.snr300-page .snr300-hero .wrap{padding-top:clamp(48px,5vw,78px);padding-bottom:clamp(54px,5vw,82px)}
.snr300-page .snr300-hero h1{max-width:1000px}
.snr300-container{padding-block:28px 106px}
.snr300-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;align-items:stretch}
.snr300-tabs a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:49px;border:1px solid #d8e8dc;background:#fff;color:#27573b;padding:10px 20px;border-radius:999px;text-decoration:none;font-weight:800;font-size:14px;line-height:1.25}
.snr300-tabs a:hover,.snr300-tabs a:focus-visible{border-color:#197044;background:#e9f5ec}
.snr300-tabs a.is-active{background:#15553a;border-color:#15553a;color:#fff}
.snr300-tabs .icon{width:18px;height:18px;flex-shrink:0}
.snr300-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.85fr);gap:24px;align-items:start}
.snr300-grid>*{min-width:0}
.snr300-primary,.snr300-secondary{display:flex;flex-direction:column;gap:20px}
.snr300-page .snr300-card{padding:clamp(19px,2.3vw,30px);border:1px solid var(--snr300-border);border-radius:22px;background:#fff;box-shadow:0 12px 33px rgba(19,73,42,.06)}
.snr300-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:23px}
.snr300-section-heading>div{min-width:0}
.snr300-kicker{font-size:11px!important;font-weight:850;letter-spacing:.14em;color:#39845a;text-transform:uppercase}
.snr300-page .snr300-card h2{font-family:Georgia,'Times New Roman',serif;color:#164f37;font-size:clamp(22px,2.1vw,29px);line-height:1.2;margin:5px 0 8px}
.snr300-section-heading p{font-size:13.5px;line-height:1.65;color:var(--snr300-muted);margin:5px 0 0}
.snr300-soft-link{flex-shrink:0;color:#216546;text-decoration:none;font-size:13px;font-weight:800}
.snr300-soft-link:hover{text-decoration:underline}
.snr300-form{display:flex;flex-direction:column;gap:17px}
.snr300-form label,.snr300-plan-actions label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:800;color:#2a5840}
.snr300-form label small{font-weight:500;color:#799281;font-size:12px}
.snr300-form :is(input,select,textarea),.snr300-plan-actions select{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;font:inherit;font-size:16px;line-height:1.4;color:#234c36;background:#f9fbf8;border:1px solid #d9e7da;border-radius:13px;padding:12px 14px;min-height:47px;outline-offset:2px}
.snr300-form :is(input,select,textarea):focus-visible,.snr300-plan-actions select:focus-visible{outline:2px solid #218255;border-color:#218255}
.snr300-form textarea{resize:vertical;min-height:115px}
.snr300-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.snr300-submit{width:fit-content;max-width:100%;min-height:48px}
.snr300-count{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:9px 13px;border-radius:13px;background:#e9f5ea;color:#135637;font-size:14px;font-weight:900;white-space:nowrap}
.snr300-progress{height:10px;background:#eaf1ea;border-radius:999px;overflow:hidden}
.snr300-progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2c8a60,#82b889)}
.snr300-checks{display:flex;flex-direction:column;gap:10px;margin-top:19px}
.snr300-check{display:flex;align-items:flex-start;gap:12px;padding:12px 13px;background:#f7faf6;border:1px solid #edf2ea;border-radius:12px;color:#395841;font-size:14px;line-height:1.55;cursor:pointer}
.snr300-check input{width:19px;height:19px;flex-shrink:0;margin:2px 0 0;accent-color:#12623d}
.snr300-checks>.btn{width:fit-content;margin-top:8px;max-width:100%}
.snr300-quick-links{display:flex;flex-wrap:wrap;gap:10px;margin:23px 0}
.snr300-quick-links a{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;background:#eaf4ed;border-radius:11px;color:#18563b;text-decoration:none;font-weight:750;font-size:12px}
.snr300-quick-links .icon{width:17px;height:17px}
.snr300-plan-actions{border-top:1px solid #ecf2ea;padding-top:19px;display:flex;gap:18px;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}
.snr300-plan-actions form:first-child{display:flex;gap:9px;align-items:flex-end;flex:1 1 260px;flex-wrap:wrap}
.snr300-plan-actions form:first-child label{flex:1 1 140px}
.snr300-plan-actions .btn{min-height:44px}
.snr300-danger{display:block;border:0;background:transparent;color:#a53c3c;font:inherit;font-size:12px;font-weight:750;text-decoration:underline;cursor:pointer;padding:12px 0}
.snr300-disclaimer{margin:18px 0 0;color:#647a67;font-size:12px;line-height:1.65}
.snr300-plans-list{display:flex;flex-direction:column;gap:9px}
.snr300-plan-link{display:flex;align-items:center;gap:12px;padding:11px;background:#f9fbf8;border:1px solid #e4ede4;border-radius:13px;text-decoration:none;color:#24573c}
.snr300-plan-link:hover,.snr300-plan-link.is-current{background:#eaf6ee;border-color:#88be9b}
.snr300-date{display:grid;place-items:center;background:#e3f2e6;color:#1a603f;border-radius:11px;width:53px;height:52px;flex-shrink:0;font-weight:850;font-size:13px}
.snr300-plan-copy{flex:1;min-width:0;line-height:1.4}
.snr300-plan-copy strong{display:block;overflow-wrap:anywhere;font-size:13px}
.snr300-plan-copy small{display:block;color:#66836e;font-size:11px;margin-top:5px}
.snr300-aside-tip{background:#f1f6ed!important}
.snr300-aside-tip .snr300-tip-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#dceede;color:#195e40}
.snr300-aside-tip h3{color:#184934;font-size:18px;line-height:1.3;margin:16px 0 10px}
.snr300-aside-tip p{color:#617962;font-size:13px;line-height:1.7;margin:0 0 16px}
.snr300-aside-tip a{color:#1e6741;text-decoration:none;font-size:13px;font-weight:800}
.snr300-aside-tip .icon{width:20px;height:20px}
.snr300-empty{text-align:center;padding:30px 14px;color:#597560;display:flex;flex-direction:column;align-items:center;gap:12px}
.snr300-empty>.icon{width:34px;height:34px;color:#3b8056}
.snr300-empty strong{font-size:16px;color:#275a3e}
.snr300-empty p{font-size:13px;line-height:1.6;max-width:420px;margin:0}
.snr300-suggestions-grid{grid-template-columns:minmax(250px,350px) minmax(0,1fr)}
.snr300-recommendations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.snr300-route-card{border:1px solid #e2ebe0;border-radius:17px;overflow:hidden;background:#fff}
.snr300-route-photo{display:block;overflow:hidden;aspect-ratio:16/9;background:#e9f1e7}
.snr300-route-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.snr300-route-photo:hover img{transform:scale(1.035)}
.snr300-route-text{padding:17px}
.snr300-route-text h3{font-size:18px;line-height:1.28;color:#205438;margin:8px 0}
.snr300-route-text h3 a{color:inherit;text-decoration:none}
.snr300-route-text h3 a:hover{text-decoration:underline}
.snr300-route-text p{font-size:12.5px;color:#718174;line-height:1.55;margin:0 0 13px}
.snr300-route-facts{display:flex;align-items:center;gap:8px 15px;flex-wrap:wrap;margin-bottom:14px;color:#466b53;font-size:12px}
.snr300-route-facts span{display:inline-flex;align-items:center;gap:5px}
.snr300-route-facts .icon{width:16px;height:16px}
.snr300-small-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-radius:10px;background:#e6f4e9;color:#17613e;text-decoration:none;font-size:12px;font-weight:800}
.snr300-helper{font-size:12px;color:#708573;line-height:1.55;margin:0}
.snr300-info-band{background:#eaf4e9;border:1px solid #d6e9d6;border-radius:18px;padding:22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px}
.snr300-info-band>div{flex:1 1 250px}
.snr300-info-band strong{color:#1c603f}
.snr300-info-band p{font-size:12.5px;color:#63806c;line-height:1.6;margin:6px 0 0}
.snr300-info-band>a{color:#205f40;font-weight:800;font-size:13px}
.snr300-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:24px}
.snr300-overview>.sn-panel{padding:19px 22px;border-radius:18px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.snr300-overview .icon{width:23px;height:23px;color:#28744b}
.snr300-overview strong{color:#194f36;font-size:27px}
.snr300-overview small{flex:1 1 100%;font-size:12px;color:#617969}
.snr300-badges{display:flex;flex-direction:column;gap:13px}
.snr300-badge{border:1px solid #e0ece0;background:#fafcf9;border-radius:16px;padding:17px}
.snr300-badge.is-unlocked{border-color:#a8d3b0;background:#f2faf2}
.snr300-badge-top{display:flex;align-items:center;gap:13px;margin-bottom:16px;flex-wrap:wrap}
.snr300-badge-icon{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:13px;background:#deeee1;color:#1b6644}
.snr300-badge-top>div{flex:1 1 150px}
.snr300-badge h3{font-size:16px;color:#1c4f36;margin:0 0 5px}
.snr300-badge p{color:#728374;font-size:12px;margin:0}
.snr300-badge>small{display:block;color:#5b7b60;font-size:12px;margin-top:9px}
.snr300-unlocked{display:inline-flex;align-items:center;gap:4px;color:#1c6b47;font-size:12px;font-weight:800}
.snr300-unlocked .icon{width:16px;height:16px}
.snr300-leaderboard{display:flex;flex-direction:column;gap:8px}
.snr300-leaderboard a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:13px;background:#f6faf5;text-decoration:none;color:#205337;min-width:0}
.snr300-leaderboard a:hover{background:#e4f3e7}
.snr300-rank{display:grid;place-items:center;flex-shrink:0;width:33px;height:33px;border-radius:10px;background:#d8eadc;color:#1b6644;font-weight:850}
.snr300-leaderboard strong{font-size:13px;min-width:0;overflow-wrap:anywhere;flex:1}
.snr300-leaderboard small{font-size:11px;color:#62826b}
.snr300-action-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.snr300-action-tiles a{display:flex;flex-direction:column;gap:9px;border:1px solid #e4ece2;border-radius:15px;padding:17px;text-decoration:none;background:#f8fbf7;min-width:0}
.snr300-action-tiles a:hover{background:#eaf5e9}
.snr300-action-tiles a span{color:#186845}
.snr300-action-tiles strong{color:#25543a;font-size:14px;line-height:1.3}
.snr300-action-tiles small{color:#6d806f;font-size:12px;line-height:1.5}
@media(max-width:1050px){.snr300-grid{grid-template-columns:minmax(0,1fr) minmax(235px,.7fr);gap:16px}.snr300-suggestions-grid{grid-template-columns:minmax(230px,300px) minmax(0,1fr)}.snr300-recommendations{grid-template-columns:1fr}}
@media(max-width:800px){.snr300-grid,.snr300-suggestions-grid{grid-template-columns:1fr}.snr300-suggestions-grid>.snr300-secondary{order:0}.snr300-suggestions-grid>.snr300-primary{order:1}.snr300-recommendations{grid-template-columns:repeat(2,minmax(0,1fr))}.snr300-container{padding-bottom:118px}}
@media(max-width:620px){.snr300-page .snr300-hero{min-height:265px}.snr300-page .snr300-hero .wrap{padding:45px 18px 50px}.snr300-page .snr300-hero h1{font-size:clamp(2.15rem,9.5vw,3rem);max-width:100%;line-height:1.11}.snr300-container{padding:19px 14px 116px}.snr300-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:17px}.snr300-tabs a{display:flex;flex-direction:column;padding:10px 6px;gap:5px;min-height:58px;border-radius:13px;text-align:center;font-size:11px}.snr300-tabs a .icon{width:19px;height:19px}.snr300-primary,.snr300-secondary{gap:15px}.snr300-grid{gap:15px}.snr300-page .snr300-card{padding:17px;border-radius:18px}.snr300-section-heading{gap:9px;flex-wrap:wrap;margin-bottom:17px}.snr300-section-heading h2{font-size:23px}.snr300-soft-link{font-size:12px}.snr300-form{gap:13px}.snr300-field-row{gap:9px}.snr300-form label{font-size:12px}.snr300-form input,.snr300-form select,.snr300-form textarea{font-size:16px}.snr300-submit,.snr300-checks>.btn{width:100%;justify-content:center}.snr300-plan-actions{align-items:stretch}.snr300-plan-actions form:first-child{align-items:stretch}.snr300-plan-actions form:first-child .btn{width:100%}.snr300-recommendations{grid-template-columns:1fr}.snr300-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.snr300-overview>.sn-panel{padding:15px;border-radius:13px}.snr300-overview>.sn-panel:last-child{grid-column:1/-1}.snr300-overview strong{font-size:23px}.snr300-action-tiles{grid-template-columns:1fr}.snr300-action-tiles a{padding:14px}.snr300-info-band{padding:16px}.snr300-quick-links a{flex:1 1 auto}.snr300-badge-top{gap:10px}}
@media(max-width:360px){.snr300-field-row{grid-template-columns:1fr}.snr300-page .snr300-hero h1{font-size:2.05rem}}
@media(prefers-reduced-motion:reduce){.snr300-route-photo img{transition:none}}

/* Défis : progression explicite et notifications volontaires. */
.snr300-challenges-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:12px 15px;background:#edf6ef;border:1px solid #dcebdd;border-radius:13px;color:#235f42}
.snr300-challenges-summary>span{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:750}
.snr300-challenges-summary .icon{width:19px;height:19px}
.snr300-challenges-summary small{font-size:12px;color:#637b69;line-height:1.4}
.snr300-meter-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:5px 0 9px;font-size:12px;color:#5a7966;font-weight:700}
.snr300-meter-head strong{font-size:17px;color:#1b6746;white-space:nowrap}
.snr300-badge .snr300-progress{height:15px;background:#e7efea;box-shadow:inset 0 1px 2px rgba(17,72,45,.08)}
.snr300-badge .snr300-progress>span{background:linear-gradient(90deg,#157647,#65b985);min-width:0;transition:width .35s ease-out}
.snr300-badge.is-unlocked .snr300-progress>span{background:linear-gradient(90deg,#126443,#2e9660)}
.snr300-notify{scroll-margin-top:110px}
.snr300-notify-form{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:13px;padding:15px;border:1px solid #e0eade;background:#f6faf7;border-radius:15px}
.snr300-notify-label{display:flex;align-items:center;gap:15px;flex:1;min-width:190px;justify-content:space-between;cursor:pointer;color:#194f36}
.snr300-notify-label>span:first-child{display:flex;flex-direction:column;gap:4px}
.snr300-notify-label strong{font-size:14px}
.snr300-notify-label small{font-size:12px;color:#718479}
.snr300-notify-label input{position:absolute;width:1px;height:1px;opacity:0}
.snr300-toggle{display:block;position:relative;flex-shrink:0;width:50px;height:29px;background:#a9b9ae;border-radius:999px;transition:background .2s}
.snr300-toggle:before{content:"";position:absolute;top:4px;left:4px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .2s}
.snr300-notify-label input:checked+.snr300-toggle{background:#156a48}
.snr300-notify-label input:checked+.snr300-toggle:before{transform:translateX(21px)}
.snr300-notify-label input:focus-visible+.snr300-toggle{outline:3px solid #87c59d;outline-offset:3px}
.snr300-notify-save{padding:9px 13px;min-height:41px;font-size:12px}
.snr300-notify-save[hidden]{display:none!important}
.snr300-notify-help{margin:11px 0 0;color:#647e6b;font-size:12px;line-height:1.7}
.snr300-notify-help a{color:#166a48;font-weight:850;text-decoration:underline;text-underline-offset:2px}

/* Une navigation discrète à glisser plutôt que des rangées de boutons sur mobile. */
@media(max-width:680px){
 .snr300-page .sn-unified-hero-actions,
 .snr290-community .sn-community-hero-actions{
  display:flex;flex-direction:row!important;align-items:stretch;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;gap:10px;padding-bottom:4px;max-width:100%;
 }
 .snr300-page .sn-unified-hero-actions::-webkit-scrollbar,
 .snr290-community .sn-community-hero-actions::-webkit-scrollbar{display:none}
 .snr300-page .sn-unified-hero-actions>a,
 .snr290-community .sn-community-hero-actions>a{flex:0 0 auto;width:auto;min-width:max-content;scroll-snap-align:start;margin:0;padding:12px 18px}
 .snr300-tabs,.snr290-community .snr290-tabs{
  display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;
  scroll-snap-type:x proximity;scroll-padding-inline:8px;overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:2px 2px 10px;margin-bottom:15px;
 }
 .snr300-tabs::-webkit-scrollbar,.snr290-community .snr290-tabs::-webkit-scrollbar{display:none}
 .snr300-tabs>a,.snr290-community .snr290-tabs>a{
  display:inline-flex;flex-direction:row;align-items:center;justify-content:center;flex:0 0 auto;
  width:auto;min-width:135px;min-height:43px;padding:9px 13px;gap:7px;
  font-size:12px;line-height:1.25;border-radius:999px;scroll-snap-align:start;white-space:nowrap;
 }
 .snr300-tabs>a .icon{height:17px;width:17px}
 .snr300-action-tiles{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;
  overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px}
 .snr300-action-tiles::-webkit-scrollbar{display:none}
 .snr300-action-tiles>a{flex:0 0 min(76vw,260px);scroll-snap-align:start;min-height:112px}
 .snr300-quick-links{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}
 .snr300-quick-links::-webkit-scrollbar{display:none}
 .snr300-quick-links>a{flex:0 0 auto;width:auto;scroll-snap-align:start;white-space:nowrap}
 .snr300-notify-form{align-items:stretch}
 .snr300-notify-label{width:100%}
 .snr300-notify-save{width:100%}
}
@media(prefers-reduced-motion:reduce){.snr300-badge .snr300-progress>span,.snr300-toggle,.snr300-toggle:before{transition:none}}
