/* Portfolio intégré aux pages Mariage / Grossesse & Naissance / Portrait */
.pf-section[hidden] { display: none; }
.pf-grille { columns: 2 11rem; column-gap: 0.75rem; margin-top: 2.5rem; }
@media (min-width: 900px) { .pf-grille { columns: 3; } }
.pf-grille a { display: block; margin-bottom: 0.75rem; border-radius: 0.9rem; overflow: hidden; break-inside: avoid; cursor: zoom-in; background: #EDE9E3; }
.pf-grille img { width: 100%; height: auto; display: block; transition: transform .5s ease; -webkit-user-drag: none; user-select: none; }
.pf-grille a:hover img { transform: scale(1.03); }
.pf-lb { position: fixed; inset: 0; z-index: 300; background: rgba(15,12,10,0.96); display: none; align-items: center; justify-content: center; }
.pf-lb.open { display: flex; }
.pf-lb img { max-width: 92vw; max-height: 86vh; border-radius: 0.5rem; user-select: none; -webkit-user-drag: none; }
.pf-lb button { position: absolute; background: rgba(255,255,255,0.12); border: none; color: #fff; cursor: pointer; border-radius: 999px; width: 3rem; height: 3rem; font-size: 1.8rem; line-height: 1; }
.pf-lb .pf-fermer { top: 1rem; right: 1rem; }
.pf-lb .pf-prec { left: 1rem; top: 50%; transform: translateY(-50%); }
.pf-lb .pf-suiv { right: 1rem; top: 50%; transform: translateY(-50%); }
.pf-lb .pf-compteur { position: absolute; bottom: 1.2rem; left: 0; right: 0; text-align: center; color: rgba(255,255,255,0.75); font-size: 0.9rem; }
