/* Portfolio W — styles front (masonry / grid / offset). Utilise les variables du thème si présentes. */
.pfw{--pfw-gap:28px;--pfw-ease:cubic-bezier(.22,1,.36,1)}
.pfw__empty{color:var(--grey,#787272);text-align:center}

/* Grilles centrées (largeur max ~1280, marges auto) — la bande défilante reste pleine largeur */
.pfw--masonry,.pfw--grid,.pfw--offset{max-width:1280px;margin-left:auto;margin-right:auto;padding:0 24px}
@media (max-width:600px){.pfw--masonry,.pfw--grid,.pfw--offset{padding:0 18px}}

/* Filtres */
.pfw__filters{display:flex;gap:30px;flex-wrap:wrap;margin:0 0 48px}
.pfw__filters button{background:none;border:none;border-bottom:1px solid transparent;cursor:pointer;font-family:var(--sans,'Figtree',Helvetica,Arial,sans-serif);font-weight:300;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--grey,#787272);padding:8px 0;transition:color .3s,border-color .3s}
.pfw__filters button:hover{color:var(--black,#141212)}
.pfw__filters button.is-active{color:var(--black,#141212);border-color:var(--rose,#DDB9B9)}

/* Item + survol éditorial */
.pfw__item{margin:0;position:relative}
.pfw__item.is-hidden{display:none}
.pfw__media{position:relative;overflow:hidden;background:#f2efec}
.pfw__media img{width:100%;display:block;transform:scale(1.04);transition:transform 1.2s var(--pfw-ease)}
.pfw__item:hover .pfw__media img{transform:scale(1.12)}
.pfw__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,18,.72) 0%,rgba(20,18,18,0) 58%);opacity:0;transition:opacity .5s var(--pfw-ease)}
.pfw__item:hover .pfw__media::after{opacity:1}
.pfw__overlay{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;flex-direction:column;padding:22px 24px 24px}
.pfw__cat{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--rose,#DDB9B9);opacity:0;transform:translateY(12px);transition:opacity .5s var(--pfw-ease) .05s,transform .5s var(--pfw-ease) .05s}
.pfw__title{font-family:var(--serif,'Fraunces',Georgia,serif);font-weight:300;font-size:24px;color:#fff;margin-top:8px;opacity:0;transform:translateY(12px);transition:opacity .5s var(--pfw-ease) .12s,transform .5s var(--pfw-ease) .12s}
.pfw__item:hover .pfw__cat,.pfw__item:hover .pfw__title{opacity:1;transform:none}
.pfw--rounded .pfw__media{border-radius:14px}

/* Layout : masonry (canva / pinterest) — hauteurs naturelles, proportions d'origine conservées */
.pfw--masonry .pfw__items{column-count:var(--pfw-cols,3);column-gap:var(--pfw-gap)}
.pfw--masonry .pfw__item{display:inline-block;width:100%;margin:0 0 var(--pfw-gap);break-inside:avoid}
/* On garde la proportion réelle de chaque photo (carré => carré, portrait => portrait) : aucune hauteur forcée */
.pfw--masonry .pfw__media img{height:auto!important;max-width:100%}

/* Layout : grille (recadrée) */
.pfw--grid .pfw__items{display:grid;grid-template-columns:repeat(var(--pfw-cols,3),1fr);gap:var(--pfw-gap)}
.pfw--grid .pfw__media img{height:480px;object-fit:cover}

/* Layout : décalé (staggered) */
.pfw--offset .pfw__items{display:grid;grid-template-columns:repeat(var(--pfw-cols,3),1fr);gap:var(--pfw-gap)}
.pfw--offset .pfw__media img{height:460px;object-fit:cover}
.pfw--offset .pfw__item:nth-child(3n+2){transform:translateY(52px)}

/* Responsive */
@media (max-width:1020px){
  .pfw--masonry .pfw__items{column-count:2}
  .pfw--grid .pfw__items,.pfw--offset .pfw__items{grid-template-columns:repeat(2,1fr)}
  .pfw--offset .pfw__item:nth-child(3n+2){transform:none}
  .pfw--offset .pfw__item:nth-child(2n){transform:translateY(44px)}
}
@media (max-width:640px){
  .pfw--masonry .pfw__items{column-count:1}
  .pfw--grid .pfw__items,.pfw--offset .pfw__items{grid-template-columns:1fr}
  .pfw--offset .pfw__item{transform:none!important}
  .pfw__cat,.pfw__title,.pfw__media::after{opacity:1;transform:none}
}

/* ---------- Bande défilante (strip) : photos qui défilent en continu ---------- */
.pfw--strip{overflow:hidden}
.pfw--strip .pfw__viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pfw--strip .pfw__track{display:flex;width:max-content;gap:14px;align-items:stretch;animation:pfwStrip var(--pfw-strip-speed,40s) linear infinite}
.pfw--strip:hover .pfw__track{animation-play-state:paused}
.pfw__stripitem{flex:0 0 auto;height:var(--pfw-strip-h,300px);overflow:hidden}
.pfw__stripitem img{height:100%;width:auto;display:block;object-fit:cover}
@keyframes pfwStrip{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.pfw--strip .pfw__track{animation:none}}
@media (max-width:600px){.pfw__stripitem{height:calc(var(--pfw-strip-h,300px) * .72)}}
/* Bande en noir & blanc (couleur au survol) */
.pfw--strip.pfw--gray .pfw__stripitem img{filter:grayscale(1);transition:filter .5s var(--pfw-ease,ease)}
.pfw--strip.pfw--gray:hover .pfw__stripitem img{filter:grayscale(.35)}
.pfw--strip.pfw--gray .pfw__stripitem:hover img{filter:grayscale(0)}

/* ---------- Lightbox / zoom au clic ---------- */
.pfw--lightbox .pfw__item{cursor:zoom-in}
.pfw__lb{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(15,13,12,.93);padding:40px}
.pfw__lb.is-open{display:flex}
.pfw__lb-img{max-width:88vw;max-height:88vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.pfw__lb button{position:absolute;background:none;border:none;color:#fff;cursor:pointer;font-family:inherit;line-height:1;opacity:.85;transition:color .25s,opacity .25s}
.pfw__lb button:hover{color:var(--rose,#DDB9B9);opacity:1}
.pfw__lb-close{top:20px;right:26px;font-size:38px}
.pfw__lb-prev,.pfw__lb-next{top:50%;transform:translateY(-50%);font-size:40px;width:60px;height:60px}
.pfw__lb-prev{left:14px}
.pfw__lb-next{right:14px}
@media (max-width:600px){
  .pfw__lb{padding:14px}
  .pfw__lb-prev,.pfw__lb-next{font-size:28px;width:44px}
  .pfw__lb-close{font-size:30px;top:12px;right:16px}
}
