/* 8FLiX Post Slider (CSS-Tricks-inspired, namespaced)
   Gradient + stacked cards + hover shove + scrollbars + responsive
*/

.efx-post-slider {
  --efx-gap: 1.8rem;
  --efx-bg: #dedede;
  --efx-grad: linear-gradient(135deg, #D3239A 0%, #FF6A00 100%);
  --efx-track: #262626;
  --efx-thumb: #434343;

  box-sizing: content-box;
  display: flex;
  margin: 0 0 var(--efx-gap) 0;
  padding: 0 1rem 1rem;
  position: relative;
  background: var(--efx-bg);
  border-radius: 18px;
}

/* The right-side “neon” bar */
@media (min-width: 1200px) {
  .efx-post-slider::after {
    content: "";
	position: absolute;
	right: 0;
	top: 2.6rem;
	bottom: 3.6rem;
	width: 6px;
	border-radius: 999px;
	background: var(--efx-grad);
	box-shadow: -10px 0 20px 3px #000;
  }
}

/* On smaller screens, the whole slider becomes the scroller */
@media (max-width: 1200px) {
  .efx-post-slider {
    scrollbar-color: #666 var(--efx-track);
    padding-bottom: var(--efx-gap);
    padding-left: 5px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
  }

  .efx-post-slider::-webkit-scrollbar { height: 12px; }
  .efx-post-slider::-webkit-scrollbar-thumb {
    background: var(--efx-thumb);
    border-radius: 999px;
    box-shadow: inset 2px 2px 2px rgba(255,255,255,0.25),
                inset -2px -2px 2px rgba(0,0,0,0.25);
  }
  .efx-post-slider::-webkit-scrollbar-track {
    background: linear-gradient(to right, var(--efx-thumb), var(--efx-thumb) 1px, var(--efx-track) 1px, var(--efx-track));
    border-radius: 999px;
  }

  .efx-mini-card { scroll-snap-align: start; }
}

/* Header card (left block) */
.efx-post-slider-header {
  color: #fff;
  margin-top: 2rem;
  flex: 0 0 250px;
  margin-right: 1rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5rem;
  transform: translateY(-10px);
}

@media (max-width: 1200px) {
  .efx-post-slider-header {
    scroll-snap-align: start;
    scroll-margin-inline-start: 5px;
  }
}

@media (max-width: 800px) {
  .efx-post-slider-header { flex: 0 0 175px; }
}

.efx-post-slider-header::before {
  --offset: 5px;
  content: "";
  background: var(--efx-grad);
  position: absolute;
  top: calc(var(--offset) * -1);
  left: calc(var(--offset) * -1);
  width: calc(100% + 10px);
  height: calc(100% + 10px);
  z-index: 1;
  border-radius: 12px;
}

.efx-post-slider-header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  z-index: 2;
  border-radius: 8px;
}

.efx-post-slider-header > * {
  position: relative;
  z-index: 3;
  color: inherit;
}

.efx-post-slider-header h2 {
  margin: 0 0 0.4rem 0;
  font-size: 1.45rem;
  line-height: 1.1;
}

.efx-post-slider-header p {
  margin: 0;
  opacity: 0.9;
  line-height: 1.5;
  font-size: 0.98rem;
}

.efx-post-slider-header a {
  color: #fff;
  text-decoration: none;
}

/* Card rail */
.efx-mini-card-grid {
  display: flex;
  gap: 1rem;
  position: relative;
  padding: 3rem 0 3rem 2rem;
  margin: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: #666 var(--efx-track);
  scrollbar-width: thin;
  scrollbar-gutter: stable;
}

.efx-mini-card-grid::-webkit-scrollbar { height: 12px; }
.efx-mini-card-grid::-webkit-scrollbar-thumb {
  background: var(--efx-thumb);
  border-radius: 999px;
  box-shadow: inset 2px 2px 2px rgba(255,255,255,0.25),
              inset -2px -2px 2px rgba(0,0,0,0.25);
}
.efx-mini-card-grid::-webkit-scrollbar-track {
  background: linear-gradient(to right, var(--efx-thumb), var(--efx-thumb) 1px, var(--efx-track) 1px, var(--efx-track));
  border-radius: 999px;
}

/* On smaller screens, let the outer container scroll instead */
@media (max-width: 1200px) {
  .efx-mini-card-grid { overflow-x: visible; padding-left: 1rem; }
}

/* Cards */
.efx-mini-card {
  padding: 1.5rem;
  border-radius: 16px;
  background: linear-gradient(85deg, #434343, #262626);
  color: #fff;
  display: flex;
  flex-direction: column;
  transition: 0.2s;
  margin: 0;
  min-width: 300px;
  min-height: 320px;
  box-shadow: -2rem 0 3rem -2rem black;
  position: relative;
}

.efx-mini-card a {
  color: #fff;
  text-decoration: none;
}

.efx-mini-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.efx-mini-meta {
  margin: 0 0 0.6rem 0;
  color: #bbb;
  font-size: 0.9rem;
}

.efx-mini-meta strong { color: #e2e2e2; font-weight: 800; }

.efx-mini-card-title{
  text-transform: uppercase;
  letter-spacing: 0.100em;
  font-size: 1.3rem;
  margin: 0 0 0.9rem 0;
  line-height: 1.1;
  font-weight: 800;

  background: linear-gradient(90deg, #D3239A, #FF6A00);
  -webkit-background-clip: text;
  background-clip: text;

  color: transparent;
  -webkit-text-fill-color: transparent; /* Safari/Chrome */
}

.efx-mini-kicker {
  margin: 0 0 1rem 0;
  opacity: 0.9;
  line-height: 1.45;
}

.efx-mini-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  opacity: 0.92;
}

.efx-mini-cta-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--efx-grad);
}

/* The “stacked overlap” + hover shove */
.efx-mini-card:hover,
.efx-mini-card:focus-within {
  transform: translate(0, -1rem) rotate(3deg);
}
.efx-mini-card:hover ~ .efx-mini-card,
.efx-mini-card:focus-within ~ .efx-mini-card {
  transform: translateX(130px);
}
.efx-mini-card:not(:first-child) {
  margin-left: -130px;
  box-shadow: -3rem 0 3rem -2rem black;
}
.efx-mini-card:first-child:hover,
.efx-mini-card:first-child:focus-within {
  transform: translate(-0.5rem, -1rem) rotate(3deg);
}

/* Responsive tuning like CSS-Tricks */
@media (max-width: 1200px) {
  .efx-mini-card { min-width: 220px; min-height: 280px; }
  .efx-mini-card:not(:first-child) { margin-left: -30px; }
  .efx-mini-card:hover,
  .efx-mini-card:focus-within { transform: translate(0, -1rem); }
  .efx-mini-card:hover ~ .efx-mini-card,
  .efx-mini-card:focus-within ~ .efx-mini-card { transform: translateX(30px); }
}

@media (max-width: 800px) {
  .efx-mini-card { min-width: 190px; }
  .efx-mini-card:not(:first-child) { margin-left: -10px; }
  .efx-mini-card:hover ~ .efx-mini-card,
  .efx-mini-card:focus-within ~ .efx-mini-card { transform: translateX(10px); }
}
/* --- Media card variant (image + short description) --- */

.efx-mini-card--media {
  padding: 1.2rem;
}

.efx-mini-card-media {
  width: 100%;
  aspect-ratio: 16 / 9;           /* change to 2/3 if you want poster-style */
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  margin-bottom: 0.95rem;
}

.efx-mini-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.efx-mini-desc {
  margin: 0 0 1rem 0;
  opacity: 0.92;
  line-height: 1.45;
  font-size: 0.98rem;
}

/* Tighten on smaller screens */
@media (max-width: 1200px) {
  .efx-mini-desc { font-size: 0.95rem; }
}

/* Top Downloads: tighter grid + capped card width on small screens */
.efx-post-slider--topdl .efx-mini-card-grid{
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

@media (max-width: 700px){
  .efx-post-slider--topdl .efx-mini-card-grid{
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .efx-post-slider--topdl .efx-mini-card{
    width: min(360px, 100%);
  }
}

@media (max-width: 420px){
  .efx-post-slider--topdl .efx-mini-card{
    width: 100%;
  }
}
/* Header title link hover: 8FLiX gradient */
.efx-post-slider-header h2 a{
  color: inherit;
  text-decoration: none;
}

.efx-post-slider-header h2 a:hover,
.efx-post-slider-header h2 a:focus-visible{
  background: linear-gradient(90deg, #D3239A, #FF6A00);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  outline: none;
}
.efx-post-slider-header h2 a{
  position: relative;
}
.efx-post-slider-header h2 a:hover::after,
.efx-post-slider-header h2 a:focus-visible::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom:-0.25em;
  height:2px;
  background: linear-gradient(90deg, #D3239A, #FF6A00);
  border-radius: 999px;
  opacity: .85;
}