/* Fast, lightweight slider styles */
.fse-wrapper { position: relative; width: 100%; }
.fse-slider {
  display: flex; overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory; scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch; width: 100%; height: 420px;
}
.fse-slide { flex: 0 0 100%; width: 100%; position: relative; scroll-snap-align: start; user-select: none; }
.fse-media, .fse-media img { width: 100%; height: 100%; display: block; }
.fse-media img { object-position: center; }

.fse-link { position: absolute; inset: 0; z-index: 2; text-indent: -9999px; }

.fse-caption {
  --pad: 14px; position: absolute; z-index: 3; max-width: min(92%, 720px);
  background: var(--fse-overlay, rgba(0,0,0,0.25)); padding: var(--pad) calc(var(--pad) * 1.25);
  border-radius: 10px; color: #fff;
}
.fse-caption.pos-top-left{ top:12px; left:12px; }
.fse-caption.pos-top-right{ top:12px; right:12px; }
.fse-caption.pos-bottom-left{ bottom:12px; left:12px; }
.fse-caption.pos-bottom-right{ bottom:12px; right:12px; }
.fse-caption.pos-center{ top:50%; left:50%; transform:translate(-50%,-50%); }
.fse-title { font-size: clamp(18px, 2.6vw, 32px); font-weight: 700; line-height: 1.25; margin: 0 0 6px; }
.fse-desc { font-size: clamp(13px, 1.6vw, 18px); line-height: 1.6; margin: 0; }

.fse-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; border: 0;
  background: rgba(0,0,0,0.35); color: #fff; width: 38px; height: 38px; border-radius: 999px; cursor: pointer;
}
.fse-prev { left: 10px; } .fse-next { right: 10px; }

.fse-dots { position: absolute; left: 50%; transform: translateX(-50%); bottom: 10px; z-index: 4; display: flex; gap: 6px; }
.fse-dot { width: 9px; height: 9px; border-radius: 50%; border: 0; cursor: pointer; background: rgba(255,255,255,0.5); }
.fse-dot.active { background: rgba(255,255,255,0.95); }

@media (max-width: 768px) { .fse-arrow { width:34px; height:34px; } }
@media (max-width: 480px) { .fse-arrow { display:none; } }


/* Ensure media allows absolutely positioned image-overlay links */
.fse-media { position: relative; }

/* Visually-hidden helper for accessibility */
.fse-visually-hidden { position: absolute !important; left: -9999px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Arrow visuals: use ::before as the visible icon; hide any raw textual content */
.fse-arrow { font-size: 0; line-height: 0; background: rgba(0,0,0,0.35); color: #fff; }
.fse-arrow::before { font-size: 18px; line-height: 1; color: #fff; content: '\25C0'; display:inline-block; }
.fse-next::before { content: '\25B6'; }

/* Specific link classes */
.fse-link { position: absolute; inset: 0; z-index: 2; text-indent: -9999px; display: block; background: transparent; border: 0; }
.fse-link-image { z-index: 2; }
.fse-link-caption { z-index: 4; }

/* When caption link wraps content (inline link), reset text-indent */
.fse-caption .fse-link-caption { text-indent: 0; display: block; width:100%; height:100%; }

/* ensure caption children are above overlay links if needed */
.fse-caption * { position: relative; z-index: 5; pointer-events: auto; }


/* === Fix global horizontal scroll issue === */
body { overflow-x: hidden; }
.fse-slider { max-width: 100%; overflow: hidden; position: relative; }
.fse-slides { display: flex; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; }
.fse-slides::-webkit-scrollbar { display: none; }
