/* =========================================================================
   GFS Portfolio — socle de structure
   Recopie des règles de base du widget Portfolio d'Elementor Pro
   (widget-posts.min.css), qui disparaissent avec Pro.
   Le LOOK (couleurs, survol, titre, filtres, bento) vit dans le CSS global,
   section (7) et section « PORTFOLIO BENTO » : ne pas le dupliquer ici.
   ====================================================================== */

/* Barre de filtres */
.elementor-portfolio__filters { display: flex; flex-wrap: wrap; justify-content: center; list-style: none; margin: 0; padding: 0; }
.elementor-portfolio__filter { cursor: pointer; margin: 0; padding: 8px; list-style-type: none; }
.elementor-portfolio__filter:focus-visible { outline: 1px auto -webkit-focus-ring-color; }

/* Grille et tuiles */
.elementor-posts-container .elementor-post { margin: 0; padding: 0; }
.elementor-posts-container.elementor-posts-masonry { align-items: flex-start; }
.elementor-posts-container .elementor-post__thumbnail { overflow: hidden; }
.elementor-posts-container .elementor-post__thumbnail img { display: block; max-height: none; max-width: none; width: 100%; transition: filter .3s; }
.elementor-posts-container .elementor-post__thumbnail__link { display: block; position: relative; width: 100%; }
.elementor-post__thumbnail__link { transition: none; }
.elementor-portfolio-item { align-self: flex-start; margin: 0; overflow: hidden; transform-style: preserve-3d; transition-property: transform, opacity; transition-timing-function: ease-in-out; }

/* Calque du titre au survol */
.elementor-portfolio-item__title { color: #fff; font-size: 18px; line-height: 1; margin: 0; padding: 0; }
.elementor-portfolio-item__overlay { background-color: rgba(105,114,125,.8); display: flex; flex-direction: column; inset: 0; justify-content: center; opacity: 0; overflow: hidden; padding: 15px; position: absolute; text-align: center; transition: opacity 1s; }
.elementor-portfolio-item:focus-within .elementor-portfolio-item__overlay,
.elementor-portfolio-item:hover .elementor-portfolio-item__overlay { opacity: 1; transition: opacity .5s; }

/* =========================================================================
   Cartes d'articles [gfs_articles] — socle recopié du widget « Publications »
   d'Elementor Pro, habillage « Cartes ». Le look est dans le CSS global (gfs-ressources).
   ====================================================================== */
.elementor-posts .elementor-post { display: flex; flex-direction: column; transition-duration: .25s; transition-property: background, border, box-shadow; }
.elementor-posts .elementor-post__title { font-size: 18px; margin: 0; }
.elementor-posts .elementor-post__excerpt { margin-bottom: 10px; }
.elementor-posts .elementor-post__excerpt p { color: #777; font-size: 14px; line-height: 1.5em; margin: 0; }
.elementor-posts .elementor-post__text { display: var(--item-display, block); flex-direction: column; flex-grow: 1; }
.elementor-posts .elementor-post__meta-data { color: #adadad; font-size: 12px; line-height: 1.3em; margin-bottom: 13px; }
.elementor-posts .elementor-post__read-more { align-self: flex-start; font-size: 12px; font-weight: 700; }
.elementor-posts .elementor-post__card { background-color: #fff; border: 0 solid #69727d; border-radius: 3px; display: flex; flex-direction: column; min-height: 100%; overflow: hidden; position: relative; transition: all .25s; width: 100%; }
.elementor-posts .elementor-post__card .elementor-post__text { margin-bottom: 0; margin-top: 20px; padding: 0 30px; }
.elementor-posts .elementor-post__card .elementor-post__read-more { display: inline-block; margin-bottom: 20px; }
.elementor-posts .elementor-post__card .elementor-post__meta-data { border-top: 1px solid #eaeaea; margin-bottom: 0; padding: 15px 30px; }
.elementor-posts .elementor-post__card .elementor-post__title { font-size: 21px; }
.elementor-posts .elementor-post__card .elementor-post__excerpt { line-height: 1.7; }
.elementor-posts .elementor-post__card .elementor-post__excerpt,
.elementor-posts .elementor-post__card .elementor-post__title { margin-bottom: 25px; }
.elementor-posts-container .elementor-post__excerpt { flex-grow: var(--read-more-alignment, 0); }
.elementor-posts-container:not(.elementor-posts-masonry) { align-items: stretch; }
.elementor-card-shadow-yes .elementor-post__card { box-shadow: 0 0 10px 0 rgba(0,0,0,.15); }
.elementor-card-shadow-yes .elementor-post__card:hover { box-shadow: 0 0 30px 0 rgba(0,0,0,.15); }
