/* pafi-partenaires.css - page CMS Planete Air (genere le 28/10/2026 depuis formulaires/partenaires-installateurs.html).
   Tout est limite a .pafi-part : ne touche pas au theme. */
.pafi-part *{
  box-sizing: border-box;
}
.pafi-part-page{
  background: #f0f2f5;
  background-image: radial-gradient(circle at 20% 20%, rgba(0,120,255,0.06) 0%, rgba(255,255,255,0) 70%),
  radial-gradient(circle at 80% 0%, rgba(27,78,155,0.05) 0%, rgba(255,255,255,0) 60%);
  font-family: "Open Sans", Arial, sans-serif;
  color: #222;
  margin: 0;
  padding: 0 0 4rem 0;
  line-height: 1.4;
}
.pafi-part .pafi-back-btn-wrapper{
  width: 100%;
  max-width: 1200px;
  margin: 1rem auto 0.5rem;
  padding-left: 2.5rem;
}
.pafi-part .pafi-back-btn{
  display: inline-block;
  background: linear-gradient(90deg, #1b4e9b, #0078ff);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  padding: 0.6rem 1rem;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.pafi-part .pafi-back-btn:hover{
  background: linear-gradient(90deg, #0078ff, #1b4e9b);
  transform: translateY(-2px);
}
.pafi-part .pafi-page-container{
  max-width: 1200px;
  margin: 1rem auto 3rem;
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 20px 40px rgba(0,0,0,.08);
  padding: 2rem 2.5rem 3rem;
  position: relative;
}
.pafi-part .pafi-site-header{
  text-align: center;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #e5e7eb;
}
.pafi-part .pafi-brand-line img{
  height: 80px;
  width: auto;
  object-fit: contain;
  display: block;
  margin: 0 auto .5rem;
}
.pafi-part .pafi-page-headline{
  font-size: 1.4rem;
  color: #003366;
  font-weight: 700;
  margin: .5rem 0 .25rem;
}
.pafi-part .pafi-page-sub{
  color: #666;
  font-size: 0.9rem;
  line-height: 1.4;
  max-width: 700px;
  margin: 0 auto;
  text-align:center;
}
.pafi-part .pafi-map-wrapper{
  position: relative;
  background:#fff;
  border-radius:1rem;
  box-shadow:0 10px 30px rgba(0,0,0,.05);
  padding:1rem;
  max-width:900px;
  width:100%;
  margin: 0 auto;
}
.pafi-part svg#pafi-carte-france{
  width:100%;
  height:auto;
  display:block;
}
.pafi-part .departement{
  fill:#dfe7ef;
  stroke:#fff;
  stroke-width:1;
  cursor:pointer;
  transition:fill .15s ease, stroke .15s ease, stroke-width .15s ease;
}
.pafi-part .departement:hover{
  fill:#4f8bff;
  stroke:#1a3a94;
  stroke-width:1.5;
}
.pafi-part .pafi-tooltip{
  position:absolute;
  background:#003366;
  color:#fff;
  font-size:.85rem;
  line-height:1.4;
  padding:.6rem .8rem;
  border-radius:.5rem;
  box-shadow:0 16px 32px rgba(0,0,0,.4);
  border:1px solid #0055aa;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%, -100%);
  min-width:200px;
  max-width:260px;
  z-index:1000;
}
.pafi-part .pafi-tooltip[data-visible="true"]{
  opacity:1;
}
.pafi-part .pafi-tooltip .pafi-dept-label{
  font-weight:600;
  font-size:.9rem;
  display:block;
  margin-bottom:.35rem;
  color:#fff;
}
.pafi-part .pafi-tooltip .pafi-installateurs-title{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:500;
  color:#9ca3af;
  margin-bottom:.25rem;
  display:block;
}
.pafi-part .pafi-tooltip ul{
  list-style:none;
  padding:0;
  margin:0;
  font-size:.8rem;
  color:#e5e7eb;
}
.pafi-part .pafi-tooltip ul li + li{
  margin-top:.25rem;
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:.25rem;
}
.pafi-part .pafi-tooltip .pafi-hint{
  margin-top:.5rem;
  font-size:.7rem;
  color:#6b7280;
}
.pafi-part .pafi-tooltip .pafi-hint strong{
  color:#fff;
  font-weight:600;
}
.pafi-part .pafi-modal-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  z-index: 5000;
}
.pafi-part .pafi-modal-overlay[data-open="true"]{
  display: flex;
}
.pafi-part .pafi-modal-card{
  background: #fff;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  border-radius: 1rem;
  box-shadow: 0 30px 80px rgba(0,0,0,.4);
  display: flex;
  flex-direction: column;
  border-top: 5px solid #0078ff;
  position: relative;
  overflow: hidden;
}
.pafi-part .pafi-modal-header{
  padding: 1rem 1.25rem .75rem;
  border-bottom: 1px solid #e5e7eb;
}
.pafi-part .pafi-modal-title{
  font-size: 1rem;
  font-weight: 600;
  color: #003366;
  line-height: 1.3;
  margin: 0;
}
.pafi-part .pafi-modal-sub{
  font-size: .8rem;
  color: #6b7280;
  margin-top: .25rem;
  line-height: 1.4;
}
.pafi-part .pafi-modal-body{
  padding: 1rem 1.25rem 1rem;
  overflow-y: auto;
  flex: 1;
}
.pafi-part .pafi-insta-bloc{
  border:1px solid #e5e7eb;
  border-radius:.5rem;
  padding:.75rem .9rem .6rem;
  font-size:.85rem;
  line-height:1.4;
  color:#374151;
  margin-bottom:.75rem;
  background:#f9fafb;
}
.pafi-part .pafi-insta-nom{
  font-weight:600;
  color:#111827;
  font-size:.9rem;
  margin-bottom:.4rem;
}
.pafi-part .pafi-insta-adr{
  white-space:pre-line;
  color:#4b5563;
  font-size:.8rem;
  margin-bottom:.4rem;
}
.pafi-part .pafi-insta-telmail{
  font-size:.8rem;
  color:#1f2937;
}
.pafi-part .pafi-insta-telmail a{
  color:#1b4e9b;
  text-decoration:none;
  font-weight:500;
}
.pafi-part .pafi-insta-telmail a:hover{
  text-decoration:underline;
}
.pafi-part .pafi-modal-footer{
  padding:.75rem 1.25rem 1rem;
  border-top:1px solid #e5e7eb;
  background:#f9fafb;
  font-size:.8rem;
  color:#4b5563;
  line-height:1.4;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.pafi-part .pafi-cta-join{
  background: linear-gradient(90deg,#1b4e9b,#0078ff);
  color:#fff;
  text-align:center;
  padding:.7rem 1rem;
  border-radius:.5rem;
  font-weight:600;
  font-size:.85rem;
  line-height:1.2;
  text-decoration:none;
  box-shadow:0 10px 20px rgba(0,0,0,.25);
  transition:all .2s ease;
}
.pafi-part .pafi-cta-join:hover{
  background: linear-gradient(90deg,#0078ff,#1b4e9b);
  box-shadow:0 12px 24px rgba(0,0,0,.35);
}
.pafi-part .pafi-modal-close-btn{
  position:absolute;
  top:.75rem;
  right:.75rem;
  background:transparent;
  border:none;
  font-size:1rem;
  line-height:1;
  cursor:pointer;
  color:#6b7280;
  padding:.3rem;
  border-radius:.4rem;
}
.pafi-part .pafi-modal-close-btn:hover{
  background:#f3f4f6;
  color:#111827;
}
@media (max-width:600px){
.pafi-part .pafi-page-container{
  border-radius: .5rem;
  padding: 1.25rem 1rem 2rem;
}
.pafi-part .pafi-back-btn-wrapper{
  padding-left: 1rem;
}
.pafi-part .pafi-brand-line img{
  height: 64px;
}
.pafi-part .pafi-page-headline{
  font-size: 1.2rem;
  text-align:center;
}
.pafi-part .pafi-map-wrapper{
  border-radius:.5rem;
  padding:.75rem;
}
.pafi-part .pafi-modal-card{
  border-radius:.75rem;
  max-width: 400px;
}
}
/* --- ajustements pour l'affichage dans le site --- */
.pafi-part-page{
  padding:.5rem .75rem 1rem;
  border-radius:1rem;
}
.pafi-part .pafi-page-container{
  margin:.5rem auto 1rem;
}
.pafi-part-modal-root{
  font-family:"Open Sans", Arial, sans-serif;
  color:#222;
  line-height:1.4;
}
.pafi-part .pafi-page-sub{
  margin:0 auto;
}
@media (max-width:600px){
  .pafi-part-page{padding:.25rem;}
}
/* pa-sans-cadre 28/10/2026 : pas de double cadre dans la page du site */
.pafi-part-page{background:none !important;padding:0 !important;border-radius:0 !important;}
.pafi-part .pafi-page-container{box-shadow:none !important;border-radius:0 !important;padding:0 !important;margin:0 auto 1rem !important;max-width:none !important;}
