/* Pages carte-hotels-* (scripts/carte.py, static/js/carte.js) */
.carte { margin: 1.5em 0 2em; scroll-margin-top: 5rem; }

.carte-presets { display: flex; flex-wrap: wrap; gap: .4em; margin-bottom: .9em; }
.carte-presets button { font: inherit; font-size: .88rem; padding: .35em .85em; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink); transition: background .15s var(--ease); }
.carte-presets button:hover { border-color: var(--accent); }
.carte-presets button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: #fff; }

.carte-filtres { display: flex; flex-wrap: wrap; gap: .7em 1.4em; align-items: flex-start; margin-bottom: .6em; font-size: .9rem;
  padding: .8em 1em; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.carte-filtres fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.carte-filtres legend { font-weight: 600; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .25em; padding: 0; }
.carte-filtres label { display: inline-flex; align-items: center; margin-right: .8em; white-space: nowrap; cursor: pointer; line-height: 1.9; }
.carte-filtres select, .carte-filtres input[type=search] { font: inherit; padding: .25em .45em; border: 1px solid var(--line);
  border-radius: var(--radius-sm); background: var(--bg); color: var(--ink); }
.carte-filtres input[type=search] { width: 13em; }
.carte-filtres input[type=range] { accent-color: var(--accent); vertical-align: middle; width: 9em; }
.carte-filtres input[type=checkbox] { accent-color: var(--accent); margin: 0 .2em 0 0; }
.carte-filtres output { font-weight: 600; }
.carte-calques { flex-basis: 100%; }
.carte-pastille, .carte-repere { display: inline-block; width: .7em; height: .7em; border-radius: 50%; margin: 0 .3em 0 .15em; flex: none; }
.carte-repere { border-radius: 2px; }

.carte-compte { margin: 0 0 .5em !important; font-size: .95rem; }
.carte-compte b { color: var(--accent); }
.carte-map { height: min(70vh, 560px); border: 1px solid var(--line); border-radius: var(--radius); z-index: 0; }
.carte-aide { font-size: .85rem; color: var(--muted); margin: .4em 0 0 !important; }

.carte-bulle { font-size: .92rem; line-height: 1.45; }
.carte-bulle strong { display: block; font-size: 1rem; }
.carte-bulle small { display: block; color: #666; }
.carte-bulle p { margin: .4em 0 !important; }
.carte-bulle a { display: inline-block; font-weight: 600; color: #9a5b23; }
.leaflet-container a.leaflet-popup-close-button { color: #555; }

.carte-table-wrap { overflow-x: auto; }
.prose .carte-table { display: table; font-size: .88rem; }
.carte-table small { color: var(--muted); font-size: .82em; }
.carte-table tbody tr { cursor: pointer; }
.carte-table tbody tr:hover, .carte-table tbody tr.actif { background: var(--accent-soft); }
.carte-table td:nth-child(n+3) { white-space: nowrap; }
.carte-table th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.carte-table th[data-sort]::after { content: " ↕"; color: var(--muted); font-weight: 400; }
.carte-table th[aria-sort="ascending"]::after { content: " ↑"; color: var(--accent); }
.carte-table th[aria-sort="descending"]::after { content: " ↓"; color: var(--accent); }

@media (max-width: 640px) {
  .carte-filtres { padding: .6em .7em; gap: .5em 1em; }
  .carte-map { height: 62vh; }
  .carte-table th:nth-child(2), .carte-table td:nth-child(2) { display: none; }   /* type : la pastille suffit */
}
.carte-plus > summary { cursor: pointer; font-weight: 600; font-size: .9rem; margin-bottom: .5em; color: var(--accent); }
.carte-plus[open] > summary { display: none; }
@media (max-width: 640px) {
  .carte-plus[open] > summary { display: list-item; }
  .carte-table small { display: none; }
  .carte-table .c-rooms { display: none; }   /* chambres : visibles dans la bulle */
  .carte-filtres input[type=search] { width: 100%; }
}
