/* Page ville : composants propres (cartes terrain, podium, arrondissements, secteurs, comparatif) */
.hero .portrait{padding-bottom:130px}
.ledger.zip h2{margin-bottom:12px}
.zips{display:flex;flex-wrap:wrap;gap:6px}
.zips span{font:600 13px/1 var(--f-body);letter-spacing:.06em;padding:7px 8px;border:1px solid var(--rule);color:var(--ink-2);font-variant-numeric:tabular-nums}
.zips span:nth-child(odd){border-color:var(--peri);color:var(--cobalt)}

.split-copy{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,72px);align-items:start}
.split-copy .lede{max-width:none}
.pull{margin:0;padding:6px 0 6px 28px;border-left:2px solid var(--pink);font:600 clamp(20px,2vw,24px)/1.4 var(--f-title);color:var(--cobalt)}
@media (max-width:860px){.split-copy{grid-template-columns:1fr}}

.trio{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--cobalt)}
.trio article{padding:32px 30px 0 0;display:grid;gap:14px;align-content:start}
.trio article + article{padding-left:30px;border-left:1px solid var(--rule)}
.trio .big{font:600 clamp(48px,5vw,64px)/1 var(--f-display);color:var(--pink);font-variant-numeric:lining-nums}
.trio p{color:var(--ink-2);font-size:15px}
@media (max-width:900px){.trio{grid-template-columns:1fr}.trio article,.trio article + article{padding:28px 0;border-left:0;border-bottom:1px solid var(--rule)}}

/* Podium */
.podium{display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:24px;align-items:end;margin-top:8px}
.pod{position:relative;background:var(--paper);color:var(--ink);padding:44px 28px 30px;display:grid;gap:14px;align-content:start;border-top:3px solid var(--peri)}
.pod-1{order:2;border-top-color:var(--pink);padding-top:56px;box-shadow:0 40px 80px -40px rgba(0,0,0,.45)}
.pod-2{order:1}.pod-3{order:3}
.pod-medal{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);font:600 13px/1 var(--f-body);letter-spacing:.2em;padding:10px 16px;background:var(--peri);color:var(--ink)}
.pod-1 .pod-medal{background:var(--pink);color:var(--paper);padding:12px 20px}
.pod-pic{width:112px;height:112px;border-radius:50%;overflow:hidden;margin:0 auto 6px;background:var(--leopard) 0 0/120px;border:4px solid var(--paper);outline:1px solid var(--rule)}
.pod-1 .pod-pic{width:140px;height:140px;outline-color:var(--flamingo)}
.pod-pic img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}
.pod-pic-empty{background:var(--peri-soft);display:grid;place-items:center}
.pod-pic-empty span{font:600 12px/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.pod h3{text-align:center;font-size:22px}
.pod-role{text-align:center;font-size:14px;color:var(--ink-2);margin-top:-6px}
.pod dl{margin:8px 0 0;display:grid;gap:4px}
.pod dt{font:600 12px/1.4 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--cobalt);margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}
.pod dt:first-child{margin-top:0}
.pod dd{margin:0;font-size:15px;color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:4px 0 0;padding:0}
.chips li{font:600 13px/1 var(--f-body);padding:7px 11px;background:var(--peri-soft);color:var(--cobalt)}
.pod-1 .chips li{background:var(--blush);color:var(--pink)}
.pod-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pod-list li::before{content:"";display:inline-block;width:5px;height:5px;background:var(--pink);vertical-align:middle;margin-right:10px}
.pod .btn{margin-top:10px}
.pod-note{margin-top:32px;font-size:14px;color:var(--on-cobalt-2);text-align:center}
@media (max-width:960px){.podium{grid-template-columns:1fr;gap:44px;max-width:520px;margin-inline:auto}.pod-1,.pod-2,.pod-3{order:0}}

/* Arrondissements */
.arr{background:var(--paper);border-top:2px solid var(--cobalt);padding:clamp(24px,4vw,44px)}
.arr-intro{font-weight:600;margin-bottom:20px}
.arr-tabs{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}
.arr-tabs button{font:600 15px/1 var(--f-body);padding:14px 4px;border:1px solid var(--rule);background:var(--ivory);color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.arr-tabs button:hover{border-color:var(--pink);color:var(--pink)}
.arr-tabs button[aria-selected="true"]{background:var(--cobalt);border-color:var(--cobalt);color:var(--paper)}
.arr-panel{display:grid;grid-template-columns:220px 1fr;gap:32px;margin-top:32px;padding-top:28px;border-top:1px solid var(--rule)}
.arr-panel[hidden]{display:none}
.arr-num{font:600 clamp(56px,6vw,84px)/1 var(--f-display);color:var(--pink)}
.arr-num small{display:block;font:600 13px/1.4 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-top:10px}
.arr-panel dl{margin:0;display:grid;grid-template-columns:200px 1fr;gap:14px 24px;align-items:baseline}
.arr-panel dt{font:600 12px/1.4 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--cobalt)}
.arr-panel dd{margin:0;color:var(--ink-2)}
.arr-panel dd.q{font:600 22px/1.3 var(--f-title);color:var(--ink)}
.arr-foot{margin-top:28px;color:var(--ink-2);max-width:70ch}
@media (max-width:760px){.arr-tabs{grid-template-columns:repeat(4,1fr)}.arr-panel,.arr-panel dl{grid-template-columns:1fr;gap:8px}.arr-panel{gap:16px}.arr-panel dt{margin-top:10px}}

/* Secteurs */
.sectors{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--cobalt)}
.sectors article{padding:30px 28px 30px 0;display:grid;gap:12px;align-content:start;border-bottom:1px solid var(--rule)}
.sectors article:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--rule)}
.sectors .n{font:600 15px/1 var(--f-display);color:var(--pink)}
.sectors p{color:var(--ink-2);font-size:15px}
@media (max-width:900px){.sectors{grid-template-columns:1fr 1fr}.sectors article:not(:nth-child(3n+1)){padding-left:0;border-left:0}.sectors article:nth-child(even){padding-left:24px;border-left:1px solid var(--rule)}}
@media (max-width:600px){.sectors{grid-template-columns:1fr}.sectors article,.sectors article:nth-child(even){padding:24px 0;border-left:0}}

.steps.steps5{grid-template-columns:repeat(5,1fr);gap:28px}
@media (max-width:1040px){.steps.steps5{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.steps.steps5{grid-template-columns:1fr}}

/* Comparatif */
.vs{border-top:1px solid var(--cobalt)}
.vs-row{display:grid;grid-template-columns:200px 1fr 1fr;border-bottom:1px solid var(--rule)}
.vs-row > span{padding:20px 24px;font-size:16px;color:var(--ink-2)}
.vs-row > span:first-child{padding-left:0;font:600 12px/1.6 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--cobalt);padding-top:24px}
.vs-row .vs-me{background:var(--blush);color:var(--ink);font-weight:600}
.vs-headrow > span{font:600 22px/1.2 var(--f-title)!important;color:var(--ink)!important;letter-spacing:0!important;text-transform:none!important}
.vs-headrow .vs-me{border-top:3px solid var(--pink);color:var(--pink)!important}
@media (max-width:700px){
  .vs-headrow{display:none}
  .vs-row{grid-template-columns:1fr;padding:16px 0}
  .vs-row > span{padding:6px 0}
  .vs-row > span:first-child{padding-top:0}
  .vs-row > span[data-l]::before{content:attr(data-l) " : ";font-weight:600;color:var(--ink)}
  .vs-row .vs-me{padding:10px 12px}
}

/* Photo de la ville */
.split-copy{grid-template-columns:1.1fr .9fr;align-items:center}
.split-text{display:grid;gap:36px}
.city-photo{margin:0;display:grid;gap:12px}
.city-frame{aspect-ratio:4/5;border:10px solid var(--paper);outline:1px solid var(--rule);background:var(--weave) 0 0/8px,var(--peri);position:relative;overflow:hidden}
.city-frame img{width:100%;height:100%;object-fit:cover;display:block}
.city-ph{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:10px;color:var(--ink)}
.city-ph span{font:600 26px/1.2 var(--f-title)}
.city-ph small{font-size:14px;color:var(--ink-2)}
.city-photo figcaption{font:600 12px/1.4 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.pod-pic-empty span{font:600 34px/1 var(--f-title);letter-spacing:0;color:var(--cobalt);text-transform:none}
.pod-1 .pod-pic{outline-color:var(--flamingo)}

/* Quiz */
.quiz{margin-top:56px;background:var(--paper);border-top:2px solid var(--pink);padding:clamp(24px,4vw,48px)}
.qz-title{font:600 clamp(26px,3vw,34px)/1.15 var(--f-title)}
.qz-sub{color:var(--ink-2);margin-top:8px}
.qz-form{margin-top:28px}
.qz-step{border:0;margin:0;padding:0}
.qz-step legend{font:600 20px/1.3 var(--f-title);margin-bottom:16px;padding:0}
.qz-step legend span{display:block;font:600 12px/1 var(--f-body);letter-spacing:.2em;color:var(--pink);margin-bottom:10px}
.qz-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.qz-opt{position:relative;cursor:pointer}
.qz-opt input{position:absolute;opacity:0}
.qz-opt span{display:block;padding:16px 18px;border:1px solid var(--rule);background:var(--ivory);font-weight:600;transition:border-color .2s,background .2s}
.qz-opt:hover span{border-color:var(--pink)}
.qz-opt input:focus-visible + span{outline:2px solid var(--pink);outline-offset:2px}
.qz-opt input:checked + span{background:var(--cobalt);border-color:var(--cobalt);color:var(--paper)}
.qz-result{margin-top:28px}
.qz-res-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px)}
.qz-k{font:600 12px/1.4 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--cobalt);margin-bottom:14px}
.qz-vol{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:12px}
.qz-vol li{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:baseline;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.qz-vol b{font:600 clamp(32px,3.6vw,44px)/1 var(--f-display);color:var(--pink);font-variant-numeric:lining-nums}
.qz-vol span{color:var(--ink-2);font-size:15px}
.qz-data p:last-child{color:var(--ink-2)}
.qz-src{margin-top:14px;font-size:13px;color:var(--ink-2)}
.qz-plan{background:var(--peri-soft);padding:24px;display:grid;gap:14px;align-content:start}
.qz-plan p{color:var(--ink)}
.qz-again{background:none;border:0;border-bottom:1px solid var(--pink);cursor:pointer;justify-self:start;color:var(--ink)}
@media (max-width:760px){.qz-res-grid{grid-template-columns:1fr}}
.pod-pic-logo{background:var(--paper);display:grid;place-items:center}
.pod-pic-logo img{width:100%;height:100%;object-fit:cover}

.city-credit{margin:0;font-size:11px;line-height:1.4;color:var(--ink-2)}
.city-credit a{color:inherit}

/* Ajouts du générateur commun (onglets de quartiers nommés, nombre d'onglets variable) */
.arr-tabs.arr-n4{grid-template-columns:repeat(4,1fr)}
.arr-tabs.arr-n9{grid-template-columns:repeat(9,1fr)}
.arr-tabs.arr-n10{grid-template-columns:repeat(10,1fr)}
.arr-num.is-name{font-size:clamp(30px,3.2vw,42px);line-height:1.1}
@media (max-width:760px){.arr-tabs.arr-n4{grid-template-columns:1fr 1fr}.arr-tabs.arr-n9,.arr-tabs.arr-n10{grid-template-columns:repeat(4,1fr)}}

.map-frame iframe{width:100%;height:100%;border:0;display:block}
.villes-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 14px}
.villes-list a{display:inline-block;padding:9px 16px;border:1px solid var(--line,#d9d6e8);color:var(--ink,#0d1b4c);text-decoration:none;font-size:15px}
.villes-list a:hover{border-color:currentColor}
.villes-autres .lede a{color:inherit}
