/* V1.2 companion mobility UX — unified next-step, map/proximity and stay transport */
.companion-mobility-group{display:contents}

/* Next movement: one primary mobility card, details disclosed only on demand */
.pass3-next-panel{padding:22px 22px 18px}
.pass3-next-panel h3{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap;margin-bottom:9px}
.pass3-next-time{font-family:inherit;font-size:.48em;font-weight:700;letter-spacing:.02em;color:#bdd0cd}
.pass3-transfer-core{padding:11px 0 8px;border-top:1px solid rgba(255,255,255,.13);border-bottom:0}
.pass3-transfer-core strong{display:flex;align-items:center;gap:7px;font-size:14px}
.pass3-route-standalone{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-top:12px;padding:9px 13px;border-radius:999px;background:#fff;color:#17373a;text-decoration:none;font-size:10px;font-weight:900}
.pass3-next-details{margin-top:11px;border-top:1px solid rgba(255,255,255,.13)}
.pass3-next-details>summary{list-style:none;cursor:pointer;padding:11px 0 0;color:#c9d8d6;font-size:9px;font-weight:850}
.pass3-next-details>summary::-webkit-details-marker{display:none}
.pass3-next-details-body{padding-top:8px}
.pass3-next-details .pass3-next-actions{margin-top:9px}

/* Live IDFM result stays compact; full section list is secondary */
.pass12-route-live{margin-top:8px}
.pass12-route-loading{padding:8px 0;border:0;background:transparent;color:#aebfbd}
.pass12-route-result{gap:7px;margin-top:1px;padding-top:2px}
.pass12-route-summary{padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09)}
.pass12-route-summary small{font-size:7px}
.pass12-route-summary strong{font-size:11px}
.pass12-route-summary p{margin:2px 0 0;font-size:9px}
.pass12-departure{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:10px}
.pass12-departure small,.pass12-departure strong{grid-column:auto;grid-row:auto}
.pass12-departure strong{font-size:15px}
.pass12-traffic-inline{font-size:8px;color:#9ed2b4}
.pass12-route-more{margin-top:1px}
.pass12-route-more>summary{list-style:none;cursor:pointer;color:#bdd0cd;font-size:8px;font-weight:800}
.pass12-route-more>summary::-webkit-details-marker{display:none}
.pass12-route-more .pass12-route-steps{margin-top:7px}
.pass12-route-more>small{display:block;margin-top:6px;color:#9eb7b4;font-size:8px}

/* Vélib' is an inline alternative to the main trip, not a separate feature card */
.pass14-velib{margin-top:7px}
.pass14-velib-card{border:0;border-top:1px solid rgba(255,255,255,.12);border-radius:0;background:transparent}
.pass14-velib-head{padding:9px 0 4px}
.pass14-velib-head>span{font-size:15px}
.pass14-velib-head strong{font-size:10px}
.pass14-velib-head small{margin-top:2px;color:#abc2af;font-size:8px;letter-spacing:0;text-transform:none}
.pass14-velib-head>b{color:#abc2af}
.pass14-velib-details{padding:7px 0 2px}
.pass14-velib-stations>div{background:rgba(255,255,255,.055)}

/* One map & proximity module */
.pass3-map-panel{margin-top:5px;padding:20px 0 0;border:0;border-top:1px solid rgba(17,26,45,.12);border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.pass3-map-panel .field-map-head{padding:0 2px 10px}
.pass3-map-panel .field-map-head>div{display:grid;gap:2px}
.pass3-map-panel .field-map-head>div>span{font-size:9px;letter-spacing:.14em;color:#a35a48;font-weight:950}
.pass3-map-panel .field-map-head>div>strong{font-family:var(--serif);font-size:20px;font-weight:600;color:#263b3d}
.pass6-map-modes{margin:0 0 10px;padding:3px;border-radius:11px;background:#eae8e2}
.pass6-map-modes button{min-height:35px;border-radius:8px;font-size:9px}
.pass3-map-panel .field-map{height:340px!important;min-height:300px!important;max-height:360px!important;border-radius:15px}
.pass3-map-panel .field-location-status{padding-top:6px;font-size:8px}
.pass6-map-context{margin:8px 0 0;padding:8px 0;border:0;border-radius:0;background:transparent;border-bottom:1px solid rgba(17,26,45,.08)}
.pass6-map-context>div:first-child{gap:2px}
.pass6-map-context strong{font-size:10px}
.pass6-map-context small{font-size:8px}
.pass6-nearby-search{font-size:9px;font-weight:850;color:#176f6b;text-decoration:none}
.pass6-map-stations{grid-template-columns:repeat(2,minmax(0,1fr))}
.pass6-map-stations span{border:1px solid rgba(17,26,45,.06);background:#fff}
.pass3-map-legend{padding:8px 0 0}

/* Compact service synthesis directly under the map */
.pass5-nearby-inline{padding:10px 0 2px;border-bottom:1px solid rgba(17,26,45,.08)}
.pass5-nearby-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(17,26,45,.08);border-top:1px solid rgba(17,26,45,.08);border-bottom:1px solid rgba(17,26,45,.08)}
.pass5-nearby-row{border:0;border-radius:0;background:#faf9f6;box-shadow:none;min-height:48px;padding:8px 9px}
.pass5-nearby-row:hover{transform:none;background:#f2f5f2}
.pass5-nearby-row.is-transit{background:#f3f7f5}
.pass5-nearby-row.is-compact:nth-child(odd){border-right:1px solid rgba(17,26,45,.08)}
.pass5-nearby-icon{width:27px;height:27px;border-radius:8px}
.pass5-nearby-row strong{font-size:9px}
.pass5-nearby-row small{font-size:7.5px;white-space:normal;line-height:1.25}
.pass5-nearby-more{padding:0}
.pass5-nearby-more>summary{list-style:none;cursor:pointer;padding:10px 2px;color:#176f6b;font-size:9px;font-weight:900}
.pass5-nearby-more>summary::-webkit-details-marker{display:none}
.pass5-nearby-more>.pass5-nearby-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:8px;background:rgba(17,26,45,.07)}
.pass5-nearby-more>.pass5-nearby-list .pass5-nearby-row{min-height:50px}

/* Transport for the whole stay: informative summary first, flat comparison after opening */
.pass7-transport-tickets{margin-top:4px;border:0;border-top:1px solid rgba(17,26,45,.12);border-radius:0;background:transparent;overflow:visible}
.pass7-transport-tickets>summary{padding:20px 1px 16px;align-items:flex-end}
.pass7-transport-tickets>summary.pass7-ticket-summary>span{display:grid;gap:5px;min-width:0}
.pass7-transport-tickets>summary small{font-size:9px;letter-spacing:.14em;color:#a35a48}
.pass7-transport-tickets>summary strong{display:block;font-family:var(--serif);font-size:19px;line-height:1.14;font-weight:600;color:#263b3d}
.pass7-transport-tickets>summary em{display:block;font-style:normal;font-size:9px;line-height:1.35;color:#6e7875}
.pass7-transport-tickets>summary>b{color:#176f6b;font-size:9px}
.pass7-transport-tickets[open]>summary{border-bottom:1px solid rgba(17,26,45,.08)}
.pass7-ticket-body{padding:13px 0 5px;border-top:0}
.pass7-ticket-intro{display:grid;gap:4px;margin-bottom:8px}
.pass7-ticket-intro strong{font-size:11px;color:#344746}
.pass7-ticket-intro p{margin:0;color:#707a77;font-size:9px;line-height:1.45}
.pass7-ticket-list{gap:0;border-top:1px solid rgba(17,26,45,.08)}
.pass9-ticket-product{grid-template-columns:minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;padding:11px 1px;border:0;border-bottom:1px solid rgba(17,26,45,.08);border-radius:0;background:transparent}
.pass9-ticket-product strong{font-size:11px}
.pass9-ticket-product small{font-size:9px}
.pass9-ticket-product>b{font-size:10px;color:#344746}
.pass9-ticket-links{grid-column:auto;display:grid;justify-items:end;gap:2px;padding-top:0}
.pass9-ticket-links a{font-size:8px}
.pass10-fare-estimate{margin:13px 0 3px;padding:12px 0;border:0;border-top:1px solid rgba(17,26,45,.08);border-bottom:1px solid rgba(17,26,45,.08);border-radius:0;background:transparent}
.pass10-fare-head{margin-bottom:8px}
.pass10-fare-grid{gap:0;border-top:1px solid rgba(17,26,45,.06)}
.pass10-fare-grid article{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(110px,.45fr) minmax(0,1.6fr);gap:10px;align-items:start;padding:9px 0;border:0;border-bottom:1px solid rgba(17,26,45,.06);border-radius:0;background:transparent}
.pass10-fare-grid article>small,.pass10-fare-grid article>strong,.pass10-fare-grid article>p{margin:0}
.pass10-fare-grid article>small{font-size:8px}
.pass10-fare-grid article>strong{font-size:10px}
.pass10-fare-grid article>p{font-size:9px}
.pass7-ticket-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}
.pass7-ticket-actions>a{font-size:9px}
.pass7-ticket-buy{padding:9px 11px;border-radius:999px}
.pass7-ticket-checked{font-size:8px}

/* Less stacked-card feeling in the mobility column */
.pass3-sidebar{gap:18px}
.pass4-ticket-card,.pass15-events{box-shadow:none}

@media(max-width:820px){
  .companion-mobility-group{display:contents}
  .pass3-current{order:1}
  .pass3-next-panel{order:2}
  .pass4-ticket-card{order:3}
  .pass3-timeline{order:4}
  .pass3-map-panel{order:5}
  .pass7-transport-tickets{order:6}
  .pass15-events{order:7}
  .pass3-map-panel{margin-top:0;padding-top:18px}
  .pass3-map-panel .field-map{height:310px!important;min-height:270px!important;max-height:330px!important}
}

@media(max-width:620px){
  .pass3-next-panel{padding:18px}
  .pass3-next-panel h3{font-size:29px}
  .pass3-next-time{font-size:.45em}
  .pass3-route-standalone{width:100%;min-height:46px}
  .pass3-next-details>summary{min-height:42px;display:flex;align-items:center}
  .pass3-map-panel{padding:16px 0 0;border-radius:0}
  .pass3-map-panel .field-map{height:280px!important;min-height:250px!important;max-height:300px!important}
  .pass6-map-modes button{min-height:42px}
  .pass5-nearby-preview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pass5-nearby-more>.pass5-nearby-list{grid-template-columns:1fr}
  .pass5-nearby-row.is-compact:nth-child(odd){border-right:0}
  .pass5-nearby-row{min-height:52px}
  .pass7-transport-tickets>summary{align-items:flex-start;display:grid;gap:10px;padding:17px 0 14px}
  .pass7-transport-tickets>summary>b{justify-self:start}
  .pass9-ticket-product{grid-template-columns:1fr auto;gap:5px 10px}
  .pass9-ticket-links{grid-column:1/-1;justify-items:start;display:flex;gap:12px}
  .pass10-fare-grid article{grid-template-columns:1fr;gap:3px}
  .pass7-ticket-actions{display:grid;gap:8px}
  .pass7-ticket-actions>a{min-height:42px;display:flex;align-items:center}
}

@media(max-width:390px){
  .pass3-map-panel .field-map{height:260px!important;min-height:235px!important}
  .pass12-departure{align-items:center}
}

/* V1.3 bloc 2 — trajet principal rendu dans Le Plan */
.pass13-route-panel{margin-top:10px}
.pass13-route-body[hidden]{display:none!important}
.pass13-route-body{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}
.pass13-route-title{display:flex;gap:10px;align-items:flex-start}
.pass13-route-title>span{font-size:18px;line-height:1.1}
.pass13-route-title small{display:block;font-size:7px;font-weight:900;letter-spacing:.12em;color:#9eb7b4}
.pass13-route-title strong{display:block;margin-top:2px;font-size:12px;line-height:1.3;color:#fff}
.pass13-route-title p{margin:3px 0 0;color:#dbe8e6;font-size:9px}
.pass13-route-steps{display:grid;gap:8px;margin:10px 0 0;padding:0;list-style:none}
.pass13-route-steps li{display:flex;gap:9px;align-items:flex-start;padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}
.pass13-route-steps li:first-child{border-top:0}
.pass13-route-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.08);flex:0 0 26px}
.pass13-route-steps li>div{display:grid;gap:2px;min-width:0}
.pass13-route-steps strong{font-size:10px;color:#fff}
.pass13-route-steps span:not(.pass13-route-icon),.pass13-route-steps small{font-size:9px;color:#bdd0cd}
.pass13-route-external{display:inline-flex;margin-top:10px;color:#dbe8e6;font-size:9px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.pass13-route-error,.pass13-route-limited{padding:9px 0;color:#dbe8e6;font-size:9px}
.pass13-route-error strong{display:block;color:#fff;font-size:10px}.pass13-route-error p{margin:3px 0 0}
.pass13-walk-total{display:block;margin-top:6px;color:#9eb7b4;font-size:8px}
.pass13-walk-result .pass13-route-title>span{font-size:17px}

/* V1.3 bloc 3 — aperçu transport visible dès le haut du séjour */
.pass13-transport-preview{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(300px,1.5fr) auto;gap:18px;align-items:center;margin-top:14px;margin-bottom:12px;padding:14px 18px;border-top:1px solid rgba(17,26,45,.1);border-bottom:1px solid rgba(17,26,45,.1);background:rgba(248,246,242,.72)}
.pass13-transport-preview-copy{display:grid;gap:4px}.pass13-transport-preview-copy>span{font-size:8px;font-weight:900;letter-spacing:.13em;color:#a35a48}.pass13-transport-preview-copy>strong{font-family:var(--serif);font-size:17px;line-height:1.2;color:#263b3d;font-weight:600}
.pass13-transport-preview-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-left:1px solid rgba(17,26,45,.09)}
.pass13-transport-preview-options>span{display:grid;gap:2px;padding:2px 12px;border-right:1px solid rgba(17,26,45,.09)}.pass13-transport-preview-options small{font-size:8px;color:#6e7875}.pass13-transport-preview-options b{font-size:10px;color:#263b3d}
.pass13-transport-preview>button{justify-self:end;border:0;background:transparent;color:#176f6b;font-size:9px;font-weight:900;cursor:pointer;text-align:left}
.pass13-ticket-copy{display:grid;gap:3px}.pass13-ticket-copy>span{font-size:9px;line-height:1.35;color:#687177}.pass13-ticket-copy>span b{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#4a5558}
@media(max-width:900px){.pass13-transport-preview{grid-template-columns:1fr;gap:10px}.pass13-transport-preview>button{justify-self:start}.pass13-transport-preview-options{border-left:0;border-top:1px solid rgba(17,26,45,.08);padding-top:8px}.pass13-transport-preview-options>span:first-child{padding-left:0}}
@media(max-width:560px){.pass13-transport-preview{margin-top:8px;padding:13px 0;background:transparent}.pass13-transport-preview-options{grid-template-columns:1fr;gap:6px}.pass13-transport-preview-options>span{grid-template-columns:1fr auto;align-items:baseline;padding:0 0 6px;border-right:0;border-bottom:1px solid rgba(17,26,45,.06)}.pass13-transport-preview-copy>strong{font-size:16px}}

/* V1.3 bloc 4 — proximité réelle et compacte */
.pass13-nearby{display:grid;gap:10px;padding:12px 0 0}
.pass13-nearby-live{display:grid;gap:4px}
.pass13-nearby-live[hidden]{display:none!important}
.pass13-nearby-preview,.pass13-nearby-full{display:grid;gap:0;border-top:1px solid rgba(17,26,45,.08)}
.pass13-nearby-row{display:flex;align-items:flex-start;gap:9px;padding:9px 2px;border-bottom:1px solid rgba(17,26,45,.07);background:transparent}
.pass13-nearby-row>span{display:inline-flex;width:24px;min-width:24px;height:24px;align-items:center;justify-content:center;font-size:14px}
.pass13-nearby-row>div{display:grid;gap:2px;min-width:0}
.pass13-nearby-row strong{font-size:9.5px;line-height:1.35;color:#263b3d}
.pass13-nearby-row small{font-size:8px;line-height:1.4;color:#687177}
.pass13-nearby .pass5-nearby-more>summary{padding:9px 2px}
.pass13-nearby-external{display:grid;gap:6px;padding-top:8px;border-top:1px solid rgba(17,26,45,.08)}
.pass13-nearby-external>strong{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#687177}
.pass13-nearby-external>small{font-size:8px;line-height:1.4;color:#7f8785}
.pass13-nearby-external>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(17,26,45,.06)}
.pass13-nearby-external .pass5-nearby-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-decoration:none;background:#faf9f6}
.mapmarker-toilet span,.mapmarker-fountain span,.mapmarker-velib span{font-size:14px;line-height:1}
@media(max-width:620px){.pass13-nearby-external>div{grid-template-columns:1fr}.pass13-nearby-row{padding:10px 0}.pass13-nearby-row strong{font-size:10px}.pass13-nearby-row small{font-size:8.5px}}

/* V1.3 bloc 5 — météo contextuelle, pas de dashboard */
.pass16-weather{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:-2px;margin-bottom:9px;padding:8px 2px;border-bottom:1px solid rgba(17,26,45,.08);color:#34494b}
.pass16-weather[hidden]{display:none!important}
.pass16-weather-icon{font-size:17px;line-height:1}
.pass16-weather>div{display:flex;align-items:baseline;gap:9px;min-width:0}
.pass16-weather strong{font-size:9px;text-transform:capitalize;color:#263b3d}
.pass16-weather small{font-size:8.5px;color:#687177}
.pass16-weather-source{font-size:7.5px;color:#8a9290}
@media(max-width:620px){.pass16-weather{margin-bottom:5px}.pass16-weather>div{display:grid;gap:1px}.pass16-weather-source{display:none}.pass16-weather small{font-size:8px}}
