.transport-open-wrap { margin: 20px 0 0; }
.transport-open { display: inline-flex; align-items: center; gap: 12px; }
.transport-open svg { width: 22px; height: 22px; flex: 0 0 auto; }
.transport-dialog { box-sizing: border-box; width: min(1260px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); height: min(860px, calc(100dvh - 40px)); padding: 0; border: 0; border-radius: 16px; color: #181d24; background: #fff; overflow: hidden; }
.transport-dialog::backdrop { background: rgb(12 17 23 / 72%); }
.transport-dialog * { box-sizing: border-box; }
.transport-dialog [hidden] { display: none !important; }
.transport-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 26px; border-bottom: 1px solid #e5e5e5; background: #fff; }
.transport-dialog-header h2 { font-size: 24px; margin: 0; letter-spacing: -.02em; }
.transport-dialog-header p { font-size: 13px; line-height: 1.4; color: #60666c; margin: 4px 0 0; }
.transport-close { width: 42px; height: 42px; border: 1px solid #ddd; border-radius: 50%; background: white; font-size: 26px; line-height: 1; color: #181d24; flex: 0 0 auto; }
.transport-close:hover { border-color: #fe941c; }
.transport-dialog-body { display: grid; grid-template-columns: minmax(0, 1fr) 400px; height: calc(100% - 91px); min-height: 0; overscroll-behavior: contain; }
.transport-map-side { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: #edf0eb; position: relative; }
.transport-map { min-height: 300px; flex: 1; width: 100%; isolation: isolate; }
.transport-map-footer { padding: 15px 22px; background: #f7f8f6; border-top: 1px solid #dde1da; }
.transport-map-footer p { margin: 0; color: #50575d; font-size: 12px; line-height: 1.6; }
.transport-map-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.transport-map-summary strong { font-size: 15px; color: #181d24; }
.transport-replay { color: #181d24; font-size: 12px; background: none; border: 0; text-decoration: underline; padding: 4px; }
.transport-form-side { overflow-y: auto; overscroll-behavior: contain; padding: 23px 25px; background: #fff; }
.transport-form-side label { display: block; font-size: 13px; font-weight: 600; line-height: 1.5; margin: 0 0 6px; color: #343b41; }
.transport-field { margin-bottom: 15px; min-width: 0; }
.transport-form-side .form-control { width: 100%; min-height: 43px; font-size: 14px; line-height: 1.4; margin: 0; padding: 11px 12px; color: #181d24; }
.transport-form-side textarea.form-control { min-height: 76px; }
.transport-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.transport-city { position: relative; }
.transport-city input { padding-left: 38px !important; }
.transport-letter { position: absolute; top: 35px; left: 12px; font-size: 12px; font-weight: 700; color: #181d24; }
.transport-city:last-of-type .transport-letter { color: #c56400; }
.transport-suggestions { position: absolute; top: 100%; left: 0; right: 0; max-height: 225px; overflow: auto; z-index: 10; margin: 4px 0 0; padding: 5px; list-style: none; background: #fff; border: 1px solid #dadada; border-radius: 8px; box-shadow: 0 8px 20px #0002; }
.transport-suggestions [role="option"] { padding: 9px 8px; cursor: pointer; font-size: 13px; color: #181d24; line-height: 1.4; }
.transport-suggestions [aria-selected="true"], .transport-suggestions [role="option"]:hover { background: #fff1dd; }
.transport-swap { display: block; margin: -6px 0 9px auto; padding: 2px 0; border: 0; background: transparent; font-size: 12px; color: #5a6066; text-decoration: underline; }
.transport-route-action, .transport-submit { width: 100%; text-align: center; cursor: pointer; }
.transport-route-action { border: 1px solid #181d24; padding: 10px 12px; background: #181d24; border-radius: 6px; color: #fff; font-size: 14px; font-weight: 600; }
.transport-route-action:disabled, .transport-submit:disabled { opacity: .6; cursor: wait; }
.transport-form-side h3 { font-size: 18px; margin: 23px 0 15px; padding-top: 20px; border-top: 1px solid #e5e5e5; }
.transport-terms { display: flex !important; gap: 9px; align-items: flex-start; font-size: 12px !important; font-weight: 400 !important; }
.transport-terms input { margin-top: 3px; flex: 0 0 auto; }
.transport-notice { font-size: 12px; line-height: 1.5; color: #62686e; margin: 10px 0; }
.transport-status { font-size: 13px; line-height: 1.5; padding: 12px; margin-top: 12px; border-radius: 6px; background: #f2f4f5; }
.transport-status.is-error { color: #8e2f25; background: #fff0ed; }
.transport-status.is-success { color: #145b38; background: #e8f5ec; }
.transport-marker { width: 28px !important; height: 28px !important; border-radius: 50%; display: grid; place-items: center; background: #181d24; color: white; border: 2px solid white; box-shadow: 0 2px 7px #0003; font-weight: 700; }
.transport-marker-b { background: #d87300; }
.transport-truck { border: 0; background: transparent; }
.transport-truck svg { width: 46px; height: 34px; filter: drop-shadow(0 2px 3px #0005); }
.transport-map .leaflet-control-attribution { font-size: 10px; background: #fffe; }
.transport-map .leaflet-control-attribution a { color: #224f65; }
.transport-dialog :focus-visible { outline: 3px solid #d87300; outline-offset: 3px; }
html.transport-is-open, html.transport-is-open body { overflow: hidden; }
.transport-hub-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.transport-hub-links a { display: block; padding: 22px 0; border-top: 1px solid #ddd; color: #181d24; }
.transport-hub-links strong { display: block; font-size: 21px; margin-bottom: 8px; }
.transport-hub-links span { display: block; color: #62686e; font-size: 14px; line-height: 1.7; }
#subheader.transport-seo-hero h1 { font-size: clamp(32px, 4vw, 54px); }
.transport-seo-hero { padding: 150px 0 60px !important; }
.transport-seo-hero p { max-width: 760px; }
.transport-faq details { padding: 20px 0; border-top: 1px solid #ddd; }
.transport-faq summary { font-size: 18px; font-weight: 600; cursor: pointer; color: #181d24; }
.transport-faq p { margin: 14px 0 0; }
@media (max-width: 800px) {
  .transport-dialog { width: 100%; height: 100dvh; max-height: 100dvh; border-radius: 0; margin: 0; }
  .transport-dialog-header { padding: 13px 16px; }
  .transport-dialog-header h2 { font-size: 20px; }
  .transport-dialog-body { display: flex; flex-direction: column; overflow-y: auto; height: calc(100% - 81px); }
  .transport-map-side { flex: 0 0 auto; }
  .transport-map { height: 250px; min-height: 250px; flex: none; }
  .transport-map-footer { padding: 10px 16px; }
  .transport-form-side { overflow: visible; padding: 20px 18px 30px; }
  .transport-dialog-header p { max-width: 265px; }
  .transport-hub-links { grid-template-columns: 1fr; gap: 4px; }
  .transport-seo-hero { padding: 55px 0 !important; }
}
@media (prefers-reduced-motion: reduce) { .transport-dialog *, .transport-map * { scroll-behavior: auto !important; transition: none !important; } }

.transport-map .transport-marker { display: grid; place-items: center; }

#subheader.transport-seo-hero .crumb a { color: #fff; }

.communes-directory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px;list-style:none;padding:0}.communes-directory-list li{border-bottom:1px solid #ddd;padding:10px 0;overflow-wrap:anywhere}.communes-directory-list span{display:block;font-size:13px;color:#5a6470}.communes-pagination{height:auto;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.commune-facts{display:flex;gap:12px 35px;flex-wrap:wrap}.commune-facts div{border-bottom:1px solid #ddd;padding-bottom:12px}.commune-facts dt{font-weight:600}.commune-facts dd{margin:0}@media(max-width:800px){.communes-directory-list{grid-template-columns:1fr}}

/* Sources remain available on demand; the basemap attribution stays visible. */
.transport-sources { margin-top: 4px; }
.transport-sources summary { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; min-height: 32px; cursor: pointer; font-size: 21px; line-height: 1; color: #181d24; list-style: none; border-radius: 4px; }
.transport-sources summary::-webkit-details-marker { display: none; }
.transport-sources[open] summary { background: #eceeea; }
.transport-sources p { padding-top: 4px; }
.transport-location-row { min-width: 0; }
@media (max-width: 800px) {
  .transport-location-row { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.35fr); gap: 10px; align-items: start; }
  .transport-location-row .transport-field { min-width: 0; }
  .transport-location-row label { min-height: 39px; display: flex; align-items: end; }
  .transport-location-row .transport-letter { top: 55px; }
  .transport-location-row .transport-suggestions { left: auto; right: 0; width: calc(100vw - 36px); }
  .transport-location-row select.form-control { padding-left: 9px; }
}
