/* Local refinement of the approved Explorer wireframe. */

.site-header .button--gold{border-color:var(--gold)}
.site-header .button--gold:hover{border-color:#e3bd4d}
@media(min-width:1320px){
  .site-header:not(.is-artist-session){grid-template-columns:minmax(620px,700px) minmax(300px,1fr) auto;gap:14px}
  .site-navigation{gap:clamp(8px,.85vw,13px)}
}

.hero{
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:stretch;
  overflow:hidden;
  width:100%;
  min-height:calc(100svh - var(--atlas-header-height,76px));
  margin:0;
  border-radius:0;
  padding:24px;
  background:#0b0b0b;
  color:#fff;
}
.hero__content{position:relative;z-index:3;display:flex;width:100%;min-height:0;flex:1;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;text-align:center;pointer-events:none}
.hero__content :is(button,a,input,select){pointer-events:auto}
.hero__copy{position:static;width:min(820px,calc(100% - 32px));transform:none;text-align:center}
.hero__copy>.eyebrow,.hero__copy>h1,.hero__copy>.hero__manifest,.hero__copy>.hero__territory{width:100%;margin-right:auto;margin-left:auto;text-align:center}
.hero-cloud,.hero__veil{position:absolute;inset:0}
.hero-cloud{z-index:1;overflow:hidden}
.hero__veil{z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#0b0b0bf2 0,#0b0b0bdc 27%,#0b0b0b52 55%,#0b0b0b08 78%)}
.hero-cloud__artwork{
  position:absolute;
  top:0;
  left:0;
  overflow:hidden;
  border:0;
  outline:0;
  border-radius:4px;
  padding:0;
  background:#242424;
  box-shadow:0 16px 40px #0009;
  opacity:0;
  transform-origin:center;
  will-change:transform,opacity;
}
.hero-cloud__artwork>.sprite{display:block;width:100%;height:100%;filter:brightness(1.28) saturate(1.16) contrast(1.04)}
.hero-cloud__artwork[data-cloud-state="near"]{box-shadow:0 22px 60px #000c}
.hero-cloud__artwork:is(:hover,:focus-visible)>.sprite{transform:scale(1.035)}
.hero-cloud__artwork>.sprite{transition:transform .2s ease}
.hero .eyebrow{margin:0 0 15px;color:var(--gold)}
.hero h1{color:#fff}
.hero .hero__manifest{
  max-width:760px;
  margin:20px auto 0;
  color:#d0d0d0;
  font-size:15px;
  line-height:1.55;
}
.hero .hero__territory{
  margin:16px auto 0;
  color:#aaa;
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
}

.discovery-filterbar{
  display:flex;
  width:min(1040px,calc(100% - 48px));
  max-width:1040px;
  min-height:62px;
  align-items:stretch;
  margin:26px auto 0;
  overflow-x:auto;
  border:1px solid #e5e5e5;
  border-radius:999px;
  padding:5px;
  background:#fff;
  box-shadow:0 12px 34px #00000024;
  color:#111;
  text-align:left;
  scrollbar-width:none;
  pointer-events:auto;
}
.discovery-filterbar::-webkit-scrollbar{display:none}
.discovery-filterbar .discovery-filterbar__filter{
  position:relative;
  display:grid;
  min-width:0;
  min-height:50px;
  flex:1 1 0;
  grid-template-columns:30px minmax(0,1fr) 12px;
  align-items:center;
  gap:9px;
  border-radius:999px;
  padding:4px 12px;
  transition:background-color .18s ease;
}
.discovery-filterbar__filter:nth-of-type(1){flex-basis:146px}
.discovery-filterbar__filter:nth-of-type(2){flex-basis:150px}
.discovery-filterbar__filter:nth-of-type(3){flex-basis:180px}
.discovery-filterbar__filter:nth-of-type(4){flex-basis:168px}
.discovery-filterbar__filter:nth-of-type(5){flex-basis:178px}
.discovery-filterbar__filter:not(:first-child)::before{position:absolute;top:9px;bottom:9px;left:0;width:1px;background:#ececec;content:""}
.discovery-filterbar__filter:hover{background:#f6f6f6}
.discovery-filterbar__filter:focus-within{outline:3px solid var(--gold);outline-offset:-3px;background:#f6f6f6}
.discovery-filterbar .discovery-filterbar__filter>span{margin:0;letter-spacing:normal;text-transform:none}
.discovery-filterbar__icon{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#f1f1f1;color:#171717}
.discovery-filterbar__icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}
.discovery-filterbar__copy{display:grid;min-width:0;gap:1px}
.discovery-filterbar__label{overflow:hidden;color:#777;font-size:9px;font-weight:500;letter-spacing:.08em!important;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.discovery-filterbar select{width:100%;min-width:0;min-height:18px;appearance:none;overflow:hidden;border:0;padding:0;background:transparent;color:#111;font:650 11px/1.15 var(--interface);text-overflow:ellipsis;white-space:nowrap;outline:0;color-scheme:light;cursor:pointer}
.discovery-filterbar__chevron{color:#333;font-size:14px;line-height:1;transform:translateY(-1px)}
.discovery-filterbar__reset{
  display:inline-flex;
  min-width:max-content;
  min-height:40px;
  align-self:center;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-left:5px;
  border:0;
  border-radius:999px;
  padding:0 15px;
  background:#111;
  color:#fff;
  font-size:11px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}
.discovery-filterbar__reset svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.discovery-filterbar__reset:hover{background:#292929;color:#fff;text-decoration:none}
.discovery-filterbar__reset:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

.footer-actions{gap:12px;width:min(1040px,100%);margin-top:24px}
.footer-actions button{
  min-height:64px;
  grid-template-columns:34px minmax(0,1fr) 30px;
  gap:10px;
  border-radius:999px;
  padding:7px 10px 7px 12px;
  background-image:none!important;
  box-shadow:0 10px 24px #4b381214;
}
.footer-actions button::before,.footer-actions button::after{display:none}
.footer-actions button:nth-child(1){border-color:#111;background:#111;color:#fff}
.footer-actions button:nth-child(2){border-color:var(--gold);background:var(--gold);color:#111}
.footer-actions button:nth-child(3){border-color:#111;background:#fff;color:#111}
.footer-actions button:hover{filter:none;transform:translateY(-2px);box-shadow:0 14px 28px #4b381222}
.footer-actions button>.footer-action__icon{
  width:34px;
  height:34px;
  border-radius:50%;
  box-shadow:none;
}
.footer-actions button:nth-child(1)>.footer-action__icon{border-color:#fff;background:#fff;color:#111}
.footer-actions button:nth-child(2)>.footer-action__icon{border-color:#111;background:#111;color:var(--gold)}
.footer-actions button:nth-child(3)>.footer-action__icon{border-color:#111;background:#fff;color:#111}
.footer-actions button>.footer-action__copy{
  position:relative;
  z-index:1;
  display:block;
  width:auto;
  height:auto;
  min-width:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.footer-action__copy small{
  display:block;
  margin-bottom:3px;
  font-size:8px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.68;
}
.footer-actions .footer-action__copy strong{display:block;font:600 12px/1.2 var(--interface)}
.footer-actions i{width:30px;height:30px;box-shadow:none}
.footer-actions button:nth-child(1) i{background:#fff;color:#111}
.footer-actions button:nth-child(2) i{background:#111;color:var(--gold)}
.footer-actions button:nth-child(3) i{background:#111;color:#fff}

.territorial-events__header .section-header__action{
  min-height:46px!important;
  border-radius:12px;
  padding:0 16px!important;
}
.territorial-events__header .section-header__action-label{white-space:nowrap}
.territorial-events__header .section-header__actions{
  width:clamp(396px,calc(22.222% + 157px),460px);
  max-width:calc(100% - 20px);
  grid-template-columns:minmax(0,1fr) 201px;
  margin-inline:10px;
}

html[data-theme="dark"] .hero{background:#0b0b0b;color:#fff}
html[data-theme="dark"] .hero .eyebrow{color:var(--gold)}
html[data-theme="dark"] .hero .hero__manifest{color:#d0d0d0}
html[data-theme="dark"] .hero .hero__territory{color:#aaa}
html[data-theme="dark"] .discovery-filterbar{border-color:#e5e5e5;background:#fff;color:#111}
html[data-theme="dark"] .discovery-filterbar__filter{border-color:#ececec}
html[data-theme="dark"] .discovery-filterbar__filter:hover,html[data-theme="dark"] .discovery-filterbar__filter:focus-within{background:#f6f6f6}
html[data-theme="dark"] .discovery-filterbar__label{color:#777}
html[data-theme="dark"] .discovery-filterbar select{color:#111;color-scheme:light}
html[data-theme="dark"] .discovery-filterbar__reset{background:#111;color:#fff}
html[data-theme="dark"] .footer-actions button:nth-child(1){border-color:#fff;background:#fff;color:#090908}
html[data-theme="dark"] .footer-actions button:nth-child(1)>.footer-action__icon{border-color:#090908;background:#090908;color:#fff}
html[data-theme="dark"] .footer-actions button:nth-child(1) i{background:#090908;color:#fff}
html[data-theme="dark"] .footer-actions button:nth-child(3){border-color:var(--line);background:#090908;color:#fff}
html[data-theme="dark"] .footer-actions button:nth-child(3)>.footer-action__icon{border-color:#fff;background:#090908;color:#fff}
html[data-theme="dark"] .footer-actions button:nth-child(3) i{background:#fff;color:#090908}

@media(max-width:900px){
  .hero{width:100%}
  .discovery-filterbar{width:calc(100% - 32px)}
  .discovery-filterbar .discovery-filterbar__filter{min-width:150px;padding-inline:10px}
}
@media(max-width:620px){
  .hero{width:100%;min-height:calc(100svh - var(--atlas-header-height,112px));border-radius:0;padding:24px 0}
  .hero__content{min-height:0}
  .hero .eyebrow{display:block}
  .hero .hero__manifest{padding-inline:18px;font-size:13px}
  .hero .hero__territory{padding-inline:18px}
  .discovery-filterbar{width:calc(100% - 24px);margin-top:24px}
  .discovery-filterbar .discovery-filterbar__filter{min-width:150px;padding-inline:11px}
  .discovery-filterbar__reset{margin-right:0}
  .footer-actions button{min-height:60px;grid-template-columns:32px minmax(0,1fr) 28px;padding:6px 9px 6px 11px}
  .footer-actions button>.footer-action__icon{width:32px;height:32px}
  .footer-actions i{width:28px;height:28px}
  .territorial-events__header .section-header__actions{width:100%;max-width:none;grid-template-columns:1fr;margin-inline:0}
}
@media(prefers-reduced-motion:reduce){.hero-cloud__artwork{will-change:auto}.hero-cloud__artwork>.sprite{transition:none}}

/* Lieux — carte immersive carrée avec galerie d’images */
.place-grid{
  width:min(1050px,100%);
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-inline:auto;
}
.place-card-immersive{
  position:relative;
  min-width:0;
  height:400px;
  aspect-ratio:auto;
  overflow:hidden;
  border:0;
  border-radius:20px;
  background:#171714;
  box-shadow:0 16px 38px #17130b24;
  color:#fff;
  isolation:isolate;
}
.place-card-immersive__gallery,.place-card-immersive__slide,.place-card-immersive__slide>.sprite{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.place-card-immersive__gallery{z-index:0;background:#24231f}
.place-card-immersive__slide{
  opacity:0;
  transform:scale(1.035);
  transition:opacity .38s ease,transform .75s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.place-card-immersive__slide.is-active{opacity:1;transform:scale(1)}
.place-card-immersive__slide>.sprite{display:block;background-size:800% 100%}
.place-card-immersive__shade{
  position:absolute;
  z-index:1;
  inset:0;
  background:linear-gradient(180deg,#05050455 0%,transparent 30%,#06060518 48%,#050504e8 78%,#050504fa 100%);
  pointer-events:none;
}
.place-card-immersive__topline{
  position:absolute;
  z-index:3;
  top:12px;
  right:12px;
  left:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  pointer-events:none;
}
.place-card-immersive__topline span{
  overflow:hidden;
  border:1px solid #ffffff40;
  border-radius:999px;
  padding:5px 8px;
  background:#f8f7f0d9;
  backdrop-filter:blur(8px);
  color:#171714;
  font-size:8.5px;
  font-weight:650;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.place-card-immersive__controls{
  position:absolute;
  z-index:4;
  top:42%;
  right:10px;
  left:10px;
  display:flex;
  justify-content:space-between;
  transform:translateY(-50%);
  pointer-events:none;
}
.place-card-immersive__controls button{
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border:1px solid #ffffff6b;
  border-radius:50%;
  padding:0;
  background:#0c0c0bbd;
  color:#fff;
  font-size:14px;
  opacity:0;
  transform:translateX(4px);
  transition:opacity .2s ease,transform .2s ease,background-color .2s ease;
  cursor:pointer;
  pointer-events:auto;
}
.place-card-immersive__controls button:first-child{transform:translateX(-4px)}
.place-card-immersive:is(:hover,:focus-within) .place-card-immersive__controls button{opacity:1;transform:translateX(0)}
.place-card-immersive__controls button:hover{background:#0c0c0bf2}
.place-card-immersive__controls button:focus-visible,.place-card-immersive__dots button:focus-visible,.place-card-immersive__action:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.place-card-immersive__dots{
  position:absolute;
  z-index:4;
  right:15px;
  bottom:145px;
  left:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.place-card-immersive__dots button{
  width:5px;
  height:5px;
  border:0;
  border-radius:999px;
  padding:0;
  background:#ffffff8c;
  box-shadow:0 1px 4px #0007;
  transition:width .2s ease,background-color .2s ease;
  cursor:pointer;
}
.place-card-immersive__dots button[aria-pressed="true"]{width:17px;background:#fff}
.place-card-immersive__content{
  position:absolute;
  z-index:3;
  right:14px;
  bottom:14px;
  left:14px;
  display:grid;
  gap:4px;
}
.place-card-immersive__content h3{margin:0;color:#fff;font-size:clamp(19px,1.55vw,23px);font-weight:650;line-height:1.08;letter-spacing:-.025em}
.place-card-immersive__meta{margin:0;color:#f1d36f;font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.place-card-immersive__description{margin:0 0 4px;color:#f2f2ee;font-size:10.5px;line-height:1.35}
.place-card-immersive__action{
  display:flex;
  width:100%;
  min-height:34px;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-radius:999px;
  padding:0 12px;
  background:#fff;
  color:#111;
  font-size:9.5px;
  font-weight:700;
  cursor:pointer;
}
.place-card-immersive__action:hover{background:var(--gold)}
html[data-theme="dark"] .place-card-immersive{box-shadow:0 16px 38px #0007}

/* Repère éditorial devant chaque grand titre de section */
main :is(.section-header h2,.territorial-events__header h2,.unified-results>header h2){
  display:flex;
  align-items:center;
  gap:16px;
}
main :is(.section-header h2,.territorial-events__header h2,.unified-results>header h2)::before{
  width:68px;
  height:1.5px;
  flex:0 0 68px;
  background:currentColor;
  content:"";
  opacity:.55;
}

@media(max-width:1050px) and (min-width:681px){
  .place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  main :is(.section-header h2,.territorial-events__header h2,.unified-results>header h2){gap:10px}
  main :is(.section-header h2,.territorial-events__header h2,.unified-results>header h2)::before{width:34px;flex-basis:34px}
  .place-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .place-card-immersive{height:auto;aspect-ratio:1;border-radius:18px}
  .place-card-immersive__controls button{width:32px;height:32px;opacity:1;transform:none}
  .place-card-immersive__controls button:first-child{transform:none}
  .place-card-immersive__content{right:14px;bottom:14px;left:14px}
  .place-card-immersive__dots{bottom:145px}
  .place-card-immersive__content h3{font-size:21px}
}
@media(prefers-reduced-motion:reduce){
  .place-card-immersive__slide,.place-card-immersive__controls button,.place-card-immersive__dots button{transition:none}
}
