
/* Core layout */
.swppf-wrap{ max-width:var(--swppf-max,100%); margin:0 auto; padding:var(--swppf-pad,0); }
.swppf-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(var(--swppf-min,280px), 1fr)); gap:var(--swppf-gap,1.5rem); }
.swppf-card{ display:flex; flex-direction:column; }

/* Figure */
.swppf-figure-link{ display:block; border-radius:5px; text-decoration:none; }
.swppf-figure{ position:relative; overflow:hidden; border-radius:5px; box-sizing:border-box; aspect-ratio:var(--swppf-ratio, 16/12); border:1px solid #ccc; }
.swppf-figure img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top; transition:object-position var(--swppf-speed,6s) linear; }
@media (prefers-reduced-motion: reduce){
  .swppf-figure img{ transition:none; }
}
.swppf-figure.auto-scroll:hover img{ object-position:bottom; }

/* Info */
.swppf-info{ display:grid; gap:.2rem; padding:.45rem .125rem 0; }
.swppf-head{ display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; }
.swppf-title-link{ display:inline-flex; align-items:baseline; gap:.35rem; text-decoration:none; color:#000; }
.swppf-title-link:visited{ color:#000; }
.swppf-title-link:hover{ color:#000; }
.swppf-title-link:focus-visible{ outline:2px solid rgba(0,0,0,.25); outline-offset:2px; color:#000; }

/* Title and location typography via CSS variables */
.swppf-title{ font-family:var(--swppf-title-font,'Oswald',sans-serif); font-size:var(--swppf-title-size,1rem); font-weight:var(--swppf-title-weight,600); text-transform:uppercase; letter-spacing:.02em; margin:0; color:currentColor; }
.swppf-location{ display:inline-flex; align-items:baseline; gap:.35rem; font-family:var(--swppf-location-font,'Oswald',sans-serif); font-size:var(--swppf-location-size,1rem); font-weight:var(--swppf-location-weight,600); text-transform:uppercase; letter-spacing:.02em; margin:0; color:#000; }
.swppf-ext, .swppf-locicon{ width:1rem; height:1rem; display:inline-block; line-height:1; }
.swppf-ext svg, .swppf-locicon svg{ width:100%; height:100%; display:block; }
.swppf-ext svg *, .swppf-locicon svg *{ fill: currentColor !important; stroke: currentColor !important; }

/* Badges line */
.swppf-foot{ display:flex; align-items:center; justify-content:flex-start; gap:.75rem; }
.swppf-meta--line{ font-family:var(--swppf-badge-font, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif); font-size:var(--swppf-badge-size,.875rem); font-weight:var(--swppf-badge-weight,600); color:#444; margin-top:.2rem; }

/* Filter */
.swppf-filter{ display:flex; gap:.5rem; margin:0 0 .5rem; flex-wrap:wrap; }
.swppf-filter button{ border:1px solid #ddd; background:#fff; padding:.35rem .6rem; border-radius:999px; cursor:pointer; font-size:.875rem; }
.swppf-filter button.is-active{ border-color:#000; }

/* Banner */
.swppf-banner--full{ grid-column:1 / -1; }
.swppf-banner-inner{ border:1px dashed #ccc; border-radius:5px; padding:1rem; }

/* Utility */
.swppf-badges-line{ flex:1 1 auto; min-height:1.2rem; }


/* v1.9.6 additions */
.swppf-title{ color:#000; }

.swppf-title-upper .swppf-title{ text-transform: uppercase; }
.swppf-title-cap .swppf-title{ text-transform: capitalize; }
.swppf-title-none .swppf-title{ text-transform: none; }

.swppf-location-upper .swppf-location, .swppf-location-upper .swppf-location-text{ text-transform: uppercase; }
.swppf-location-cap .swppf-location, .swppf-location-cap .swppf-location-text{ text-transform: capitalize; }
.swppf-location-none .swppf-location, .swppf-location-none .swppf-location-text{ text-transform: none; }

.swppf-badge-upper .swppf-meta--line{ text-transform: uppercase; }
.swppf-badge-cap .swppf-meta--line{ text-transform: capitalize; }
.swppf-badge-none .swppf-meta--line{ text-transform: none; }


/* v1.9.7: Make title link and icon black by default */
.swppf-title-link{ color:#000; }
.swppf-title-link .swppf-ext svg{ display:inline-block; vertical-align:middle; }

/* v1.9.9: keep link icon black across states */
.swppf-title-link .swppf-ext{ color:#000; }
.swppf-title-link:hover .swppf-ext{ color:#000; }
.swppf-title-link:focus-visible .swppf-ext{ color:#000; }