:root{
  --primary-color:#3498db;
  --secondary-color:#2c3e50;
  --success-color:#27ae60;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Open Sans',sans-serif;color:#333;background:#f8f9fa;}

.navbar{background:rgba(44,62,80,0.95)!important;}
.navbar-brand{font-weight:700;font-size:26px;background:linear-gradient(135deg,#3498db,#9b59b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* HERO PIVOT */
.search-hero{
  background:linear-gradient(135deg, rgba(52,152,219,0.92), rgba(118,75,162,0.92));
  padding:70px 0 90px;color:#fff;text-align:center;
}
.search-hero h1{font-size:2.6rem;font-weight:700;margin-bottom:15px;}
.search-hero p.lead{font-size:1.15rem;opacity:.95;margin-bottom:35px;max-width:650px;margin-left:auto;margin-right:auto;}

.search-box-card{
  background:#fff;border-radius:16px;padding:25px;max-width:720px;margin:0 auto;
  box-shadow:0 15px 40px rgba(0,0,0,0.25);display:grid;grid-template-columns:1fr 1fr auto;gap:12px;text-align:left;
}
.search-box-card label{font-size:13px;font-weight:600;color:#7f8c8d;display:block;margin-bottom:5px;}
.search-box-card input{width:100%;padding:12px 14px;border:2px solid #ecf0f1;border-radius:8px;font-size:15px;}
.search-box-card input:focus{outline:none;border-color:var(--primary-color);}
.btn-search{
  background:linear-gradient(135deg,#3498db,#2980b9);border:none;color:#fff;font-weight:600;
  border-radius:8px;padding:0 28px;align-self:end;height:48px;transition:.3s;
}
.btn-search:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(52,152,219,.5);}
@media (max-width:700px){.search-box-card{grid-template-columns:1fr;}}

/* SECTIONS COMMUNES */
.section-title{text-align:center;font-weight:700;color:var(--secondary-color);font-size:1.9rem;margin-bottom:10px;}
.section-subtitle{text-align:center;color:#7f8c8d;margin-bottom:40px;font-size:1rem;}

.categories-wrap{padding:70px 0;background:#fff;}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;max-width:1000px;margin:0 auto;}
.cat-card{
  background:#f8f9fa;border-radius:12px;padding:22px 15px;text-align:center;
  text-decoration:none;color:var(--secondary-color);font-weight:600;border:2px solid transparent;transition:.25s;
}
.cat-card:hover{border-color:var(--primary-color);transform:translateY(-3px);background:#eef7fd;}

.villes-wrap{padding:70px 0;background:#f8f9fa;}
.villes-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:900px;margin:0 auto;}
.ville-chip{
  background:#fff;border:1px solid #dfe6ec;border-radius:30px;padding:9px 20px;
  text-decoration:none;color:var(--secondary-color);font-size:14px;font-weight:600;transition:.25s;
}
.ville-chip:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);}

.seo-text{padding:70px 0;background:#fff;}
.seo-text .inner{max-width:760px;margin:0 auto;color:#555;line-height:1.75;}
.seo-text h2{color:var(--secondary-color);font-size:1.6rem;margin-bottom:18px;}
.seo-text p{margin-bottom:16px;}

/* PAGE ANNUAIRE DYNAMIQUE */
.breadcrumb-bar{background:#fff;border-bottom:1px solid #ecf0f1;padding:14px 0;}
.breadcrumb-bar a{color:#7f8c8d;text-decoration:none;font-size:14px;}
.breadcrumb-bar a:hover{color:var(--primary-color);}
.breadcrumb-bar span{color:#bcc5cd;margin:0 6px;}

.page-header{padding:45px 0 30px;background:#fff;}
.page-header h1{color:var(--secondary-color);font-size:2.1rem;font-weight:700;margin-bottom:10px;}
.page-header p{color:#7f8c8d;font-size:1.05rem;max-width:650px;}

.results-wrap{padding:40px 0 70px;}
.results-count{color:#7f8c8d;margin-bottom:20px;font-size:14px;}

.pro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;}
.pro-card{
  background:#fff;border-radius:14px;padding:22px;box-shadow:0 3px 15px rgba(0,0,0,0.06);
  border:2px solid transparent;transition:.25s;
}
.pro-card:hover{border-color:var(--primary-color);transform:translateY(-3px);}
.pro-card h3{color:var(--secondary-color);font-size:1.15rem;margin-bottom:6px;}
.pro-card .profession-tag{
  display:inline-block;background:#eef7fd;color:var(--primary-color);
  font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;margin-bottom:10px;
}
.pro-card p.addr{color:#7f8c8d;font-size:14px;margin-bottom:10px;}
.pro-card .phone-line{
  display:flex;align-items:center;gap:8px;margin-bottom:16px;
  background:#f8f9fa;border-radius:8px;padding:9px 12px;white-space:nowrap;overflow:hidden;
}
.pro-card .phone-line a{color:var(--secondary-color);text-decoration:none;font-weight:700;font-size:14px;white-space:nowrap;}
.pro-card .phone-line .ia-tag{font-size:11px;color:#7f8c8d;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pro-card .actions{display:flex;gap:8px;}
.pro-card .btn-book{
  flex:1;display:inline-block;text-align:center;background:var(--success-color);
  color:#fff;text-decoration:none;padding:11px;border-radius:8px;font-weight:600;font-size:14px;transition:.2s;
}
.pro-card .btn-book:hover{background:#219150;}
.pro-card .btn-call{
  flex:1;display:inline-block;text-align:center;background:#fff;border:2px solid var(--primary-color);
  color:var(--primary-color);text-decoration:none;padding:9px;border-radius:8px;font-weight:600;font-size:14px;transition:.2s;
}
.pro-card .btn-call:hover{background:var(--primary-color);color:#fff;}

.empty-state{text-align:center;padding:50px 20px;background:#fff;border-radius:14px;color:#7f8c8d;}
.empty-state a{color:var(--primary-color);font-weight:600;text-decoration:none;}

footer{background:var(--secondary-color);color:#bcc5cd;padding:30px 0;text-align:center;font-size:14px;}
