/* Mini-site « pack présence » (produits/pack_presence/index.php) — style profil professionnel (type fiche Google).
   Charte Telecontact : jaune #ffdd00 réservé à l'action principale, à l'onglet actif et aux repères ; texte anthracite #231f20. */
:root {
	--jaune: #ffdd00;
	--jaune-fonce: #f0cf00;
	--jaune-pale: #fff8cc;
	--encre: #231f20;
	--gris: #5f6368;
	--trait: #e3e3e0;
	--fond: #f5f5f3;
	--vert: #188038;
	--rouge: #c5221f;
	--etoile: #f5c518; /* jaune des étoiles des fiches Telecontact */
	--rayon: 14px;
	--largeur: 1160px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 64px; -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; }
/* police et échelle de la fiche annonceur Telecontact : pile système de Bootstrap 5, texte 14px,
   titres de section 16px, nom 32px, mentions 12-13px, texte courant gris #666 */
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 14px; line-height: 1.5; color: var(--encre); background: var(--fond); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--encre); }
h1, h2, h3, p { margin: 0; }
a, button, summary { touch-action: manipulation; }
button, .pp-action, .pp-bouton, .pp-onglets a, summary { -webkit-user-select: none; user-select: none; }
:focus-visible { outline: 3px solid var(--encre); outline-offset: 2px; border-radius: 4px; }
.pp-conteneur { max-width: var(--largeur); margin: 0 auto; padding: 0 20px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.etoiles { color: var(--etoile); line-height: 1; white-space: nowrap; }
.etoiles svg { display: inline-block; vertical-align: -.12em; }
.etoiles .tlc-vide { color: #ccc; } /* comme les fiches Telecontact */

/* Barre Telecontact */
.pp-tlc { background: var(--encre); color: #d9d5cf; font-size: 13px; }
.pp-tlc .pp-conteneur { display: flex; align-items: center; gap: 16px; min-height: 54px; }
.pp-tlc a:first-child { display: inline-flex; align-items: center; min-height: 44px; }
.pp-tlc img { width: 150px; height: auto; }
.pp-tlc-fiche { margin-left: auto; display: inline-flex; align-items: center; min-height: 44px; color: var(--jaune); font-weight: 600; }

/* En-tête du profil : couverture, logo, identité, actions */
.pp-profil { background: #fff; border-bottom: 1px solid var(--trait); padding-bottom: 20px; }
.pp-couverture { margin-top: 20px; border-radius: var(--rayon); overflow: hidden; aspect-ratio: 926 / 294; background: linear-gradient(135deg, #2d2a2b, #4a4546); }
.pp-couverture img { width: 100%; height: 100%; object-fit: cover; }
/* client sans photo : couverture aux couleurs Telecontact (anthracite, halo jaune, fine trame) */
.pp-couverture.vide { aspect-ratio: 6 / 1; background: radial-gradient(circle at 88% 15%, rgba(255, 221, 0, .55), rgba(255, 221, 0, 0) 42%), radial-gradient(circle at 8% 110%, rgba(255, 221, 0, .25), rgba(255, 221, 0, 0) 38%), repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 16px), #231f20; }
/* seul le logo chevauche la couverture ; le nom commence sous l'image */
.pp-identite { display: flex; align-items: flex-start; gap: 20px; padding: 0 24px; position: relative; }
.pp-logo { width: 112px; height: 112px; margin-top: -56px; flex: 0 0 auto; object-fit: contain; background: #fff; border: 4px solid #fff; border-radius: 16px; box-shadow: 0 2px 10px rgba(0, 0, 0, .15); padding: 6px; }
.pp-initiales { display: grid; place-items: center; font-size: 40px; font-weight: 700; background: var(--jaune); }
.pp-identite-texte { padding-top: 14px; min-width: 0; }
.pp-identite h1 { font-size: 32px; line-height: 1.2; font-weight: 500; letter-spacing: -.01em; overflow-wrap: anywhere; }
.pp-note { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-size: 14px; text-decoration: none; }
.pp-note strong { font-weight: 600; }
.pp-note .etoiles { font-size: 14px; }
.pp-note-nb { color: var(--gris); }
.pp-meta { display: flex; flex-wrap: wrap; gap: 2px 0; margin-top: 4px; color: #666; font-size: 14px; }
.pp-meta span + span::before { content: "·"; margin: 0 8px; color: #9aa0a6; }
.pp-etat { color: #dc3545; font-weight: 600; }
/* « Ouvert » vert / « Fermé » rouge, avec pastille : mêmes couleurs que les horaires de la fiche Telecontact */
.pp-etat { display: inline-flex; align-items: center; gap: 6px; }
.pp-etat::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.pp-etat.ouvert { color: #1e7e34; }
/* dans la ligne « métier · ville · état » : le séparateur reste un point médian, sans pastille */
.pp-meta .pp-etat::before { content: "·"; width: auto; height: auto; border-radius: 0; background: none; color: #9aa0a6; margin: 0 8px; }
.pp-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; padding: 0 24px; }
.pp-action { font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid #dadce0; background: #fff; color: var(--encre); font-weight: 600; font-size: 14px; text-decoration: none; transition: background-color .15s, border-color .15s; }
.pp-action svg { width: 18px; height: 18px; flex: 0 0 auto; }
.pp-action.principale { background: var(--jaune); border-color: var(--jaune); }
.pp-action:active { background: #f1f1ef; }
.pp-action.principale:active { background: var(--jaune-fonce); }

/* Onglets collants */
.pp-onglets { position: sticky; top: 0; z-index: 40; background: #fff; border-bottom: 1px solid var(--trait); }
.pp-onglets .pp-conteneur { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.pp-onglets .pp-conteneur::-webkit-scrollbar { display: none; }
.pp-onglets a { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 50px; padding: 0 16px; border-bottom: 3px solid transparent; color: var(--gris); font-weight: 600; font-size: 14px; text-decoration: none; }
.pp-onglets a[aria-current="true"] { color: var(--encre); border-bottom-color: var(--jaune); }

/* Corps */
.pp-corps { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 20px; align-items: start; padding-top: 20px; padding-bottom: 48px; }
.pp-principal { display: grid; gap: 20px; min-width: 0; }
.pp-section, .pp-carte-infos, .pp-carte-plan { background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); padding: 24px; }
.pp-section h2 { font-size: 16px; font-weight: 600; margin-bottom: 14px; }
.pp-section h3.pp-premier { margin-top: 0; }
.pp-section h3 { font-size: 14px; font-weight: 600; color: #474a4d; margin: 22px 0 10px; }
.pp-chapeau { font-size: 15px; line-height: 1.6; font-weight: 600; margin-bottom: 10px; }
/* Même rendu que « À propos de nous » de la fiche annonceur : 14px, interligne 28px, gris #666, justifié */
.pp-texte { color: #666; font-size: 14px; line-height: 28px; text-align: justify; hyphens: auto; overflow-wrap: break-word; }
.pp-texte p { margin: 0 0 12px; }
.pp-texte strong, .pp-texte b { color: var(--encre); }
.pp-faits { list-style: none; padding: 16px 0 0; margin: 16px 0 0; border-top: 1px solid var(--trait); display: flex; flex-wrap: wrap; gap: 10px 28px; color: #666; }
.pp-faits li { display: flex; align-items: center; gap: 8px; }
.pp-faits svg { width: 18px; height: 18px; color: var(--gris); flex: 0 0 auto; }

.pp-services { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
.pp-services a, .pp-services span { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 10px; margin: 0 -10px; border-radius: 8px; color: #666; text-decoration: none; }
/* petite coche discrète (jaune foncé de la charte, comme les intitulés du menu de la fiche) */
.pp-services svg { width: 16px; height: 16px; flex: 0 0 auto; color: #8a7a00; }
.pp-services a:active { background: var(--jaune-pale); }
.pp-zones { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-zones a, .pp-zones span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid #dadce0; border-radius: 999px; font-weight: 500; text-decoration: none; }
.pp-zones a:active { background: var(--jaune-pale); }
.pp-activites { margin-bottom: 4px; }
/* Produits : étiquettes ; marques : nom en gras + description, comme la fiche annonceur */
.pp-produits { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-produits li { padding: 7px 14px; border-radius: 8px; background: var(--fond); border: 1px solid var(--trait); color: var(--encre); font-weight: 500; }
.pp-marques { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.pp-marques a, .pp-marques span { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 52px; height: 100%; padding: 8px 12px; border: 1px solid var(--trait); border-radius: 10px; text-decoration: none; line-height: 1.3; }
.pp-marques strong { color: #111; font-size: 15px; font-weight: 700; }
.pp-marques small { color: #666; font-size: 12px; }
.pp-marques a:active { background: var(--jaune-pale); }

.pp-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pp-photo { display: block; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: var(--fond); cursor: zoom-in; }
.pp-photo img { width: 100%; aspect-ratio: 926 / 294; object-fit: cover; }
/* « Appeler » : choix du numéro (fenêtre au centre, feuille en bas sur mobile) */
.pp-numeros { width: min(400px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 14px; background: #fff; color: var(--encre); box-shadow: 0 8px 32px rgba(0, 0, 0, .25); }
.pp-numeros:focus { outline: none; }
.pp-numeros::backdrop { background: rgba(0, 0, 0, .5); }
.pp-numeros-tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 8px 8px 20px; }
.pp-numeros-tete p { margin: 0; font-size: 15px; font-weight: 600; }
.pp-numeros-fermer { width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; border: 0; border-radius: 50%; background: none; color: #666; cursor: pointer; }
.pp-numeros-fermer svg { width: 20px; height: 20px; }
.pp-numeros ul { list-style: none; margin: 0; padding: 0 8px 12px; }
.pp-numeros li + li { border-top: 1px solid var(--trait); }
.pp-numeros a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 0 12px; border-radius: 10px; color: var(--encre); text-decoration: none; }
.pp-numeros a strong { flex: 1; font-size: 18px; font-weight: 700; letter-spacing: .02em; }
.pp-numeros a svg { width: 36px; height: 36px; padding: 9px; border-radius: 50%; background: var(--jaune); flex: 0 0 auto; }
.pp-numeros a:active { background: var(--jaune-pale); }
.pp-visionneuse { width: min(1000px, 94vw); max-width: none; padding: 0; border: 0; background: transparent; overflow: visible; }
.pp-visionneuse::backdrop { background: rgba(0, 0, 0, .85); }
.pp-visionneuse img { width: 100%; border-radius: 8px; }
.pp-visionneuse-fermer { position: absolute; top: -52px; right: 0; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff; cursor: pointer; }
.pp-visionneuse-fermer svg { width: 20px; height: 20px; }

.pp-avis-resume { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; border-bottom: 1px solid var(--trait); }
.pp-avis-resume strong { font-size: 40px; line-height: 1; font-weight: 600; }
.pp-avis-resume > div { display: grid; gap: 4px; color: #666; font-size: 13px; }
.pp-avis-resume .etoiles { font-size: 20px; }
.pp-avis { list-style: none; padding: 0; margin: 0 0 18px; }
.pp-avis li { padding: 18px 0; border-bottom: 1px solid var(--trait); }
.pp-avis-tete { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.pp-avatar { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--encre); color: var(--jaune); font-weight: 700; font-size: 14px; }
img.pp-avatar { object-fit: cover; background: #e8e8e4; }
.pp-avis-tete strong { display: block; font-weight: 600; }
.pp-avis-date { display: flex; align-items: center; gap: 6px; color: #6b6b6b; font-size: 12px; }
.pp-avis-date .etoiles { font-size: 13px; }
.pp-avis p { color: #666; }

.pp-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 999px; font-weight: 600; font-size: 14px; text-decoration: none; }
.pp-bouton svg { width: 18px; height: 18px; }
.pp-bouton.secondaire { border: 1px solid #dadce0; background: #fff; }
.pp-bouton.secondaire:active { background: #f1f1ef; }
.pp-bouton.plein { width: 100%; margin-top: 14px; }

/* Colonne latérale : coordonnées, horaires, plan */
.pp-lateral { display: grid; gap: 20px; position: sticky; top: 70px; }
.pp-infos { list-style: none; padding: 0; margin: 0; }
.pp-infos li { display: flex; gap: 14px; padding: 10px 0; }
.pp-infos li + li { border-top: 1px solid var(--trait); }
.pp-infos svg { width: 20px; height: 20px; flex: 0 0 auto; color: var(--gris); margin-top: 2px; }
.pp-infos span { min-width: 0; overflow-wrap: anywhere; }
/* zone de clic de 44 px pour les liens des coordonnées */
.pp-infos a { display: block; padding: 8px 0; margin: -6px 0; font-weight: 600; text-decoration: none; }
.pp-infos a + a { margin-top: 2px; }
.pp-infos small { color: #6b6b6b; font-size: 12px; }
.pp-horaires { border-top: 1px solid var(--trait); margin-top: 6px; padding-top: 6px; }
.pp-horaires summary { display: flex; align-items: center; gap: 14px; min-height: 44px; cursor: pointer; list-style: none; }
.pp-horaires summary::-webkit-details-marker { display: none; }
.pp-horaires summary::after { content: ""; margin-left: auto; width: 8px; height: 8px; border-right: 2px solid var(--gris); border-bottom: 2px solid var(--gris); transform: rotate(45deg); transition: transform .2s; }
.pp-horaires[open] summary::after { transform: rotate(-135deg); }
.pp-horaires summary svg { width: 20px; height: 20px; color: var(--gris); }
.pp-horaires table { width: 100%; border-collapse: collapse; margin: 4px 0 2px; }
.pp-horaires th { text-align: left; font-weight: 400; color: #666; padding: 5px 0 5px 34px; }
.pp-horaires td { text-align: right; padding: 5px 0; color: #666; font-variant-numeric: tabular-nums; }
.pp-horaires tr.aujourdhui th, .pp-horaires tr.aujourdhui td { font-weight: 700; color: var(--encre); background: #fff8cc; }
.pp-horaires tr.aujourdhui th { border-radius: 6px 0 0 6px; }
.pp-horaires tr.aujourdhui td { border-radius: 0 6px 6px 0; padding-right: 8px; }
.pp-horaires.ouvert tr.aujourdhui td { color: #1e7e34; }
.pp-horaires.ferme tr.aujourdhui td { color: #dc3545; }
.pp-reseaux { display: flex; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--trait); }
.pp-reseaux a { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; }
.pp-reseau-facebook { background: #1877f2; }
.pp-reseau-linkedin { background: #0a66c2; }
.pp-reseau-instagram { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.pp-reseaux svg { width: 18px; height: 18px; }
.pp-carte-plan { padding: 12px; }
.pp-plan { position: relative; height: 220px; border-radius: 10px; overflow: hidden; background: #e8e8e4; }
/* repère jaune de la carte : sans le fond blanc par défaut des divIcon de Leaflet */
.pp-repere { background: none; border: 0; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .3)); }
.pp-plan-attente { position: absolute; inset: 0; display: grid; place-items: center; padding: 16px; text-align: center; color: var(--gris); }

/* Pied de page */
/* Pied de page : même charte que le footer Telecontact (media/css/footer.css) */
.pp-pied { background: #222; color: #aaa; font-size: 12px; box-shadow: 0 2px 4px #777; }
.pp-pied a { color: #aaa; text-decoration: none; display: inline-block; padding: 3px 0; line-height: 1.5; transition: color .3s; }
.pp-pied-grille { display: grid; grid-template-columns: 1.2fr .8fr 1.2fr 1fr; gap: 36px; padding-top: 48px; padding-bottom: 28px; }
.pp-pied h2 { position: relative; color: #aaa; font-size: 16px; font-weight: 500; margin: 0 0 30px; }
.pp-pied h2::after { content: ""; position: absolute; left: 0; bottom: -15px; width: 15%; height: 1px; background: grey; }
.pp-pied ul { list-style: none; padding: 0; margin: 0; }
.pp-pied li { margin-bottom: 0; }
.pp-pied p { margin-bottom: 10px; line-height: 1.6; }
.pp-pied-nom { display: flex; align-items: center; gap: 12px; color: #f5f5f5; font-size: 16px; font-weight: 600; }
.pp-pied-nom img { width: 44px; height: 44px; flex: 0 0 auto; object-fit: contain; border-radius: 10px; background: #fff; padding: 3px; }
.pp-pied-tlc img { width: 200px; height: auto; max-width: 100%; object-fit: contain; margin-bottom: 12px; }
.pp-pied-bas { border-top: 1px solid grey; font-size: 12px; }
.pp-pied-bas .pp-conteneur { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px; padding-top: 16px; padding-bottom: 16px; }
.pp-pied-bas p { margin: 0; }
.pp-pied-bas ul { display: flex; flex-wrap: wrap; gap: 0 20px; }
.pp-pied-bas li { margin: 0; }
.pp-pied-bas a { color: #aaa; }

.pp-barre-mobile { display: none; }

/* Survol : souris uniquement (sur écran tactile, il resterait « collé » après un tap) */
@media (hover: hover) and (pointer: fine) {
	.pp-tlc-fiche:hover { text-decoration: underline; }
	.pp-note:hover { text-decoration: underline; }
	.pp-action:hover { background: #f6f6f4; border-color: #c8cbcf; }
	.pp-action.principale:hover { background: var(--jaune-fonce); border-color: var(--jaune-fonce); }
	.pp-onglets a:hover { color: var(--encre); }
	.pp-services a:hover { background: var(--jaune-pale); }
	.pp-zones a:hover { background: var(--jaune-pale); border-color: #e8d98a; }
	.pp-marques a:hover { background: var(--jaune-pale); border-color: #e8d98a; }
	.pp-marques a:hover strong { text-decoration: underline; }
	.pp-photo:hover img { opacity: .9; }
	.pp-bouton.secondaire:hover { background: #f6f6f4; }
	.pp-infos a:hover { text-decoration: underline; }
	.pp-reseaux a:hover { filter: brightness(1.1); }
	.pp-pied a:hover { color: #f5f5f5; }
}

@media (max-width: 1024px) {
	.pp-corps { grid-template-columns: 1fr; }
	.pp-lateral { position: static; order: -1; grid-template-columns: 1fr 1fr; align-items: start; }
	.pp-pied-grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
	.pp-conteneur { padding: 0 16px; }
	.pp-tlc-texte { display: none; }
	.pp-tlc img { width: 130px; }
	.pp-profil .pp-conteneur { padding: 0; }
	.pp-couverture { margin-top: 0; border-radius: 0; }
	.pp-identite { flex-direction: column; gap: 0; padding: 0 16px; }
	.pp-logo { width: 84px; height: 84px; margin-top: -42px; border-radius: 14px; }
	.pp-identite-texte { padding-top: 10px; }
	.pp-identite h1 { font-size: 26px; }
	.pp-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; padding: 0 16px; }
	.pp-action { flex-direction: column; justify-content: center; gap: 4px; min-height: 64px; padding: 6px 4px; border-radius: 12px; font-size: 13px; }
	.pp-action svg { width: 20px; height: 20px; }
	.pp-action-site { display: none; } /* site web : déjà dans les coordonnées, garde 4 boutons lisibles */
	.pp-corps { padding-top: 16px; gap: 16px; }
	.pp-principal { gap: 16px; }
	.pp-lateral { grid-template-columns: 1fr; gap: 16px; }
	.pp-section, .pp-carte-infos { padding: 20px 16px; }
	.pp-services { grid-template-columns: 1fr; }
	.pp-marques { grid-template-columns: 1fr 1fr; }
	.pp-photos { grid-template-columns: 1fr; }
	.pp-pied-grille { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; padding-bottom: 28px; }
	.pp-pied-bas { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
	.pp-barre-mobile { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; gap: 6px; padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--trait); }
	.pp-barre-mobile a, .pp-barre-mobile button { font: inherit; color: var(--encre); border: 0; background: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 52px; border-radius: 10px; font-size: 13px; font-weight: 600; text-decoration: none; }
	.pp-barre-mobile .principale { background: var(--jaune); }
	.pp-barre-mobile a:active, .pp-barre-mobile button:active { background: #f1f1ef; }
	.pp-barre-mobile .principale:active { background: var(--jaune-fonce); }
	.pp-barre-mobile svg { width: 20px; height: 20px; }
	.pp-numeros { width: 100%; max-width: none; margin: auto 0 0; border-radius: 16px 16px 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.pp-horaires summary::after { transition: none; }
}

/* Vitrine indisponible (expirer.php) */
body.pp-expire-page { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
.pp-expire { flex: 1; display: grid; align-content: center; justify-items: center; gap: 20px; padding-top: 56px; padding-bottom: 56px; }
.pp-expire-carte { width: 100%; max-width: 640px; background: #fff; border: 1px solid var(--trait); border-top: 6px solid var(--jaune); border-radius: var(--rayon); padding: 40px 36px; text-align: center; }
.pp-expire-icone { width: 64px; height: 64px; margin: 0 auto 18px; display: grid; place-items: center; border-radius: 50%; background: var(--jaune-pale); color: var(--encre); }
.pp-expire-icone svg { width: 30px; height: 30px; }
.pp-expire h1 { font-size: 26px; line-height: 1.25; font-weight: 600; letter-spacing: -.01em; }
.pp-expire-texte { margin: 14px auto 26px; max-width: 34em; color: #666; font-size: 15px; }
.pp-expire-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.pp-expire-proprietaire { width: 100%; max-width: 640px; border: 1px dashed #cfccc6; border-radius: var(--rayon); padding: 22px 26px; text-align: center; color: #666; }
.pp-expire-proprietaire h2 { font-size: 16px; font-weight: 600; color: var(--encre); margin-bottom: 6px; }
.pp-expire-proprietaire p { margin-bottom: 14px; }
.pp-expire-page .pp-pied-bas { padding-bottom: 0; }
@media (max-width: 680px) {
	.pp-expire { padding-top: 28px; padding-bottom: 28px; }
	.pp-expire-carte { padding: 28px 20px; }
	.pp-expire h1 { font-size: 23px; }
	.pp-expire-actions { display: grid; }
	.pp-expire-page .pp-pied-bas { padding-bottom: env(safe-area-inset-bottom, 0px); }
}

/* Module d'avis de la fiche Telecontact (fiche-avis.php) intégré au mini-site : styles des fiches
   que le mini-site ne charge pas, à la charte du mini-site */
.pp-avis-module .lesavis .avis-container { padding: 0 !important; }
.pp-avis-module .avis-entete h2, .pp-avis-module .avis-vide h2 { font-size: 16px !important; font-weight: 600 !important; }
.pp-avis-module .info-icon { display: none; }
.pp-avis-module .filtre-select { min-height: 44px; padding: 0 14px; border: 1px solid #dadce0; border-radius: 999px; font: inherit; font-size: 14px; color: var(--encre); background: #fff; cursor: pointer; }
.pp-avis-module .btn-avis, .pp-avis-module .btn-voir-plus-avis { min-height: 44px; padding: 0 20px; border-radius: 999px; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.pp-avis-module .btn-avis { border: 0; background: var(--jaune); color: var(--encre); }
.pp-avis-module .btn-voir-plus-avis { border: 1px solid #dadce0; background: #fff; color: var(--encre); }
.pp-avis-module .avis-voir-plus-container { text-align: center; margin-top: 16px; }
.pp-avis-module .avis-item.avis-hidden { display: none !important; }
.pp-avis-module .avis-header .nom { font-weight: 600; color: var(--encre); }
.pp-avis-module .avis-header .etoiles { color: var(--etoile); }
.pp-avis-module .avis-date { color: #6b6b6b; font-size: 12px; }
.pp-avis-module .photo-avis { width: 40px; height: 40px; flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.pp-avis-module .avis-commentaire { font-size: 14px !important; color: #666 !important; }
.pp-avis-module .avis-moyenne .etoiles-moyenne { color: var(--etoile); }
/* aucun avis : invitation à donner le premier avis (même module que la fiche) */
.pp-avis-module .avis-vide { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; }
.pp-avis-module .avis-vide h2 { display: flex; align-items: center; gap: 10px; margin: 0; }
.pp-avis-module .avis-vide h2 svg { display: none; }
.pp-avis-module .avis-vide-box { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 28px 20px; border: 1.5px dashed #d6d2c4; border-radius: 12px; text-align: center; }
.pp-avis-module .avis-vide-etoiles { color: var(--etoile); font-size: 28px; line-height: 1; }
.pp-avis-module .avis-vide-etoiles .tlc-vide { color: #ccc; }
.pp-avis-module .avis-vide-titre { margin: 0; font-size: 15px; font-weight: 700; }
.pp-avis-module .avis-vide-texte { margin: 0; max-width: 420px; color: #666; }
.pp-avis-module .avis-vide-btn { min-height: 44px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--jaune); font: inherit; font-size: 14px; font-weight: 700; color: var(--encre); cursor: pointer; }
@media (hover: hover) and (pointer: fine) {
	.pp-avis-module .btn-avis:hover, .pp-avis-module .avis-vide-btn:hover { background: var(--jaune-fonce); }
	.pp-avis-module .btn-voir-plus-avis:hover { background: #f6f6f4; }
}
