/* =====================================================================
   Annuaire des agences de France — UI "Bleu confiance pro".
   Couche moderne par-dessus Viavi : variables, cartes, sections SEO.
   ===================================================================== */
:root{
  --brand:#1e4f8f; --brand-d:#16325c; --brand-dd:#0f2543; --brand-l:#eaf1fb;
  --accent:#f5a623; --accent-d:#d9890b;
  --ink:#16202c; --muted:#5d6b7a; --line:#e6ecf3; --bg:#f5f8fc;
  --star:#f5a623; --ok:#1f9d57;
  --radius:16px; --radius-s:12px;
  --shadow:0 10px 30px rgba(16,40,75,.08); --shadow-h:0 18px 46px rgba(16,40,75,.16);
}
*{box-sizing:border-box}
body.tpl-improved{font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#fff;margin:0;line-height:1.6;-webkit-font-smoothing:antialiased}
.tpl-improved a{color:var(--brand);text-decoration:none}
.tpl-improved img{max-width:100%;display:block}
.tpl-improved h1,.tpl-improved h2,.tpl-improved h3{letter-spacing:-.01em}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.sec{padding:74px 0}
.sec--alt{background:var(--bg)}
.sec-head{text-align:center;max-width:700px;margin:0 auto 46px}
.sec-head .kick{color:var(--brand);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:12.5px}
.sec-head h2{font-size:34px;font-weight:700;margin:10px 0 12px;line-height:1.2;color:var(--brand-d)}
.sec-head p{color:var(--muted);margin:0;font-size:16px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:#fff;font-weight:600;padding:13px 26px;border-radius:999px;border:0;cursor:pointer;transition:.2s}
.btn:hover{background:var(--brand-d);color:#fff}
.btn-accent{background:var(--accent);color:#16202c}.btn-accent:hover{background:var(--accent-d);color:#16202c}
.btn-ghost{background:#fff;color:var(--brand);border:1.5px solid var(--line)}
.btn-ghost:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.center{text-align:center}

/* Header */
.nav-improved{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line)}
.nav-improved .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{font-size:22px;font-weight:800;color:var(--brand-d);letter-spacing:-.02em}
.brand b{color:var(--accent)}
.nav-improved nav a{color:var(--ink);font-weight:500;margin-left:26px;font-size:15px}
.nav-improved nav a:hover{color:var(--brand)}
.nav-cta{background:var(--brand);color:#fff!important;padding:10px 18px;border-radius:999px;font-weight:600}
.nav-cta:hover{background:var(--brand-d)}
@media(max-width:860px){.nav-improved nav a:not(.nav-cta){display:none}}

/* Hero */
.hero{position:relative;color:#fff;text-align:center;padding:104px 0 118px;background:linear-gradient(125deg,rgba(15,37,67,.93),rgba(30,79,143,.82)),url('/assets/images/banner.jpg') center/cover}
.hero .kick{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:7px 16px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.hero h1{font-size:clamp(31px,5vw,54px);font-weight:800;margin:18px 0 14px;line-height:1.08}
.hero h1 .hl{color:var(--accent)}
.hero p{font-size:18px;opacity:.95;max-width:660px;margin:0 auto}
.searchbar{display:flex;gap:8px;background:#fff;border-radius:999px;padding:8px;max-width:780px;margin:36px auto 18px;box-shadow:var(--shadow-h)}
.searchbar .field{display:flex;align-items:center;gap:8px;padding:0 14px}
.searchbar .field .fa{color:var(--brand)}
.searchbar select,.searchbar input{border:0;outline:0;font-size:15px;color:var(--ink);background:transparent;padding:13px 4px}
.searchbar select{border-right:1px solid var(--line);max-width:210px}
.searchbar input{flex:1}
.searchbar button{border:0;background:var(--accent);color:#16202c;font-weight:700;padding:13px 28px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.searchbar button:hover{background:var(--accent-d)}
.hero .quicklinks{margin-top:8px;font-size:14px;opacity:.92}
.hero .quicklinks a{color:#fff;border-bottom:1px dotted rgba(255,255,255,.5);margin:0 8px}
.hero .quicklinks a:hover{color:var(--accent);border-color:var(--accent)}
@media(max-width:640px){.searchbar{flex-wrap:wrap;border-radius:20px}.searchbar select{max-width:none;border-right:0;border-bottom:1px solid var(--line);width:100%}.searchbar .field{width:100%}.searchbar input{width:100%}.searchbar button{width:100%;justify-content:center}}

/* Réassurance */
.reassure{background:#fff;border-bottom:1px solid var(--line)}
.reassure .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:30px 20px}
@media(max-width:760px){.reassure .wrap{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.reassure .wrap{grid-template-columns:1fr}}
.reassure .it{display:flex;align-items:center;gap:14px}
.reassure .ic{width:46px;height:46px;min-width:46px;border-radius:12px;background:var(--brand-l);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:20px}
.reassure b{display:block;font-size:15px;color:var(--ink)}
.reassure span{font-size:13px;color:var(--muted)}

/* Catégories */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.cat-grid{grid-template-columns:1fr}}
.cat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 20px;text-align:center;transition:.22s;display:block}
.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}
.cat-card .ic{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;background:var(--brand-l);color:var(--brand);font-size:27px;transition:.22s}
.cat-card:hover .ic{background:var(--brand);color:#fff}
.cat-card h3{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--ink)}
.cat-card small{color:var(--muted)}

/* Cartes fiche */
.list-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.list-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.list-grid{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.22s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-h);border-color:transparent}
.card .ph{position:relative;aspect-ratio:4/3;background:var(--bg);overflow:hidden;display:block}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:.4s}
.card:hover .ph img{transform:scale(1.06)}
.card .tag{position:absolute;top:12px;left:12px;background:rgba(15,37,67,.82);color:#fff;font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.card .rate{position:absolute;bottom:12px;right:12px;background:#fff;color:var(--ink);font-weight:700;font-size:13px;padding:5px 10px;border-radius:999px;box-shadow:var(--shadow)}
.card .rate .fa{color:var(--star)}
.card .body{padding:18px 18px 20px;flex:1;display:flex;flex-direction:column}
.card .body h3{font-size:17px;font-weight:600;margin:0 0 8px;line-height:1.3}
.card .body h3 a{color:var(--ink)}.card .body h3 a:hover{color:var(--brand)}
.card .meta{color:var(--muted);font-size:14px;margin:0 0 4px;display:flex;align-items:center;gap:7px}
.card .stars{color:var(--star);font-size:13px;margin:6px 0 14px}
.card .stars small{color:var(--muted);margin-left:4px}
.card .tel{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--brand-d);background:var(--brand-l);padding:10px 14px;border-radius:10px;justify-content:center}
.card .tel:hover{background:var(--brand);color:#fff}

/* Stats */
.stats{background:linear-gradient(125deg,var(--brand-dd),var(--brand));color:#fff}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
@media(max-width:620px){.stats .wrap{grid-template-columns:repeat(2,1fr)}}
.stat .n{font-size:42px;font-weight:800;line-height:1;color:#fff}
.stat .l{opacity:.85;margin-top:7px;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase}
.stat>.fa{font-size:22px;color:var(--accent);margin-bottom:10px}

/* Récentes */
.recent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:760px){.recent-grid{grid-template-columns:1fr}}
.rcard{display:flex;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.22s}
.rcard:hover{box-shadow:var(--shadow);border-color:transparent}
.rcard .ph{width:150px;min-width:150px;background:var(--bg);position:relative;display:block}
.rcard .ph img{width:100%;height:100%;object-fit:cover}
.rcard .tag{position:absolute;top:10px;left:10px;background:rgba(15,37,67,.82);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px}
.rcard .body{padding:16px 18px;display:flex;flex-direction:column;justify-content:center}
.rcard h3{font-size:16px;margin:0 0 6px}.rcard h3 a{color:var(--ink)}.rcard h3 a:hover{color:var(--brand)}
.rcard .meta{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px;margin-bottom:4px}
.rcard .stars{color:var(--star);font-size:12px}.rcard .stars small{color:var(--muted)}
@media(max-width:420px){.rcard .ph{width:112px;min-width:112px}}

/* Villes */
.city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.city-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.city-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:400px){.city-grid{grid-template-columns:1fr}}
.city-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-s);padding:15px 18px;transition:.18s}
.city-card:hover{border-color:var(--brand);background:var(--brand-l)}
.city-card .nm{font-weight:600;color:var(--ink);display:flex;align-items:center;gap:9px}
.city-card .nm .fa{color:var(--brand)}
.city-card .ct{font-size:12.5px;color:var(--muted);background:var(--bg);padding:3px 9px;border-radius:999px}

/* Blog */
.blog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.blog-grid{grid-template-columns:1fr}}
.bcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.22s}
.bcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-h);border-color:transparent}
.bcard .ph{display:block;aspect-ratio:16/10;background:var(--brand-l);overflow:hidden;position:relative}
.bcard .ph img{width:100%;height:100%;object-fit:cover;transition:.4s}
.bcard:hover .ph img{transform:scale(1.06)}
.bcard .ph-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:34px;opacity:.5}
.bcard .body{padding:18px;display:flex;flex-direction:column;flex:1}
.bcard .date{color:var(--muted);font-size:12.5px;margin-bottom:8px}
.bcard .date .fa{color:var(--brand);margin-right:5px}
.bcard h3{font-size:16px;font-weight:600;line-height:1.35;margin:0 0 10px}
.bcard h3 a{color:var(--ink)}.bcard h3 a:hover{color:var(--brand)}
.bcard p{color:var(--muted);font-size:14px;margin:0 0 14px;flex:1}
.bcard .more{margin-top:auto;font-weight:600;font-size:14px;color:var(--brand)}
.bcard .more:hover{color:var(--brand-d)}

/* Prose SEO */
.prose{max-width:880px;margin:0 auto;color:var(--muted);font-size:15.5px}
.prose h2{font-size:27px;color:var(--brand-d);margin:0 0 16px}
.prose h3{font-size:19px;color:var(--ink);margin:28px 0 10px}
.prose p{margin:0 0 16px}
.prose a{color:var(--brand);font-weight:500}

/* FAQ */
.faq{max-width:820px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius-s);margin-bottom:12px;overflow:hidden}
.faq details[open]{box-shadow:var(--shadow);border-color:transparent}
.faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;color:var(--brand-d);display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pl{color:var(--brand);transition:.2s;font-size:18px}
.faq details[open] summary .pl{transform:rotate(45deg)}
.faq .ans{padding:0 22px 20px;color:var(--muted);font-size:15px}

/* Footer */
.ft{background:#0f2543;color:#aebfd4;padding:62px 0 0;font-size:14.5px}
.ft .wrap{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:40px}
@media(max-width:860px){.ft .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ft .wrap{grid-template-columns:1fr}}
.ft h4{color:#fff;font-size:16px;margin:0 0 16px}
.ft .brand{color:#fff;font-size:22px;font-weight:800;margin-bottom:14px;display:inline-block}
.ft .brand b{color:var(--accent)}
.ft ul{list-style:none;padding:0;margin:0}.ft li{margin-bottom:9px}
.ft a{color:#aebfd4}.ft a:hover{color:#fff}
.ft .soc a{display:inline-flex;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);align-items:center;justify-content:center;margin-right:8px;color:#fff}
.ft .soc a:hover{background:var(--brand)}
.ft-bottom{border-top:1px solid rgba(255,255,255,.10);margin-top:48px;padding:22px 0;text-align:center;color:#8095ad}

/* Logo */
.brand{display:inline-flex;align-items:center;gap:0}
.brand-logo{height:36px;width:36px;display:block;flex:none}
.ft .brand{display:inline-flex;align-items:center;gap:0}
.ft .brand-logo{height:34px;width:34px}

/* Avis / témoignages */
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.review-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.review-grid{grid-template-columns:1fr}}
.review{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:0;display:flex;flex-direction:column;gap:14px;position:relative}
.review:hover{box-shadow:var(--shadow)}
.review .stars{color:var(--star);font-size:14px}
.review blockquote{margin:0;color:var(--ink);font-size:15px;line-height:1.6;flex:1}
.review figcaption{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.review .av{width:42px;height:42px;min-width:42px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;text-transform:uppercase}
.review .who{display:flex;flex-direction:column;line-height:1.3}
.review .who b{font-size:14.5px;color:var(--ink)}
.review .who small{font-size:12.5px;color:var(--muted)}
.review .who small a{color:var(--brand)}

/* Autour de moi */
.geo-row{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.btn-geo{display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--brand-d);border:0;font-weight:700;font-size:15px;padding:12px 22px;border-radius:999px;cursor:pointer;box-shadow:var(--shadow);transition:.2s}
.btn-geo:hover{background:var(--accent);color:#16202c}
.btn-geo .fa{color:var(--brand)}
.btn-geo:hover .fa{color:#16202c}
.btn-geo.is-busy{opacity:.7;cursor:progress}
.btn-geo.is-busy .fa{animation:geospin 1s linear infinite}
@keyframes geospin{to{transform:rotate(360deg)}}
.geo-hint{color:#fff;opacity:.9;font-size:14px}
#autour-status{font-weight:500}
.card .dist{position:absolute;bottom:12px;left:12px;background:var(--brand);color:#fff;font-weight:700;font-size:12px;padding:5px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}
@media(max-width:560px){.geo-hint{display:none}}

/* ===== Listing catégorie ===== */
.cat-hero{background:linear-gradient(125deg,var(--brand-dd),var(--brand));color:#fff;padding:38px 0 34px}
.cat-hero .crumb{font-size:13px;opacity:.9;margin-bottom:12px}
.cat-hero .crumb a{color:#fff;border-bottom:1px dotted rgba(255,255,255,.5)}
.cat-hero .crumb a:hover{color:var(--accent)}
.cat-hero .crumb .fa{margin:0 6px;opacity:.7}
.cat-hero h1{font-size:clamp(26px,4vw,38px);font-weight:800;margin:0 0 8px}
.cat-hero p{margin:0;opacity:.95;font-size:15.5px}
.cat-hero strong{color:var(--accent)}

.listing-sec{padding:40px 0 64px}
.listing-layout{display:grid;grid-template-columns:262px 1fr;gap:30px;align-items:start}
@media(max-width:880px){.listing-layout{grid-template-columns:1fr}}

.filters{position:sticky;top:90px}
@media(max-width:880px){.filters{position:static}}
.filters form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.filter-block{margin-bottom:18px}
.filter-block h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.filters select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--ink);background:#fff}
.filters select:focus{outline:0;border-color:var(--brand)}
.filters .reset{display:inline-flex;align-items:center;gap:7px;margin-top:4px;font-size:13.5px;color:#b34}
.filters .reset:hover{text-decoration:underline}

.listing-main .list-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:1100px){.listing-main .list-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.listing-main .list-grid{grid-template-columns:1fr}}

.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty .fa{font-size:38px;color:var(--line);margin-bottom:14px}
.empty p{margin:0 0 18px}

.pagination{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-top:40px}
.pagination .pg{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-weight:600}
.pagination .pg:hover{border-color:var(--brand);color:var(--brand)}
.pagination .pg.active{background:var(--brand);border-color:var(--brand);color:#fff}
.pagination .dots{padding:0 6px;color:var(--muted);align-self:center}

/* ===== Catégorie façon "points relais" ===== */
.cat-hero .kick{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;display:inline-block;padding:6px 14px;border-radius:999px;margin-bottom:12px;letter-spacing:.08em}
.cat-hero .crumb{margin-top:12px}
.cat-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
/* Bouton fantôme sur hero foncé : forcer le texte blanc par-dessus
   « .tpl-improved a.btn-ghost » (sinon texte bleu sur fond bleu = invisible). */
.tpl-improved .cat-actions a.btn-ghost,
.cat-actions .btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.45);backdrop-filter:blur(2px)}
.tpl-improved .cat-actions a.btn-ghost:hover,
.cat-actions .btn-ghost:hover{background:#fff;color:var(--brand-d);border-color:#fff}

.cat-hero h1{font-size:clamp(26px,4vw,42px);font-weight:800;line-height:1.12;margin:8px 0 12px}
.cat-hero h1 .h1-sub{font-weight:600;font-size:.6em;opacity:.85}
.cat-hero h1 .h1-sub::before{content:"— ";opacity:.65}
.cat-hero .kick .fa{margin-right:6px}
.cat-hero-lead{font-size:17px;line-height:1.5;opacity:.95;max-width:700px;margin:0}
.cat-hero-lead strong{color:#fff;font-weight:800}
/* badge de distance dans la liste */
.dist-q{display:inline-flex;align-items:center;gap:5px;background:var(--brand-l);color:var(--brand-d);font-weight:600;font-size:12.5px;padding:2px 9px;border-radius:999px;white-space:nowrap}
.dist-q .fa{font-size:11px}
/* créneau "ouvert le dimanche" dans la liste */
.dim-h{margin-top:6px;display:inline-flex;align-items:center;gap:7px;background:#e7f6ec;color:#166534;font-size:13px;padding:4px 11px;border-radius:8px}
.dim-h .fa{font-size:12px}.dim-h strong{font-weight:700}
/* Autocomplete villes */
.ac-host{position:relative}
.ac-box{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(15,37,67,.18);z-index:60;max-height:340px;overflow:auto;padding:6px;text-align:left}
.ac-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;cursor:pointer;font:inherit;color:var(--ink)}
.ac-item:hover,.ac-item.is-active{background:var(--brand-l)}
.ac-item .ac-nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-item .ac-nm .fa{color:var(--brand);margin-right:7px}
.ac-item .ac-meta{font-size:12.5px;color:var(--muted);white-space:nowrap}

/* ===== Page Contact ===== */
.ct-h2{font-size:24px;color:var(--brand-d);margin:38px 0 16px}
.ct-ok{display:flex;gap:14px;align-items:flex-start;background:#e7f6ec;border:1px solid #b7e3c4;border-radius:14px;padding:16px 18px;margin-bottom:8px}
.ct-ok .fa{color:#15803d;font-size:24px;margin-top:2px}.ct-ok p{margin:4px 0 0;color:#166534}
.ct-search{background:var(--brand-l);border-radius:16px;padding:22px;margin:6px 0 8px}
.ct-search h2{font-size:20px;color:var(--brand-d);margin:0 0 4px}
.ct-search .searchbar{margin-top:14px;box-shadow:none;background:#fff;border:1px solid var(--line)}
.ct-intents{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ct-card{display:flex;align-items:center;gap:11px;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:15px 16px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;transition:.15s}
.ct-card .fa{color:var(--brand);font-size:18px;width:22px;text-align:center}
.ct-card:hover{border-color:var(--brand);background:var(--brand-l)}
.ct-card.is-active{border-color:var(--brand);background:var(--brand);color:#fff}
.ct-card.is-active .fa{color:#fff}
.ct-ss{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:16px}
.ct-ss h3{margin:0 0 10px;font-size:18px;color:var(--brand-d)}.ct-ss h3 .fa{margin-right:7px;color:var(--brand)}
.ct-ss p{color:var(--muted);margin:0 0 8px;line-height:1.55}
.ct-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.ct-err{background:#fdecec;border:1px solid #f3b4b4;color:#b91c1c;border-radius:10px;padding:10px 13px}
.ct-form label{display:block;font-weight:600;color:var(--ink);font-size:14px;margin-top:14px}
.ct-form input,.ct-form textarea{width:100%;max-width:100%;box-sizing:border-box;margin-top:6px;padding:11px 12px;border:1px solid #d6dbe2;border-radius:9px;font:inherit}
.ct-form .ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ct-form .ct-cap input{display:inline-block;margin-top:8px}
.ct-form .ct-rgpd{display:flex;gap:9px;align-items:flex-start;font-weight:400;color:var(--muted);font-size:13.5px}
.ct-form .ct-rgpd input{width:auto;margin-top:3px}
.ct-form .btn{margin-top:18px}
@media(max-width:560px){.ct-form .ct-grid{grid-template-columns:1fr}}
.ct-faq{display:flex;flex-direction:column;gap:10px}
.ct-faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 18px}
.ct-faq summary{cursor:pointer;font-weight:600;color:var(--ink);padding:15px 0;list-style:none}
.ct-faq summary::-webkit-details-marker{display:none}
.ct-faq summary::after{content:"+";float:right;color:var(--brand);font-weight:700;font-size:20px;line-height:1}
.ct-faq details[open] summary::after{content:"\2013"}
.ct-faq details p{color:var(--muted);margin:0 0 16px;line-height:1.55}

/* Barre de liens légaux dans le pied de page */
.ft-legal{display:block;margin-bottom:8px;font-size:13px}
.ft-legal a{color:inherit;opacity:.85;white-space:nowrap}
.ft-legal a:hover{opacity:1;text-decoration:underline}

/* Barre d'appel collée en bas (mobile) sur la fiche */
.fiche-callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(15,37,67,.16);padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));transform:translateY(125%);transition:transform .25s ease}
.fiche-callbar.is-visible{transform:translateY(0)}
.fiche-callbar .act{width:100%;justify-content:center}
.fiche-callbar .sva-block{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}
@media(max-width:760px){.fiche-callbar{display:block}}

/* Villes les plus demandées */
.villes-demandees{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:10px}
.villes-demandees a{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--ink);transition:.16s}
.villes-demandees a:hover,.villes-demandees a.active{border-color:var(--brand);background:var(--brand-l);color:var(--brand-d)}
.villes-demandees .vn{font-weight:500}
.villes-demandees .vc{font-size:12px;color:#fff;background:var(--brand);min-width:30px;text-align:center;padding:2px 8px;border-radius:999px}
.villes-demandees a:hover .vc{background:var(--accent);color:#16202c}

.intro-cat{padding:42px 0 10px}
.intro-cat .prose{font-size:15.5px}

/* Liste d'établissements (lignes) */
.listing-sec{padding:30px 0 64px}
.listing-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.listing-head h2{font-size:22px;color:var(--brand-d);margin:0}
.sortbar{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--muted)}
.sortbar select{padding:8px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;color:var(--ink);background:#fff}
.sortbar .reset{color:#b34;display:inline-flex;align-items:center;gap:6px}
.sortbar .reset:hover{text-decoration:underline}

.relais-list{display:flex;flex-direction:column;gap:14px}
.relais{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;transition:.18s}
.relais:hover{box-shadow:var(--shadow);border-color:transparent}
.relais-info{min-width:0}
.enseigne{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--brand);background:var(--brand-l);padding:3px 9px;border-radius:6px;margin-bottom:8px}
.relais-info h3{font-size:18px;font-weight:600;margin:0 0 6px}
.relais-info h3 a{color:var(--ink)}.relais-info h3 a:hover{color:var(--brand)}
.relais-info .adr{color:var(--muted);font-size:14px;line-height:1.45}
.relais-info .rev{color:var(--star);font-size:13px;margin-top:7px}
.relais-info .rev small{color:var(--muted);margin-left:4px}
.relais-info .rev .noavis{font-style:italic}
.relais-actions{display:flex;flex-direction:column;gap:9px;align-items:stretch;min-width:172px}
@media(max-width:640px){.relais{flex-direction:column;align-items:flex-start}.relais-actions{flex-direction:row;width:100%;min-width:0}}
.see-num,.tel-revealed,.btn-fiche{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px;padding:11px 16px;border-radius:10px;cursor:pointer;white-space:nowrap}
.see-num{background:var(--brand-l);color:var(--brand-d);border:0}
.see-num:hover{background:var(--brand);color:#fff}
.tel-revealed{background:var(--ok);color:#fff}
.btn-fiche{background:var(--brand);color:#fff;border:0}
.btn-fiche:hover{background:var(--brand-d);color:#fff}

.page-info{text-align:center;color:var(--muted);font-size:14px;margin-top:34px;margin-bottom:8px}

/* Footer riche */
.ft-rich .wrap{grid-template-columns:1.6fr 1.2fr 1fr}
@media(max-width:760px){.ft-rich .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ft-rich .wrap{grid-template-columns:1fr}}
.ft-rich .mini-list li{margin-bottom:11px;line-height:1.3}
.ft-rich .mini-list .mut{display:block;font-size:12px;color:#7d8c9b}

/* ===== Fiche détail ===== */
.fiche-crumb{background:var(--bg);border-bottom:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.fiche-crumb .wrap{padding:12px 20px}
.fiche-crumb a{color:var(--brand)}.fiche-crumb .fa{margin:0 7px;opacity:.6}
.fiche-layout{display:grid;grid-template-columns:1fr 340px;gap:30px;align-items:start;padding:34px 20px 64px}
@media(max-width:920px){.fiche-layout{grid-template-columns:1fr}}
/* Anti-débordement mobile : les enfants de grille doivent pouvoir rétrécir
   (min-width:auto par défaut les empêche de passer sous la largeur de leur contenu). */
.fiche-main,.fiche-side{min-width:0}
.fiche-main img{max-width:100%;height:auto}
.fiche-main table{max-width:100%}
.fiche-main h1,.fiche-main h2,.fiche-main h3,.fiche-main p,.fiche-main li,.fiche-main a{overflow-wrap:anywhere;word-break:break-word}
.contact-pro-form input,.contact-pro-form textarea{max-width:100%;box-sizing:border-box;min-width:0}
@media(max-width:560px){.contact-pro-form>div{grid-template-columns:1fr!important}}

.fiche-head .enseigne{margin-bottom:10px}
.fiche-head h1{font-size:clamp(24px,3.2vw,34px);font-weight:800;color:var(--brand-d);margin:0 0 6px}
.fiche-head .sub{color:var(--muted);margin:0 0 12px;font-size:15.5px}
.fiche-rating{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fiche-rating .rate-big{font-size:26px;font-weight:800;color:var(--ink)}
.fiche-rating .stars{color:var(--star)}
.fiche-rating .nb{color:var(--muted);font-size:14px}
.open-badge{font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px}
.open-badge.is-open{background:#e6f6ee;color:var(--ok)}
.open-badge.is-closed{background:#fdeaea;color:#c0392b}

.gallery{margin:22px 0}
.gal-main{border-radius:var(--radius);overflow:hidden;aspect-ratio:3/2;background:var(--bg)}
.gal-main img{width:100%;height:100%;object-fit:cover}
.gal-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.gal-thumbs .thumb{width:90px;height:64px;border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;cursor:pointer;background:none}
.gal-thumbs .thumb img{width:100%;height:100%;object-fit:cover}
.gal-thumbs .thumb.active{border-color:var(--brand)}

.fiche-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 8px}
.fiche-actions .act{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px;padding:13px 22px;border-radius:12px;cursor:pointer;border:0}
.fiche-actions .see-num{background:var(--brand);color:#fff}.fiche-actions .see-num:hover{background:var(--brand-d)}
.fiche-actions .act-2{background:var(--accent);color:#16202c}.fiche-actions .act-2:hover{background:var(--accent-d)}
.fiche-actions .act-3{background:var(--brand-l);color:var(--brand-d)}.fiche-actions .act-3:hover{background:var(--brand);color:#fff}
.fiche-actions .act-booking{background:#0071c2;color:#fff}.fiche-actions .act-booking:hover{background:#00487a}
.fiche-actions .tel-revealed{background:var(--ok);color:#fff;font-size:15px;padding:13px 22px;border-radius:12px}

.fiche-block{margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.fiche-block h2{font-size:21px;color:var(--brand-d);margin:0 0 16px}
.fiche-block .prose{color:var(--muted);font-size:15.5px}

.horaires{width:100%;border-collapse:collapse;max-width:420px}
.horaires th{text-align:left;font-weight:500;color:var(--ink);padding:9px 0;width:120px}
.horaires td{padding:9px 0;color:var(--muted);text-align:right}
.horaires tr{border-bottom:1px solid var(--line)}
.horaires tr.today th,.horaires tr.today td{font-weight:700;color:var(--brand-d)}
.horaires .ferme{color:#c0392b}

.avis-summary{display:flex;gap:30px;align-items:center;background:var(--bg);border-radius:var(--radius);padding:20px 24px;margin-bottom:22px;flex-wrap:wrap}
.as-note{text-align:center}
.as-note span{font-size:40px;font-weight:800;color:var(--ink);line-height:1}
.as-note .stars{color:var(--star);display:block;margin:4px 0}
.as-note small{color:var(--muted)}
.as-bars{flex:1;min-width:200px}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:5px;font-size:13px;color:var(--muted)}
.bar-row .bl{width:26px}.bar-row .bc{width:34px;text-align:right}
.bar-row .bar{flex:1;height:8px;background:var(--line);border-radius:999px;overflow:hidden}
.bar-row .bar span{display:block;height:100%;background:var(--star)}

.avis-list{display:flex;flex-direction:column;gap:18px}
.avis-item{border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.avis-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.avis-h .av{width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;text-transform:uppercase}
.avis-h b{display:block;font-size:14.5px}
.avis-h .stars{color:var(--star);font-size:13px}
.avis-h time{margin-left:auto;color:var(--muted);font-size:13px}
.avis-item p{margin:0;color:var(--ink);font-size:15px;line-height:1.6}
.avis-rep{margin-top:12px;padding:12px 14px;background:var(--bg);border-radius:10px;font-size:14px;color:var(--muted)}

.fiche-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:90px}
@media(max-width:920px){.fiche-side{position:static}}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.side-card.nopad{padding:0;overflow:hidden}
.side-card h3{font-size:16px;color:var(--brand-d);margin:0 0 14px}
.coord{list-style:none;padding:0;margin:0 0 16px}
.coord li{display:flex;gap:10px;align-items:flex-start;margin-bottom:11px;font-size:14.5px;color:var(--ink)}
.coord .fa{color:var(--brand);margin-top:3px}
.coord a,.coord .see-num.link{color:var(--brand);background:none;border:0;padding:0;cursor:pointer;font:inherit}
.coord .see-num.link:hover{text-decoration:underline}
.map{width:100%;height:230px;border:0;display:block}
.map-link{display:block;text-align:center;padding:11px;font-size:14px;font-weight:600;color:var(--brand);border-top:1px solid var(--line)}
.map-link:hover{background:var(--bg)}
.similar{list-style:none;padding:0;margin:0}
.similar li{border-bottom:1px solid var(--line)}.similar li:last-child{border:0}
.similar a{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 0;color:var(--ink)}
.similar a:hover .sn{color:var(--brand)}
.similar .sn{font-weight:500;font-size:14.5px}
.similar .sr{color:var(--star);font-size:13px;white-space:nowrap}.similar .sr small{color:var(--muted)}

/* Distance dans la liste quartier */
.relais-info .dist-q{color:var(--brand);font-weight:600;white-space:nowrap}
.relais-info .dist-q .fa{font-size:11px}

/* ===== Fiche : galerie (style Viavi) ===== */
.gallery2{margin:22px 0}
.g-main{position:relative;display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/2;background:var(--bg);cursor:zoom-in}
.g-main img{width:100%;height:100%;object-fit:cover;transition:.4s}
.g-main:hover img{transform:scale(1.03)}
.g-zoom{position:absolute;bottom:14px;right:14px;width:42px;height:42px;border-radius:50%;background:rgba(15,37,67,.82);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.g-thumbs{display:flex;gap:10px;margin-top:10px;overflow-x:auto;padding-bottom:4px}
.g-thumb{flex:0 0 auto;width:94px;height:68px;border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;cursor:pointer;background:none}
.g-thumb img{width:100%;height:100%;object-fit:cover}
.g-thumb.active{border-color:var(--brand)}

/* Photos des avis */
.avis-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.avp{width:74px;height:74px;border-radius:8px;overflow:hidden;display:block;cursor:zoom-in}
.avp img{width:100%;height:100%;object-fit:cover;transition:.25s}
.avp:hover img{transform:scale(1.08)}

/* Quartiers voisins */
.nearbyq{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:640px){.nearbyq{grid-template-columns:1fr}}
.nq{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.nq-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.nq-t{font-weight:600;color:var(--brand-d)}.nq-t .fa{color:var(--brand);margin-right:5px}
.nq-t:hover{color:var(--brand)}
.nq-m{font-size:12.5px;color:var(--muted);white-space:nowrap;background:var(--bg);padding:2px 9px;border-radius:999px}
.nq-list{list-style:none;padding:0;margin:0}
.nq-list li{font-size:14px;padding:6px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px}
.nq-list li:first-child{border-top:0}
.nq-list a{color:var(--ink)}.nq-list a:hover{color:var(--brand)}
.nq-r{color:var(--star);font-size:12.5px;white-space:nowrap}

/* Lightbox */
.lb-overlay{position:fixed;inset:0;background:rgba(10,20,35,.93);display:none;align-items:center;justify-content:center;z-index:200;padding:30px}
.lb-overlay.open{display:flex}
.lb-overlay img{max-width:92vw;max-height:86vh;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.55);user-select:none;-webkit-user-drag:none;touch-action:pan-y}
.lb-count{position:fixed;left:50%;bottom:54px;transform:translateX(-50%);color:#fff;font-size:13.5px;font-weight:600;background:rgba(0,0,0,.5);padding:6px 14px;border-radius:999px;pointer-events:none}
.lb-credit{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);color:rgba(255,255,255,.68);font-size:10px;line-height:1.2;white-space:nowrap;text-align:center;pointer-events:none}
.g-credit{margin:8px 2px 0;font-size:11.5px;color:var(--muted)}.g-credit .fa{margin-right:5px;opacity:.7}
.lb-close{position:absolute;top:18px;right:28px;color:#fff;font-size:36px;line-height:1;cursor:pointer}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:42px;cursor:pointer;padding:12px;user-select:none;opacity:.8}
.lb-nav:hover{opacity:1}.lb-prev{left:12px}.lb-next{right:12px}
@media(max-width:560px){.lb-nav{font-size:30px}}

/* Fiche : réseaux sociaux + chips (services/spécialités) + infos web */
.soc-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.soc-link{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--brand-l);color:var(--brand-d);font-size:17px;transition:.2s}
.soc-link:hover{background:var(--brand);color:#fff;transform:translateY(-2px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{font-size:13px;color:var(--brand-d);background:var(--brand-l);padding:5px 12px;border-radius:999px}
.chip-acc{background:#fdf0d8;color:var(--accent-d);font-weight:600}
.coord .fa-envelope-o,.coord .fa-building-o{color:var(--brand)}

/* Fiche : informations légales (Sirene) */
.legal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 28px;margin:0}
@media(max-width:560px){.legal{grid-template-columns:1fr}}
.legal>div{display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding-bottom:9px}
.legal dt{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.legal dd{margin:3px 0 0;font-size:15px;color:var(--ink);font-weight:500}
.legal .etat-A{color:var(--ok);font-weight:700}
.legal .etat-C{color:#c0392b;font-weight:700}
.legal-src{margin-top:14px;font-size:12px;color:var(--muted)}

/* Fiche : en-tête avis + bouton "Écrire un avis" */
.avis-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.avis-head h2{margin:0}
.btn-avis{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#16202c;font-weight:700;font-size:14px;padding:10px 18px;border-radius:999px;white-space:nowrap;transition:.2s}
.btn-avis:hover{background:var(--accent-d);color:#16202c}

/* Fiche : formulaire interne « Écrire un avis » */
.avis-flash{display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:12px;font-size:14.5px;margin:14px 0}
.avis-flash.ok{background:#e9f8ef;color:#176c3a;border:1px solid #bfe6cd}
.avis-flash.err{background:#fdecec;color:#a12626;border:1px solid #f3c4c4}
.avis-form{display:block;margin:18px 0 4px;padding:22px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}
.avis-form h3{margin:0 0 16px;font-size:18px;color:var(--brand-d)}
.avis-form label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px}
.avis-form .opt{font-weight:400;color:var(--muted)}
.avis-form input[type=text],.avis-form input[type=email],.avis-form textarea{width:100%;margin-top:5px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400;color:var(--ink);background:#fff}
.avis-form input:focus,.avis-form textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.avis-form textarea{resize:vertical;min-height:110px}
.avis-form{position:relative}
.af-hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.af-row{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.af-lbl{font-size:13.5px;font-weight:600}
.stars-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.stars-input input{position:absolute;opacity:0;width:0;height:0}
.stars-input label{margin:0;cursor:pointer;font-size:26px;color:#d5dce6;transition:color .12s}
.stars-input label:hover,.stars-input label:hover ~ label,.stars-input input:checked ~ label{color:var(--star)}
.stars-input input:focus-visible + label{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.af-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:560px){.af-grid{grid-template-columns:1fr}}
.af-full{margin-bottom:16px}
.af-actions{display:flex;align-items:center;gap:16px}
.af-cancel{font-size:14px;color:var(--muted)}
.af-cancel:hover{color:var(--brand)}
.af-note{margin:14px 0 0;font-size:12.5px;color:var(--muted)}

/* Mobile : bouton "Rechercher" -> loupe seule (le texte est masqué via font-size:0) */
@media(max-width:860px){
  .nav-cta{padding:10px 13px}
  .nav-cta .cta-txt{display:none}
  .nav-cta .fa{margin:0}
}

/* Titre de la liste des avis (après le formulaire de rédaction) */
.avis-list-title{margin-top:48px;padding-top:28px;border-top:1px solid var(--line)}

/* Les boutons sont des <a> : forcer la couleur du texte par-dessus « .tpl-improved a »
   (sinon texte bleu sur fond bleu = bouton invisible au repos). */
.tpl-improved a.btn{color:#fff}
.tpl-improved a.btn:hover{color:#fff}
.tpl-improved a.btn-accent{color:#16202c}
.tpl-improved a.btn-ghost{color:var(--brand)}
.tpl-improved a.btn-ghost:hover{color:#fff}

/* Bouton « Signaler » sur un avis */
.avis-foot{margin-top:12px;display:flex;justify-content:flex-end}
.avis-report{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:.15s}
.avis-report:hover{color:#c0392b;background:#fdecec}

/* Modal (signalement d'avis) */
.modal-overlay{display:none;position:fixed;inset:0;z-index:120;background:rgba(15,37,67,.55);backdrop-filter:blur(2px);align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex}
.modal-box{position:relative;background:#fff;border-radius:var(--radius);padding:28px;max-width:480px;width:100%;box-shadow:var(--shadow-h);max-height:90vh;overflow:auto}
.modal-box h3{margin:0 0 6px;color:var(--brand-d);font-size:19px}
.modal-close{position:absolute;top:10px;right:14px;background:none;border:0;font-size:28px;line-height:1;color:var(--muted);cursor:pointer}
.modal-close:hover{color:var(--ink)}
.rm-target{color:var(--muted);font-size:13.5px;font-style:italic;margin:0 0 16px;background:var(--bg);padding:10px 12px;border-radius:10px}
.rm-target:empty{display:none}
.rm-hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.rm-reasons{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.rm-reasons label{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer}
.rm-msg{display:block;font-size:13.5px;font-weight:600;margin-bottom:18px}
.rm-msg textarea{width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400;resize:vertical;min-height:72px}
.rm-msg textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.rm-actions{display:flex;align-items:center;gap:16px}
.rm-cancel{background:none;border:0;color:var(--muted);font:inherit;cursor:pointer}
.rm-cancel:hover{color:var(--brand)}

/* « Voir la fiche » est aussi un <a> : forcer le texte blanc par-dessus « .tpl-improved a ». */
.tpl-improved a.btn-fiche{color:#fff}
.tpl-improved a.btn-fiche:hover{color:#fff}

/* Fiche : carte + modal « propriétaire » */
.proprio-card .proprio-note{font-size:13px;color:var(--muted);margin:0 0 12px}
.modal-box-lg{max-width:600px}
.om-type{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.om-type label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;cursor:pointer}

/* Modal propriétaire : menu d'options + champs adaptatifs */
.om-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
@media(max-width:520px){.om-list{grid-template-columns:1fr}}
.om-opt{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-weight:600;font-size:15px;color:var(--ink);cursor:pointer;text-align:left;transition:.15s}
.om-opt span{font-size:19px;width:24px;text-align:center}
.om-opt:hover{border-color:var(--brand);background:var(--brand-l)}
.om-opt-danger{color:#c0392b}
.om-opt-danger:hover{border-color:#c0392b;background:#fdecec}
.om-form .om-back{background:none;border:0;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;padding:0;margin-bottom:6px}
.om-form .om-back:hover{color:var(--brand)}
.om-field{display:none;margin-bottom:4px}
.om-danger-note{background:#fdecec;border:1px solid #f3c4c4;color:#a12626;padding:12px 14px;border-radius:10px;font-size:14px;margin:0 0 4px}

/* ============ Modal propriétaire — refonte UI ============ */
#owner-modal .modal-box{padding:26px 28px}
#owner-modal h3{font-size:20px;color:var(--brand-d);margin:0 0 4px}
.om-lbl{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:14px}
.om-lbl input,.om-lbl textarea{display:block;width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400;color:var(--ink);background:#fff}
.om-lbl input:focus,.om-lbl textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.om-lbl textarea{resize:vertical;min-height:80px}
.om-row2{display:grid;grid-template-columns:1fr 2fr;gap:14px}
@media(max-width:480px){.om-row2{grid-template-columns:1fr}}
.om-hint{font-size:13px;color:var(--muted);margin:0 0 12px}
.om-sub{font-size:12.5px;color:#9a6b00;background:#fff7e6;border:1px solid #ffe2a8;border-radius:8px;padding:7px 11px;margin:-8px 0 16px}
.om-note-email{font-size:12px;color:var(--muted);margin:12px 0 0}
.om-delais{font-size:12.5px;color:var(--muted);background:var(--bg);border-radius:10px;padding:11px 13px;margin:14px 0 0;line-height:1.5}
.om-delais strong{color:var(--ink)}

/* Horaires structurés */
.hr-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:6px}
.hr-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hr-day{width:88px;min-width:88px;font-size:13.5px;font-weight:600;color:var(--ink)}
.hr-slot{display:inline-flex;align-items:center;gap:6px}
.hr-slot i{color:var(--muted);font-style:normal}
.hr-slot input[type=time]{padding:7px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink)}
.hr-slot input[type=time]:focus{outline:0;border-color:var(--brand)}
@media(max-width:560px){.hr-day{width:100%;margin-bottom:2px}}

/* Suppression : accordéon des 2 méthodes */
.sup-methods{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}
.sup-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-weight:600;font-size:15px;color:var(--ink);cursor:pointer;text-align:left}
.sup-opt:hover{border-color:var(--brand)}
.sup-opt.open{border-color:var(--brand);background:var(--brand-l)}
.sup-h{display:flex;align-items:center;gap:10px}
.sup-ic{font-size:18px}
.sup-arr{transition:transform .2s;color:var(--muted)}
.sup-opt.open .sup-arr{transform:rotate(90deg)}
.sup-panel{display:none;padding:6px 4px 12px;font-size:14px;color:var(--muted)}
.sup-panel p{margin:0 0 10px}

/* Suppression par SMS */
.sup-reco{display:inline-block;background:var(--ok);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;margin-left:8px;text-transform:uppercase;letter-spacing:.03em}
.sup-panel strong{color:var(--ink)}
.sms-tag{display:inline-block;background:var(--brand);color:#fff;font-weight:700;padding:4px 14px;border-radius:8px;letter-spacing:.06em;margin:2px 0}
.sms-fine{font-size:12px;font-style:italic;color:var(--muted);margin-top:8px}

/* Le « tag » SMS/tel est un <a> : forcer le texte blanc par-dessus .tpl-improved a */
.tpl-improved a.sms-tag{color:#fff}
.tpl-improved a.sms-tag:hover{color:#fff;background:var(--brand-d)}

/* Horaires : menus déroulants */
.hr-time{padding:7px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:#fff;max-width:104px}
.hr-time:focus{outline:0;border-color:var(--brand)}

/* Autocomplete catégorie */
.om-cat-sugg{display:none;border:1px solid var(--line);border-radius:10px;margin:-8px 0 14px;max-height:240px;overflow:auto;box-shadow:var(--shadow)}
.cat-sg{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:10px 13px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}
.cat-sg:last-child{border-bottom:0}
.cat-sg:hover{background:var(--brand-l)}
.cat-sg em{color:var(--accent-d);font-style:normal;font-size:12px}
.om-cat-warn{background:#fdecec;border:1px solid #f3c4c4;color:#a12626;padding:11px 13px;border-radius:10px;font-size:13.5px;margin:-6px 0 14px}

/* Champ e-mail dans le modal « Signaler un avis » */
.rm-msg input{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400;color:var(--ink);background:#fff}
.rm-msg input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}

/* Demande déjà en cours (check AJAX) */
.om-pending-msg{background:#fff7e6;border:1px solid #ffe2a8;color:#9a6b00;padding:14px 16px;border-radius:12px;font-size:14.5px;margin:6px 0 14px;line-height:1.5}
.om-badge{display:inline-block;margin-left:auto;background:#f5a623;color:#16202c;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}

/* Modal téléphone : option « sans SVA » + info */
.om-check{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:500;color:var(--ink);margin:-6px 0 10px;cursor:pointer}
.om-check input{width:auto;margin:0}
.sva-info-btn{display:inline-flex;align-items:center;gap:7px;background:none;border:0;color:var(--brand);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;padding:0;margin-bottom:6px}
.sva-info-btn:hover{color:var(--brand-d)}
.sva-info{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--ink);line-height:1.55;margin-top:4px}
.sva-info p{margin:0 0 8px}.sva-info p:last-child{margin-bottom:0}
.sva-info ul{margin:0 0 8px;padding-left:20px}.sva-info li{margin-bottom:4px}

/* Mention légale sous le numéro surtaxé (SVA) */
.sva-block{display:inline-block;max-width:340px}
.sva-legal{display:block;font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:6px}

/* Stylo « modifier le site » + « Ajouter mon site » */
.owner-edit{background:none;border:0;color:var(--brand);cursor:pointer;padding:2px 6px;font:inherit;font-size:13px}
.owner-edit:hover{color:var(--brand-d)}
.owner-edit.add-site-link{font-weight:600;padding:0}
/* Modal site : type de lien + infobox dofollow */
.om-follow{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:2px 0 14px;font-size:14px}
.om-follow-lbl{font-weight:600}
.om-follow label{display:flex;align-items:center;gap:7px;cursor:pointer}
.follow-info{background:#fff7e6;border:1px solid #ffe2a8;color:#9a6b00;padding:13px 15px;border-radius:12px;font-size:13.5px;line-height:1.5;margin:-4px 0 14px}
.follow-info p{margin:0 0 8px}.follow-info p:last-child{margin-bottom:0}

/* Modal d'activation Dofollow */
.df-number{font-size:26px;font-weight:800;color:#a50f78;text-align:center;letter-spacing:.04em;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0}
.df-status{text-align:center;font-size:14.5px;color:var(--muted);margin:0 0 10px}
.df-timer{font-weight:700;color:var(--ink)}
.df-ok{background:#e9f8ef;border:1px solid #bfe6cd;color:#176c3a;padding:14px 16px;border-radius:12px;font-size:15px}
.df-expired{background:#fdecec;border:1px solid #f3c4c4;color:#a12626;padding:13px 15px;border-radius:12px;font-size:14.5px}

/* Dofollow — bloc rappels (modal succès) */
.df-remind{margin:14px 0 16px;padding:12px 14px;background:#f4f8ff;border:1px solid #d6e4ff;border-radius:10px;text-align:left;font-size:13.5px;line-height:1.5;color:#23324d}
.df-remind p{margin:0}
.df-remind-list,.df-remind .df-remind-list{margin-top:6px;color:#3a4a66}
#df-ok-email{color:#1556d6;word-break:break-all}

/* Modal Dofollow : numéro surtaxé cliquable (tel:) + icône téléphone */
.df-number-link{color:inherit;text-decoration:none}
.df-number-link:hover{text-decoration:underline}
.df-phone-ico{font-size:.82em;margin-right:8px;vertical-align:baseline}

/* Surbrillance du lien site (arrivée depuis /renouveler-dofollow/) */
#lien-site{scroll-margin-top:90px;border-radius:8px;transition:background .3s}
@keyframes lienFlash{
  0%{background:transparent;box-shadow:0 0 0 0 rgba(245,166,35,0)}
  15%{background:#fff6d6;box-shadow:0 0 0 4px rgba(245,166,35,.55)}
  50%{background:#fff6d6;box-shadow:0 0 0 4px rgba(245,166,35,.25)}
  100%{background:transparent;box-shadow:0 0 0 0 rgba(245,166,35,0)}
}
#lien-site.lien-flash{animation:lienFlash 1.25s ease-in-out 3}
#lien-site.lien-flash > a{font-weight:800}

/* Modal de confirmation d'une demande propriétaire (fiche) */
.modal-confirm{max-width:440px;text-align:center}
.modal-confirm h3{margin:2px 0 8px;font-size:19px;color:#161d2b}
.modal-confirm p{margin:0 0 10px;color:#46506a;line-height:1.55}
.dm-ico{width:66px;height:66px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:6px auto 14px;font-size:30px}
.dm-ico.dm-ok{background:#e7f7ec;color:#1c7a36}
.dm-ico.dm-err{background:#fde3e3;color:#b3261e}

/* Signalement : avis déjà signalé (en cours) */
.rm-pending-box{text-align:center;padding:6px 2px}
.rm-pending-box p{color:#46506a;line-height:1.55;margin:0 0 12px}

/* Badge « Établissement vérifié » (fiches Premium) */
.prem-badge{display:inline-block;background:#0b5fa5;color:#fff;font-size:11px;font-weight:700;
  padding:2px 9px;border-radius:999px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.prem-badge i{margin-right:3px}
