/*
  Fiche publique d'un professionnel (cf. fiche_publique.py), refonte 2026-10.
  Reference Airbnb (page d'annonce) : le signal de confiance le plus fort,
  ici le statut d'accessibilite, vient juste sous le nom ; les coordonnees
  vivent dans une colonne laterale collante. Sur telephone, l'ordre devient :
  nom, statut, coordonnees, detail, encarts.
*/
.fiche-publique{padding-top:48px; padding-bottom:72px;}
.fiche-grille{
  display:grid; grid-template-columns:minmax(0, 1fr) 360px; column-gap:56px;
  grid-template-areas:
    "tete coord"
    "statut coord"
    "detail coord"
    "encarts encarts";
  align-items:start;
}
.fiche-tete{grid-area:tete; margin-bottom:28px;}
.fiche-statut{grid-area:statut;}
.fiche-coordonnees{grid-area:coord; position:sticky; top:96px;}
.fiche-detail{grid-area:detail; margin-top:48px;}
.fiche-encarts{grid-area:encarts; margin-top:64px;}

.fiche-surtitre{margin:0 0 8px; color:var(--ink-soft); font-weight:600; font-size:16px;}
.fiche-publique h1{font-size:clamp(34px, 4.4vw, 52px); line-height:1.05; letter-spacing:-0.035em; margin-bottom:14px;}
.fiche-lieu{display:flex; align-items:center; gap:8px; color:var(--ink-soft); font-size:17px;}
.fiche-lieu .icone{flex-shrink:0; color:var(--blue);}
.fiche-alerte{
  display:flex; gap:12px; align-items:flex-start; margin-top:20px; padding:14px 16px;
  border-radius:var(--r-md); background:var(--warning-bg); color:var(--warning); font-weight:600; font-size:15.5px;
}
.fiche-alerte .icone{flex-shrink:0;}

/* Statut d'accessibilite : pictogramme + texte, jamais la couleur seule. */
.fiche-statut{
  display:grid; grid-template-columns:56px minmax(0,1fr); gap:20px;
  padding:28px; border-radius:var(--r-lg); border:1px solid var(--line);
  background:var(--surface);
}
.fiche-statut-icone{
  width:56px; height:56px; border-radius:var(--r-md);
  display:flex; align-items:center; justify-content:center;
}
.fiche-statut-oui{background:var(--green-bg); border-color:color-mix(in srgb, var(--green-ink) 25%, transparent);}
.fiche-statut-oui .fiche-statut-icone{background:var(--surface); color:var(--green-ink);}
.fiche-statut-inconnu .fiche-statut-icone{background:var(--warning-bg); color:var(--warning);}
.fiche-statut h2{font-size:22px; margin-bottom:6px;}
.fiche-statut-texte{font-size:17px; line-height:1.55; margin-bottom:10px;}
.fiche-statut .btn-primary{margin-top:8px;}
.fiche-source{font-size:15px; color:var(--ink-soft);}
.fiche-source a, .fiche-statut-texte a{color:var(--blue); font-weight:600;}
.fiche-partage-statut{font-size:15px; color:var(--green-ink);}
.fiche-partage-statut:empty{display:none;}

/* Coordonnees : carte laterale. */
.fiche-coordonnees{
  padding:24px; border-radius:var(--r-lg); border:1px solid var(--line);
  background:var(--surface); box-shadow:var(--ombre-carte);
}
.fiche-coordonnees h2{font-size:19px; margin-bottom:14px;}
.fiche-coordonnees dl{display:flex; flex-direction:column; gap:14px; margin:0 0 20px;}
.fiche-coordonnees dl > div{padding-bottom:14px; border-bottom:1px solid var(--line);}
.fiche-coordonnees dl > div:last-child{padding-bottom:0; border-bottom:none;}
.fiche-coordonnees dt{font-size:14px; font-weight:600; color:var(--ink-soft); margin-bottom:2px;}
.fiche-coordonnees dd{margin:0; font-size:16.5px; line-height:1.45;}
.fiche-telephone{
  display:inline-flex; align-items:center; gap:8px; min-height:44px;
  font-size:20px; font-weight:600; color:var(--blue); text-decoration:none; font-variant-numeric:tabular-nums;
}
.fiche-telephone:hover{text-decoration:underline; text-underline-offset:4px;}
.fiche-date{color:var(--ink-soft); font-size:15px;}
.fiche-actions{display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
.fiche-coordonnees .fiche-actions > .btn-primary,
.fiche-coordonnees .fiche-actions > .btn-secondary{width:100%;}

/* Detail par profil. */
.fiche-detail h2{font-size:26px; margin-bottom:20px;}
.fiche-profils{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px;}
.fiche-profils > *{min-width:0;}
.fiche-profil{border:1px solid var(--line); border-radius:var(--r-lg); padding:20px; background:var(--surface);}
.fiche-profil h3{margin:0 0 12px; font-size:18px;}
.fiche-profil ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.fiche-critere{display:flex; gap:10px; align-items:flex-start; font-size:15.5px; line-height:1.45;}
.fiche-critere-marque{
  flex:0 0 24px; width:24px; height:24px; margin-top:-1px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.fiche-critere-oui .fiche-critere-marque{background:var(--green-bg); color:var(--green-ink);}
.fiche-critere-non{color:var(--ink-soft);}
.fiche-critere-non .fiche-critere-marque{background:var(--error-bg); color:var(--error);}
.fiche-critere-aide .fiche-critere-marque{background:var(--warning-bg); color:var(--warning);}

/* Encarts du bas : deux colonnes au contenu different (recherche / professionnel). */
.fiche-encarts{display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:20px; align-items:start;}
.fiche-encart{
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  padding:32px; border-radius:var(--r-lg); background:var(--sky);
}
.fiche-encart h2{font-size:22px;}
.fiche-encart p{color:var(--ink-soft); font-size:16px;}
.fiche-encart > .btn-primary{margin-top:8px;}
.fiche-encart-icone{
  width:48px; height:48px; border-radius:var(--r-md); display:flex; align-items:center; justify-content:center;
  background:var(--surface); color:var(--blue);
}
.fiche-encart-pro{background:var(--surface); border:1px solid var(--line);}
.fiche-encart-pro .fiche-encart-icone{background:var(--sky);}


@media (max-width:960px){
  .fiche-grille{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas: "tete" "statut" "coord" "detail" "encarts";
  }
  .fiche-coordonnees{position:static; margin-top:20px;}
  .fiche-encarts{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:640px){
  .fiche-publique{padding-top:28px; padding-bottom:48px;}
  .fiche-statut{grid-template-columns:minmax(0,1fr); gap:14px; padding:22px;}
  .fiche-statut-icone{width:48px; height:48px;}
  .fiche-coordonnees, .fiche-encart{padding:22px;}
  .fiche-detail{margin-top:36px;}
  .fiche-encarts{margin-top:40px;}
  .fiche-encart .btn-primary, .fiche-encart .btn-secondary{width:100%;}
}

/* ---------- Affichette de vitrine ---------- */
.affichette-page{background:var(--paper); min-height:100vh; padding:24px 16px;}
.affichette-outils{max-width:520px; margin:0 auto 16px; display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.affichette{
  max-width:520px; margin:0 auto; background:var(--surface); border:3px solid var(--blue); border-radius:var(--r-lg);
  padding:32px 28px; text-align:center; color:var(--ink);
}
.affichette-marque{display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:26px;}
.affichette-marque img{width:44px; height:44px;}
.affichette h1{font-size:28px; line-height:1.25; margin:18px 0 6px;}
.affichette-nom{font-size:18px; color:var(--ink-soft); margin:0 0 18px;}
.affichette-qr{width:220px; height:220px; image-rendering:pixelated;}
.affichette-texte{font-size:17px; line-height:1.5; margin:12px 0 0;}
.affichette-url{font-size:14px; color:var(--ink-soft); word-break:break-all; margin:10px 0 0;}
@media print{
  @page{size:A5; margin:10mm;}
  .affichette-page{background:var(--surface); padding:0;}
  .affichette-outils{display:none;}
  .affichette{border-width:2px; -webkit-print-color-adjust:exact; print-color-adjust:exact;}
}
.affichette-qr{display:block; margin:0 auto;}
