/* Section « Infos pratiques » (partials/practical-render.php) — préfixe pra-. */
.pra-section .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.pra{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-l,18px);box-shadow:var(--shadow-s);overflow:hidden;scroll-margin-top:90px;}
.pra-ico{width:22px;height:22px;flex:none;}
.pra-head{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,var(--ink,#201f1d),#34312d);color:#fff;}
.pra-head::-webkit-details-marker{display:none;}
.pra-head-ico{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--red);flex:none;}
.pra-head-ico .pra-ico{width:26px;height:26px;}
.pra-head-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.pra-head-txt b{font-family:var(--font-display);font-weight:400;font-size:24px;letter-spacing:.02em;text-transform:uppercase;line-height:1.1;}
.pra-head-txt small{font-size:13.5px;opacity:.8;}
.pra-head > .pra-ico:last-child{transition:transform .25s;}
.pra[open] > .pra-head > .pra-ico:last-child{transform:rotate(180deg);}
.pra-head:focus-visible{outline:3px solid var(--red);outline-offset:-3px;}
.pra-wrap{padding:18px 20px 22px;}
.pra-pills{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 14px;margin:0 -2px 6px;scrollbar-width:thin;}
.pra-pills a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:8px 14px;border-radius:999px;background:var(--paper-2);color:var(--ink);font-size:13px;font-weight:700;text-decoration:none;border:1px solid transparent;}
.pra-pills a .pra-ico{width:16px;height:16px;}
.pra-pills a:hover{border-color:var(--red);}
.pra-panel{border:1px solid var(--line);border-radius:14px;margin-top:10px;background:var(--white);overflow:hidden;scroll-margin-top:90px;}
.pra-panel > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:15px 18px;font-weight:800;font-size:15.5px;}
.pra-panel > summary::-webkit-details-marker{display:none;}
.pra-panel > summary > .pra-ico:first-child{color:var(--red);}
.pra-panel > summary > .pra-ico:last-child{margin-left:auto;transition:transform .25s;color:var(--ink-soft);}
.pra-panel[open] > summary > .pra-ico:last-child{transform:rotate(180deg);}
.pra-panel[open] > summary{border-bottom:1px solid var(--line);background:var(--paper,#faf7f2);}
.pra-panel > summary:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.pra-ptitle{flex:0 1 auto;}
.pra-badge{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--red-tint,#fdeceb);color:var(--red);}
.pra-body{padding:18px;}
/* Programme */
.pra-timeline{list-style:none;margin:0;padding:0;position:relative;}
.pra-timeline::before{content:"";position:absolute;left:69px;top:8px;bottom:8px;width:2px;background:var(--line);}
.pra-timeline li{display:grid;grid-template-columns:52px 34px 1fr;align-items:center;gap:12px;padding:8px 0;font-size:15px;font-weight:600;}
.pra-timeline time{font-family:var(--font-display);font-size:20px;letter-spacing:.03em;text-align:right;}
.pra-dot{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--paper-2);color:var(--ink);position:relative;z-index:1;flex:none;}
.pra-dot .pra-ico{width:18px;height:18px;}
.pra-timeline .k-start .pra-dot{background:var(--red);color:#fff;}
.pra-timeline .k-awards .pra-dot{background:var(--gold,#c8952f);color:#fff;}
.pra-timeline .k-cutoff{color:var(--ink-soft);font-weight:500;}
/* Cartes (retrait, parkings) */
.pra-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;}
.pra-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--white);display:flex;flex-direction:column;}
.pra-photo{width:100%;height:170px;object-fit:cover;display:block;background:var(--paper-2);}
.pra-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.pra-card h4{margin:0;font-family:var(--font-body);text-transform:none;font-size:16.5px;font-weight:800;}
.pra-when,.pra-line{display:flex;gap:9px;align-items:flex-start;margin:0;font-size:14.5px;}
.pra-when{font-weight:800;color:var(--red);}
.pra-when .pra-ico,.pra-line .pra-ico{width:18px;height:18px;margin-top:1px;}
.pra-line{color:var(--ink-2,#3a3835);}
.pra-note{margin:0;font-size:13.5px;color:var(--ink-soft);}
.pra-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:6px;}
.pra-waze .pra-ico{width:16px;height:16px;}
.pra-qr{display:none;width:84px;height:84px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:10px;flex:none;}
.pra-qr.on{display:block;}
.pra-qr img,.pra-qr canvas{width:100% !important;height:100% !important;display:block;}
@media (max-width:600px){.pra-qr{display:none !important;}}   /* sur téléphone, le bouton suffit : le QR sert à passer de l'ordinateur au téléphone */
/* Restrictions */
.pra-restr{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;}
.pra-restr li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--paper-2);font-size:14.5px;font-weight:600;}
.pra-restr li .pra-ico{width:28px;height:28px;color:var(--red);}
.pra-restr li.ic-warning{background:var(--gold-tint,#faf1e0);}
.pra-restr li.ic-warning .pra-ico{color:var(--gold,#c8952f);}
/* Parcours */
.pra-routes{display:flex;flex-direction:column;gap:16px;}
.pra-route{border:1px solid var(--line);border-left:6px solid var(--route,var(--red));border-radius:14px;padding:16px 18px;background:var(--white);}
.pra-route header{display:flex;justify-content:space-between;align-items:baseline;gap:10px 18px;flex-wrap:wrap;}
.pra-route h4{margin:0;font-family:var(--font-body);text-transform:none;font-size:17px;font-weight:800;}
.pra-stats{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-soft);align-items:center;}
.pra-stats span{display:inline-flex;gap:5px;align-items:center;}
.pra-stats b{color:var(--ink);font-size:15px;}
.pra-stats .up b{color:#c0392b;}
.pra-stats .down b{color:#1f7a54;}
.pra-stats .pra-ico{width:15px;height:15px;}
.pra-waymark{display:flex;align-items:center;gap:14px;margin:14px 0 4px;padding:12px 14px;border-radius:12px;background:var(--paper,#faf7f2);border:2px solid var(--route,var(--line));}
.pra-swatch{width:44px;height:44px;border-radius:12px;background:var(--line);box-shadow:inset 0 0 0 2px rgba(0,0,0,.12);flex:none;}
.pra-waymark div{display:flex;flex-direction:column;gap:2px;font-size:14px;}
.pra-waymark b{font-size:15px;}
.pra-waymark span{color:var(--ink-soft);}
.pra-chart{margin-top:10px;}
.pra-profile{width:100%;height:auto;display:block;}
.pra-profile .pra-grid{stroke:var(--line);stroke-width:1;}
.pra-profile .pra-axis{font-size:10.5px;fill:var(--ink-soft);}
.pra-profile .pra-mark text{font-size:10.5px;font-weight:800;fill:var(--ink);}
.pra-profile .aid circle{fill:#fff;stroke:#1f7a54;stroke-width:3;}
.pra-profile .aid line{stroke:#1f7a54;stroke-width:1.2;stroke-dasharray:3 3;}
.pra-profile .cut rect{fill:var(--red);stroke:#fff;stroke-width:1.5;}
.pra-profile .cut line{stroke:var(--red);stroke-width:1.2;stroke-dasharray:3 3;}
.pra-profile .cut text{fill:var(--red);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;}
.pra-legend{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 0;font-size:12.5px;font-weight:700;}
.pra-legend .aid{color:#1f7a54;}
.pra-legend .cut{color:var(--red);}
.pra-marks{list-style:none;margin:10px 0 0;padding:0;font-size:14px;display:flex;flex-direction:column;gap:4px;}
.pra-marks .aid{color:#1f7a54;font-weight:700;}
.pra-marks .cut{color:var(--red);font-weight:700;}
/* Après la course, stands, sur place */
.pra-after{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);}
.pra-after:last-of-type{border-bottom:0;}
.pra-after b{display:block;margin-bottom:2px;font-size:15.5px;}
.pra-after p{margin:3px 0 0;font-size:14.5px;}
.pra-links{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 4px;}
.pra-links .pra-ico{width:16px;height:16px;}
.pra-stands,.pra-services{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.pra-stands li,.pra-services li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--paper-2);font-size:14.5px;}
.pra-stands li > div{display:flex;flex-direction:column;gap:2px;}
.pra-stands li span{font-size:13px;color:var(--ink-soft);}
.pra-stands .pra-ico,.pra-services .pra-ico{color:var(--red);width:22px;height:22px;}
.pra-sub{margin:16px 0 8px;font-family:var(--font-body);text-transform:none;font-size:15px;font-weight:800;}
.pra-sub:first-child{margin-top:0;}
.pra-rse{font-size:14.5px;line-height:1.6;color:var(--ink-2,#3a3835);}
@media (max-width:600px){
  .pra-head{padding:16px;gap:12px;}
  .pra-head-txt b{font-size:20px;}
  .pra-wrap{padding:14px 12px 18px;}
  .pra-body{padding:14px 12px;}
  .pra-timeline::before{left:61px;}
  .pra-timeline li{grid-template-columns:44px 34px 1fr;}
  .pra-timeline time{font-size:17px;}
}
@media print{.pra-pills,.pra-qr{display:none !important;}.pra-panel>.pra-body{display:block;}}
@media (prefers-reduced-motion:reduce){.pra-head > .pra-ico:last-child,.pra-panel > summary > .pra-ico:last-child{transition:none;}}

/* ===== Diaporama (v2) : une rubrique à la fois, bandeau photo, services en icônes ===== */
.pra-show{margin-top:6px;}
.pra-js .pra-slide[hidden]{display:none;}
.pra-slide{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--white);margin-top:14px;box-shadow:var(--shadow-s);}
.pra-js .pra-slide{margin-top:0;animation:pra-in .35s ease;}
@keyframes pra-in{from{opacity:0;transform:translateX(18px);}to{opacity:1;transform:none;}}
.pra-slide-head{display:flex;align-items:center;gap:16px;padding:26px 24px 22px;background:#26241f center/cover no-repeat;color:#fff;min-height:110px;}
.pra-slide-ico{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:16px;background:var(--red);flex:none;box-shadow:0 6px 18px rgba(0,0,0,.35);}
.pra-slide-ico .pra-ico{width:30px;height:30px;color:#fff;}
.pra-slide-txt{flex:1;min-width:0;}
.pra-slide-title{margin:0;font-family:var(--font-display);font-weight:400;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(26px,4.4vw,38px);line-height:1.1;color:#fff;}
.pra-slide-title span{background:linear-gradient(transparent 64%,var(--red) 64%,var(--red) 90%,transparent 90%);padding:0 6px 0 2px;}
.pra-slide-sub{margin:8px 0 0;font-size:13.5px;opacity:.85;}
.pra-slide-head .pra-badge{background:rgba(255,255,255,.18);color:#fff;align-self:flex-start;}
.pra-slide > .pra-body{padding:22px 24px 26px;background:var(--paper,#faf7f2);}
.pra-pills a.on{background:var(--ink,#201f1d);color:#fff;}
.pra-pills a.on .pra-ico{color:#fff;}
/* Commandes */
.pra-ctrl{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0 2px;}
.pra-ctrl[hidden]{display:none;}
.pra-prev,.pra-next-btn{width:44px;height:44px;border-radius:50%;border:2px solid var(--ink,#201f1d);background:var(--white);font-size:26px;line-height:1;cursor:pointer;color:var(--ink,#201f1d);display:flex;align-items:center;justify-content:center;padding:0 0 3px;}
.pra-prev:hover,.pra-next-btn:hover{background:var(--ink,#201f1d);color:#fff;}
.pra-dots{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;}
.pra-dot-btn{width:10px;height:10px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;transition:transform .2s,background .2s;}
.pra-dot-btn.on{background:var(--red);transform:scale(1.5);}
.pra-prev:focus-visible,.pra-next-btn:focus-visible,.pra-dot-btn:focus-visible{outline:3px solid var(--red);outline-offset:2px;}
/* Programme : retraits de dossards en texte libre, avant la frise horaire */
.pra-prelist{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.pra-pre{display:flex;gap:14px;align-items:center;padding:12px 14px;background:var(--white);border:1px solid var(--line);border-radius:14px;}
.pra-pre div{display:flex;flex-direction:column;gap:2px;font-size:14.5px;}
.pra-pre b{font-size:15px;}
.pra-pre span{color:var(--red);font-weight:700;}
.pra-timeline{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:6px 14px;}
.pra-timeline::before{left:83px;}
/* Sur place : services en icônes */
.pra-amen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}
.pra-amen li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 12px 14px;border-radius:16px;background:var(--white);border:1px solid var(--line);position:relative;}
.pra-amen-ico{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:var(--red-tint,#fdeceb);color:var(--red);}
.pra-amen-ico svg{width:32px;height:32px;}
.pra-amen-lab{font-weight:800;font-size:14.5px;line-height:1.25;}
.pra-amen-st{position:absolute;top:8px;right:10px;font-style:normal;font-weight:900;font-size:15px;}
.pra-amen li.ok .pra-amen-st{color:#1f7a54;}
.pra-amen li.no{background:transparent;border-style:dashed;}
.pra-amen li.no .pra-amen-ico{background:var(--paper-2);color:var(--ink-soft);opacity:.65;}
.pra-amen li.no .pra-amen-lab{color:var(--ink-soft);text-decoration:line-through;font-weight:600;}
.pra-amen li.no .pra-amen-st{color:var(--ink-soft);}
/* Prochains évènements */
.pra-next{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.pra-next-card{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);}
.pra-next-card:hover{border-color:var(--red);}
.pra-next-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:60px;border-radius:12px;background:var(--red);color:#fff;font-size:11px;font-weight:800;text-transform:uppercase;flex:none;}
.pra-next-date b{font-family:var(--font-display);font-weight:400;font-size:26px;line-height:1;}
.pra-next-txt{display:flex;flex-direction:column;gap:3px;min-width:0;}
.pra-next-txt b{font-size:15.5px;}
.pra-next-txt small{display:flex;gap:5px;align-items:center;color:var(--ink-soft);font-size:12.5px;}
.pra-next-txt small .pra-ico{width:13px;height:13px;}
@media (max-width:600px){
  .pra-slide-head{padding:20px 16px 18px;gap:12px;min-height:90px;}
  .pra-slide-ico{width:44px;height:44px;border-radius:13px;}
  .pra-slide-ico .pra-ico{width:24px;height:24px;}
  .pra-slide > .pra-body{padding:16px 12px 20px;}
  .pra-timeline::before{left:75px;}
  .pra-amen{grid-template-columns:repeat(2,1fr);}
}
@media print{.pra-js .pra-slide[hidden]{display:block;}.pra-ctrl{display:none !important;}}
@media (prefers-reduced-motion:reduce){.pra-js .pra-slide{animation:none;}.pra-dot-btn{transition:none;}}
/* Rubrique « Balisage » */
.pra-bals{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.pra-bal{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:16px;background:var(--white);border:1px solid var(--line);}
.pra-bal-sw{width:64px;height:64px;border-radius:16px;background:var(--line);box-shadow:inset 0 0 0 3px rgba(0,0,0,.14);flex:none;}
.pra-bal div{display:flex;flex-direction:column;gap:3px;min-width:0;}
.pra-bal b{font-size:16px;}
.pra-bal span{font-weight:700;font-size:14.5px;}
.pra-bal small{color:var(--ink-soft);font-size:12.5px;}
/* Choix du parcours */
.pra-route-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;}
.pra-route-tabs[hidden]{display:none;}
.pra-route-tab{border:1.5px solid var(--line);background:var(--white);border-radius:999px;padding:8px 16px;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;color:var(--ink);}
.pra-route-tab:hover{border-color:var(--red);}
.pra-route-tab.on{background:var(--ink,#201f1d);color:#fff;border-color:var(--ink,#201f1d);}
.pra-route[hidden]{display:none;}
/* Stands partenaires avec logo */
.pra-stands li.has-logo{padding:10px 14px;}
.pra-stand-logo{display:flex;align-items:center;justify-content:center;width:84px;height:56px;background:#fff;border-radius:10px;border:1px solid var(--line);flex:none;padding:4px;}
.pra-stand-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;}
.pra-stands li > div b{font-size:15px;}
/* Programme : toutes les lignes au même format (retrait des dossards inclus) */
.pra-tl-label{display:flex;flex-direction:column;gap:2px;}
.pra-tl-label small{font-weight:500;color:var(--ink-soft);font-size:12.5px;}
.pra-timeline .k-bib .pra-dot{background:var(--paper-2);}
.pra-timeline .k-warmup .pra-dot,.pra-timeline .k-speech .pra-dot,.pra-timeline .k-briefing .pra-dot,.pra-timeline .k-animation .pra-dot{background:#1f7a54;color:#fff;}
.pra-timeline time{min-width:52px;}

/* balisage avec photo de la rubalise : photo en tête de carte, pastille de couleur incrustée */
.pra-bal.has-photo{display:grid;grid-template-columns:120px 1fr;padding:0;overflow:hidden;gap:0;align-items:stretch;border-left:6px solid var(--bal,var(--line));}
.pra-bal.has-photo .pra-photo{width:120px;height:100%;min-height:96px;object-fit:cover;border-radius:0;}
.pra-bal.has-photo .pra-bal-sw{display:none;}
.pra-bal.has-photo div{padding:14px 16px;justify-content:center;}
