:root{
  --mwft-bg:#0B1220;
  --mwft-btn:#2563EB;
  --mwft-fg:#ffffff;
  --mwft-obstacle-margin:70px;
  --mwft-font-desktop:16px;
  --mwft-font-tablet:15px;
  --mwft-font-mobile:14px;
  --mwft-pad-desktop:18px;
  --mwft-pad-tablet:14px;
  --mwft-pad-mobile:12px;
  --mwft-font-family:inherit;
  --mwft-text-weight:normal;
  --mwft-text-style:normal;
  --mwft-btn-border:1px solid rgba(255,255,255,.16);
  --mwft-btn-radius:12px;
}

/* === Typography === */
.mwft-popup__panel, .mwft-banner, .mwft-slide__caption {
  font-family: var(--mwft-font-family);
}
.mwft-content, .mwft-banner__content, .mwft-slide__desc {
  font-weight: var(--mwft-text-weight);
  font-style: var(--mwft-text-style);
}

/* === Responsive font sizes and padding === */
.mwft-popup__panel, .mwft-banner {
  font-size: var(--mwft-font-desktop);
}
.mwft-popup__panel { padding: var(--mwft-pad-desktop); }
.mwft-banner { padding: var(--mwft-pad-desktop); }

@media (max-width: 1024px) {
  .mwft-popup__panel, .mwft-banner { font-size: var(--mwft-font-tablet); }
  .mwft-popup__panel { padding: var(--mwft-pad-tablet); }
  .mwft-banner { padding: var(--mwft-pad-tablet); }
}
@media (max-width: 768px) {
  .mwft-popup__panel, .mwft-banner { font-size: var(--mwft-font-mobile); }
  .mwft-popup__panel { padding: var(--mwft-pad-mobile); }
  .mwft-banner { padding: var(--mwft-pad-mobile); }
}

/* === Common elements === */
.mwft-x{
  border:0; background:transparent; color:inherit; font-size:22px;
  cursor:pointer; line-height:1; padding:6px 10px; opacity:.85;
  transition:opacity .15s ease;
}
.mwft-x:hover{ opacity:1; }

.mwft-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:var(--mwft-btn-pad-v,10px) var(--mwft-btn-pad-h,18px); border-radius:var(--mwft-btn-radius, 12px);
  border:var(--mwft-btn-border, 1px solid rgba(255,255,255,.16));
  background:var(--mwft-btn); color:#fff; text-decoration:none; cursor:pointer;
  font-weight:700; font-size:var(--mwft-btn-font,inherit);
  transition:transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.mwft-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(0,0,0,.2);
  opacity:.92;
}
.mwft-btn:active{ transform:translateY(0); }
.mwft-btn--ghost{ background:transparent; }
.mwft-btn--small{ padding:6px 12px; border-radius:10px; font-size:14px; }
.mwft-btn--medium{ padding:10px 18px; font-size:inherit; }
.mwft-btn--large{ padding:14px 24px; font-size:1.1em; }
.mwft-link{ color:#fff; text-decoration:underline; margin-left:10px; }
.mwft-row{ display:flex; gap:var(--mwft-row-gap,10px); flex-wrap:wrap; margin-top:var(--mwft-row-mt,10px); }

/* === Media (popup image / banner logo) === */
.mwft-media-wrap{ margin:0 0 12px; }
.mwft-media-img{
  width:100%; height:auto; border-radius:14px; display:block;
  transition:transform .2s ease;
}
.mwft-media-link{ display:block; overflow:hidden; border-radius:14px; }
.mwft-media-link:hover .mwft-media-img{ transform:scale(1.02); }

/* === POPUP === */
.mwft-popup{
  display:none; position:fixed; inset:0; z-index:99999;
  animation:mwft-fadein .3s ease;
}
.mwft-popup.is-open{ display:block; }
.mwft-popup__overlay{
  position:absolute; inset:0;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(2px); -webkit-backdrop-filter:blur(2px);
}
.mwft-popup__panel{
  position:absolute; max-width:min(560px, 92vw);
  background:var(--mwft-bg); color:var(--mwft-fg);
  border-radius:20px; padding:20px 20px 18px;
  box-shadow:0 16px 48px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.06) inset;
  transform-origin:center;
}
.mwft-title{ margin:0 0 10px; font-size:1.15em; }
.mwft-content p{ margin:8px 0; }

/* Content alignment (popup & banner) */
.mwft-content,
.mwft-banner__content {
  text-align: var(--mwft-content-align, left);
}
[style*="--mwft-content-align:center"] .mwft-row { justify-content: center; }
[style*="--mwft-content-align:right"] .mwft-row { justify-content: flex-end; }

/* Popup panel animation variants */
.mwft-anim-pop .mwft-popup__panel{ animation:mwft-scalein .35s cubic-bezier(.34,1.56,.64,1); }
.mwft-anim-fade .mwft-popup__panel{ animation:mwft-fadein .35s ease; }
.mwft-anim-slide .mwft-popup__panel{ animation:mwft-popup-slidein .35s ease; }

@keyframes mwft-fadein { from { opacity:0 } to { opacity:1 } }
@keyframes mwft-scalein { from { opacity:0; transform:scale(.92) translate(var(--mwft-tx,0),var(--mwft-ty,0)) } to { opacity:1; transform:scale(1) translate(var(--mwft-tx,0),var(--mwft-ty,0)) } }
@keyframes mwft-popup-slidein { from { opacity:0; transform:translate(var(--mwft-tx,0),var(--mwft-ty,0)) translateY(30px) } to { opacity:1; transform:translate(var(--mwft-tx,0),var(--mwft-ty,0)) } }

/* Popup positions */
.mwft-pos-center .mwft-popup__panel{ left:50%; top:50%; --mwft-tx:-50%; --mwft-ty:-50%; transform:translate(-50%,-50%); }
.mwft-pos-top .mwft-popup__panel{ left:50%; top:20px; --mwft-tx:-50%; --mwft-ty:0; transform:translateX(-50%); }
.mwft-pos-bottom .mwft-popup__panel{ left:50%; bottom:20px; --mwft-tx:-50%; --mwft-ty:0; transform:translateX(-50%); }
.mwft-pos-bl .mwft-popup__panel{ left:20px; bottom:20px; }
.mwft-pos-br .mwft-popup__panel{ right:20px; bottom:20px; }

/* === BANNER (sticky) === */
.mwft-banner{
  display:none; position:fixed; left:0; right:0; z-index:99998;
  background:var(--mwft-bg); color:var(--mwft-fg);
  padding:12px 16px;
  box-shadow:0 -4px 24px rgba(0,0,0,.18), 0 0 0 1px rgba(255,255,255,.04) inset;
}
.mwft-banner.is-open{ display:block; }
.mwft-banner--top{ top:0; }
.mwft-banner--bottom{ bottom:0; }

/* Banner animation variants */
.mwft-banner.mwft-anim-slide{ animation:mwft-slideup .35s ease; }
.mwft-banner.mwft-anim-slide.mwft-banner--top{ animation-name:mwft-slidedown; }
.mwft-banner.mwft-anim-fade{ animation:mwft-fadein .35s ease; }
.mwft-banner__inner{
  max-width:1200px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.mwft-banner__content{ flex:1; }
.mwft-logo{ max-height:40px; width:auto; }

@keyframes mwft-slideup { from { transform:translateY(100%); opacity:0 } to { transform:translateY(0); opacity:1 } }
@keyframes mwft-slidedown { from { transform:translateY(-100%); opacity:0 } to { transform:translateY(0); opacity:1 } }

/* === SLIDER === */
.mwft-slider{
  position:relative; overflow:hidden;
  border-radius:18px; border:1px solid rgba(0,0,0,.06);
  box-shadow:0 2px 12px rgba(0,0,0,.08);
  max-width:var(--mwft-slider-max-w, none);
  height:var(--mwft-slider-h, auto);
  max-height:var(--mwft-slider-max-h, none);
  margin-left:auto; margin-right:auto;
}
.mwft-slider__track{
  display:flex; width:100%;
  transition:transform .55s cubic-bezier(.25,.8,.25,1);
}
.mwft-slide{
  min-width:100%; position:relative;
  overflow:hidden;
}
.mwft-slide img, .mwft-slide__img{
  width:100%; height:auto; display:block;
  transition:transform .4s ease;
}
.mwft-slide__imglink{ display:block; overflow:hidden; }
.mwft-slide__imglink:hover img{ transform:scale(1.03); }

/* Stacked modes (crossfade / zoom / cover) */
.mwft-anim-crossfade .mwft-slider__track,
.mwft-anim-zoom .mwft-slider__track,
.mwft-anim-cover .mwft-slider__track{
  display:grid;
}
.mwft-anim-crossfade .mwft-slide,
.mwft-anim-zoom .mwft-slide,
.mwft-anim-cover .mwft-slide{
  grid-area:1/1; opacity:0; pointer-events:none;
  transition:opacity .6s ease, transform .6s ease;
}
.mwft-anim-crossfade .mwft-slide.is-active{ opacity:1; pointer-events:auto; }
.mwft-anim-zoom .mwft-slide.is-active{ opacity:1; pointer-events:auto; transform:scale(1); }
.mwft-anim-zoom .mwft-slide.is-leaving{ opacity:0; transform:scale(1.05); }
.mwft-anim-cover .mwft-slide{
  transform:translateX(100%); transition:opacity .55s ease, transform .55s cubic-bezier(.25,.8,.25,1);
}
.mwft-anim-cover .mwft-slide.is-active{ opacity:1; pointer-events:auto; transform:translateX(0); }
.mwft-anim-cover .mwft-slide.is-prev{ opacity:1; transform:translateX(0); }

/* Ken Burns effect */
@keyframes mwft-kb{
  from{transform:scale(1) translate(0,0)}
  to{transform:scale(1.08) translate(-1.5%,-1%)}
}
@keyframes mwft-kb-alt{
  from{transform:scale(1) translate(0,0)}
  to{transform:scale(1.08) translate(1.5%,1%)}
}
.mwft-kenburns .mwft-slide img,
.mwft-kenburns .mwft-slide__img{
  will-change:transform;
  animation:mwft-kb 8s ease-in-out infinite alternate;
}
.mwft-kenburns .mwft-slide:nth-child(even) img,
.mwft-kenburns .mwft-slide:nth-child(even) .mwft-slide__img{
  animation-name:mwft-kb-alt;
}

/* Slider navigation */
.mwft-slider__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  border:0; width:44px; height:44px; border-radius:999px;
  background:rgba(0,0,0,.4); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; font-weight:700;
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  transition:background .15s ease, transform .15s ease;
  opacity:.85;
}
.mwft-slider__nav:hover{ background:rgba(0,0,0,.6); opacity:1; }
.mwft-prev{ left:12px; }
.mwft-next{ right:12px; }

/* Slider dots */
.mwft-slider__dots{
  position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
  display:flex; gap:8px; z-index:2;
}
.mwft-dot{
  width:10px; height:10px; border-radius:50%; border:0;
  background:rgba(255,255,255,.45); cursor:pointer;
  transition:background .2s ease, transform .2s ease;
  padding:0;
}
.mwft-dot.active{ background:#fff; transform:scale(1.2); }
.mwft-dot:hover{ background:rgba(255,255,255,.8); }

/* Slide caption — width:auto!important protects against Elementor wildcard selectors */
.mwft-slide__caption{
  position:absolute; left:16px; bottom:16px;
  width:auto!important;
  max-width:var(--mwft-cap-max-w,min(520px,88%))!important;
  background:rgba(0,0,0,var(--mwft-cap-bg-alpha,.5));
  backdrop-filter:blur(var(--mwft-cap-blur,6px)); -webkit-backdrop-filter:blur(var(--mwft-cap-blur,6px));
  color:#fff; padding:var(--mwft-cap-pad,12px 16px); border-radius:var(--mwft-cap-radius,14px);
}
.mwft-slide__title{ font-weight:700; margin-bottom:4px; font-size:1.05em; width:auto!important; max-width:none!important; }
.mwft-slide__desc{ font-size:.9em; opacity:.9; width:auto!important; max-width:none!important; }
.mwft-cap--limited{ display:flex; flex-direction:column; overflow:hidden; }

/* CTA buttons in captions — !important to resist Elementor overrides */
.mwft-slide__caption a.mwft-btn,.mwft-slide__caption button.mwft-btn{
  padding:var(--mwft-btn-pad-v,10px) var(--mwft-btn-pad-h,20px)!important;
  font-size:var(--mwft-btn-font,14px)!important;
  border-radius:var(--mwft-btn-radius,12px)!important;
  max-width:none!important;font-weight:700!important;
  display:inline-flex!important;margin-top:10px;
  box-shadow:0 2px 8px rgba(0,0,0,.2)!important;letter-spacing:.3px
}

/* Caption click delegation cursor */
[data-mwft-caption-link]{ cursor:pointer; }

/* Caption horizontal positioning */
.mwft-cap-h-center{ left:50%; right:auto; transform:translateX(-50%); }
.mwft-cap-h-right{ left:auto; right:16px; }

/* Caption vertical positioning */
.mwft-cap-v-top{ bottom:auto; top:16px; }
.mwft-cap-v-center{ bottom:auto; top:50%; transform:translateY(-50%); }

/* Combined transforms (h-center + v-center) */
.mwft-cap-h-center.mwft-cap-v-center{ transform:translate(-50%,-50%); }
.mwft-cap-h-center.mwft-cap-v-top{ transform:translateX(-50%); }

/* === Saint-Valentin theme === */
.mwft-valentine{
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  padding:12px 14px;
  background:
    radial-gradient(800px 180px at 10% 0%, rgba(255,64,129,.22), transparent 55%),
    radial-gradient(800px 180px at 90% 100%, rgba(255,0,90,.18), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.mwft-valentine .mwft-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-weight:700;
}
.mwft-countdown{font-variant-numeric:tabular-nums}

/* === Device targeting (cache-safe CSS layer) === */
@media(min-width:1025px){.mwft-slide:not([data-mwft-devices*="desktop"]){display:none!important}}
@media(min-width:769px) and (max-width:1024px){.mwft-slide:not([data-mwft-devices*="tablet"]){display:none!important}}
@media(max-width:768px){.mwft-slide:not([data-mwft-devices*="mobile"]){display:none!important}}

/* === Constrained slider (when max-height is set) === */
.mwft-slider--constrained .mwft-slide img,.mwft-slider--constrained .mwft-slide__img{
  width:100%; height:100%; object-fit:cover;
}

/* === Shortcode inline mode (Elementor preview) === */
.mwft-shortcode-inline.mwft-popup{
  position:relative; inset:auto; min-height:200px;
}
.mwft-shortcode-inline.mwft-popup .mwft-popup__overlay{
  border-radius:18px;
}
.mwft-shortcode-inline.mwft-popup .mwft-popup__panel{
  position:relative; left:auto; top:auto; right:auto; bottom:auto;
  transform:none; margin:20px auto;
}
.mwft-shortcode-inline.mwft-banner{
  position:relative; left:auto; right:auto;
}

/* === Mobile adjustments === */
@media (max-width: 768px) {
  .mwft-banner__inner {
    flex-wrap: wrap;
    padding-right: 40px;
    position: relative;
  }
  .mwft-banner__inner > .mwft-x {
    position: absolute;
    top: -6px;
    right: -6px;
    background: rgba(0,0,0,.6);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    padding: 0;
    z-index: 10;
    color: #fff;
  }

  .mwft-popup__panel{
    max-width:95vw !important;
    border-radius:16px;
  }

  .mwft-slider__nav{
    width:36px; height:36px; font-size:16px;
  }
  .mwft-prev{ left:6px; }
  .mwft-next{ right:6px; }

  .mwft-slide__caption{
    left:8px; bottom:8px; right:8px;
    max-width:none;
    padding:var(--mwft-cap-pad,8px 10px);
    border-radius:var(--mwft-cap-radius,10px);
    transform:none;
  }
  .mwft-cap-h-center,
  .mwft-cap-h-right{ left:8px; right:8px; transform:none; }
  .mwft-cap-v-top{ bottom:auto; top:8px; }
  .mwft-cap-v-center{ bottom:auto; top:50%; transform:translateY(-50%); }
  .mwft-cap-h-center.mwft-cap-v-center{ left:8px; right:8px; transform:translateY(-50%); }
}

/* === Obstacle avoidance === */
.mwft-avoid-chatbot.mwft-pos-br .mwft-popup__panel {
  right: calc(80px + var(--mwft-obstacle-margin, 70px));
}
.mwft-avoid-chatbot.mwft-banner--bottom {
  margin-bottom: var(--mwft-obstacle-margin, 70px);
}

.mwft-avoid-cookie.mwft-banner--bottom {
  bottom: calc(60px + var(--mwft-obstacle-margin, 70px));
}
.mwft-avoid-cookie.mwft-pos-bottom .mwft-popup__panel {
  bottom: calc(60px + var(--mwft-obstacle-margin, 70px));
}

.mwft-avoid-header.mwft-banner--top {
  top: calc(80px + var(--mwft-obstacle-margin, 70px));
}
.mwft-avoid-header.mwft-pos-top .mwft-popup__panel {
  top: calc(80px + var(--mwft-obstacle-margin, 70px));
}

/* Slider: header offset — inline element needs margin-top, not position offset */
.mwft-slider.mwft-avoid-header {
  margin-top: var(--mwft-obstacle-margin, 70px);
  scroll-margin-top: var(--mwft-obstacle-margin, 70px);
}

@media (max-width: 768px) {
  .mwft-avoid-chatbot.mwft-pos-br .mwft-popup__panel,
  .mwft-avoid-chatbot.mwft-pos-bottom .mwft-popup__panel {
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(80px + var(--mwft-obstacle-margin, 70px));
  }
  .mwft-avoid-chatbot.mwft-banner--bottom {
    margin-bottom: calc(70px + var(--mwft-obstacle-margin, 70px));
  }
}
