/*
 * wv2-itineraires.css — composants ported from c2f-design-system.css (E3 SP-itineraires)
 *
 * Scoping : tous les composants sont sous .c2f-root (variables + reset).
 * Charger uniquement sur /itineraire/* pages pour eviter conflits avec wv2-* design system.
 *
 * Preserver les noms c2f-* pour cohesion avec composants ported (lib/itineraires/itin_*.php).
 * Webvilles override les tokens couleur via .c2f-root surcharge dans wv2-design-system.css.
 */
.c2f-root{--c2f-contrast:#222222;--c2f-accent:#1e73be;--c2f-accent-700:#155a99;--c2f-base:#f0f0f0;--c2f-base-2:#f7f8f9;--c2f-base-3:#ffffff;--c2f-header-bg:#5e9094;--c2f-header-line:#ffeb3b;--c2f-menu-active:#ffd580;--c2f-header-border:#cc6600;--c2f-h2:#1d7481;--c2f-h3:#20668e;--c2f-muted:#6b7280;--c2f-border:#e5e7eb;--c2f-success:#16a34a;--c2f-danger:#dc2626;--c2f-warning:#f59e0b;--c2f-font:"Raleway","Raleway-fb",system-ui,-apple-system,"Segoe UI",sans-serif;--c2f-fs-base:16px;--c2f-lh:1.55;--c2f-sp-1:4px;--c2f-sp-2:8px;--c2f-sp-3:16px;--c2f-sp-4:24px;--c2f-sp-5:32px;--c2f-sp-6:48px;--c2f-sp-7:64px;--c2f-container:1064px;--c2f-container-wide:1064px;--c2f-radius:10px;--c2f-radius-sm:6px;--c2f-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);--c2f-shadow-lg:0 4px 6px rgba(0,0,0,.05),0 10px 25px rgba(0,0,0,.08);--c2f-bp-md:768px;--c2f-bp-lg:1024px;font-family:var(--c2f-font);font-size:var(--c2f-fs-base);line-height:var(--c2f-lh);color:var(--c2f-contrast)}
.c2f-root .c2f-muted,.c2f-root small{color:var(--c2f-muted)}
.c2f-container{max-width:var(--c2f-container);margin:0 auto;padding:0 var(--c2f-sp-3)}
.c2f-container--wide{max-width:var(--c2f-container-wide)}
.c2f-breadcrumb{background:var(--c2f-base-2);padding:var(--c2f-sp-2) var(--c2f-sp-3);font-size:.9rem;border-bottom:1px solid var(--c2f-border)}
.c2f-breadcrumb ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--c2f-sp-2)}
.c2f-breadcrumb li{display:flex;align-items:center;gap:var(--c2f-sp-2)}
.c2f-breadcrumb li:not(:last-child)::after{content:"›";color:var(--c2f-muted)}
.c2f-breadcrumb li[aria-current=page]{color:var(--c2f-muted)}
.c2f-hero{padding:var(--c2f-sp-5) 0 var(--c2f-sp-4);background:var(--c2f-base-3);border-bottom:1px solid var(--c2f-border)}
.c2f-hero h1{margin-bottom:var(--c2f-sp-2)}
.c2f-hero__subtitle{color:var(--c2f-muted);font-size:1.05rem;margin-bottom:var(--c2f-sp-3)}
.c2f-hero__pills{display:flex;flex-wrap:wrap;gap:var(--c2f-sp-2)}
.c2f-root .c2f-pill,.c2f-root a.c2f-pill,.c2f-root button.c2f-pill{display:inline-flex;align-items:center;gap:var(--c2f-sp-1);padding:var(--c2f-sp-1) var(--c2f-sp-3);background:var(--c2f-base-2);color:var(--c2f-contrast);border-radius:999px;font-size:.875rem;font-weight:500;border:1px solid var(--c2f-border);cursor:pointer;user-select:none;text-decoration:none!important;transition:all .15s}
.c2f-root .c2f-pill:hover,.c2f-root a.c2f-pill:hover,.c2f-root button.c2f-pill:hover{background:var(--c2f-accent);color:#fff;border-color:var(--c2f-accent)}
.c2f-root .c2f-pill--active,.c2f-root a.c2f-pill--active,.c2f-root button.c2f-pill--active{background:var(--c2f-accent);color:#fff;border-color:var(--c2f-accent)}
.c2f-pill__count{background:rgba(255,255,255,.3);padding:0 var(--c2f-sp-2);border-radius:999px;font-size:.75rem}
.c2f-pill:not(:hover):not(.c2f-pill--active) .c2f-pill__count{background:var(--c2f-accent);color:#fff}
.c2f-map{width:100%;height:360px;border-radius:var(--c2f-radius);overflow:hidden;background:var(--c2f-base);margin:var(--c2f-sp-4) 0;box-shadow:var(--c2f-shadow)}
.c2f-map__placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--c2f-muted);font-size:.875rem}
.c2f-root .c2f-btn,.c2f-root a.c2f-btn,.c2f-root button.c2f-btn{display:inline-flex;align-items:center;gap:var(--c2f-sp-2);padding:var(--c2f-sp-2) var(--c2f-sp-3);background:#fff;color:var(--c2f-accent);border:1px solid var(--c2f-accent);border-radius:var(--c2f-radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none!important;transition:all .15s}
.c2f-root .c2f-btn:hover,.c2f-root a.c2f-btn:hover,.c2f-root button.c2f-btn:hover{background:var(--c2f-accent);color:#fff;text-decoration:none!important}
.c2f-root .c2f-btn--primary,.c2f-root a.c2f-btn--primary,.c2f-root button.c2f-btn--primary{background:var(--c2f-accent);color:#fff}
.c2f-root .c2f-btn--primary:hover,.c2f-root a.c2f-btn--primary:hover,.c2f-root button.c2f-btn--primary:hover{background:var(--c2f-accent-700);color:#fff;border-color:var(--c2f-accent-700)}
.c2f-root .c2f-btn--ghost,.c2f-root a.c2f-btn--ghost{background:0 0;color:var(--c2f-contrast);border-color:var(--c2f-border)}
.c2f-root .c2f-btn--ghost:hover,.c2f-root a.c2f-btn--ghost:hover{background:var(--c2f-base-2);color:var(--c2f-contrast);border-color:var(--c2f-muted)}
.c2f-faq{background:var(--c2f-base-2);padding:var(--c2f-sp-5) 0;margin:var(--c2f-sp-5) 0}
.c2f-faq__item{background:#fff;border:1px solid var(--c2f-border);border-radius:var(--c2f-radius);margin-bottom:var(--c2f-sp-2);overflow:hidden}
.c2f-faq__item summary{padding:var(--c2f-sp-3) var(--c2f-sp-4);cursor:pointer;font-weight:600;color:var(--c2f-contrast);list-style:none}
.c2f-faq__item summary::-webkit-details-marker{display:none}
.c2f-faq__item summary::after{content:"+";float:right;color:var(--c2f-accent);font-weight:700}
.c2f-faq__item[open] summary::after{content:"−"}
.c2f-faq__item summary:hover{background:var(--c2f-base-2)}
.c2f-faq__answer{padding:0 var(--c2f-sp-4) var(--c2f-sp-3);color:var(--c2f-contrast)}
.c2f-cta{background:var(--c2f-accent);color:#fff;padding:var(--c2f-sp-5) var(--c2f-sp-3);text-align:center;border-radius:var(--c2f-radius);margin:var(--c2f-sp-5) 0}
.c2f-cta h2{color:#fff}
.c2f-cta a{color:#fff;text-decoration:underline}
.c2f-root .c2f-cta__btn,.c2f-root a.c2f-cta__btn{display:inline-block;background:#fff;color:var(--c2f-accent);padding:var(--c2f-sp-3) var(--c2f-sp-5);border-radius:var(--c2f-radius-sm);font-weight:600;text-decoration:none!important;margin-top:var(--c2f-sp-3)}
.c2f-root .c2f-cta__btn:hover,.c2f-root a.c2f-cta__btn:hover{background:var(--c2f-base-2);color:var(--c2f-accent-700)}
.c2f-card-orga__cta .c2f-btn{flex:1;justify-content:center}
.c2f-map{height:280px}
.c2f-cta,.c2f-filter-bar,.c2f-footer,.c2f-header,.c2f-map{display:none}
.c2f-org-hero{padding:var(--c2f-sp-5) 0 var(--c2f-sp-4);border-bottom:1px solid var(--c2f-base)}
.c2f-org-hero h1{font-size:clamp(1.4rem, 1.1rem + 1.2vw, 2.1rem);margin:var(--c2f-sp-2) 0 var(--c2f-sp-2);color:var(--c2f-accent);letter-spacing:-.01em;line-height:1.18}
.c2f-org-hero__subtitle{margin:0;color:var(--c2f-muted);font-size:.96rem;display:flex;flex-wrap:wrap;gap:var(--c2f-sp-2);align-items:center}
.c2f-org-hero__subtitle a{color:var(--c2f-accent);text-decoration:none;font-weight:600}
.c2f-org-hero__subtitle a:hover{text-decoration:underline}
.c2f-org-hero__type{font-weight:600;color:var(--c2f-h2)}
.c2f-org-hero__sep{color:var(--c2f-contrast-3,#b2b2be);font-weight:300}
.c2f-status{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:.85rem;font-weight:600}
.c2f-status--open{background:#d1fae5;color:#065f46}
.c2f-status--closed{background:#fee2e2;color:#991b1b}
.c2f-pill--ghost{background:0 0;border:1px solid var(--c2f-accent);color:var(--c2f-accent);font-size:.85rem;padding:4px 12px;display:inline-flex;align-items:center;text-decoration:none;border-radius:999px;transition:all .15s ease}
.c2f-pill--ghost:hover{background:var(--c2f-accent);color:#fff}
.c2f-org-layout{display:grid;grid-template-columns:1fr;gap:var(--c2f-sp-5);max-width:var(--c2f-container);margin:0 auto;padding:0 var(--c2f-sp-3)}
.c2f-org-layout{grid-template-columns:minmax(0,1fr) 320px}
.c2f-org-main{min-width:0}
.c2f-org-sidebar{display:flex;flex-direction:column;gap:var(--c2f-sp-4)}
.c2f-org-block{background:#fff;border:1px solid var(--c2f-base);border-radius:var(--c2f-radius);padding:var(--c2f-sp-4);margin-bottom:var(--c2f-sp-4);box-shadow:var(--c2f-shadow)}
.c2f-org-block h2{margin:0 0 var(--c2f-sp-3) 0;color:var(--c2f-h2);font-size:1.25rem;font-weight:700}
.c2f-org-contact{display:grid;grid-template-columns:max-content 1fr;gap:var(--c2f-sp-2) var(--c2f-sp-3);margin:0}
.c2f-org-contact dt{font-weight:600;color:var(--c2f-h3);white-space:nowrap;align-self:start}
.c2f-org-contact dd{margin:0;color:var(--c2f-contrast);word-break:break-word}
.c2f-org-contact dd a{color:var(--c2f-accent);text-decoration:none}
.c2f-org-contact dd a:hover{text-decoration:underline}
.c2f-org-cta{display:flex;flex-wrap:wrap;gap:var(--c2f-sp-2);margin-top:var(--c2f-sp-4);padding-top:var(--c2f-sp-3);border-top:1px solid var(--c2f-base)}
.c2f-org-horaires{list-style:none;margin:0;padding:0}
.c2f-org-horaires li{padding:var(--c2f-sp-2) 0;border-bottom:1px dashed var(--c2f-base);font-size:.96rem}
.c2f-org-horaires li:last-child{border-bottom:none}
.c2f-org-mission{font-size:.98rem;line-height:1.6;color:var(--c2f-contrast)}
.c2f-org-related{background:#fff;border:1px solid var(--c2f-base);border-radius:var(--c2f-radius);padding:var(--c2f-sp-3);box-shadow:var(--c2f-shadow)}
.c2f-org-related h2{margin:0 0 var(--c2f-sp-3) 0;font-size:1.05rem;font-weight:700;color:var(--c2f-h3);line-height:1.3}
.c2f-org-block{padding:var(--c2f-sp-3)}
.c2f-org-contact{grid-template-columns:1fr;gap:4px}
.c2f-org-contact dt{margin-top:var(--c2f-sp-2)}
.c2f-org-cta{flex-direction:column}
.c2f-org-cta .c2f-btn{width:100%}
.c2f-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--c2f-sp-3);margin-top:var(--c2f-sp-4)}
.c2f-stats-grid{grid-template-columns:repeat(4,1fr)}
.c2f-stat-card{background:#fff;border:1px solid var(--c2f-base);border-radius:var(--c2f-radius);padding:var(--c2f-sp-3) var(--c2f-sp-4);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.c2f-stat-card:hover{transform:translateY(-2px);box-shadow:var(--c2f-shadow);border-color:var(--c2f-accent)}
.c2f-stat-card__label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--c2f-muted);font-weight:600;margin-bottom:4px}
.c2f-stat-card__value{font-size:22px;font-weight:700;color:var(--c2f-h2);letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.c2f-stat-card__value small{font-size:.6em;font-weight:500;color:var(--c2f-muted)}
.c2f-stat-card__sub{font-size:11px;color:var(--c2f-muted);margin-top:4px;font-weight:500}
.c2f-stat-card__link{font-size:11px;font-weight:600;color:var(--c2f-accent);text-decoration:none;display:inline-block;margin-top:4px}
.c2f-stat-card__link:hover{text-decoration:underline}
.c2f-faq-item{background:#fff;border:1px solid var(--c2f-base);border-radius:var(--c2f-radius-sm);margin-bottom:var(--c2f-sp-2);overflow:hidden}
.c2f-faq-item[open]{border-color:var(--c2f-accent)}
.c2f-faq-item>summary{list-style:none;cursor:pointer;padding:12px 16px;font-size:14px;font-weight:600;color:var(--c2f-h3);display:flex;justify-content:space-between;align-items:center;gap:var(--c2f-sp-2)}
.c2f-faq-item>summary::-webkit-details-marker{display:none}
.c2f-faq-item>summary::after{content:"+";color:var(--c2f-accent);font-size:18px;font-weight:700;transition:transform .15s ease}
.c2f-faq-item[open]>summary::after{content:"−"}
.c2f-faq-item__body{padding:0 16px 14px;font-size:14px;line-height:1.6;color:var(--c2f-contrast)}
.c2f-map-container{margin:var(--c2f-sp-2) 0 var(--c2f-sp-3)}
.c2f-pill--success{background:rgba(22,163,74,.12);color:#15803d;border-color:rgba(22,163,74,.3)}
.c2f-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--c2f-radius-sm);font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,transform .15s ease}
.c2f-btn--primary{background:var(--c2f-accent);color:#fff}
.c2f-btn--primary:hover{background:var(--c2f-accent-700);color:#fff;transform:translateY(-1px)}
body.c2f-root .c2f-org-block{background:#fff;border:1px solid var(--c2f-base);border-radius:var(--c2f-radius);padding:var(--c2f-sp-4);margin-bottom:var(--c2f-sp-4);box-shadow:var(--c2f-shadow)}
body.c2f-root .c2f-org-block__head{display:flex;align-items:center;justify-content:space-between;gap:var(--c2f-sp-3);margin-bottom:var(--c2f-sp-2);padding-bottom:var(--c2f-sp-2);border-bottom:1px solid var(--c2f-base)}
body.c2f-root .c2f-org-block__title{font-size:1.3rem;font-weight:700;color:var(--c2f-h2);margin:0;letter-spacing:-.01em}
body.c2f-root .c2f-container{max-width:var(--c2f-container);margin:0 auto;padding-left:var(--c2f-sp-4);padding-right:var(--c2f-sp-4);width:100%;box-sizing:border-box}
body.c2f-root .c2f-container{padding-left:var(--c2f-sp-3);padding-right:var(--c2f-sp-3)}
body.c2f-root .c2f-org-block{padding:var(--c2f-sp-3)}
.c2f-map-intro{height:360px;width:100%;border-radius:var(--c2f-radius);overflow:hidden;box-shadow:var(--c2f-shadow);background:var(--c2f-base-2);margin:0 0 var(--c2f-sp-4)}
.c2f-pill--accent{background:rgba(30,115,190,.08);color:var(--c2f-accent);border:1px solid rgba(30,115,190,.25);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:background .15s ease,transform .15s ease}
.c2f-pill--accent:hover{background:rgba(30,115,190,.18);transform:translateY(-1px)}
.c2f-pill--danger{background:rgba(220,38,38,.12);color:#b91c1c;border-color:rgba(220,38,38,.3)}
body.c2f-root .c2f-tabs>.c2f-container{padding-left:var(--c2f-sp-4);padding-right:var(--c2f-sp-4)}
body.c2f-root .c2f-tabs>.c2f-container{padding-left:var(--c2f-sp-3);padding-right:var(--c2f-sp-3)}
.c2f-breadcrumb{font-size:12px;color:var(--c2f-muted);margin-bottom:var(--c2f-sp-2)}
.c2f-breadcrumb a{color:var(--c2f-accent);text-decoration:none}
.c2f-breadcrumb a:hover{text-decoration:underline}
.c2f-breadcrumb__sep{margin:0 6px;color:#d1d5db}
.c2f-map-intro{min-height:360px;background:var(--c2f-base-2);border-radius:var(--c2f-radius);display:flex;align-items:center;justify-content:center;color:var(--c2f-muted);font-size:.875rem;overflow:hidden}
.c2f-map-intro{min-height:280px}
@media (max-width:768px){.c2f-root{font-size:15px}.c2f-root h1{font-size:1.5rem}.c2f-root h2{font-size:1.25rem}.c2f-header__menu{display:none}.c2f-header__menu--open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--c2f-header-bg);padding:var(--c2f-sp-3);z-index:99}.c2f-header__toggle{display:flex;align-items:center;gap:var(--c2f-sp-2)}.c2f-card-orga__cta{width:100%}.c2f-card-orga__cta .c2f-btn{flex:1;justify-content:center}.c2f-filter-bar{flex-direction:column;align-items:stretch}.c2f-map{height:280px}}
@media print{.c2f-cta,.c2f-filter-bar,.c2f-footer,.c2f-header,.c2f-map{display:none}.c2f-card-orga{break-inside:avoid}}
@media (min-width:900px){.c2f-org-layout{grid-template-columns:minmax(0,1fr) 320px}}
@media (max-width:768px){.c2f-org-block{padding:var(--c2f-sp-3)}.c2f-org-contact{grid-template-columns:1fr;gap:4px}.c2f-org-contact dt{margin-top:var(--c2f-sp-2)}.c2f-org-cta{flex-direction:column}.c2f-org-cta .c2f-btn{width:100%}}
@media (min-width:600px){.c2f-stats-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:767px){body.c2f-root{background:var(--c2f-base-2)!important}}
@media (max-width:700px){body.c2f-root .c2f-container{padding-left:var(--c2f-sp-3);padding-right:var(--c2f-sp-3)}body.c2f-root .c2f-org-block{padding:var(--c2f-sp-3)}}
@media (max-width:700px){body.c2f-root .c2f-tabs>.c2f-container{padding-left:var(--c2f-sp-3);padding-right:var(--c2f-sp-3)}}
@media (max-width:768px){.c2f-map-intro{min-height:280px}}