/* Scénarios prospectifs du modèle urbain. */
.urban-carousel{overflow:hidden;background:var(--card);border:1px solid var(--rule);border-radius:var(--radius)}
.urban-slide{margin:0}
.urban-slide[hidden]{display:none}
html:not(.js) .urban-slide+.urban-slide{border-top:3px solid var(--rule);margin-top:2rem}
.urban-slide-visual{position:relative;overflow:hidden;background:var(--tint)}
.urban-slide-visual img{width:100%;aspect-ratio:2.15;object-fit:cover}
.urban-image-markers{position:absolute;inset:0;pointer-events:none}
.urban-image-marker{position:absolute;left:var(--x);top:var(--y);z-index:1;display:grid;place-items:center;width:44px;height:44px;pointer-events:auto;color:var(--ink);text-decoration:none;transform:translate(-50%,-50%)}
.urban-image-marker b{display:grid;place-items:center;width:32px;height:32px;border:2px solid var(--card);border-radius:50%;background:var(--ink);color:var(--card);font:600 .75rem/1 var(--sans)}
.urban-image-marker>span{position:absolute;bottom:calc(100% + 6px);left:50%;width:max-content;max-width:min(220px,25vw);padding:.4rem .65rem;border:1px solid var(--ink);border-radius:4px;background:var(--card);color:var(--ink);font:.75rem/1.3 var(--sans);font-weight:600;text-align:center;transform:translateX(-50%)}
.urban-image-marker:hover b,.urban-image-marker[aria-current="true"] b{border-color:var(--accent)}
.urban-image-marker:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.urban-image-marker--below>span{top:calc(100% + 8px);bottom:auto}
.urban-slide figcaption{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(1.5rem,4vw,4rem);padding:clamp(1.4rem,3vw,2.5rem)}
.urban-slide-story .eyebrow{margin-bottom:.55rem}
.urban-slide-story h3{font-size:clamp(1.55rem,2.4vw,2.35rem);line-height:1.13;letter-spacing:-.015em}
.urban-slide-story>p:last-child{max-width:62ch;margin-top:.8rem;color:var(--ink-2);font-size:var(--fs-small);line-height:1.65}
.urban-slide-services{align-self:start;border-top:1px solid var(--ink)}
.urban-service-detail{padding:1rem 0;border-top:1px solid var(--rule-soft);scroll-margin-top:6rem}
.urban-service-detail[hidden]{display:none}
.urban-service-detail:target,.urban-service-detail:focus{outline:2px solid var(--accent);outline-offset:3px}
.urban-service-meta{margin:0 0 .4rem;color:var(--accent);font-family:var(--mono);font-size:.6875rem;line-height:1.4}
.urban-service-detail h4{margin:0;font-family:var(--serif);font-size:clamp(1.25rem,1.7vw,1.7rem);font-weight:400;line-height:1.2}
.urban-service-detail>p:last-child{margin:.55rem 0 0;color:var(--ink-2);font-size:var(--fs-small);line-height:1.6}
.urban-carousel-controls:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:70px;padding:.7rem clamp(1.4rem,3vw,2.5rem);border-top:1px solid var(--rule)}
.urban-carousel-arrows,.urban-carousel-dots{display:flex;align-items:center;gap:.4rem}
.urban-carousel-arrows button,.urban-carousel-dots button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--rule);border-radius:50%;background:transparent;color:var(--ink);font:1.25rem/1 var(--sans);cursor:pointer;transition:background .2s,border-color .2s}
.urban-carousel-arrows button:hover,.urban-carousel-dots button:hover{background:var(--tint);border-color:var(--ink-3)}
.urban-carousel-dots button{position:relative;border-color:transparent}
.urban-carousel-dots button::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--rule)}
.urban-carousel-dots button[aria-pressed="true"]::after{background:var(--accent);transform:scale(1.45)}
.urban-carousel-status{font-family:var(--mono);font-size:.75rem;color:var(--ink-3);white-space:nowrap}
.urban-carousel-note{max-width:95ch;margin-top:.85rem;color:var(--ink-3);font-size:.8125rem;line-height:1.55}
@media(prefers-reduced-motion:reduce){.urban-carousel-arrows button,.urban-carousel-dots button{transition:none}}
@media(max-width:760px){
  .urban-slide-visual img{aspect-ratio:2.15}
  .urban-image-marker b{width:27px;height:27px;font-size:.6875rem}
  .urban-image-marker>span{display:none}
  .urban-slide figcaption{grid-template-columns:1fr;gap:1.35rem;padding:1.25rem}
  .urban-slide-story h3{font-size:1.7rem}
  .urban-carousel-controls:not([hidden]){flex-wrap:wrap;padding:.55rem .75rem;gap:.25rem}
  .urban-carousel-arrows,.urban-carousel-dots{gap:0}
  .urban-carousel-dots{flex:1 0 100%;justify-content:center}
  .urban-carousel-status{font-size:.6875rem}
}
@media(max-width:338px){
  .urban-carousel-dots{max-width:220px;flex-wrap:wrap;margin-inline:auto}
}
@media(max-width:370px){
  .urban-carousel-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
