/* www.borne-selfie-lyon.fr - feuille de style unique, mobile first, sans framework */
:root{--rose:#F29F2E;--rose-d:#D98A12;--gold-text:#8F5A06;--nuit:#1F1F2E;--or:#F29F2E;--blanc:#fff;--creme:#FFF8EB;--gris:#F6F6F9;--texte:#2B2B38;--muted:#6B6B7B;--ligne:#E6E6EE;--r:14px;--maxw:1180px;--fs:17px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Lato",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:var(--fs);line-height:1.6;color:var(--texte);background:var(--blanc)}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-text)}a:hover{color:var(--rose-d)}
h1,h2,h3,h4{font-family:"Playfair Display",Georgia,"Times New Roman",serif;line-height:1.2;color:var(--nuit);margin:0 0 .5em}
h1{font-size:clamp(1.9rem,4.5vw,3rem)}h2{font-size:clamp(1.45rem,3vw,2.1rem)}h3{font-size:clamp(1.1rem,2vw,1.35rem)}
p,li{max-width:72ch}
.wrap{width:min(100% - 32px,var(--maxw));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--nuit);color:#fff;padding:8px 12px;z-index:999}.skip:focus{left:8px;top:8px}
/* top bar */
/* header / nav */
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--ligne)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:80px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--nuit);font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:1.2rem}
.logo{flex:0 0 auto;min-width:0}.logo picture{display:block;flex:none}.logo img{display:block;flex:none;max-width:none;height:64px;width:85px}
.nav{display:none}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.nav li{position:relative}.nav a,.nav button{display:block;padding:10px 8px;color:var(--nuit);text-decoration:none;font-weight:600;font-size:.86rem;white-space:nowrap;background:none;border:0;cursor:pointer;font-family:inherit;min-height:48px}
.nav li:hover>.sub,.nav li:focus-within>.sub{display:block}
.sub{display:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid var(--ligne);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.08);min-width:260px;padding:8px;z-index:60}
.sub a{padding:9px 12px;border-radius:8px;font-weight:500;min-height:44px}.sub a:hover{background:var(--creme)}
.sub .grp{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 12px 2px}
.btn{display:inline-block;background:var(--rose);color:var(--nuit)!important;text-decoration:none;padding:13px 22px;border-radius:999px;font-weight:700;border:0;cursor:pointer;font-family:inherit;font-size:1rem;min-height:48px;line-height:1.3;text-align:center;transition:transform .15s,background .15s}
.btn:hover{background:var(--rose-d);transform:translateY(-1px)}.btn.or{background:var(--nuit);color:var(--rose)!important;border:2px solid var(--rose)}.btn.or:hover{background:#000}.btn.ghost{background:transparent;color:var(--nuit)!important;border:2px solid var(--nuit)}.btn.ghost:hover{background:var(--nuit);color:#fff!important}
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;background:none;border:0;cursor:pointer;padding:10px}.burger span{display:block;height:3px;background:var(--nuit);border-radius:2px}
.drawer{position:fixed;inset:0 auto 0 0;width:min(86vw,380px);background:#fff;z-index:100;transform:translateX(-100%);transition:transform .3s ease;overflow:auto;padding:18px;box-shadow:10px 0 30px rgba(0,0,0,.18)}
.drawer.open{transform:none}.drawer ul{list-style:none;margin:0;padding:0}.drawer a,.drawer summary{display:block;padding:12px 8px;color:var(--nuit);text-decoration:none;font-weight:600;border-bottom:1px solid var(--ligne);min-height:48px;cursor:pointer}
.drawer details ul a{padding-left:22px;font-weight:500}.drawer .close{float:right;font-size:1.6rem;background:none;border:0;width:48px;height:48px;cursor:pointer}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:90;display:none}.overlay.open{display:block}
@media(min-width:1024px){.nav{display:block}.burger,.drawer,.overlay{display:none!important}.header .cta-head{display:inline-block;padding:10px 14px;font-size:.8rem}}@media(min-width:1280px){.nav a,.nav button{padding:10px 11px;font-size:.92rem}}
.cta-head{display:none}
/* hero */
.hero{position:relative;background:var(--nuit);color:#fff;overflow:hidden;min-height:calc(100svh - 80px);display:flex;align-items:center;justify-content:center;text-align:center}
.hero .media{position:absolute;inset:0}.hero .media img,.hero .media video{width:100%;height:100%;object-fit:cover}
.hero .media::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,12,22,.42),rgba(12,12,22,.58))}
.hero .wrap{position:relative;z-index:1;padding:72px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;max-width:1100px}
.hero h1{color:#fff;max-width:20ch;margin:0;text-transform:uppercase;font-size:clamp(2.1rem,6vw,4.6rem);line-height:1.08;letter-spacing:.01em;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.hero .sur{color:var(--rose);text-transform:uppercase;letter-spacing:.16em;font-size:clamp(.85rem,1.8vw,1.15rem);font-weight:700;margin:0;text-shadow:0 2px 14px rgba(0,0,0,.5)}
@media(max-width:640px){.hero{min-height:calc(100svh - 150px)}.hero .wrap{padding:56px 0 96px}}
.crumb{font-size:.85rem;color:var(--muted);padding:12px 0}.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.crumb li+li::before{content:"›";margin-right:6px}.crumb a{color:var(--muted);text-decoration:none}
/* sections */
.sec{padding:56px 0}.sec.alt{background:var(--creme)}.sec.gris{background:var(--gris)}.sec.nuit{background:var(--nuit);color:#fff}.sec.nuit h2,.sec.nuit h3{color:#fff}.sec.nuit p{color:#eee}
.sur{color:var(--gold-text);text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;margin-bottom:6px}
.grid{display:grid;gap:22px}.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}
@media(min-width:720px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:22px;box-shadow:0 6px 20px rgba(31,31,46,.05)}.card h3{margin-top:6px}
.icon{font-size:1.9rem;line-height:1}
.concept{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media(min-width:600px){.concept{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.concept{grid-template-columns:repeat(6,1fr)}}
.concept>div{background:#fff;border-radius:var(--r);padding:16px 10px;text-align:center;border:1px solid var(--ligne)}.concept strong{display:block;font-size:.9rem;margin-top:6px}
.steps{counter-reset:s;display:grid;gap:18px}@media(min-width:720px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps div{position:relative;padding:22px 18px 18px;background:#fff;border-radius:var(--r);border:1px solid var(--ligne)}.steps div::before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:18px;width:34px;height:34px;border-radius:50%;background:var(--rose);color:var(--nuit);display:grid;place-items:center;font-weight:700}
.check{list-style:none;padding:0;margin:0;display:grid;gap:10px}@media(min-width:720px){.check{grid-template-columns:1fr 1fr}}.check li{padding-left:28px;position:relative}.check li::before{content:"✓";position:absolute;left:0;color:var(--gold-text);font-weight:700}
.kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.kpi div{background:#fff;border-radius:var(--r);padding:18px 10px;text-align:center;border:1px solid var(--ligne)}.kpi strong{display:block;font-size:1.6rem;color:var(--gold-text);font-family:"Playfair Display",serif}.kpi span{font-size:.85rem;color:var(--muted)}
figure{margin:0}figure img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover}figcaption{font-size:.85rem;color:var(--muted);margin-top:8px}
.lieux{display:grid;gap:22px}@media(min-width:720px){.lieux{grid-template-columns:repeat(3,1fr)}}
.lieux .card .tag{display:inline-block;font-size:.75rem;background:var(--creme);color:var(--gold-text);padding:3px 9px;border-radius:999px;margin-bottom:8px}
.conseil{background:var(--gris);border-left:4px solid var(--or);padding:10px 14px;border-radius:8px;font-size:.93rem;margin-top:10px}
.faq details{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:0 18px;margin-bottom:10px}.faq summary{cursor:pointer;font-weight:700;padding:16px 0;list-style:none;min-height:48px}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";float:right;color:var(--gold-text);font-size:1.3rem}.faq details[open] summary::after{content:"–"}.faq details p{margin:0 0 16px}
.formules{display:grid;gap:22px}@media(min-width:900px){.formules{grid-template-columns:repeat(3,1fr)}}.formules .card.pop{border:2px solid var(--rose)}.formules .badge{display:inline-block;background:var(--rose);color:var(--nuit);font-size:.72rem;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
.frein{display:flex;gap:14px;align-items:flex-start}.frein .icon{color:var(--gold-text)}
.voisines{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}.voisines a{display:inline-block;background:#fff;border:1px solid var(--ligne);border-radius:999px;padding:8px 14px;text-decoration:none;color:var(--nuit);font-size:.92rem;min-height:40px}.voisines a:hover{border-color:var(--rose);color:var(--gold-text)}
.maps{border:0;width:100%;height:320px;border-radius:var(--r)}
.cta-band{background:linear-gradient(135deg,#F5B13F,#E8961C);color:var(--nuit);text-align:center;padding:64px 0}.cta-band h2{color:var(--nuit)}.cta-band p{color:var(--nuit);margin-inline:auto}
.form{display:grid;gap:14px;background:#fff;border-radius:var(--r);padding:26px;border:1px solid var(--ligne);color:var(--texte)}@media(min-width:720px){.form{grid-template-columns:1fr 1fr}.form .full{grid-column:1/-1}}
.form label{display:grid;gap:6px;font-weight:600;font-size:.9rem}.form input,.form select,.form textarea{font:inherit;padding:12px 14px;border:1px solid #cfcfd8;border-radius:10px;min-height:48px;width:100%}
.form .rgpd{font-size:.8rem;color:var(--muted);font-weight:400}
.enbref{background:var(--creme);border-left:4px solid var(--rose);padding:16px 20px;border-radius:10px;margin:18px 0}
.toc{background:var(--gris);padding:14px 18px;border-radius:10px;font-size:.92rem}.toc ol{margin:6px 0 0;padding-left:20px}
.prose p{margin:0 0 1em}.prose ul{margin:0 0 1em}
.slider{display:grid;grid-auto-flow:column;grid-auto-columns:88%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;-webkit-overflow-scrolling:touch}.slider>a{scroll-snap-align:start;position:relative;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#fff;min-height:300px;display:flex;align-items:flex-end;background:var(--nuit)}
.slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6}.slider .lab{position:relative;padding:22px}.slider .lab small{color:var(--or);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}.slider .lab strong{display:block;font-family:"Playfair Display",serif;font-size:1.4rem}
@media(min-width:900px){.slider{grid-auto-columns:32%}}
/* footer */
.foot-cta{background:var(--nuit);color:#fff;padding:54px 0 36px;border-top:4px solid var(--rose)}.foot-cta h2{color:#fff;max-width:28ch}.foot-cta p{color:#ddd}
.badges{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.badges span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px 14px;font-size:.88rem}
footer.site{background:#15151f;color:#cfcfd8;padding:44px 0 96px;font-size:.93rem}
footer.site h3{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px;font-family:"Lato",sans-serif}
footer.site ul{list-style:none;margin:0;padding:0}footer.site li{margin-bottom:8px}footer.site a{color:#cfcfd8;text-decoration:none}footer.site a:hover{color:var(--or)}
.fcols{display:grid;gap:30px}@media(min-width:720px){.fcols{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.fcols{grid-template-columns:1.2fr 1fr 1fr 1fr 1fr}}
.fbottom{border-top:1px solid rgba(255,255,255,.1);margin-top:34px;padding-top:18px;display:flex;flex-wrap:wrap;gap:12px 22px;justify-content:space-between;font-size:.82rem;color:#9a9aa8}.fbottom a{color:#9a9aa8}
.nap{line-height:1.8}
/* flottant */
.float{position:fixed;right:14px;bottom:14px;z-index:80;display:flex;flex-direction:column;gap:10px;align-items:stretch}
.float .btn{box-shadow:0 10px 30px rgba(0,0,0,.28);padding:12px 18px;font-size:.92rem}
@media(max-width:640px){.float{left:10px;right:10px;bottom:10px;flex-direction:row;gap:8px}.float .btn{flex:1;padding:11px 8px;font-size:.8rem;line-height:1.25}}
.contact-choix .card{display:flex;flex-direction:column;gap:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ===== LECTURE FACILE ET MISE EN COULEUR (v2) ===== */
body{font-size:18px}
.card,.kpi div,.faq details,.steps div,.concept div,.voisines a{color:var(--texte)}
.t{line-height:1.72;max-width:62ch;margin:0 0 14px}
.t.lead{font-size:1.2rem;line-height:1.6;color:var(--nuit);margin-bottom:12px}
.t.lead strong{color:var(--nuit);background:linear-gradient(transparent 62%,rgba(242,159,46,.38) 62%)}
details.more{margin:6px 0 18px}
details.more>summary{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;color:var(--gold-text);padding:10px 18px;border:2px solid var(--rose);border-radius:999px;list-style:none;min-height:46px;background:#fff;transition:background .2s}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:"+";font-size:1.3rem;line-height:1;font-weight:700}
details.more[open]>summary{background:var(--rose);color:var(--nuit)}
details.more[open]>summary::after{content:"–"}
.more-body{margin-top:16px;padding-left:16px;border-left:4px solid var(--rose)}
.sec h2::after{content:"";display:block;width:58px;height:5px;background:var(--rose);border-radius:5px;margin-top:12px}
.sec .sur{display:inline-block;background:var(--creme);padding:4px 12px;border-radius:999px;margin-bottom:10px}
/* sections colorées : le « gris » devient bleu nuit pour le rythme */
.sec.gris{background:var(--nuit);color:#e8e8f0}
.sec.gris h2,.sec.gris h3{color:#fff}
.sec.gris .t{color:#e8e8f0}.sec.gris .t.lead,.sec.gris .t.lead strong{color:#fff}
.sec.gris .sur{background:rgba(242,159,46,.16);color:var(--rose)}
.sec.gris a{color:var(--rose)}
.sec.gris .card a,.sec.gris .faq a,.sec.gris .tip a,.sec.gris .tile a{color:var(--gold-text)}
.sec.gris details.more>summary{background:transparent;color:var(--rose)}
.sec.gris details.more[open]>summary{background:var(--rose);color:var(--nuit)}
.sec.gris .conseil,.sec.gris .tip,.sec.gris .kpi div,.sec.gris .voisines a{color:var(--texte)}
.sec.gris .voisines a{background:#fff}
.sec.alt{background:var(--creme)}
/* bandeau de points clés */
.quick{background:var(--rose)}
.chips{list-style:none;margin:0;padding:14px 0;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips li{flex:0 0 auto;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.62);color:var(--nuit);font-weight:700;font-size:.92rem;padding:9px 15px;border-radius:999px;white-space:nowrap;max-width:none;scroll-snap-align:start}
.chips li span{font-size:1.15rem}
@media(min-width:900px){.chips{justify-content:center;flex-wrap:wrap;overflow:visible}}
/* tuiles */
.tiles{display:grid;gap:14px;grid-template-columns:1fr;margin-top:6px}
@media(min-width:720px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{background:#fff;border:1px solid var(--ligne);border-top:5px solid var(--rose);border-radius:var(--r);padding:20px;box-shadow:0 10px 28px rgba(31,31,46,.07);color:var(--texte)}
.tile .ico{width:50px;height:50px;border-radius:15px;background:var(--creme);display:grid;place-items:center;font-size:1.6rem;margin-bottom:10px}
.tile strong{display:block;font-size:1.08rem;margin-bottom:6px;color:var(--nuit)}
.tile p{margin:0;font-size:.98rem;line-height:1.55}
/* étapes */
.steps{gap:26px}
.steps div{box-shadow:0 8px 22px rgba(31,31,46,.06);border-top:5px solid var(--rose)}
.steps div::before{width:40px;height:40px;top:-24px;font-size:1.1rem;box-shadow:0 6px 14px rgba(242,159,46,.45)}
.steps div strong{display:block;margin:6px 0 4px;color:var(--nuit)}
.steps div p{margin:0;font-size:.97rem;line-height:1.55}
/* carte d'appel à l'action intégrée */
.cta-card{margin:30px 0;background:linear-gradient(135deg,#F5B13F,#E8961C);border-radius:var(--r);padding:22px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;color:var(--nuit);box-shadow:0 14px 34px rgba(232,150,28,.35)}
.cta-card p{margin:0;font-size:1.2rem;max-width:none}
.cta-card .btn{background:var(--nuit);color:var(--rose)!important}
/* lieux : carrousel mobile et conseil replié */
@media(max-width:719px){.lieux{display:grid;grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:12px;-webkit-overflow-scrolling:touch}.lieux>*{scroll-snap-align:start}}
.tip{margin-top:12px;background:var(--creme);border-radius:12px;padding:0 14px}
.tip summary{cursor:pointer;font-weight:700;padding:11px 0;list-style:none;color:var(--gold-text);min-height:44px}
.tip summary::-webkit-details-marker{display:none}
.tip summary::after{content:" ▾"}.tip[open] summary::after{content:" ▴"}
.tip .conseil{margin:0 0 12px;border:0;background:transparent;padding:0}
/* indicateurs chiffrés */
.kpi strong{font-size:1.9rem}
.kpi div{box-shadow:0 8px 22px rgba(31,31,46,.06);border-bottom:4px solid var(--rose)}
/* confort mobile */
@media(max-width:640px){.sec{padding:42px 0}.t.lead{font-size:1.12rem}h2{font-size:1.55rem}}
/* articles et réponses : lecture longue confortable */
.prose p{font-size:1.06rem;line-height:1.8}
.prose h2{margin-top:1.6em}
.enbref{background:var(--creme);border-left:6px solid var(--rose);padding:18px 22px}

.concept>div{padding:14px 8px;box-shadow:0 8px 22px rgba(31,31,46,.06);border-bottom:4px solid var(--rose)}
.concept .icon{width:44px;height:44px;border-radius:50%;background:var(--rose);color:var(--nuit);display:grid;place-items:center;margin:0 auto 8px;font-size:1.3rem;font-weight:700}
.sec h3{margin-top:1.5em}.sec h3:first-child{margin-top:0}

/* page Villes : départements et recherche */
.vsearch{display:block;margin:18px 0 8px}
.vsearch input{width:100%;max-width:460px;padding:14px 20px;border:2px solid var(--rose);border-radius:999px;font:inherit;min-height:50px;background:#fff}
.depchips{margin:10px 0 0}
.dept{margin-top:24px;padding:20px;border-radius:var(--r);background:#fff;border:1px solid var(--ligne);border-top:6px solid var(--rose);box-shadow:0 10px 28px rgba(31,31,46,.06);scroll-margin-top:90px}
.dept h3{margin-top:0;font-size:1.25rem}
.dept .voisines{margin-bottom:10px}
/* vidéo promo sous le hero de l'accueil */
.video-promo{background:var(--nuit);padding:0}.video-promo .video-frame{position:relative;max-width:1100px;margin:0 auto;aspect-ratio:16/9;background:#000}
.video-promo video{display:block;width:100%;height:100%;object-fit:cover;background:#000}
@media(min-width:900px){.video-promo{padding:36px 20px}.video-promo .video-frame{border-radius:var(--r);overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.45)}}
/* photos locales par ville */
.photos-ville{padding:28px 0 8px}.photos-ville .sur{margin-bottom:12px}
.pgal{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.pgal figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden;background:var(--nuit);aspect-ratio:3/2}
.pgal img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.pgal figure:hover img{transform:scale(1.05)}
.pgal figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 12px 9px;font-size:.78rem;line-height:1.25;color:#fff;background:linear-gradient(transparent,rgba(12,12,22,.82))}
@media(max-width:700px){.pgal{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch}.pgal figure{scroll-snap-align:start}}
.credits{margin-top:10px;font-size:.78rem;color:var(--muted)}.credits summary{cursor:pointer;display:inline-block}.credits p{margin:.5em 0 0}
/* page Villes : exploration ludique */
.vexplo{margin-top:18px}.vx-top{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.vsearch{flex:1 1 260px}.vsearch input{width:100%;font:inherit;font-size:1.05rem;padding:15px 20px;border:2px solid var(--ligne);border-radius:999px;background:#fff;box-shadow:0 4px 18px rgba(31,31,46,.06)}.vsearch input:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 4px rgba(242,159,46,.25)}
.vdice{font:inherit;font-weight:700;border:0;border-radius:999px;padding:15px 22px;background:var(--nuit);color:#fff;cursor:pointer;transition:transform .2s}.vdice:hover{transform:rotate(-2deg) scale(1.04);background:#2d2d44}
.vchips{display:flex;gap:8px;margin:14px 0 6px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.vchips::-webkit-scrollbar{display:none}
.vchip{flex:0 0 auto;font:inherit;font-weight:700;font-size:.92rem;padding:9px 16px;border-radius:999px;border:2px solid var(--ligne);background:#fff;color:var(--nuit);cursor:pointer;white-space:nowrap;transition:all .2s}.vchip:hover{border-color:var(--or)}.vchip.on{background:var(--or);border-color:var(--or);color:var(--nuit)}
.vx{display:grid;gap:16px;margin:14px 0 8px}@media(min-width:900px){.vx{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:start}}
.vx-map{background:radial-gradient(circle at 50% 50%,#2a2a40,#1F1F2E 70%);border-radius:22px;padding:10px 10px 14px;box-shadow:0 16px 40px rgba(31,31,46,.28)}
.vmap{width:100%;height:auto;display:block;max-height:78vh}
.vring{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1.5;stroke-dasharray:4 6}.vringl{fill:rgba(255,255,255,.42);font-size:11px;text-anchor:middle}
.vdot{cursor:pointer;outline:none}.vdot circle:first-child{transition:transform .2s,opacity .25s;transform-box:fill-box;transform-origin:center;stroke:#1F1F2E;stroke-width:2}.vdot:hover circle:first-child,.vdot:focus circle:first-child{transform:scale(1.5)}
.vdot .halo{fill:none;stroke:#fff;stroke-width:2;opacity:0}.vdot.sel .halo{opacity:.9;animation:vpulse 1.4s infinite}.vdot.sel circle:first-child{transform:scale(1.5);stroke:#fff}
.vdot.off{opacity:.1;pointer-events:none}.vlyont{fill:#F29F2E;font-weight:700;font-size:16px;text-anchor:middle}
.vlab{fill:#fff;font-size:13px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:#1F1F2E;stroke-width:4px;pointer-events:none}.vlabl{font-size:15px;fill:#F29F2E}
@keyframes vpulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.7);opacity:0}}.vdot .halo{transform-box:fill-box;transform-origin:center}
.vleg{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 8px 0;padding:0;color:#fff;font-size:.82rem}.vleg i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px}.vleg i.big{width:15px;height:15px;background:#fff;border:3px solid var(--or);vertical-align:-3px}
.vpanel{background:var(--creme);border:2px solid #F7D9A4;border-radius:22px;padding:18px;text-align:center;position:sticky;top:96px}
.vpd{display:flex;flex-direction:column;align-items:center;gap:8px}.vpd img{width:100%;max-width:340px;border-radius:14px;aspect-ratio:3/2;object-fit:cover}.vpe{font-size:2.6rem;line-height:1}.vpd strong{font-family:"Playfair Display",Georgia,serif;font-size:1.35rem;color:var(--nuit)}.vpd p{margin:0;color:var(--muted)}
.vcount{margin:6px 2px 14px;font-weight:700;color:var(--gold-text)}
.vcards{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}@media(min-width:620px){.vcards{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.vcards{grid-template-columns:repeat(4,1fr)}}@media(min-width:1100px){.vcards{grid-template-columns:repeat(5,1fr)}}
.vcard{position:relative}.vcard a{display:block;height:100%;text-decoration:none;color:var(--texte);background:#fff;border:1px solid var(--ligne);border-radius:16px;overflow:hidden;box-shadow:0 3px 12px rgba(31,31,46,.06);transition:transform .2s,box-shadow .2s,border-color .2s}.vcard a:hover{transform:translateY(-4px) rotate(-.4deg);box-shadow:0 12px 26px rgba(31,31,46,.16);border-color:var(--or)}
.vcard.sel a{border-color:var(--or);box-shadow:0 0 0 3px rgba(242,159,46,.4)}.vcard.pop a{animation:vpop .6s}@keyframes vpop{0%{transform:scale(.92)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
.vph{display:block;aspect-ratio:3/2;background:var(--nuit);overflow:hidden}.vph img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.vcard a:hover .vph img{transform:scale(1.08)}
.vnoph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--c),#1F1F2E)}.vnoph b{font-family:"Playfair Display",Georgia,serif;font-size:3rem;color:#fff;opacity:.9}
.vstar{position:absolute;top:8px;left:8px;background:var(--or);color:var(--nuit);font-size:.7rem;font-weight:800;padding:3px 9px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.vname{display:block;font-family:"Playfair Display",Georgia,serif;font-weight:700;font-size:1.02rem;color:var(--nuit);padding:10px 12px 0;line-height:1.2}.vmeta{display:block;font-size:.8rem;color:var(--muted);padding:2px 12px 11px}
.dept{scroll-margin-top:90px}

.credits .credtxt{margin:.5em 0 0}.photos-ville .sur{display:inline-block}

.flogo{display:inline-block;background:#fff;border-radius:16px;padding:12px 16px;margin-bottom:14px;box-shadow:0 6px 20px rgba(0,0,0,.25)}.flogo img{display:block;width:150px;height:auto;max-width:none}

/* blog : articles pleine largeur, deux colonnes, listes à puces */
.art-top{display:grid;gap:18px;margin:6px 0 18px}@media(min-width:900px){.art-top{grid-template-columns:1.35fr .85fr;align-items:start}}
.art-top .enbref,.art-top .toc{margin:0}.art-top .toc{background:var(--gris);border-radius:14px;padding:18px 22px;font-size:1rem}.art-top .toc ol{margin:6px 0 0;padding-left:22px;display:grid;gap:6px}
.art-tt{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:var(--gold-text);margin:0 0 8px}
.enbref ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}.enbref li{position:relative;padding-left:26px;line-height:1.55}.enbref li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:12px;border-radius:50%;background:var(--or)}
.art-grid{display:grid;gap:22px;align-items:start;margin-top:6px}@media(min-width:960px){.art-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.art-main .t{font-size:1.12rem;line-height:1.75;margin:0}
.art-points{background:#fff;border:1px solid var(--ligne);border-radius:18px;padding:18px 22px;box-shadow:0 8px 24px rgba(31,31,46,.08)}
.art-points ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}.art-points li{position:relative;padding-left:28px;line-height:1.55;font-size:1.02rem}
.art-points li::before{content:"";position:absolute;left:0;top:.45em;width:13px;height:13px;border-radius:50%;background:var(--or);box-shadow:0 0 0 4px rgba(242,159,46,.22)}
.art-h3{margin-top:24px;padding:18px 22px;border-left:6px solid var(--or);background:rgba(255,255,255,.85);border-radius:0 16px 16px 0;box-shadow:0 4px 16px rgba(31,31,46,.05)}.art-h3 h3{margin:0 0 .4em}.art-h3 .t{margin:0}
.prose .sec h2,.sec .prose h2{margin-top:.2em}

/* blog : lever la limite de largeur des paragraphes, sous-parties sur deux colonnes */
.blogsec p,.blogsec li,.prose p,.prose li,.prose .t,.art-top li,.art-points li{max-width:none}
.art-h3 h3{margin:0}
@media(min-width:900px){.art-h3{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:10px 32px;align-items:start}.art-h3 h3{font-size:1.25rem;line-height:1.3}}
.blogsec .rgpd{margin:18px 0 8px}

/* pages produit matériel : grande photo + trois petits rectangles */
.hero-produit{min-height:0;display:block;padding:34px 0 44px;background:radial-gradient(circle at 70% 40%,#2c2c44,#1F1F2E 70%)}
.hero-produit .wrap.hp{display:grid;gap:26px;align-items:center;padding:0;max-width:var(--maxw);flex-direction:initial}
.hp-txt{text-align:center}.hp-txt .sur{display:inline-block}.hp-txt h1{max-width:none;margin:10px 0 0;font-size:clamp(1.5rem,2.9vw,2.35rem);line-height:1.18}
.hp-fig{margin:0;border-radius:22px;overflow:hidden;border:3px solid rgba(242,159,46,.65);box-shadow:0 26px 60px rgba(0,0,0,.5);aspect-ratio:4/3;background:#111}
.hp-fig img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:900px){.hero-produit .wrap.hp{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px}.hp-txt{text-align:left}}
.mgal-sec{padding:26px 0 8px}.mgal{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:900px;margin:0 auto}
.mgal figure{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:3/2;background:var(--nuit);box-shadow:0 6px 18px rgba(31,31,46,.15)}
.mgal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.mgal figure:hover img{transform:scale(1.06)}

/* bandeau photos au milieu des pages principales */
.photo-band{padding:34px 0 38px}.photo-band .wrap{max-width:1100px}
.pband{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0;padding:0;list-style:none}
.pband li{margin:0;padding:0}.pband figure{margin:0;border-radius:16px;overflow:hidden;background:#e9e9ee;box-shadow:0 10px 30px rgba(31,31,46,.16)}
.pband img{display:block;width:100%;max-width:none;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .5s ease}
.pband figure:hover img{transform:scale(1.04)}
@media(max-width:760px){.pband{grid-template-columns:1fr;gap:14px}.photo-band{padding:22px 0 26px}}

/* cartes blanches sur fond sombre : texte foncé lisible */
.sec.gris .card,.sec.gris a.card,.sec.nuit .card,.sec.nuit a.card{color:var(--texte)!important}
.sec.gris .card h3,.sec.gris .card strong,.sec.nuit .card h3,.sec.nuit .card strong{color:var(--nuit)!important}
.sec.gris .card p,.sec.gris .card li,.sec.gris .card span,.sec.nuit .card p,.sec.nuit .card li,.sec.nuit .card span{color:var(--texte)!important}
.sec.gris .card .tag,.sec.nuit .card .tag{color:var(--gold-text)!important}

/* menu burger : à gauche, le tiroir se déroule vers la droite */
@media(max-width:1023.98px){.header .wrap{justify-content:flex-start;gap:8px}.header .burger{order:-1}.header .logo{margin-right:auto}.drawer .close{float:right}}

/* sous-menus du tiroir : l'entrée est un lien, la flèche déplie */
.drawer .has-sub{display:flex;flex-wrap:wrap;align-items:stretch}.drawer .has-sub>a{flex:1}
.drawer .sub-toggle{width:48px;min-height:48px;background:none;border:0;border-bottom:1px solid var(--ligne);cursor:pointer}
.drawer .sub-toggle::after{content:"\25BE";font-size:1.2rem;color:var(--nuit);display:inline-block;transition:transform .2s}
.drawer .has-sub.open>.sub-toggle::after{transform:rotate(180deg)}
.drawer .sub{display:none;flex-basis:100%;padding-left:12px;background:var(--gris)}.drawer .has-sub.open>.sub{display:block}
.drawer .sub a{padding-left:22px;font-weight:500}

/* petits écrans : aucune grille ne déborde, tiroir sans ombre quand il est fermé */
.grid>*{min-width:0}.card,.card p,.card li{overflow-wrap:anywhere}
@media(max-width:400px){.g4{grid-template-columns:1fr}}
@media(max-width:1023.98px){.drawer{box-shadow:none}.drawer.open{box-shadow:10px 0 30px rgba(0,0,0,.18)}}
.lieux .photo-credit{margin:2px 0 8px;line-height:1.3}.lieux .photo-credit small{font-size:.72rem;opacity:.8}.lieux .photo-credit a{color:inherit}

/* preuves en évidence : expérience, événements, note Google, avis clients */
.chips li.hl{background:var(--nuit);color:#fff;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.chips li.gl{padding:0;background:#fff}.chips li.gl a{display:flex;align-items:center;gap:8px;padding:9px 15px;color:var(--nuit);text-decoration:none;font-weight:700}
.chips li.gl .gicon{flex:0 0 auto}
.badges .gbadge{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1b1b1b;border-radius:999px;padding:6px 14px;text-decoration:none;font-weight:700}
.avis .avis-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 18px;font-size:1.05rem}
.avis .avis-head .note{font-size:1.6rem}.avis .stars{color:#f5a623;letter-spacing:2px;font-size:1.15rem}
.avis-card{margin:0}.avis-card blockquote{margin:6px 0 12px;font-size:1.02rem;line-height:1.55;font-style:italic;color:var(--texte)}
.avis-card figcaption{font-size:.9rem;color:var(--texte)}
.avis .avis-cta{margin:20px 0 6px}.avis .gbtn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1b1b1b;border:2px solid var(--or)}
.avis .gbtn .gicon{background:#fff;border-radius:50%}

/* avis clients animés dans le pied de page */
.avis-foot{display:grid;gap:26px;grid-template-columns:1fr;align-items:center;margin:0 0 38px;padding:26px 22px;border-radius:22px;border:1px solid rgba(242,159,46,.4);background:radial-gradient(120% 140% at 0% 0%,#2c2c44 0%,#1b1b2b 60%)}
@media(min-width:820px){.avis-foot{grid-template-columns:260px 1fr;padding:30px 34px;gap:40px}}
.af-score{text-align:center}
footer.site .af-g{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1b1b1b;border-radius:999px;padding:6px 16px 6px 10px;font-weight:700;font-size:.9rem}
footer.site .af-g:hover{color:#1b1b1b;transform:translateY(-1px)}
.af-note{display:block;font-family:"Playfair Display",serif;font-size:3.6rem;line-height:1;color:var(--or);margin:14px 0 2px}
.af-stars{display:flex;justify-content:center;gap:4px;font-size:1.5rem;color:#f5a623}
.af-stars span{display:inline-block;animation:afstar 2.6s ease-in-out infinite}
.af-stars span:nth-child(2){animation-delay:.15s}.af-stars span:nth-child(3){animation-delay:.3s}.af-stars span:nth-child(4){animation-delay:.45s}.af-stars span:nth-child(5){animation-delay:.6s}
@keyframes afstar{0%,60%,100%{transform:scale(1);filter:none}30%{transform:scale(1.35) rotate(-8deg);filter:drop-shadow(0 0 8px rgba(245,166,35,.9))}}
.af-nb{margin:6px 0 14px;color:#fff;font-weight:700}
footer.site .af-btn{display:inline-block;color:#1b1b1b}
.af-quotes{display:grid}
.af-q{grid-area:1/1;margin:0;position:relative;display:grid;grid-template-columns:48px 1fr;gap:6px 16px;align-content:start;padding:20px 22px;border-radius:18px;background:rgba(255,255,255,.07);opacity:0;transform:translateY(14px) scale(.98);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.af-q.on{opacity:1;transform:none;pointer-events:auto}
.af-q::after{content:"";position:absolute;left:34px;bottom:-12px;border:12px solid transparent;border-top-color:rgba(255,255,255,.07);border-bottom:0}
.af-ava{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--or);color:#1b1b1b;font-weight:800;font-size:1.3rem}
.af-q blockquote{margin:0;color:#fff;font-size:1.02rem;line-height:1.55;font-style:italic}
.af-q blockquote::before{content:"\201C";color:var(--or);font-size:1.8rem;line-height:0;margin-right:4px;vertical-align:-.35em}
.af-q figcaption{color:#cfcfd8;font-size:.88rem}.af-q figcaption strong{color:#fff}
.af-dots{display:flex;gap:8px;justify-content:center;margin-top:24px}
.af-dot{width:11px;height:11px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.3);cursor:pointer;transition:width .3s,background .3s}
.af-dot.on{width:30px;border-radius:8px;background:var(--or)}
@media(prefers-reduced-motion:reduce){.af-stars span{animation:none}.af-q{transition:none}}

/* boutons du pied de page : texte centré, même hauteur */
.badges{align-items:stretch}
.badges span,.badges a.gbadge{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:46px;box-sizing:border-box;padding:6px 18px;line-height:1.25}
.badges a.gbadge .gicon{flex:0 0 auto}
/* articles de blog : texte justifié */
.pg-blog main p:not(.sur):not(.rgpd),.pg-blog main li{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.pg-blog main .cta-band p,.pg-blog main .cta-card p,.pg-blog main .hero p,.pg-blog main .quick p,.pg-blog main .card p{text-align:inherit}

/* réseaux sociaux du pied de page : logos + libellés */
footer.site .socials{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0;padding:0;list-style:none}
footer.site .socials li{margin:0}
footer.site .socials a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:700;font-size:.88rem;text-align:center;transition:background .2s,transform .2s}
footer.site .socials a:hover{background:rgba(255,255,255,.16);color:#fff;transform:translateY(-2px)}
footer.site .socials .sicon{flex:0 0 auto;border-radius:50%}
footer.site .socials a:has(.sicon path[fill="#EA4335"]) .sicon{background:#fff;padding:2px}

/* pages ville : rectangle d'avis en haut et deux grandes photos de borne */
.avis-rect-sec{padding-top:8px;padding-bottom:8px}
.avis-rect{display:grid;gap:18px;align-items:center;padding:20px 22px;border-radius:20px;background:#fff;border:2px solid var(--or);box-shadow:0 8px 26px rgba(0,0,0,.1)}
@media(min-width:900px){.avis-rect{grid-template-columns:200px 1fr 170px;gap:26px}}
.ar-score{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.ar-g{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#1b1b1b;text-decoration:none;font-size:.9rem}
.ar-note{font-family:"Playfair Display",serif;font-size:2.2rem;line-height:1.1;color:var(--nuit)}
.avis-rect .stars{color:#f5a623;letter-spacing:2px;font-size:1.2rem}.ar-nb{font-size:.88rem;font-weight:700}
.ar-quotes{display:grid;gap:14px}
@media(min-width:600px){.ar-quotes{grid-template-columns:1fr 1fr}}
.ar-quotes blockquote{margin:0;padding:0 0 0 14px;border-left:4px solid var(--or);font-style:italic;font-size:.95rem;line-height:1.5;color:var(--texte)}
.ar-quotes cite{display:block;margin-top:6px;font-style:normal;font-weight:700;font-size:.85rem}
.ar-btn{justify-self:center;text-align:center}
.bornes-xl{padding-top:10px;padding-bottom:10px}
.xl2{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:1100px){.bornes-xl .wrap{max-width:1360px}.xl2{grid-template-columns:1fr 1fr;gap:28px}.xl2 img{aspect-ratio:4/3}}
.xl2 figure{margin:0}.xl2 img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:20px;box-shadow:0 12px 34px rgba(0,0,0,.22)}
