:root{--gap:12px;--max:1100px;--primary:#e53670;--text:#111;--muted:#666;--bg:#fff;--footer-bg:#0f0f12;--footer-text:#cfcfd6}
/* Thème custom variables pourront être surchargées depuis le générateur */
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
body.modal-open{overflow:hidden}
.container{max-width:var(--max);margin:0 auto;padding:16px}
.site-header{background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:10}
.header-inner{display:flex;align-items:center;gap:16px}
.brand{font-weight:700;color:#111;text-decoration:none}
.brand span{color:var(--muted);font-weight:500}
.spacer{flex:1}
.actions .btn{margin-left:8px}
.site-footer{background:var(--footer-bg);border-top:1px solid #1a1a1f;margin-top:24px;color:var(--footer-text)}
.site-footer a{color:var(--footer-text)}
.footer-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.footer-grid h4{color:#fff;margin:0 0 8px}
.footer-grid strong{color:#fff}

/* Carrousel cantons */
.cantons-carousel{position:relative;overflow:hidden}
.cantons-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.cantons-track::-webkit-scrollbar{height:8px}
.cantons-track::-webkit-scrollbar-thumb{background:#ddd;border-radius:8px}
.canton-card{min-width:240px;flex:0 0 240px;scroll-snap-align:center;border:1px solid #eee;border-radius:12px;padding:14px;background:#fff;text-align:center}
.canton-card h3{margin:6px 0 4px 0}
.canton-card p{margin:0;color:var(--muted)}

/* Grilles */
.grid-cities{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.grid-profiles{display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.card-profile{border:1px solid #eee;border-radius:12px;padding:12px;background:#fff;text-align:center;cursor:pointer}
.photo-wrapper{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:12px;background:#f2f2f2;margin-bottom:8px}
.photo{width:100%;height:100%;object-fit:cover;filter:blur(10px)}
.photo-wrapper .lock{position:absolute;right:8px;top:8px;background:rgba(0,0,0,.5);color:#fff;border-radius:999px;padding:2px 6px;font-size:12px}

.btn{display:inline-block;padding:10px 14px;border-radius:8px;border:1px solid #ddd;background:#fff;color:#111;text-decoration:none;cursor:pointer}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.center{text-align:center}
.section{margin:24px 0}
.section h2,.section h3{text-align:center}
.faq{max-width:800px;margin:0 auto}
details{border:1px solid #eee;border-radius:8px;padding:8px;margin:8px 0}
details>summary{cursor:pointer;text-align:center}

/* Barre de recherche cantons */
.search-box{max-width:720px;margin:24px auto;text-align:center}
.search-box input{width:100%;padding:12px;border:1px solid #ddd;border-radius:999px}
.suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
.suggestions a{display:inline-block;padding:6px 10px;border:1px solid #eee;border-radius:999px;text-decoration:none;color:#111}

.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);z-index:99999}
.modal.open{display:flex}
.modal-card{background:#fff;border-radius:16px;max-width:460px;width:92%;padding:22px 20px;box-shadow:0 16px 48px rgba(0,0,0,.28)}
.modal-card h3,.modal-card p.small{text-align:center}
.modal-card form{display:grid;gap:12px;justify-items:center}
.modal-card input{width:100%;max-width:360px;padding:12px 14px;border:1px solid #ddd;border-radius:999px}
.modal-card .actions{display:flex;gap:10px;justify-content:center}
.modal-card .btn{min-width:130px}

.seo-guide{max-width:820px;margin:0 auto}
.seo-guide h3{text-align:center}
.seo-guide p{text-align:left}

@media (max-width:720px){
  .canton-card{min-width:200px}
  .grid-profiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
