/* NOVASCEND · Atlas prospectif des microservices. Source et projection restent distinctes. */
.urban-axonometry{margin:0 0 clamp(2.5rem,5vw,4.5rem)}
.axon-atlas-summary{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.axon-atlas-summary strong{display:flex;align-items:baseline;gap:.5rem;color:var(--ink);font-family:var(--serif);font-size:clamp(2rem,3vw,3rem);font-weight:400;line-height:1}
.axon-atlas-summary strong span{font-family:var(--sans);font-size:1rem;font-weight:500;line-height:1.3}
.axon-atlas-summary>span{color:var(--ink-2);font-family:var(--mono);font-size:.78rem;line-height:1.5;text-align:right}
.urban-axonometry-overview{margin:1.25rem 0 0;background:var(--card);border:1px solid var(--rule)}
.urban-axonometry-overview img{display:block;width:100%;height:auto}
.urban-axonometry-overview figcaption{padding:.6rem .9rem;border-top:1px solid var(--rule);color:var(--ink-3);font-family:var(--mono);font-size:.74rem;line-height:1.5}
.axon-zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0;border-left:1px solid var(--rule)}
.axon-zone{min-width:0;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--card)}
.axon-zone-visual{display:none}
.axon-zone-content{padding:1.15rem 1.25rem 1.4rem}
.axon-zone-eyebrow{margin:0 0 .25rem;color:var(--accent);font-family:var(--mono);font-size:.73rem;letter-spacing:.06em;text-transform:uppercase}
.axon-zone h3{margin:0 0 .9rem;font-family:var(--serif);font-size:clamp(1.3rem,1.8vw,1.65rem);font-weight:400;line-height:1.2}
.axon-zone-services{margin:0;padding:0;list-style:none}
.axon-static-index{padding:1.25rem;border:1px solid var(--rule);border-top:0;background:var(--card)}
.axon-static-index h3{margin:0 0 .4rem;font:400 1.5rem/1.2 var(--serif)}
.axon-static-index>p{margin:0 0 1rem;color:var(--ink-2);font-size:.9rem}
.axon-static-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem}
.axon-static-index-grid h4{margin:.5rem 0;font:400 1.15rem var(--serif)}
.axon-static-index-grid ul{margin:0;padding:0;list-style:none}
.axon-static-index-grid li{padding:.55rem 0;border-top:1px solid var(--rule-soft)}
.axon-static-index-grid li strong,.axon-static-index-grid li span{display:block}
.axon-static-index-grid li strong{font-size:.88rem;font-weight:600}
.axon-static-index-grid li span{margin-top:.2rem;color:var(--ink-2);font-size:.8rem;line-height:1.45}
.axon-service{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:.75rem;align-items:start;padding:.9rem 0;border-top:1px solid var(--rule-soft)}
.axon-service-number{display:grid;place-items:center;width:2rem;height:2rem;background:var(--data);color:var(--card);font-family:var(--mono);font-size:.8rem;line-height:1}
.axon-service-copy{min-width:0}
.axon-service-action{display:block;color:var(--ink);font-family:var(--sans);font-size:1rem;font-weight:600;line-height:1.35}
.axon-service strong{display:block;margin:.15rem 0;color:var(--ink-2);font-family:var(--sans);font-size:.92rem;font-weight:400;line-height:1.4}
.axon-service-family{display:block;color:var(--ink-3);font-family:var(--mono);font-size:.74rem;line-height:1.5}
.urban-axonometry-note{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:1.25rem;align-items:start;padding:1.1rem 1.25rem;border:1px solid var(--rule);border-top:0;background:var(--tint)}
.urban-axonometry-note strong{color:var(--ink);font-family:var(--serif);font-size:1.25rem;font-weight:400;line-height:1.3}
.urban-axonometry-note p{margin:0;color:var(--ink-2);font-size:.91rem;line-height:1.65}
.axon-data-swatch,.axon-projection-swatch{display:inline-block;width:1.5rem;height:.75rem;margin:0 .25rem 0 .15rem;vertical-align:middle;border:1px solid var(--data-mid)}
.axon-data-swatch{background:var(--data)}
.axon-projection-swatch{background:repeating-linear-gradient(135deg,var(--card) 0,var(--card) 3px,var(--data-mid) 3px,var(--data-mid) 5px)}
.urban-carousel-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:end;margin:0 0 1.4rem;padding-top:2rem;border-top:1px solid var(--rule)}
#familles-services .urban-carousel-intro{margin-top:clamp(3rem,6vw,6rem)}
.urban-carousel-intro .eyebrow{grid-column:1/-1;margin:0}
.urban-carousel-intro h3{grid-column:1/span 7;margin:0;font-family:var(--serif);font-size:clamp(1.7rem,2.5vw,2.4rem);font-weight:400;line-height:1.15}
.urban-carousel-intro>p:last-child{grid-column:9/span 4;margin:0;color:var(--ink-2);font-size:.96rem;line-height:1.5}
@media(max-width:1100px) and (orientation: landscape), (max-width:700px){
  .urban-axonometry-overview{display:none}
  .axon-zones{display:block;margin-top:1rem;border-left:0;border-top:1px solid var(--rule)}
  .axon-zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;border-left:1px solid var(--rule)}
  .axon-zone-visual{display:block;align-self:stretch;margin:0;border-right:1px solid var(--rule)}
  .axon-zone-visual img{display:block;width:100%;height:auto;aspect-ratio:480/610;object-fit:contain;background:var(--card)}
  .axon-zone-visual figcaption{padding:.65rem 1rem;border-top:1px solid var(--rule);color:var(--ink-2);font-size:.85rem;line-height:1.55}
  .axon-zone-content{padding:1.3rem 1.5rem}
}
@media(max-width:700px){
  .axon-atlas-summary{display:block}
  .axon-atlas-summary strong{margin-bottom:.55rem}
  .axon-atlas-summary>span{display:block;text-align:left;font-size:.74rem}
  .axon-zone{display:block}
  .axon-zone-visual{border-right:0;border-bottom:1px solid var(--rule)}
  .axon-zone-visual img{max-width:530px;margin:auto}
  .axon-zone-content{padding:1rem 1.1rem 1.2rem}
  .axon-zone h3{font-size:1.55rem}
  .urban-axonometry-note{grid-template-columns:1fr;gap:.4rem;padding:1rem 1.1rem}
  .urban-carousel-intro{display:block}
  .urban-carousel-intro h3{margin:.45rem 0}
  .urban-carousel-intro>p:last-child{font-size:.9rem}
}

/* Vue aérienne prospective : surfaces, filets et jetons NOVASCEND. */
.axon-interactive-ready>.urban-axonometry-overview,
.axon-interactive-ready>.axon-zones,
.axon-interactive-ready>.axon-static-index{display:none}
.axon-explorer{margin:1.25rem 0 0;border:1px solid var(--rule);background:var(--card)}
.axon-explorer-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:1.15rem 1.4rem;border-bottom:1px solid var(--rule)}
.axon-explorer-heading .eyebrow{margin:0 0 .35rem}
.axon-explorer-title{margin:0;font:400 clamp(1.7rem,2.5vw,2.35rem)/1.1 var(--serif)}
.axon-explorer-lead{max-width:68ch;margin:.55rem 0 0;color:var(--ink-2);font-size:.92rem;line-height:1.5}
.axon-map-legend{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .55rem;margin:.8rem 0 0;color:var(--ink-2);font:400 .75rem/1.4 var(--sans)}
.axon-legend-cluster{display:grid;place-items:center;width:1.65rem;height:1.45rem;border:1px solid var(--ink);background:var(--card);color:var(--ink);font:600 .78rem var(--mono)}
.axon-legend-single{display:grid;place-items:center;width:1.65rem;height:1.45rem;margin-left:.5rem}
.axon-legend-single::before{content:"";width:.9rem;height:.9rem;border:2px solid var(--card);border-radius:50%;background:var(--data-mid);outline:1px solid var(--ink-2)}
.axon-map-controls{order:-1;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.55rem;padding:.6rem 1rem;border-bottom:1px solid var(--rule);background:var(--card)}
.axon-orbit-controls{display:flex;align-items:center;border:1px solid var(--rule);background:var(--card)}
.axon-orbit-controls .axon-zoom-button:not(:last-child){border-right:1px solid var(--rule)}
.axon-orbit-controls .axon-zoom-button:last-child{font-size:.8rem;font-weight:600}
.axon-control,.axon-zoom-button{min-height:44px;border:1px solid var(--rule);border-radius:0;background:var(--card);color:var(--ink);font:500 .84rem/1.2 var(--sans);cursor:pointer}
.axon-control{padding:.55rem .85rem}
.axon-control:hover,.axon-zoom-button:hover:not(:disabled){background:var(--tint);border-color:var(--ink-2)}
.axon-zoom-controls{display:flex;align-items:center;border:1px solid var(--rule)}
.axon-zoom-button{min-width:44px;padding:0;border:0;font-size:1.35rem}
.axon-zoom-button:first-child{border-right:1px solid var(--rule)}
.axon-zoom-button:last-child{border-left:1px solid var(--rule)}
.axon-zoom-button:disabled{color:var(--ink-3);cursor:default}
.axon-zoom-value{min-width:4.1rem;text-align:center;color:var(--ink-2);font:500 .72rem var(--mono)}
.axon-map-body{position:relative;display:flex;flex-direction:column}
.axon-map-viewport{position:relative;height:clamp(340px,49vw,560px);overflow:hidden;background:var(--tint);touch-action:none;cursor:grab}
.axon-map-viewport.is-dragging{cursor:grabbing}
.axon-map-viewport::after{content:"Glisser : déplacer · Maj + glisser : pivoter / incliner · Molette : zoomer";position:absolute;bottom:.8rem;left:.8rem;max-width:calc(100% - 1.6rem);padding:.4rem .55rem;border:1px solid var(--rule);background:var(--card);color:var(--ink-2);font:400 .69rem/1.35 var(--mono);pointer-events:none}
.axon-map-canvas{display:block;width:100%;height:100%;user-select:none}
.axon-map-overlay{position:absolute;inset:0;pointer-events:none}
.axon-map-marker{position:absolute;display:grid;place-items:center;min-width:46px;min-height:46px;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font:600 1.1rem var(--mono);transform:translate(-50%,-50%);cursor:pointer;pointer-events:auto}
.axon-map-marker--single::before{content:"";width:1.1rem;height:1.1rem;border:3px solid var(--card);border-radius:50%;background:var(--data-mid);outline:1px solid var(--ink-2)}
.axon-map-marker--cluster{display:flex;flex-direction:column;justify-content:center;min-width:70px;min-height:58px;border:1px solid var(--ink);background:var(--card);font-size:1.25rem}
.axon-map-marker--cluster::before{content:"SERVICES";font:500 .56rem/1.1 var(--mono);letter-spacing:.05em}
.axon-map-marker--cluster::after{content:attr(data-zone);position:absolute;top:calc(100% + 6px);left:50%;width:max-content;max-width:180px;padding:.22rem .4rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);font:500 .72rem/1.25 var(--sans);text-align:center;transform:translateX(-50%);pointer-events:none}
.axon-map-viewport.is-detail .axon-map-marker--single::after{content:attr(data-label);position:absolute;left:calc(100% + 6px);top:50%;width:max-content;max-width:155px;padding:.25rem .4rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);font:500 .72rem/1.25 var(--sans);text-align:left;transform:translateY(-50%);pointer-events:none}
.axon-map-marker:hover,.axon-map-marker[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}
.axon-map-info{position:absolute;right:1rem;bottom:1rem;z-index:2;width:min(350px,calc(100% - 2rem));max-height:calc(100% - 4rem);overflow:auto;padding:1.1rem 1.2rem;border:1px solid var(--rule);background:var(--card)}
.axon-map-info[hidden]{display:none}
.axon-map-info .eyebrow{max-width:calc(100% - 44px);margin:0 0 .55rem}
.axon-map-info-close{position:absolute;top:.45rem;right:.45rem;min-width:44px;min-height:44px;padding:0;border:1px solid var(--rule);border-radius:0;background:var(--card);color:var(--ink);font:400 1.5rem var(--sans);cursor:pointer}
.axon-map-info-close:hover{background:var(--tint)}
.axon-map-info-title{margin:0 0 .6rem;font:400 clamp(1.4rem,2vw,1.75rem)/1.15 var(--serif)}
.axon-map-info-description{margin:0;color:var(--ink-2);font-size:.9rem;line-height:1.55}
.axon-panel-metadata{display:grid;grid-template-columns:6rem 1fr;gap:.5rem .7rem;margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--rule);font-size:.77rem;line-height:1.4}
.axon-panel-metadata dt{color:var(--ink-3)}
.axon-panel-metadata dd{margin:0;color:var(--ink)}
.axon-map-group-list{margin-top:1rem;border-top:1px solid var(--rule)}
.axon-map-group-item{display:block;width:100%;min-height:44px;padding:.6rem .2rem;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink);font:500 .83rem/1.3 var(--sans);text-align:left;cursor:pointer}
.axon-map-group-item:hover{background:var(--tint)}
.axon-map-index{border-top:1px solid var(--rule)}
.axon-map-index summary{min-height:48px;padding:.85rem 1.4rem;color:var(--ink);font:500 .83rem var(--sans);cursor:pointer}
.axon-map-index summary:hover{background:var(--tint)}
.axon-map-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;padding:1rem 1.4rem 1.4rem;border-top:1px solid var(--rule)}
.axon-map-index-zone h4{margin:0 0 .5rem;font:400 1.2rem var(--serif)}
.axon-map-index-item{display:block;width:100%;min-height:44px;padding:.45rem 0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:transparent;color:var(--ink-2);font:500 .8rem/1.35 var(--sans);text-align:left;cursor:pointer}
.axon-map-index-item:hover{color:var(--ink);background:var(--tint)}
.axon-explorer-caption{margin:0;padding:.75rem 1.4rem;border-top:1px solid var(--rule);color:var(--ink-3);font:400 .74rem/1.5 var(--mono)}
.axon-map-viewport:focus-visible,.axon-control:focus-visible,.axon-zoom-button:focus-visible,.axon-map-marker:focus-visible,.axon-map-info-close:focus-visible,.axon-map-group-item:focus-visible,.axon-map-index summary:focus-visible,.axon-map-index-item:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
@media(max-width:780px){
  .axon-explorer-heading{display:block;padding:1rem}
  .axon-map-controls{padding:.5rem .65rem;justify-content:space-between}
  .axon-map-viewport{height:clamp(320px,70vw,480px)}
  .axon-map-index-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .axon-static-index-grid{grid-template-columns:1fr}
  .axon-explorer-title{font-size:1.8rem}
  .axon-explorer-lead{font-size:.88rem}
  .axon-map-viewport{height:clamp(400px,118vw,520px)}
  .axon-map-viewport::after{content:"Glisser : déplacer · Deux doigts : zoomer et pivoter";font-size:.64rem}
  .axon-map-controls{gap:.25rem}
  .axon-control{padding:.55rem .6rem}
  .axon-zoom-value{min-width:3.5rem}
  .axon-map-marker--cluster::after{display:none}
  .axon-map-viewport.is-detail .axon-map-marker--single::after{display:none}
  .axon-map-info{position:relative;right:auto;bottom:auto;width:auto;max-height:none;margin:0;border:0;border-top:1px solid var(--rule)}
  .axon-map-index-grid{grid-template-columns:1fr;padding:1rem}
  .axon-map-index summary,.axon-explorer-caption{padding-left:1rem;padding-right:1rem}
}
