/* Accueil : les quatre portes partagent l'atlas et les fiches déjà en place. */
.site-header nav a[aria-current="page"] { color:var(--ink); border-bottom:2px solid var(--teal); }
.site-header .nav-atlas { border-bottom:0; }
.site-header .view-switch button { border:1px solid var(--teal); background:var(--inset); color:var(--ink); padding:10px 14px; font:600 12px "Segoe UI",sans-serif; cursor:pointer; white-space:nowrap; }
.site-header .view-switch button:hover { background:var(--teal); color:var(--header); }
.visibility-banner.is-integrated-player { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px 24px; background:#245d57; color:#f5fff9; border-block:2px solid #a1c9b9; font-size:14px; font-weight:700; letter-spacing:.08em; }
.visibility-banner.is-integrated-player button { border:1px solid #f5fff9; background:#f5fff9; color:#173c3a; padding:8px 14px; font:700 12px "Segoe UI",sans-serif; cursor:pointer; }
body.view-switching main { visibility:hidden; }
.home-heading { padding-bottom:19px; }
.home-heading h1 { font-size:clamp(38px,4vw,62px); }
.home-heading .heading-compass { width:57px; height:57px; opacity:.58; }
.home-search-band { display:flex; align-items:end; gap:24px; margin:0 0 23px; padding:16px 20px; border:1px solid var(--line); background:var(--surface); }
.home-search-form { flex:1; min-width:0; max-width:680px; }
.home-search-form label,.home-card-search label { display:block; margin-bottom:8px; color:var(--muted); font-size:12px; letter-spacing:.03em; }
.home-search-index { margin:0 0 10px; color:var(--teal); font-size:12px; }
.home-search-line { display:flex; gap:8px; }
.home-search-form input,.home-card-search input { width:100%; min-width:0; height:44px; padding:0 14px; border:1px solid var(--frame); border-radius:2px; background:var(--header); color:var(--ink); font:inherit; }
.home-search-form input::placeholder,.home-card-search input::placeholder { color:var(--muted); opacity:.8; }
.home-search-form button { min-width:126px; padding:0 18px; border:1px solid var(--teal); border-radius:2px; background:var(--teal); color:var(--selected-text); font-weight:600; }
.home-search-form button:hover { filter:brightness(1.13); }
.home-search-all { white-space:nowrap; padding:12px 0; color:var(--ink); font-size:13px; text-decoration-color:var(--teal); text-underline-offset:5px; }
.home-search-all span { color:var(--teal); }
.home-search-results { display:grid; gap:5px; list-style:none; margin:8px 0 0; padding:0; }
.home-search-results:empty { display:none; }
.home-search-results a { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:9px 11px; border:1px solid var(--line); background:var(--header); text-decoration:none; font-size:13px; }
.home-search-results a:hover,.home-search-results a:focus-visible { border-color:var(--teal); background:var(--inset); }
.home-search-results strong { font-weight:600; }
.home-search-results span { color:var(--muted); font-size:11px; text-align:right; }
.home-result-status { color:var(--muted); font-size:12px; padding:6px 0; }
.home-map-label { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 1px 9px; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:1.9px; }
.home-map-label a { color:var(--teal); font-size:12px; letter-spacing:.03em; text-decoration:none; }
.home-map-label a:hover { text-decoration:underline; text-underline-offset:4px; }
.home-portals { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.home-card { display:flex; flex-direction:column; min-height:270px; padding:27px 29px; overflow:hidden; }
.home-card h2 { font-size:clamp(27px,2.2vw,35px); }
.home-card .section-motif { width:48px; height:48px; opacity:.55; }
.home-card-search { position:relative; z-index:1; max-width:520px; margin:auto 0 17px; }
.home-selection-note { margin:0 0 10px; color:var(--muted); font-size:11px!important; }
.home-entry-list { display:grid; gap:7px; margin:0 0 18px; padding:0; list-style:none; }
.home-entry-message { min-height:65px; display:flex; align-items:center; color:var(--muted); font-size:12px; }
.home-card .home-card-search { margin:0 0 16px; }
.home-card-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:auto; }
.home-card-links a,.times-card-end a { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; padding:10px 13px; border:1px solid var(--frame); text-decoration:none; font-size:13px; color:var(--ink); }
.home-card-links a:hover,.times-card-end a:hover { border-color:var(--teal); background:var(--inset); }
.home-card-links a span,.times-card-end a span { color:var(--teal); }
.home-card.characters { background:var(--inset); }
.home-card.times-card { grid-column:1/-1; min-height:165px; display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:24px; padding-right:78px; }
.times-card .eyebrow { margin-bottom:6px; }
.times-card h2 { margin:0; }
.times-card-end { display:flex; align-items:center; gap:22px; }
.times-card-end>span { font-size:13px; color:var(--muted); }
.times-card-end a { border-color:var(--line); }
.times-card .section-motif { right:20px; top:calc(50% - 24px); }
.times-empty { position:relative; max-width:760px; min-height:310px; margin:15px 0 70px; padding:40px; border:1px solid var(--line); border-top:2px solid var(--teal); background:var(--surface); }
.times-empty>svg { width:52px; height:52px; margin-bottom:15px; color:var(--teal); opacity:.7; }
.times-empty h2 { margin-bottom:12px; }
.times-empty p { color:var(--muted); }
.times-empty a { color:var(--teal); text-underline-offset:4px; }
.technical-link { margin-left:auto; color:var(--muted); font-size:11px; text-decoration:none; }
.technical-link:hover { color:var(--ink); text-decoration:underline; }
.atlas-index { padding:14px 18px 11px; }
.atlas-index .escales-heading { margin-bottom:9px; }
.atlas-index .escales-heading h2 { font-size:23px; }
.atlas-index .escales-heading .eyebrow { margin-bottom:4px; }
.atlas-index .place-list { gap:8px; padding-bottom:7px; }
.atlas-index .place-list a { flex-basis:165px; min-height:53px; padding:8px 9px; font-size:13px; }
.atlas-index .place-list-name small { display:block; margin-top:3px; font-size:9px; }
@media(max-width:1150px) and (min-width:701px) { .site-header { flex-wrap:wrap; } .site-header nav { order:3; width:100%; justify-content:space-between; } .site-header .theme-switch { margin-left:auto; } }
@media(max-width:1000px) { .home-card.times-card { padding-right:64px; } .times-card-end { align-items:flex-start; flex-direction:column; gap:8px; } }
@media(max-width:700px) {
  .site-header .brand { order:1; gap:8px; font-size:18px; }
  .site-header .brand-mark { font-size:24px; }
  .site-header .brand small { font-size:8px; letter-spacing:1.4px; }
  .site-header .theme-switch { order:2; margin-left:auto; }
  .site-header nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px 7px; width:100%; }
  .site-header nav { order:3; }
  .site-header nav a { font-size:12px; white-space:nowrap; }
  .site-header .view-switch { order:4; width:100%; }
  .site-header .view-switch button { width:100%; }
  .home-heading { display:flex; align-items:center; gap:7px; padding-bottom:15px; }
  .home-heading h1 { font-size:36px; }
  .home-heading .heading-compass { width:29px; height:29px; margin-left:auto; }
  .home-search-band { display:block; padding:14px; margin-bottom:20px; }
  .home-search-form { max-width:none; }
  .home-search-form button { min-width:96px; padding:0 10px; font-size:12px; }
  .home-search-all { display:inline-block; padding:13px 0 0; }
  .home-portals { grid-template-columns:1fr; gap:15px; }
  .home-card { min-height:260px; padding:24px; }
  .atlas-index { padding:12px 13px 8px; }
  .atlas-index .place-list a { flex-basis:150px; }
  .home-card.times-card { grid-column:auto; min-height:200px; padding-right:55px; align-items:flex-start; flex-direction:column; gap:0; }
  .times-card-end { gap:12px; }
  .times-empty { padding:25px; min-height:250px; }
}
.gm-access-dialog { max-width: 32rem; width: calc(100% - 3rem); background: #183c4c; color: #eeede2; border: 1px solid #a1c9b9; padding: 1.5rem; }
.gm-access-dialog::backdrop { background: #102735bb; }
.gm-access-dialog input { box-sizing: border-box; width: 100%; margin-bottom: 1rem; padding: .75rem; background: #102735; color: #eeede2; border: 1px solid #376b68; }

/* L'Atlas est un index de cartes distinct de la carte interactive d'accueil. */
#map-library-view { min-height:65vh; padding-bottom:70px; }
.map-library-group { margin:18px 0 36px; }
.map-library-group[hidden] { display:none; }
.map-library-group h2 { margin:0 0 14px; padding-bottom:9px; border-bottom:1px solid var(--line); font-size:27px; }
.map-library-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); gap:15px; margin:0; padding:0; list-style:none; }
.map-library-card { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid var(--line); background:var(--surface); color:var(--ink); text-decoration:none; }
.map-library-card:hover,.map-library-card:focus-visible { border-color:var(--teal); background:var(--inset); }
.map-library-card img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--sea); border-bottom:1px solid var(--line); }
.map-library-category { margin:14px 16px 4px; color:var(--teal); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.map-library-card strong { margin:0 16px 6px; font:normal 22px/1.25 'Palatino Linotype',Georgia,serif; }
.map-library-open { margin:auto 16px 15px; color:var(--muted); font-size:12px; }
.map-library-dialog { width:min(92vw,1200px); max-height:90vh; padding:15px; border:1px solid var(--frame); background:var(--paper); color:var(--ink); }
.map-library-dialog::backdrop { background:#061824cf; }
.map-library-dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:12px; }
.map-library-dialog-heading h2 { margin:0; font-size:25px; }
.map-library-dialog-heading button { min-height:40px; padding:6px 14px; border:1px solid var(--frame); background:var(--surface); color:var(--ink); cursor:pointer; }
.map-library-dialog img { display:block; max-width:100%; max-height:calc(90vh - 95px); width:auto; height:auto; margin:auto; object-fit:contain; }
@media(max-width:700px) { .map-library-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; } #map-library-world .map-library-card { grid-column:1/-1; } #map-library-world .map-library-card img { aspect-ratio:16/9; } .map-library-card strong { font-size:17px; } .map-library-card img { aspect-ratio:4/3; } .map-library-dialog { width:calc(100vw - 16px); padding:8px; } }
@media(max-width:390px) { .map-library-grid { grid-template-columns:1fr 1fr; } .map-library-card strong { font-size:15px; } }
