html,body{max-width:100%;overflow-x:hidden}
.cities-main{min-height:100vh;width:100%;max-width:100%;overflow-x:clip}
.cities-container{max-width:var(--container)}
.cities-grid>*{min-width:0}
.cities-card{min-width:0}
.cities-card-body{min-width:0}
.cities-card strong,.cities-card span,.cities-card small{overflow-wrap:anywhere}
.cities-toolbar{max-width:100%;overscroll-behavior-inline:contain}
.cities-js-only{display:none}
.cities-js .cities-js-only{display:block}
.cities-js .cities-ssr-pagination{display:none}
:root{--primary:#6338f5;--text:#17151e;--muted:#6c6678;--line:#e9e6ef;--soft:#f4f0ff;--container:1180px}*{box-sizing:border-box}body{margin:0;color:var(--text);background:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#city-page{min-height:100vh;width:100%;max-width:100%;overflow-x:clip}
#city-page h1,#city-page h2,#city-page h3,.cities-main h1,.cities-main h2,.cities-main h3{font-family:inherit}
.cities-main{min-height:100vh}.cities-container{width:min(var(--container),calc(100% - 48px));margin:0 auto}.cities-hero{position:relative;padding:78px 0 34px;background:linear-gradient(135deg,#fff 0%,#fbfaff 57%,#f3efff 100%);overflow:hidden;border-bottom:1px solid var(--line)}.cities-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 48%;gap:55px;align-items:center}.cities-breadcrumb{font-size:13px;color:var(--primary);font-weight:750;margin-bottom:14px}.cities-hero h1{font-size:48px;line-height:1.02;letter-spacing:-2.2px;margin:0 0 15px}.cities-hero p{font-size:18px;color:var(--muted);line-height:1.5;max-width:510px}.cities-search{height:58px;display:flex;align-items:center;gap:12px;border:1px solid #ddd9e8;background:#fff;border-radius:13px;padding:0 17px;margin-top:30px;box-shadow:0 10px 28px rgba(43,32,76,.06)}.cities-search svg{width:22px;fill:none;stroke:#655d75;stroke-width:2}.cities-search input{border:0;outline:0;width:100%;font-size:15px}.cities-illustration{height:280px;position:relative;border-radius:30px;background:linear-gradient(180deg,#eee9ff,#fff);overflow:hidden}.cities-illustration:before{content:"";position:absolute;left:5%;right:5%;bottom:0;height:68%;background:linear-gradient(130deg,#ddd4ff,#bdaeff);clip-path:polygon(0 100%,0 45%,10% 45%,10% 22%,18% 22%,18% 57%,27% 57%,27% 8%,35% 8%,35% 64%,43% 64%,43% 36%,51% 36%,51% 0,58% 0,58% 52%,67% 52%,67% 29%,75% 29%,75% 61%,84% 61%,84% 18%,92% 18%,92% 48%,100% 48%,100% 100%)}.cities-illustration:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,#fff 0 3%,transparent 3.5%),radial-gradient(circle at 70% 17%,#fff 0 4%,transparent 4.5%);opacity:.8}.illustration-pin{position:absolute;display:block;width:42px;height:50px;color:#6c43ff;z-index:2;filter:drop-shadow(0 8px 10px rgba(84,50,208,.28))}
.illustration-pin svg{display:block;width:100%;height:100%;overflow:visible}
.illustration-pin.one{left:17%;top:48%}
.illustration-pin.two{left:55%;top:18%;width:52px;height:62px}
.illustration-pin.three{right:14%;top:36%}.cities-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:28px 0 10px;overflow:auto}.cities-sort{height:44px;padding:0 18px;border:1px solid #ded9e9;border-radius:11px;background:#fff;color:#34303d;font-weight:720;white-space:nowrap;cursor:pointer}.cities-sort.active{background:linear-gradient(135deg,#754dff,#5936ed);border-color:transparent;color:#fff}.cities-section{padding:32px 0}.cities-section-head{display:flex;align-items:end;gap:14px;margin-bottom:20px}.cities-section-head h2{font-size:25px;margin:0}.cities-section-head span{color:var(--muted);font-size:13px}.cities-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.cities-popular{grid-template-columns:repeat(6,minmax(0,1fr))}.cities-card{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.cities-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(34,25,62,.1)}.cities-card-image{height:155px;position:relative;background:#eee}.cities-card img{width:100%;height:100%;object-fit:cover}.cities-card-pin{position:absolute;right:9px;top:8px;width:31px;height:37px;display:block;color:var(--primary);filter:drop-shadow(0 3px 5px rgba(34,25,62,.22));pointer-events:none}
.cities-card-pin svg{display:block;width:100%;height:100%;overflow:visible}.cities-card-body{padding:13px}.cities-card strong{display:block;color:var(--primary);font-size:15px}.cities-card span,.cities-card small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.cities-load-wrap{text-align:center;margin-top:26px}.cities-load{height:45px;border:1px solid var(--primary);color:var(--primary);background:#fff;border-radius:11px;padding:0 24px;font-weight:750}.cities-empty{grid-column:1/-1;padding:40px;text-align:center;background:#faf9fc;border-radius:15px;color:var(--muted)}
.city-hero{position:relative;height:430px;background:#ddd;overflow:hidden}.city-hero img{width:100%;height:100%;object-fit:cover}.city-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,11,28,.82),rgba(15,11,28,.33) 58%,rgba(15,11,28,.08))}.city-hero-content{position:absolute;z-index:2;left:50%;bottom:48px;transform:translateX(-50%);width:min(var(--container),calc(100% - 48px));color:#fff}.city-hero-content h1{font-size:48px;line-height:1.04;letter-spacing:-2px;margin:8px 0 10px;font-weight:800;max-width:920px}.city-hero-content p{margin:0 0 22px;color:#ece8f4;font-size:16px;line-height:1.5}.city-breadcrumb{font-size:13px}.city-breadcrumb a{color:#fff}.city-hero-actions{display:flex;gap:12px}.city-primary,.city-secondary{height:46px;display:inline-flex;align-items:center;padding:0 19px;border-radius:11px;text-decoration:none;font-weight:750}.city-primary{background:var(--primary);color:#fff}.city-secondary{background:rgba(255,255,255,.92);color:#2b2634}.city-credit{position:absolute;right:20px;bottom:14px;color:#fff;font-size:10px;z-index:3}.city-stats{width:min(850px,calc(100% - 36px));margin:-28px auto 0;position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 15px 40px rgba(32,23,57,.12)}.city-stat{padding:22px;text-align:center;border-right:1px solid var(--line)}.city-stat:last-child{border:0}.city-stat strong{display:block;font-size:25px}.city-stat span{font-size:12px;color:var(--muted)}.city-content{width:min(var(--container),calc(100% - 48px));margin:0 auto;padding:48px 0}.city-section{margin-bottom:50px}.city-section-head{display:flex;align-items:end;margin-bottom:18px}.city-section-head h2{font-size:24px;line-height:1.2;letter-spacing:-.45px;margin:0;font-weight:750}.city-section-head p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.5}.city-section-head a{margin-left:auto;color:var(--primary);font-weight:750;text-decoration:none}.city-events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.city-event-card{border:1px solid var(--line);border-radius:15px;overflow:hidden;text-decoration:none;color:inherit;background:#fff}.city-event-card>img{width:100%;height:190px;object-fit:cover}.city-event-card>div{padding:15px}.city-event-category{font-size:11px;color:var(--primary);font-weight:800;text-transform:uppercase}.city-event-card h3{font-size:17px;margin:7px 0;line-height:1.3;font-weight:700;letter-spacing:-.15px}.city-event-card p{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-event-meta{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:700;margin-top:14px}.city-places-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.city-place-card{display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit}.city-place-card img{width:100%;height:150px;object-fit:cover}.city-place-card div{padding:13px}.city-place-card span{color:var(--primary);font-size:11px;font-weight:800}.city-place-card h3{margin:5px 0;font-size:16px;line-height:1.3;font-weight:700;letter-spacing:-.1px}.city-place-card p,.city-place-card small{font-size:11px;color:var(--muted)}.city-error{max-width:620px;margin:90px auto;text-align:center;padding:30px}.city-error a{color:var(--primary)}
@media(max-width:980px){.cities-grid{grid-template-columns:repeat(3,1fr)}.cities-popular{grid-template-columns:repeat(3,1fr)}.city-events-grid{grid-template-columns:repeat(2,1fr)}.city-places-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.cities-container{width:calc(100% - 28px)}.cities-hero{padding:40px 0 20px}.cities-hero-grid{display:block}.cities-hero h1{font-size:36px;letter-spacing:-1.5px}.cities-hero p{font-size:15px}.cities-illustration{height:180px;margin-top:24px}.cities-search{height:50px;margin-top:20px}.cities-toolbar{margin:0 -14px;padding-left:14px;padding-right:14px}.cities-grid,.cities-popular{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cities-card-image{height:120px}.cities-card-body{padding:10px}.city-hero{height:390px}.city-hero-content{width:calc(100% - 28px);bottom:38px}.city-hero-content h1{font-size:36px;letter-spacing:-1.35px}.city-hero-actions{flex-wrap:wrap}.city-stats{grid-template-columns:repeat(3,1fr)}.city-stat{padding:17px 7px}.city-stat strong{font-size:20px}.city-content{width:calc(100% - 28px);padding:38px 0}.city-events-grid{display:flex;overflow-x:auto;margin-right:-14px;padding-right:14px}.city-event-card{flex:0 0 83%}.city-places-grid{grid-template-columns:repeat(2,1fr);gap:12px}.city-place-card img{height:120px}}

#city-population:not(:empty):before{content:" · ";}

.city-map-pin-svg{
  display:block;
  width:100%;
  height:100%;
  shape-rendering:geometricPrecision;
}

/* V3.42.5 — cohérence visuelle page Ville */
.city-hero-content,.city-section-head>div,.city-event-card,.city-place-card{min-width:0}
.city-hero-content h1,.city-section-head h2,.city-event-card h3,.city-place-card h3{overflow-wrap:anywhere}
.city-hero-actions a{white-space:nowrap}
.city-stat strong,.city-stat span{overflow-wrap:anywhere}
@media(max-width:700px){
  .city-hero{height:350px}
  .city-hero-content{bottom:30px}
  .city-hero-content p{font-size:14px;margin-bottom:16px}
  .city-primary,.city-secondary{height:42px;padding:0 15px;font-size:13px}
  .city-stats{margin-top:-22px}
  .city-section-head{align-items:flex-start}
  .city-section-head h2{font-size:21px}
  .city-section-head p{font-size:13px}
}


/* ========================================================================== */
/* V3.42.6 — /villes/ : restauration filtres + correction overflow            */
/* Conserve les styles V3.42.5 de /ville/... et verrouille uniquement la liste */
/* ========================================================================== */
html,body{width:100%;max-width:100%;overflow-x:hidden}
.cities-main{width:100%;max-width:100%;overflow-x:hidden}
.cities-main .cities-container{width:calc(100% - 48px);max-width:var(--container);margin-left:auto;margin-right:auto;min-width:0}
.cities-main .cities-hero{width:100%;max-width:100%;overflow:hidden}
.cities-main .cities-hero-grid{width:100%;max-width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,48%);gap:clamp(28px,4vw,55px)}
.cities-main .cities-hero-grid>*{min-width:0;max-width:100%}
.cities-main .cities-eyebrow{font-size:13px;line-height:1.2;color:var(--primary);font-weight:800;letter-spacing:.01em;margin:0 0 12px}
.cities-main .cities-hero h1{max-width:100%;overflow-wrap:anywhere}
.cities-main .cities-hero p{margin-top:0}
.cities-main .cities-search{width:100%;max-width:100%;min-width:0;overflow:hidden}
.cities-main .cities-search svg{flex:0 0 22px;height:22px}
.cities-main .cities-search input{display:block;min-width:0;max-width:100%}
.cities-main .cities-illustration{display:block;width:100%;max-width:100%;height:280px;min-width:0;min-height:0;overflow:hidden;contain:layout paint}
.cities-main .cities-illustration svg{max-width:100%}
.cities-main .cities-toolbar{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.cities-main .cities-sort{flex:0 0 auto}
.cities-main .cities-section,.cities-main .cities-section-head,.cities-main .cities-grid{min-width:0;max-width:100%}
.cities-main .cities-grid{width:100%}
.cities-main .cities-grid>*{min-width:0;max-width:100%}
.cities-main .cities-card,.cities-main .cities-card-body{min-width:0;max-width:100%}
.cities-main .cities-card img{display:block;max-width:100%}
.cities-main .cities-card strong,.cities-main .cities-card span,.cities-main .cities-card small{overflow-wrap:anywhere}
@media(max-width:700px){
  .cities-main .cities-container{width:calc(100% - 28px)}
  .cities-main .cities-hero-grid{display:block}
  .cities-main .cities-illustration{height:180px;max-height:180px;margin-top:24px}
  .cities-main .cities-toolbar{margin-left:-14px;margin-right:-14px;width:calc(100% + 28px);max-width:none;padding-left:14px;padding-right:14px}
}

/* V3.42.7 — /villes/ : respiration haute + toolbar clarifiée */
.cities-main .cities-hero{padding-top:78px}
.cities-main .cities-toolbar{padding-top:32px}
.cities-main .cities-sort{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.cities-main .cities-sort .cities-toolbar-icon{display:block;width:17px;height:17px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cities-main .cities-sort .cities-toolbar-brand-icon{display:block;width:17px;height:19px;flex:0 0 auto;object-fit:contain}
@media(max-width:980px){.cities-main .cities-hero{padding-top:64px}}
@media(max-width:700px){
  .cities-main .cities-hero{padding-top:40px}
  .cities-main .cities-toolbar{flex-wrap:nowrap;padding-top:24px}
}


/* ========================================================================== */
/* V3.42.8 — /villes/ : le hero doit partager EXACTEMENT le container du body */
/* Le même élément porte .cities-container + .cities-hero-grid. En V3.42.6/7, */
/* la règle .cities-hero-grid width:100% écrasait la largeur du container.      */
/* ========================================================================== */
.cities-main .cities-container.cities-hero-grid{
  width:calc(100% - 48px);
  max-width:var(--container);
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:700px){
  .cities-main .cities-container.cities-hero-grid{
    width:calc(100% - 28px);
    max-width:var(--container);
    margin-left:auto;
    margin-right:auto;
  }
}
