/*!
 * Themeasy — 3D Coverflow
 *
 * A perspective 3D carousel built on Swiper's coverflow effect.
 *
 * Layering:
 * - Swiper active (frontend AND editor): the slides are laid out in 3D by
 *   Swiper; the active slide reveals its caption. Navigation and pagination
 *   are shown.
 * - Fallback (missing Swiper): the track becomes a native horizontal
 *   scroll-snap row with every caption visible, so content is never gated.
 *
 * Tokens consumed: --tms-primary-color, --tms-heading-color, --tms-body-color,
 * --tms-surface-color, --tms-white-color, --tms-border-color, --tms-radius-sm,
 * --tms-radius-md (public --tms-* design API).
 *
 * @author Themeasy
 * @link https://themeasy.co
 * @since 1.0.0
 */
.tms-coverflow{--tms-cf-slide-width:340px;--tms-cf-radius:var(--tms-radius-md,20px);--tms-cf-media-ratio:3 / 4;--tms-cf-accent:var(--tms-primary-color,#6c5ce7);--tms-cf-ease:cubic-bezier(.22, 1, .36, 1);--tms-cf-scrim-color:#080a12cc;--tms-cf-scrim-height:50%;--tms-cf-shadow-color:#00000080;width:100%;position:relative}.tms-coverflow__swiper{width:100%;padding-block-start:12px;padding-block-end:36px}.tms-coverflow .swiper-slide.tms-coverflow__slide{width:var(--tms-cf-slide-width);max-width:86vw;height:auto}@media screen and (scripting:enabled) and (prefers-reduced-motion:no-preference){body:not(.tms-elementor-preview) .tms-coverflow--intro-pending .tms-coverflow__swiper{visibility:hidden;animation:1ms linear 3s forwards tms-coverflow-intro-failsafe}}@keyframes tms-coverflow-intro-failsafe{to{visibility:visible}}.tms-coverflow__card{border-radius:var(--tms-cf-radius);background-color:var(--tms-surface-color,#fff);isolation:isolate;width:100%;text-decoration:none;display:block;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #080a1280}.tms-coverflow__media{width:100%;aspect-ratio:var(--tms-cf-media-ratio);position:relative;overflow:hidden}.tms-coverflow__media .tms-coverflow__image{object-fit:cover;width:100%;height:100%;transition:filter .5s var(--tms-cf-ease);display:block}.tms-coverflow .swiper-slide-shadow-left{background-image:linear-gradient(270deg, var(--tms-cf-shadow-color,#00000080), transparent)}.tms-coverflow .swiper-slide-shadow-right{background-image:linear-gradient(90deg, var(--tms-cf-shadow-color,#00000080), transparent)}.tms-coverflow__card--scrim:before{content:"";z-index:1;height:var(--tms-cf-scrim-height,50%);background-image:linear-gradient(0deg, var(--tms-cf-scrim-color,#080a12cc) 30%, transparent 100%);opacity:0;transition:opacity .5s var(--tms-cf-ease);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.swiper-slide-active .tms-coverflow__card--scrim:before{opacity:1}.tms-coverflow__caption{z-index:2;color:var(--tms-white-color,#fff);opacity:0;transition:opacity .5s var(--tms-cf-ease), transform .5s var(--tms-cf-ease);padding:24px;position:absolute;bottom:0;left:0;right:0;transform:translateY(16px)}.swiper-slide-active .tms-coverflow__caption{opacity:1;transform:translateY(0)}.tms-coverflow__eyebrow{font-family:var(--tms-accent-font);letter-spacing:.16em;text-transform:uppercase;color:var(--tms-cf-accent);margin-bottom:8px;font-size:.75rem;font-weight:600;display:inline-block}.tms-coverflow__title{color:inherit;letter-spacing:normal;margin:0;font-size:1.25rem;line-height:1.2}.tms-coverflow__nav{justify-content:center;align-items:center;gap:16px;margin-top:28px;display:flex}.tms-coverflow__nav-button{width:48px;height:48px;color:var(--tms-heading-color,#0a0c14);background-color:var(--tms-surface-color,#fff);border:1px solid var(--tms-border-color,#80808040);border-radius:var(--tms-radius-sm,100px);cursor:pointer;transition:transform .3s var(--tms-cf-ease), color .3s ease, background-color .3s ease, border-color .3s ease;justify-content:center;align-items:center;padding:0;display:inline-flex}.tms-coverflow__nav-button:hover{color:var(--tms-white-color,#fff);background-color:var(--tms-cf-accent);border-color:var(--tms-cf-accent);transform:translateY(-2px)}.tms-coverflow__nav-button:focus-visible{color:var(--tms-white-color,#fff);background-color:var(--tms-cf-accent);border-color:var(--tms-cf-accent);transform:translateY(-2px)}.tms-coverflow__nav-button.swiper-button-disabled{opacity:.4;cursor:default;pointer-events:none}.tms-coverflow__nav-icon{justify-content:center;align-items:center;font-size:20px;line-height:0;display:inline-flex}.tms-coverflow__nav-icon svg{fill:currentColor;width:1em;height:1em}.tms-coverflow__nav-icon svg[fill=none]{fill:none;stroke:currentColor}.tms-coverflow__nav-icon img{width:1em;height:1em}.tms-coverflow__pagination{justify-content:center;align-items:center;gap:8px;margin-top:20px;display:flex;position:relative}.tms-coverflow__pagination .swiper-pagination-bullet{width:var(--tms-cf-dot-size,8px);height:var(--tms-cf-dot-size,8px);background-color:var(--tms-border-color,#80808066);opacity:1;cursor:pointer;-webkit-appearance:none;appearance:none;transition:width .3s var(--tms-cf-ease), background-color .3s var(--tms-cf-ease);border:0;padding:0;margin:0!important}.tms-coverflow__pagination .swiper-pagination-bullet:focus-visible{outline:2px solid var(--tms-cf-accent);outline-offset:2px}.tms-coverflow__pagination .swiper-pagination-bullet-active{width:calc(var(--tms-cf-dot-size,8px) * 3);background-color:var(--tms-cf-accent);border-radius:100px}.tms-coverflow--fallback .tms-coverflow__swiper{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.tms-coverflow--fallback .tms-coverflow__swiper::-webkit-scrollbar{display:none}.tms-coverflow--fallback .swiper-wrapper{gap:20px;display:flex}.tms-coverflow--fallback .swiper-slide.tms-coverflow__slide{flex:0 0 var(--tms-cf-slide-width);scroll-snap-align:center;max-width:none}.tms-coverflow--fallback .tms-coverflow__caption{opacity:1;transform:none}.tms-coverflow--fallback .tms-coverflow__card--scrim:before{opacity:1}.tms-coverflow--fallback .tms-coverflow__nav,.tms-coverflow--fallback .tms-coverflow__pagination{display:none}@media (prefers-reduced-motion:reduce){.tms-coverflow__card--scrim:before,.tms-coverflow__caption,.tms-coverflow__media .tms-coverflow__image,.tms-coverflow__nav-button,.tms-coverflow__pagination .swiper-pagination-bullet{transition:none}}