/* Schémas éditoriaux du modèle urbain · NOVASCEND */
.urban-model-intro{padding-top:clamp(2.75rem,5vw,4.75rem)}
.urban-model-intro .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:.8rem;border-top:1px solid var(--ink);padding-top:1.2rem}
.urban-model-intro .eyebrow{grid-column:1/span 3;color:var(--ink-3)}
.urban-model-intro p:last-child{grid-column:4/span 8;max-width:73ch;font-family:var(--serif);font-size:clamp(1.17rem,1.55vw,1.45rem);line-height:1.52}
.urban-model-intro+.section{padding-top:clamp(3rem,5vw,4.75rem)}

.urban-model-logic{padding-top:clamp(3rem,6vw,5.5rem)}
.urban-model-logic>.wrap{border-top:1px solid var(--ink);padding-top:.85rem}
.urban-model-logic-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.1rem var(--gutter);margin-bottom:clamp(1.8rem,3vw,2.6rem)}
.urban-model-logic-head .eyebrow{grid-column:1/-1;color:var(--ink-3)}
.urban-model-logic-head h2{grid-column:1/span 6;font-family:var(--serif);font-size:var(--fs-h2);font-weight:400;line-height:1.1;letter-spacing:-.018em}
.urban-model-logic-head>p:last-child{grid-column:8/span 5;align-self:end;color:var(--ink-2);font-size:var(--fs-small);line-height:1.68}
.urban-model-diagram{border-block:1px solid var(--rule);background:var(--card)}
.urban-model-diagram-endpoint{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:var(--gutter);align-items:center;padding:1.05rem 1.25rem}
.urban-model-diagram-endpoint .eyebrow{color:var(--ink-3)}
.urban-model-diagram-endpoint strong{font-family:var(--serif);font-size:clamp(1.05rem,1.35vw,1.3rem);font-weight:400;line-height:1.25}
.urban-model-diagram-endpoint--last{border-top:1px solid var(--rule)}
.urban-model-layers{position:relative;margin:0 1.25rem 0 calc(1.25rem + 11rem + var(--gutter));border-left:1px solid var(--ink);padding-left:1.25rem;list-style:none}
.urban-model-layers li{position:relative;display:grid;grid-template-columns:2.5rem minmax(10rem,.78fr) minmax(0,1.3fr);gap:var(--gutter);align-items:start;min-height:6.6rem;border-top:1px solid var(--rule);padding:1.15rem 0}
.urban-model-layers li::before{content:"";position:absolute;top:1.55rem;left:-1.56rem;width:.62rem;height:.62rem;background:var(--ink);border:2px solid var(--card);outline:1px solid var(--ink)}
.urban-model-index{color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-label);line-height:1.45}
.urban-model-layers h3{max-width:22ch;font-family:var(--serif);font-size:var(--fs-h3);font-weight:400;line-height:1.18}
.urban-model-layers p,.urban-model-cycle>p:last-child{color:var(--ink-2);font-size:var(--fs-small);line-height:1.65}
.urban-model-cycle{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,7fr);column-gap:var(--gutter);row-gap:.75rem;border-top:1px solid var(--ink);margin-top:clamp(2rem,3vw,3rem);padding-top:1.2rem}
.urban-model-cycle .eyebrow{color:var(--ink-3)}
.urban-model-cycle ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;list-style:none;counter-reset:urban-cycle}
.urban-model-cycle li{counter-increment:urban-cycle;min-width:0;border-top:1px solid var(--rule);padding-top:.7rem;font-family:var(--serif);font-size:clamp(1rem,1.35vw,1.2rem);line-height:1.2}
.urban-model-cycle li::before{content:"0" counter(urban-cycle);display:block;margin-bottom:.45rem;color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-label)}
.urban-model-cycle>p:last-child{grid-column:2}

.urban-model-response-flow{border-top:1px solid var(--ink);padding-top:1.1rem}
.urban-model-response-flow>.eyebrow{margin-bottom:1.8rem;color:var(--ink-3)}
.urban-model-response-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gutter);border-top:1px solid var(--ink);list-style:none}
.urban-model-response-steps li{position:relative;min-width:0;padding:1.1rem .45rem 0 0}
.urban-model-response-steps li::before{content:"";position:absolute;top:-.3rem;left:0;width:.6rem;height:.6rem;background:var(--ink)}
.urban-model-response-number{display:block;color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-label)}
.urban-model-response-actor{display:inline-block;margin:1.4rem 0 .7rem;border:1px solid var(--rule);padding:.25rem .55rem;color:var(--ink-2);font-size:.8125rem;line-height:1.35}
.urban-model-response-steps strong{display:block;margin-bottom:.45rem;font-family:var(--serif);font-size:var(--fs-h3);font-weight:400;line-height:1.2}
.urban-model-response-steps p{color:var(--ink-2);font-size:var(--fs-small);line-height:1.65}
.urban-model-response-loop{display:flex;align-items:baseline;gap:.85rem;max-width:43rem;margin-top:2.3rem;border-top:1px solid var(--rule);border-left:1px solid var(--rule);padding:.85rem 0 0 1rem;color:var(--ink-2);font-size:var(--fs-small);line-height:1.55}
.urban-model-response-loop span{color:var(--ink);font-family:var(--serif);font-size:1.7rem;line-height:1}

.urban-model-evidence{margin-top:clamp(2rem,4vw,3.5rem);border-top:1px solid var(--ink);padding-top:1.2rem}
.urban-model-evidence-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:1rem var(--gutter);align-items:end;margin-bottom:1.8rem}
.urban-model-evidence-head .eyebrow{grid-column:1/-1;color:var(--ink-3)}
.urban-model-evidence-head h3{max-width:25ch;font-family:var(--serif);font-size:var(--fs-h3);font-weight:400;line-height:1.18}
.urban-model-evidence-head>p:last-child{color:var(--ink-2);font-size:var(--fs-small);line-height:1.6}
.urban-model-evidence-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--rule);background:var(--card);list-style:none}
.urban-model-evidence-grid li{min-width:0;min-height:11rem;border-left:1px solid var(--rule);padding:1.15rem clamp(.75rem,1.2vw,1.3rem)}
.urban-model-evidence-grid li:first-child{border-left:0}
.urban-model-evidence-grid span{display:block;margin-bottom:1.55rem;color:var(--ink-3);font-family:var(--mono);font-size:var(--fs-label);line-height:1.4}
.urban-model-evidence-grid strong{display:block;margin-bottom:.65rem;font-family:var(--serif);font-size:clamp(1.05rem,1.3vw,1.22rem);font-weight:400;line-height:1.23}
.urban-model-evidence-grid p{color:var(--ink-2);font-size:var(--fs-small);line-height:1.48}
.urban-model-evidence-note{max-width:75ch;margin-top:1rem;color:var(--ink-2);font-size:var(--fs-small);line-height:1.65}
.urban-model-trust{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--gutter);margin-top:2rem;border-top:1px solid var(--ink);padding-top:1.2rem}
.urban-model-trust .eyebrow{color:var(--ink-3)}
.urban-model-trust>p:last-child{color:var(--ink-2);font-size:var(--fs-small);line-height:1.68}

@media(max-width:1080px){
  .urban-model-logic-head h2,.urban-model-logic-head>p:last-child{grid-column:1/-1}
  .urban-model-layers li{grid-template-columns:2.5rem minmax(8rem,.75fr) minmax(0,1.3fr)}
  .urban-model-response-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2rem}
  .urban-model-evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .urban-model-evidence-grid li:nth-child(4){border-left:0}
  .urban-model-evidence-grid li:nth-child(n+4){border-top:1px solid var(--rule)}
}
@media(max-width:760px){
  .urban-model-intro .eyebrow,.urban-model-intro p:last-child{grid-column:1/-1}
  .urban-model-intro p:last-child{font-size:1.15rem}
  .urban-model-diagram-endpoint{grid-template-columns:1fr;gap:.4rem;padding:1rem}
  .urban-model-layers{margin:0 1rem;border-left:0;padding-left:0}
  .urban-model-layers li{grid-template-columns:2rem minmax(0,1fr);gap:.35rem .8rem;min-height:0;padding:1.05rem 0}
  .urban-model-layers li::before{display:none}
  .urban-model-layers h3{grid-column:2}
  .urban-model-layers p{grid-column:2}
  .urban-model-cycle,.urban-model-evidence-head,.urban-model-trust{grid-template-columns:1fr}
  .urban-model-cycle ol,.urban-model-cycle>p:last-child{grid-column:1}
  .urban-model-cycle ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .urban-model-response-steps{grid-template-columns:1fr;gap:0;border-top:0}
  .urban-model-response-steps li{display:grid;grid-template-columns:2.2rem 1fr;gap:.25rem .65rem;border-top:1px solid var(--rule);padding:1rem 0}
  .urban-model-response-steps li::before{display:none}
  .urban-model-response-number{grid-row:1/4}
  .urban-model-response-actor{grid-column:2;margin:0 0 .4rem;justify-self:start}
  .urban-model-response-steps strong,.urban-model-response-steps p{grid-column:2}
  .urban-model-response-loop{margin-top:.75rem}
  .urban-model-evidence-grid{grid-template-columns:1fr}
  .urban-model-evidence-grid li,.urban-model-evidence-grid li:nth-child(n+4){min-height:0;border-left:0;border-top:1px solid var(--rule);padding:1rem}
  .urban-model-evidence-grid li:first-child{border-top:0}
  .urban-model-evidence-grid span{margin-bottom:.5rem}
}

/* Rythme : une bande de surface sur trois sections casse la suite de listes sur fond papier. */
:root{--band-gap:clamp(3rem,5vw,4.5rem)}
.urban-model-logic,.urban-model-response,#proximite{background:var(--tint);padding-bottom:var(--band-gap)}
#fonctions,#familles-services,#impacts{padding-bottom:var(--band-gap)}
.urban-model-logic+.section,.urban-model-response+.section,#proximite+.section{padding-top:var(--band-gap)}

/* Cycle : la ligne de retour montre que « Améliorer » ramène à « Planifier ». */
.urban-model-cycle ol{position:relative;padding-bottom:2.3rem}
.urban-model-cycle ol::after{content:"";position:absolute;left:.4rem;right:12%;bottom:.5rem;height:1.25rem;border:1px solid var(--ink-2);border-top:0;border-radius:0 0 4px 4px}
.urban-model-cycle ol::before{content:"";position:absolute;left:calc(.4rem - 5px);bottom:1.7rem;border:5px solid transparent;border-top:0;border-bottom:8px solid var(--ink-2)}

/* Coupure d’eau : même ligne de retour, du dernier pas vers le premier. */
.urban-model-response-loop{position:relative;max-width:none;margin-top:1.1rem;border:1px solid var(--ink-2);border-top:0;border-radius:0 0 4px 4px;padding:.9rem 1.2rem 1rem}
.urban-model-response-loop::before{content:"";position:absolute;left:-6px;top:-8px;border:5px solid transparent;border-top:0;border-bottom:8px solid var(--ink-2)}
.urban-model-response-loop span{color:var(--ink-3);font-size:1.25rem}
@media(max-width:760px){
  .urban-model-cycle ol{padding-bottom:0}
  .urban-model-cycle ol::before,.urban-model-cycle ol::after{display:none}
  .urban-model-response-loop{margin-top:.75rem;border-top:1px solid var(--ink-2);border-radius:4px}
  .urban-model-response-loop::before{display:none}
}
