/* Piscinistes AURA : feuille écrite pour ce projet d'après l'observation de la démo publique ListyGo (valeurs relevées : polices, couleurs, espacements).
   Aucun fichier du thème n'est repris. Polices Outfit et Kaushan Script (licence OFL) servies en local. */
@import url("lg/fonts.css");
:root{
  --red:#ff3c48;--red-d:#e52a36;--red-soft:#fff4f4;--red-line:#fbd5da;
  --ink:#111111;--txt:#646464;--muted:#a19f9f;--line:#e8e8e8;--line2:#ededed;
  --bg:#f4f5f7;--bg2:#f6f6f6;--dark:#181818;--top:#0b0b0b;--band:#4f4f4f;
  --green1:#66d631;--green2:#2c998a;--star:#ffb300;--pin:#1a9e7c;
  --wrap:1176px;--r:6px;--r2:10px;--sh:0 10px 30px rgba(0,0,0,.06);--sh2:0 15px 40px rgba(0,0,0,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:Outfit,system-ui,sans-serif;font-size:16px;line-height:30px;color:var(--txt);background:#fff;font-weight:400}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .2s,background .2s,border-color .2s}
a:hover{color:var(--red)}
h1,h2,h3,h4{color:var(--ink);font-weight:600;margin:0 0 12px;line-height:1.3}
p{margin:0 0 16px}
ul{margin:0;padding:0;list-style:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 15px}
.wrap.wide{max-width:1310px}
.small{font-size:14px;line-height:24px}
.muted{color:var(--muted)}
.i{width:16px;height:16px;flex:none;vertical-align:-3px}
.proto{background:#fff3cd;color:#6b5200;font-size:13px;line-height:20px;text-align:center;padding:4px 10px}

/* ---------- Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;border:0;border-radius:40px;
  font:600 15px/18px Outfit,sans-serif;padding:11px 24px;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--red-d);color:#fff}
.btn .pl{width:22px;height:22px;border-radius:50%;background:#fff;color:var(--red);display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;margin-left:-10px}
.btn.lg{font-size:18px;font-weight:500;padding:15px 40px}
.btn.dark{background:var(--ink)}
.btn.dark:hover{background:#333}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--red);color:var(--red)}
.btn.sq{border-radius:4px}
.btn.block{display:flex;width:100%}
.btn .arr{width:24px;height:24px;border:1.5px solid #fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px}

/* ---------- Barre haute + en-tête */
.topbar{background:var(--top);color:#d8d8d8;font-size:14px;line-height:38px}
.topbar .wrap{display:flex;justify-content:space-between;gap:20px}
.topbar span{display:inline-flex;align-items:center;gap:8px}
.topbar .i{width:14px;height:14px;color:#fff}
.topbar .sep{margin:0 12px;opacity:.5}
.top{background:#fff;position:relative;z-index:50;border-bottom:1px solid #f0f0f0}
.top .wrap{display:flex;align-items:center;height:69px;gap:20px}
.logo{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font:700 24px/1 Outfit,sans-serif;letter-spacing:-.3px;white-space:nowrap}
.logo:hover{color:var(--ink)}
.logo svg{flex:none}
.logo .scr{font:400 27px/1 "Kaushan Script",cursive;color:var(--red);margin-left:2px;position:relative;top:2px}
.nav{display:flex;margin:0 auto}
.nav a{font-weight:500;font-size:16px;line-height:28px;color:var(--ink);padding:20px 13px}
.nav a:hover{color:var(--red)}
.nav a .chev{font-size:10px;margin-left:4px;opacity:.7}
.hd-r{display:flex;align-items:center;gap:14px}
.ucirc{width:40px;height:40px;border-radius:50%;border:1px solid #d8d8d8;display:inline-flex;align-items:center;justify-content:center;color:var(--ink)}
.burger{display:none;width:30px;height:20px;background:none;border:0;padding:0;cursor:pointer;flex-direction:column;justify-content:space-between}
.burger span{display:block;height:2px;background:var(--ink);border-radius:2px}
.burger span:nth-child(2){width:70%;margin-left:auto}
body.home .topbar{display:none}
body.home .top{position:absolute;left:0;right:0;top:0;background:transparent;border:0}
body.home .proto+.top{top:28px}
body.home .top .logo,body.home .top .nav a,body.home .ucirc{color:#fff}
body.home .ucirc{border-color:rgba(255,255,255,.7)}
body.home .burger span{background:#fff}

/* ---------- Bandeau titre des pages intérieures */
.banner{position:relative;background:#222 center/cover no-repeat;padding:70px 0;text-align:center;color:#fff}
.banner:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.6)}
.banner .wrap{position:relative}
.banner h1{color:#fff;font-size:42px;line-height:56px;font-weight:600;margin:0 0 6px}
.bc{font-size:16px;font-weight:500;color:#fff}
.bc a{color:#fff}
.bc a:hover{color:var(--red)}
.bc span{margin:0 8px;opacity:.8}
.bc b{color:var(--red);font-weight:500}
.banner .lead{color:#e6e6e6;font-size:16px;margin:6px 0 0}

/* ---------- Titres de section */
.sec{padding:100px 0}
.sec.tight{padding:70px 0}
.sec.grey{background:var(--bg2)}
.shead{text-align:center;max-width:720px;margin:0 auto 50px}
.shead .st{display:block;color:var(--red);font-size:16px;font-weight:500;text-transform:uppercase;line-height:30px;margin-bottom:6px;letter-spacing:.3px}
.shead h2{font-size:40px;line-height:52px;margin:0 0 12px}
.shead p{margin:0}
.st{color:var(--red);font-size:16px;font-weight:500;text-transform:uppercase}

/* ---------- Héro accueil */
.hero{position:relative;background:#123 center/cover no-repeat;padding:250px 0 200px;text-align:center;color:#fff}
.hero:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5)}
.hero .wrap{position:relative}
.hero .sub{font-size:16px;font-weight:500;line-height:30px;margin:0 0 4px;color:#fff}
.hero h1{color:#fff;font-size:48px;line-height:56px;font-weight:600;margin:0 0 70px}
.search{display:flex;align-items:center;background:#fff;border-radius:100px;padding:6px 0 6px 25px;max-width:1116px;margin:0 auto;box-shadow:0 10px 40px rgba(0,0,0,.15)}
.search .f{flex:1;display:flex;align-items:center;gap:10px;padding:0 20px;border-right:1px solid #e5e5e5;color:#9a9a9a;min-width:0}
.search .f:last-of-type{border-right:0}
.search input,.search select{border:0;outline:0;background:transparent;font:400 16px/24px Outfit,sans-serif;color:#212529;height:45px;width:100%;min-width:0;appearance:none;-webkit-appearance:none}
.search input::placeholder{color:#8a8a8a}
.search .btn{height:57px;margin:-6px 0;padding:15px 50px;font-size:18px;font-weight:500;border-radius:100px}
#q-err[hidden]{display:none}
#q-err{color:#fff;background:rgba(255,60,72,.85);display:inline-block;padding:2px 14px;border-radius:20px;margin-top:14px}
.quick{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:62px}
.quick .ql{font-size:16px;font-weight:500;margin-right:6px}
.quick a{display:inline-flex;align-items:center;gap:6px;border:1px solid #fff;border-radius:40px;padding:3px 15px;font-size:14px;line-height:30px;color:#fff}
.quick a:hover{background:#fff;color:var(--red)}
.quick a .i{width:14px;height:14px}
.catrow{position:relative;z-index:3;margin-top:-98px}
.catrow .wrap{display:grid;grid-template-columns:repeat(6,1fr);gap:30px}
.catbox{background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:15px 20px 22px;text-align:center;box-shadow:var(--sh);transition:transform .25s,box-shadow .25s}
.catbox:hover{transform:translateY(-5px);box-shadow:var(--sh2)}
.catbox h3{font-size:18px;line-height:28px;margin:0}
.catbox .n{display:block;font-size:15px;color:var(--txt);margin-bottom:12px}
.catbox .ic{width:80px;height:80px;border-radius:50%;background:var(--red-soft);color:var(--red);display:flex;align-items:center;justify-content:center;margin:0 auto}
.catbox .ic svg{width:34px;height:34px}

/* ---------- Cartes de fiche */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.grid.g4{grid-template-columns:repeat(4,1fr)}
.grid.g2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;border:1px solid #f0f0f0;transition:box-shadow .25s,transform .25s}
.card:hover{box-shadow:var(--sh2);transform:translateY(-3px)}
.card[hidden]{display:none}
.card .ph{position:relative;display:block;height:230px;background:#dfe9ee;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .ph img{transform:scale(1.06)}
.card .pills{position:absolute;left:20px;top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.pill{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--ink);border-radius:40px;padding:0 12px;font-size:13px;line-height:28px;font-weight:400;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.pill .i{width:13px;height:13px;color:var(--red)}
.ribbon{position:absolute;right:0;top:20px;color:#fff;font-size:13px;font-weight:600;line-height:22px;padding:4px 10px 4px 18px;background:linear-gradient(90deg,var(--green1) 7%,var(--green2) 110%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,9px 50%)}
.ribbon.closed{background:linear-gradient(90deg,#ff5a63,#c91b25)}
.card .rate{position:absolute;left:20px;bottom:14px;color:#fff;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.card .ph:after{content:"";position:absolute;inset:auto 0 0 0;height:70px;background:linear-gradient(transparent,rgba(0,0,0,.55));pointer-events:none}
.card .ph .rate,.card .ph .illu{z-index:2}
.illu{position:absolute;right:10px;bottom:12px;font-size:11px;line-height:18px;color:#fff;background:rgba(0,0,0,.45);padding:0 8px;border-radius:20px}
.stars{color:var(--star);letter-spacing:1.5px;font-size:15px;line-height:1}
.stars .o{color:#d6d6d6}
.card .bd{padding:20px 30px 0;flex:1;display:flex;flex-direction:column}
.card h3{font-size:22px;line-height:32px;font-weight:600;margin:0 0 8px}
.card h3 a{color:var(--ink)}
.card h3 a:hover{color:var(--red)}
.card .meta{display:flex;flex-direction:column;gap:4px;margin:0 0 20px;font-size:16px;line-height:26px}
.card .meta li{display:flex;gap:10px;align-items:flex-start}
.card .meta .i{color:var(--red);margin-top:5px}
.card .ft{margin-top:auto;border-top:1px solid var(--line2);padding:16px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.card .ft b{color:var(--ink);font-size:18px;font-weight:500;white-space:nowrap}
.card .ft b small{font-size:14px;color:var(--muted);font-weight:400}
.acts{display:flex;gap:8px}
.acts a{width:38px;height:38px;border-radius:4px;background:var(--red-soft);color:var(--red);display:inline-flex;align-items:center;justify-content:center}
.acts a:hover{background:var(--red);color:#fff}
.noav{color:var(--muted);font-size:15px}
/* vue liste */
.grid.as-list{grid-template-columns:1fr}
.grid.as-list .card{flex-direction:row}
.grid.as-list .card .ph{width:300px;height:auto;min-height:230px;flex:none}

/* ---------- Départements (façon « villes ») */
.deps{display:grid;grid-template-columns:323px 1fr 1fr;gap:20px 30px;align-items:stretch}
.depbig{grid-row:span 6;border:1px solid var(--line);border-radius:var(--r2);padding:10px;display:flex;flex-direction:column;background:#fff}
.depbig .im{flex:1;min-height:300px;border-radius:8px;background:#ccc center/cover}
.depbig .tx{display:flex;align-items:center;justify-content:space-between;padding:18px 10px 8px}
.depbig b{display:block;color:var(--ink);font-size:22px;font-weight:600;line-height:30px}
.depsm{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}
.depsm .im{width:75px;height:75px;border-radius:8px;flex:none;background:#ccc center/cover;display:flex;align-items:flex-end;justify-content:flex-start}
.depsm .im i{font-style:normal;background:var(--red);color:#fff;font-size:12px;line-height:20px;padding:0 6px;border-radius:0 6px 0 8px;font-weight:600}
.depsm div{flex:1;min-width:0}
.depsm.all{background:var(--red-soft);border-color:var(--red-line)}
.depsm.all .im{background:var(--red);color:#fff;align-items:center;justify-content:center}
.depsm.all .im svg{width:30px;height:30px}
.depsm b{display:block;color:var(--ink);font-size:18px;font-weight:500;line-height:26px}
.depsm span,.depbig span{font-size:15px;color:var(--txt)}
.go{width:40px;height:40px;border-radius:50%;background:#f3f3f3;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;flex:none;transition:all .2s}
.depsm:hover .go,.depbig:hover .go{background:var(--red);color:#fff}
.depsm:hover,.depbig:hover{border-color:var(--red-line)}

/* ---------- Pourquoi (fond gris) */
.why{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.why .pic{position:relative}
.why .pic img{border-radius:var(--r2);width:100%;height:440px;object-fit:cover}
.why .pic .ghost{position:absolute;right:-20px;top:40px;width:55%;height:360px;object-fit:cover;opacity:.18;border-radius:var(--r2);z-index:0;filter:grayscale(.3)}
.why .pic img.main{position:relative;z-index:1;width:80%}
.why .pic .script{position:absolute;z-index:2;left:30px;bottom:-30px;font:400 92px/1 "Kaushan Script",cursive;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.25);transform:rotate(-8deg)}
.why h2{font-size:36px;line-height:46px;margin:6px 0 30px}
.why ul li{display:flex;gap:20px;margin-bottom:28px}
.why .ck{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--red);color:var(--red);display:flex;align-items:center;justify-content:center;flex:none}
.why h3{font-size:20px;line-height:28px;margin:0 0 4px}
.why p{margin:0}

/* ---------- Bandeau sombre + trait de pinceau */
.band{background:var(--band);color:#e9e9e9;padding:110px 0;overflow:hidden;position:relative}
.band .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center}
.band h2{color:#fff;font-size:42px;line-height:52px;font-weight:700;margin:0}
.brush{display:block;width:160px;height:24px;margin:14px 0 18px;color:var(--red)}
.band p{font-size:18px;margin:0 0 34px}
.polas{position:relative;height:380px}
.pola{position:absolute;background:#fff;padding:12px 12px 40px;box-shadow:0 25px 50px rgba(0,0,0,.35);width:58%}
.pola img{width:100%;height:240px;object-fit:cover}
.pola.a{left:12%;top:40px;transform:rotate(-6deg);z-index:2}
.pola.b{right:0;top:0;transform:rotate(7deg)}
.seal{position:absolute;left:-70px;top:210px;width:130px;height:130px;color:#fff;z-index:3;animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.squig{position:absolute;right:30px;bottom:-10px;width:220px;color:var(--red);z-index:1}

/* ---------- Étapes */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
.step .bx{position:relative;width:110px;height:110px;margin:0 auto 30px;background:#fff;border-radius:14px;box-shadow:0 15px 40px rgba(0,0,0,.09);display:flex;align-items:center;justify-content:center;color:var(--red)}
.step .bx svg{width:46px;height:46px}
.step .num{position:absolute;right:-16px;top:-14px;width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center}
.step h3{font-size:22px;line-height:32px;margin:0 0 8px}
.step p{max-width:300px;margin:0 auto}

/* ---------- Encart CTA arrondi (photo sombre) */
.cta{position:relative;border-radius:16px;overflow:hidden;padding:60px;background:#111 center/cover;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:var(--sh2)}
.cta:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.85) 30%,rgba(0,0,0,.35))}
.cta>*{position:relative}
.cta h2{color:#fff;font-size:34px;line-height:44px;margin:0 0 6px}
.cta p{color:#cfcfcf;margin:0;max-width:560px}

/* ---------- Grandes villes */
.villes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 30px}
.villes li{border-bottom:1px solid var(--line2);padding:8px 0;display:flex;justify-content:space-between}
.villes a{color:var(--ink);font-weight:500}
.villes a:hover{color:var(--red)}
.villes small{color:var(--muted)}

/* ---------- Bande rouge « pro » */
.redband{background:var(--red) ;color:#fff;padding:90px 0;position:relative;overflow:hidden}
.redband .waves{position:absolute;right:-60px;top:-40px;width:620px;opacity:.18;color:#fff}
.redband .waves.b{left:-180px;right:auto;top:auto;bottom:-120px;width:500px}
.redband .wrap{position:relative}
.redband h2{color:#fff;font-size:36px;line-height:46px;margin:0 0 10px;font-weight:700}
.redband p{max-width:620px;margin:0 0 30px}
.redband .btn{background:var(--ink)}
.redband .btn:hover{background:#000}

/* ---------- Pied de page */
.foot{background:var(--dark);color:var(--muted);padding:90px 0 0}
.foot .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:30px}
.foot h4{color:#fff;font-size:22px;font-weight:500;line-height:29px;margin:0 0 20px}
.foot li{margin-bottom:8px}
.foot a{color:var(--muted)}
.foot a:hover{color:var(--red)}
.foot .about p{margin:16px 0 0;font-size:15px;line-height:28px}
.foot .about .logo{color:#fff}
.foot .bottom{border-top:1px solid #2c2c2c;margin-top:60px;padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.foot .bottom .links{display:flex;gap:6px 18px;flex-wrap:wrap}
.foot .legal{font-size:14px;line-height:22px}
body:not(.home) .foot{background:var(--bg)}
body:not(.home) .foot h4,body:not(.home) .foot .about .logo{color:var(--ink)}
body:not(.home) .foot a,body:not(.home) .foot{color:var(--txt)}
body:not(.home) .foot .bottom{border-color:#dedede}
.totop{position:fixed;right:22px;bottom:30px;width:46px;height:46px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;z-index:60;box-shadow:0 6px 18px rgba(255,60,72,.35)}
.totop:hover{color:#fff;background:var(--red-d)}
.totop{opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s}
.totop.on{opacity:1;pointer-events:auto;transform:none}
.proto{height:28px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.lhead{position:relative;z-index:2}
.search select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23888' stroke-width='1.6' fill='none'/%3E%3C/svg%3E") right 4px center/11px no-repeat;padding-right:22px;cursor:pointer}

/* ---------- Zone grise des pages intérieures */
.pagebg{background:var(--bg);padding:80px 0 100px}
.box{background:#fff;border-radius:var(--r);padding:25px 30px 30px;margin-bottom:30px}
.box>h2,.wtitle{font-size:22px;line-height:30px;font-weight:600;margin:0 0 22px;padding-bottom:14px;border-bottom:1px solid var(--line2);position:relative}
.box>h2:after,.wtitle:after{content:"";position:absolute;left:0;bottom:-1px;width:45px;height:2px;background:var(--red)}
.box>h2 .now{float:right}
.prose h2{font-size:24px;line-height:34px;margin:26px 0 10px}
.prose h3{font-size:20px;margin:20px 0 8px}
.prose ul{list-style:disc;padding-left:22px;margin:0 0 16px}
.slot{background:var(--red-soft);border:1px dashed var(--red-line);border-radius:6px;padding:14px 18px;font-size:14px;line-height:24px;color:#8a4a4f}
.src{font-size:13px;line-height:20px;color:var(--muted);margin:12px 0 0}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%}
.cmp th,.cmp td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line2);font-size:15px;line-height:24px}
.cmp thead th{background:var(--red-soft);color:var(--ink);font-weight:600}
.cmp a{color:var(--ink);font-weight:500}
.cmp a:hover{color:var(--red)}

/* ---------- Page ville : filtre + liste + carte */
.explore{display:grid;grid-template-columns:260px minmax(0,1fr) 31vw;gap:30px;align-items:start;padding-left:max(15px,calc((100vw - 1310px)/2))}
.fbox{background:#fff;border-radius:var(--r);padding:25px 30px 30px}
.fbox .blk{border-bottom:1px solid var(--line2);padding:18px 0}
.fbox .blk:last-child{border-bottom:0;padding-bottom:0}
.fbox .bh{display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-weight:600;font-size:16px;margin-bottom:10px}
.fbox .bh i{width:22px;height:22px;border-radius:50%;background:var(--red);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:11px}
.chk{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:5px 0;font:400 16px/30px Outfit,sans-serif;color:var(--txt);cursor:pointer;text-align:left}
.chk:before{content:"";width:18px;height:18px;border:1.5px solid var(--red);border-radius:3px;flex:none;background:#fff center/12px no-repeat}
.chk[aria-pressed=true]{color:var(--red)}
.chk[aria-pressed=true]:before{background-color:var(--red);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.5 2.5L10 3.5' stroke='%23fff' stroke-width='2' fill='none'/%3E%3C/svg%3E")}
.chk small{margin-left:auto;color:var(--muted)}
.sel{width:100%;height:45px;border:1px solid #dadada;border-radius:4px;background:#f9f9f9;font:400 15px Outfit,sans-serif;color:var(--txt);padding:0 12px}
.listcol{background:#fff;border-radius:var(--r);padding:25px 30px 30px;min-width:0}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:25px}
.toolbar .cnt{color:var(--ink);font-weight:500;font-size:17px}
.toolbar .tr{display:flex;gap:10px;align-items:center}
.toolbar .sel{width:auto;min-width:200px;background:#fff}
.vbtn{width:45px;height:45px;border-radius:4px;border:1px solid #dadada;background:#f9f9f9;color:#797f89;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.vbtn[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.mapcol{position:sticky;top:0;height:100vh}
.mapbox{width:100%;height:100%;background:#e8eef0}
.listcol .card .bd{padding:18px 22px 0}
.listcol .card h3{font-size:20px;line-height:28px}
.listcol .card .pill:nth-child(2){display:none}
.switch{display:none}
.showf{display:none}
.fbox .bh i{background:#f1f1f1;color:var(--ink)}
@media (max-width:991px){
  .showf{display:flex;margin-bottom:20px}
  .explore>aside{position:static}
  .explore>aside .fbox{display:none;margin-bottom:20px}
  .explore>aside.open .fbox{display:block}
  body.ville .pagebg{padding-bottom:110px}
}
.after{padding-top:50px}
.rows li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line2);padding:10px 0}
.rows b{color:var(--ink);font-weight:500}

/* ---------- Fiche */
.gal{display:grid;grid-template-columns:repeat(var(--n,3),1fr);height:518px;position:relative;background:#222}
.gal img{width:100%;height:518px;object-fit:cover}
.gal .cap{position:absolute;right:14px;bottom:12px;font-size:12px;line-height:20px;color:#fff;background:rgba(0,0,0,.5);padding:2px 10px;border-radius:20px}
.lhead{background:#fff;padding:40px 0}
.lhead .wrap{display:flex;align-items:center;gap:26px}
.logoc{width:130px;height:130px;border-radius:50%;flex:none;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:600;box-shadow:0 0 0 6px #fff,0 0 0 7px var(--line)}
.lhead .mid{flex:1;min-width:0}
.lhead .bc{color:var(--txt);font-size:14px;line-height:22px;margin-bottom:8px}
.lhead .bc a{color:var(--txt)}
.lhead .bc a:hover,.lhead .bc b{color:var(--red)}
.cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.cats span{display:inline-flex;align-items:center;gap:5px;background:var(--red);color:#fff;border-radius:3px;font-size:13px;line-height:24px;padding:0 10px}
.lhead h1{font-size:32px;line-height:44px;margin:0 0 4px;display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.opn{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:#2c998a;line-height:20px}
.opn:before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor}
.opn.closed{color:#c91b25}
.opn:empty{display:none}
.lmeta{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;font-size:16px}
.lmeta .i{color:var(--red)}
.lmeta b{color:var(--ink)}
.lacts{display:flex;gap:10px}
.lacts a{width:46px;height:46px;border:1px solid var(--red);border-radius:4px;color:var(--red);display:inline-flex;align-items:center;justify-content:center}
.lacts a:hover{background:var(--red);color:#fff}
.alerte{background:#fff4e5;border-left:3px solid #f0a020;padding:10px 14px;margin:14px 0 0;font-size:15px;line-height:24px;border-radius:4px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:30px;align-items:start}
.side{position:sticky;top:20px}
.explore>aside{position:sticky;top:20px}
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 30px}
.svc li{display:flex;gap:12px;align-items:flex-start;line-height:24px}
.svc .ck{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--red);color:var(--red);display:inline-flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
.svc b{display:block;color:var(--ink);font-weight:500}
.kv th,.kv td{text-align:left;vertical-align:top;padding:9px 0;border-bottom:1px solid var(--line2);font-size:15px;line-height:24px}
.kv th{color:var(--ink);font-weight:500;width:42%;padding-right:12px}
.kv a{color:var(--red)}
.tl li{display:flex;gap:16px;padding:8px 0;border-bottom:1px dashed var(--line2);font-size:15px;line-height:24px}
.tl b{color:var(--ink);font-weight:500;flex:none;width:150px;white-space:nowrap}
.zone{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.zone li{border:1px solid var(--line);border-radius:40px;padding:0 14px;font-size:14px;line-height:32px}
.zone li.has{border-color:var(--red-line);background:var(--red-soft)}
.zone li.has a{color:var(--red);font-weight:500}
.minimap{height:360px;border-radius:6px;overflow:hidden;background:#e8eef0}
.rating{display:flex;align-items:center;gap:22px;border:1px solid var(--line);border-radius:6px;padding:18px 22px}
.rating .big{font-size:46px;line-height:1;font-weight:600;color:var(--ink)}
.rating .stars{font-size:20px}
details{border:1px solid var(--red-line);border-radius:4px;margin-bottom:12px;overflow:hidden}
summary{list-style:none;cursor:pointer;padding:12px 60px 12px 20px;color:var(--ink);font-weight:500;position:relative;line-height:26px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";position:absolute;right:12px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:3px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px}
details[open] summary{background:var(--red);color:#fff}
details[open] summary:after{content:"\2212";background:#fff;color:var(--red)}
details p{padding:16px 20px;margin:0}
.side .btn{margin-bottom:14px;border-radius:4px;padding:14px 20px;font-size:16px}
.clist li{display:flex;gap:12px;padding:6px 0;line-height:26px}
.clist .i{color:var(--red);margin-top:5px}
.clist a{color:var(--ink)}
.hrs{border:1px solid var(--line2)}
.hrs th,.hrs td{border:1px solid var(--line2);padding:8px 12px;font-size:15px;line-height:22px;text-align:left}
.hrs th{color:var(--ink);font-weight:500;width:38%}
.hrs tr.off td{color:var(--muted)}
.hrs tr.today th,.hrs tr.today td{color:#1f9e5a;font-weight:600}
.now.open{color:#1f9e5a;font-size:14px}
.now.closed{color:#c91b25;font-size:14px}
.claim{background:var(--ink) url() center/cover;color:#cfcfcf;border-radius:var(--r);padding:30px;position:relative;overflow:hidden}
.claim h2{color:#fff;font-size:22px;line-height:30px}
.claim p{font-size:15px;line-height:26px}
.simhead{background:#fff;border-radius:var(--r);text-align:center;padding:14px;margin:20px 0 30px}
.simhead h2{margin:0;font-size:22px}
.mbar{display:none}
.leaflet-tile-pane{filter:saturate(.35) brightness(1.04) contrast(.95)}
.pin-pop{font:400 14px/20px Outfit,sans-serif}
.pin-pop b{color:var(--ink)}
.pin-pop a{color:var(--red)}

/* ---------- Responsive */
@media (max-width:1199px){
  .catrow .wrap{grid-template-columns:repeat(3,1fr)}
  .catrow{margin-top:-60px}
  .grid.g4{grid-template-columns:repeat(2,1fr)}
  .explore{grid-template-columns:240px minmax(0,1fr);padding:0 15px}
  .mapcol{display:none}
  .explore.map-only .mapcol{display:block;position:fixed;inset:0;margin:0;z-index:80;height:100vh}
  .switch{display:inline-flex;position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:90;box-shadow:0 8px 20px rgba(0,0,0,.25)}
  .deps{grid-template-columns:1fr 1fr}
  .depbig{grid-row:auto;grid-column:span 2}
  .layout{grid-template-columns:minmax(0,1fr) 320px}
  .villes{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:991px){
  .nav{display:none}
  .nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:0 10px 20px rgba(0,0,0,.1);padding:10px 20px}
  .nav.open a{color:var(--ink)!important;padding:10px 0;border-bottom:1px solid var(--line2)}
  .burger{display:flex}
  .hd-r{margin-left:auto}
  .why,.band .wrap{grid-template-columns:1fr;gap:50px}
  .layout{grid-template-columns:1fr}
  .explore{grid-template-columns:1fr}
  .foot .cols{grid-template-columns:1fr 1fr}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:767px){
  body{font-size:15px;line-height:26px}
  .topbar{display:none}
  .top .wrap{height:64px}
  .logo{font-size:21px}
  .logo .scr{font-size:23px}
  .ucirc{display:none}
  .hd-r .btn{width:40px;height:40px;padding:0;border-radius:50%}
  .hd-r .btn .tx{display:none}
  .hd-r .btn .pl{margin:0;background:transparent;color:#fff;font-size:22px}
  .hero{padding:110px 0 110px}
  .hero h1{font-size:32px;line-height:40px;margin-bottom:34px}
  .search{flex-direction:column;align-items:stretch;border-radius:10px;padding:16px;gap:0}
  .search .f{border-right:0;border-bottom:1px solid #eee;padding:2px 6px}
  .search .f:last-of-type{border-bottom:0}
  .search .btn{margin:14px 0 0;height:48px;padding:0 30px}
  .quick{margin-top:30px}
  .quick .ql{width:100%;margin:0}
  .catrow{margin-top:-60px}
  .catrow .wrap{grid-template-columns:repeat(2,1fr);gap:16px}
  .catbox{padding:14px 10px 18px}
  .sec{padding:70px 0}
  .shead{margin-bottom:34px}
  .shead h2,.why h2{font-size:28px;line-height:36px}
  .grid,.grid.g4,.grid.g2{grid-template-columns:1fr}
  .grid.as-list .card{flex-direction:column}
  .grid.as-list .card .ph{width:auto;min-height:0;height:230px}
  .card .bd{padding:18px 22px 0}
  .card h3{font-size:20px;line-height:28px}
  .deps{grid-template-columns:1fr;gap:14px}
  .depbig{grid-column:auto}
  .depbig .im{min-height:200px}
  .why .pic .script{font-size:64px}
  .why .pic img.main{width:100%;height:300px}
  .band{padding:70px 0}
  .band h2{font-size:30px;line-height:38px}
  .polas{height:300px}
  .pola img{height:170px}
  .steps{grid-template-columns:1fr;gap:50px}
  .cta{flex-direction:column;align-items:flex-start;padding:36px 24px}
  .cta h2{font-size:26px;line-height:34px}
  .villes{grid-template-columns:1fr 1fr}
  .redband{padding:60px 0}
  .redband h2{font-size:28px;line-height:36px}
  .foot{padding-top:60px}
  .foot .cols{grid-template-columns:1fr}
  .banner{padding:50px 0}
  .banner h1{font-size:26px;line-height:34px;text-wrap:balance}
  .banner .lead{font-size:14px;text-wrap:balance}
  .pagebg{padding:40px 0 60px}
  .box,.fbox,.listcol{padding:20px}
  .gal{height:260px;grid-template-columns:1fr;overflow-x:auto;grid-auto-flow:column;grid-auto-columns:100%}
  .gal img{height:260px}
  .lhead{padding:26px 0}
  .lhead .wrap{flex-direction:column;align-items:flex-start;gap:16px}
  .logoc{width:84px;height:84px;font-size:28px;margin-top:-68px;position:relative;z-index:3}
  .proto .long{display:none}
  .gal .cap{top:10px;bottom:auto;right:10px;left:auto;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.home .top{top:28px}
  body.home .top .wrap{height:64px}
  .lhead .bc b{display:none}
  .lhead .bc span:last-of-type{display:none}
  .hero .sub{text-wrap:balance}
  .lhead h1{text-wrap:balance}
  .lhead h1{font-size:26px;line-height:34px}
  .svc{grid-template-columns:1fr}
  .mbar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;background:#fff;padding:10px 14px;box-shadow:0 -4px 16px rgba(0,0,0,.08);z-index:70}
  .mbar .btn{flex:1;border-radius:4px}
  body.has-mbar{padding-bottom:68px}
  body.has-mbar .totop{bottom:84px}
  .toolbar .sel{min-width:0;width:100%}
  .toolbar .tr{width:100%}
}

/* ---------- Monétisation (09/10/2026) : badges, cartes payantes, page offres */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:40px;font-size:12.5px;line-height:24px;font-weight:600;padding:0 11px 0 8px;letter-spacing:.2px;white-space:nowrap}
.badge .i{width:13px;height:13px;stroke-width:2.4}
.badge.verif{background:#e7f6ef;color:#1a7f55;border:1px solid #bfe6d2}
.badge.prem{background:linear-gradient(90deg,#ffb300,#ff8a00);color:#fff;border:1px solid #f59a00}
.badge.big{font-size:14px;line-height:28px;padding:0 13px 0 10px}
.card .bdg{margin:0 0 6px}
.card.lvl1{border-color:#bfe6d2}
.card.lvl2{border:2px solid #ffb300;box-shadow:0 12px 34px rgba(255,160,0,.18)}
.card .meta a{color:var(--ink);font-weight:500}
.card .ft .btn{padding:9px 16px;font-size:14px}
.card .ft .btn .i{width:15px;height:15px}
.card .ft.paid{justify-content:flex-start;flex-wrap:wrap}
.card .ft.paid .btn{flex:1 1 0;min-width:120px}
.toolbar .paidnote{display:block;font-size:13px;line-height:18px;color:var(--muted);font-weight:400}
.btn.ghost.see{flex:none}
.gerant{display:inline-flex;margin-top:10px;font-size:14px;line-height:22px;color:var(--red);font-weight:500;border-bottom:1px dashed var(--red-line)}
.gerant:hover{border-bottom-color:var(--red)}
.claim .offl{margin:14px 0 0;font-size:14px}
.claim .offl a{color:#fff;text-decoration:underline}
.rankinfo{margin:30px auto 0;max-width:760px;text-align:center;font-size:13px;line-height:21px;color:var(--muted)}
.rankinfo a{color:var(--txt);text-decoration:underline}
.ointro{max-width:760px;margin:0 auto 40px;text-align:center;font-size:18px;line-height:30px;color:var(--ink)}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:40px;align-items:stretch}
.plan{position:relative;background:#fff;border-radius:var(--r2);padding:34px 30px 30px;box-shadow:var(--sh);border:1px solid #eee;display:flex;flex-direction:column}
.plan.verif{border:2px solid #bfe6d2}
.plan.prem{border:2px solid #ffb300;box-shadow:0 18px 44px rgba(255,160,0,.18)}
.plan .flag{position:absolute;top:-14px;left:30px}
.plan h2{font-size:24px;margin:0 0 6px}
.plan .price{margin:0 0 12px;display:flex;align-items:baseline;gap:8px}
.plan .price b{font-size:44px;line-height:52px;color:var(--ink);font-weight:600}
.plan .price span{color:var(--muted);font-size:15px}
.plan .acc{font-size:15px;line-height:24px;min-height:72px}
.plan ul{margin:0 0 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.plan li{display:flex;gap:10px;font-size:15px;line-height:23px;color:var(--ink)}
.plan .ck{width:22px;height:22px;flex:none;border-radius:50%;background:var(--red-soft);color:var(--red);display:inline-flex;align-items:center;justify-content:center}
.plan .ck .i{width:13px;height:13px}
.ocmp th{font-weight:400;color:var(--ink)}
.ocmp thead th{text-align:center}
.ocmp thead th:first-child{text-align:left}
.ocmp td{text-align:center;width:16%}
.ocmp td.y{color:#1a7f55}
.ocmp td.n{color:var(--muted);font-size:13px}
.ocontact{text-align:center}
.ocontact>p{max-width:700px;margin-left:auto;margin-right:auto}
.ocontact>h2:after{left:50%;margin-left:-22px}
.ocontact .btn .i{width:18px;height:18px}
@media (max-width:991px){
  .plans{grid-template-columns:1fr;gap:34px;max-width:520px;margin-left:auto;margin-right:auto}
  .plan .acc{min-height:0}
}
@media (max-width:767px){
  .ointro{font-size:16px;line-height:26px}
  .ocontact .btn.lg{font-size:15px;padding:13px 18px;white-space:normal}
}

/* ---------- Production (12/10/2026) */
.bdg .ann{margin-left:6px;font-size:11.5px;color:#6b6b6b;border:1px solid #d9d9d9;border-radius:4px;padding:0 6px;line-height:20px}
.retrait{margin-top:14px;text-align:center}.retrait a{color:#6b6b6b;text-decoration:underline}
.plan .price{flex-direction:column;align-items:flex-start;gap:0}.plan .price b{white-space:nowrap}
.legalp a[href^=mailto],.lbox a{color:#ff3c48;text-decoration:underline}
.onote{max-width:860px;margin:18px auto 0;text-align:center;color:#555}.plan .ttc{margin:8px 0 0;text-align:center;color:#6b6b6b}
.legalp h2{margin-top:28px}.legalp h2:first-child{margin-top:0}.lbox{background:#fff4f4;border-left:4px solid #ff3c48;padding:14px 18px;border-radius:6px;margin-bottom:22px}
