/* DatSlider v3.2 - Stratous Brand */
:root{
  --ds-blue:#009EE2;
  --ds-purple:#662482;
  --ds-gray:#6F6F6E;
  --ds-grad:linear-gradient(90deg,#009EE2,#662482);
  --ds-grad-diag:linear-gradient(135deg,#009EE2,#662482);
  --ds-dark:#08061a;
  --ds-font-title:'Righteous',sans-serif; /* H1/H2 — sustituye Joy Maker hasta tener el archivo */
  --ds-font:'Quicksand',sans-serif;       /* H3, párrafos, botones */
}

.datslider-slider{position:relative;width:100%;height:100vh;min-height:600px;max-height:1000px;overflow:hidden;cursor:default;background:var(--ds-dark)}
.datslider-canvas{position:absolute;inset:0;z-index:1;pointer-events:none}
.datslider-canvas canvas,.datslider-plane-layer canvas{width:100%!important;height:100%!important;display:block}
.datslider-plane-layer{position:absolute;inset:0;z-index:3;cursor:pointer}

/* Overlay base (oscurece la imagen) */
.datslider-overlay{
  position:absolute;inset:0;z-index:4;
  background:linear-gradient(180deg,rgba(8,6,26,.4) 0%,rgba(8,6,26,.05) 30%,rgba(8,6,26,.15) 60%,rgba(8,6,26,.8) 100%),
             linear-gradient(90deg,rgba(8,6,26,.5) 0%,transparent 50%);
  pointer-events:none;
  transition:background .8s ease;
}

/* Overlay de COLOR — se activa por slide con la clase .has-color-overlay */
.datslider-color-overlay{
  position:absolute;inset:0;z-index:5;
  pointer-events:none;
  opacity:0;
  transition:opacity .9s ease, background .9s ease;
  /* background and opacity set dynamically via JS per-slide */
}
.datslider-slider.color-overlay-active .datslider-color-overlay{
  opacity:1;
}

.datslider-content{position:absolute;inset:0;z-index:6;display:flex;align-items:center;pointer-events:none}
.datslider-content-inner{max-width:1300px;width:100%;margin:0 auto;padding:0 60px;pointer-events:none}

/* Badge */
.datslider-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(0,158,226,.12);border:1px solid rgba(0,158,226,.35);
  padding:8px 20px;border-radius:30px;
  font-family:var(--ds-font);font-size:.78rem;font-weight:700;
  color:#7cc8f0;text-transform:uppercase;letter-spacing:.12em;
  margin-bottom:24px;backdrop-filter:blur(8px);
  opacity:0;transform:translateY(20px);
  transition:all .6s cubic-bezier(.22,1,.36,1)
}
.datslider-badge.visible{opacity:1;transform:translateY(0)}
.datslider-badge::before{
  content:'';width:6px;height:6px;
  background:var(--ds-blue);border-radius:50%;
  animation:dsPulse 2s ease infinite
}
@keyframes dsPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}

/* Título */
.datslider-title{
  font-family:var(--ds-font-title);
  font-size:clamp(2.2rem,5vw,4.2rem);font-weight:400;text-transform:uppercase;letter-spacing:.04em;
  line-height:1.05;color:#fff;margin-bottom:20px;max-width:650px;
  opacity:0;transform:translateY(40px);
  transition:all .8s cubic-bezier(.22,1,.36,1) .15s
}
.datslider-title.visible{opacity:1;transform:translateY(0)}
.datslider-title em{
  font-style:normal;
  background:var(--ds-grad);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text
}

/* Subtítulo */
.datslider-subtitle{
  font-family:var(--ds-font);font-size:clamp(.9rem,1.4vw,1.1rem);font-weight:600;
  color:rgba(255,255,255,.75);line-height:1.7;max-width:480px;margin-bottom:32px;
  opacity:0;transform:translateY(30px);
  transition:all .8s cubic-bezier(.22,1,.36,1) .3s
}
.datslider-subtitle.visible{opacity:1;transform:translateY(0)}

/* CTA */
.datslider-cta{
  display:flex;gap:16px;flex-wrap:wrap;pointer-events:auto;
  opacity:0;transform:translateY(30px);
  transition:all .8s cubic-bezier(.22,1,.36,1) .45s
}
.datslider-cta.visible{opacity:1;transform:translateY(0)}

.datslider-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 30px;border-radius:60px;
  font-family:var(--ds-font);font-weight:700;font-size:.93rem;
  text-decoration:none;transition:all .35s;cursor:pointer;border:none
}
.datslider-btn-primary{
  background:var(--ds-grad);color:#fff;
  box-shadow:0 4px 24px rgba(0,158,226,.35)
}
.datslider-btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 36px rgba(102,36,130,.5);color:#fff
}
.datslider-btn-ghost{
  background:var(--ds-grad)!important;
  color:#fff!important;
  border:none!important;
  box-shadow:0 4px 24px rgba(0,158,226,.35)
}
.datslider-btn-ghost:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 36px rgba(102,36,130,.5);
  color:#fff!important
}

/* Counter */
.datslider-counter{
  position:absolute;bottom:40px;left:60px;z-index:10;
  display:flex;align-items:baseline;font-family:var(--ds-font);pointer-events:none
}
.datslider-counter-current{font-size:3rem;font-weight:700;color:#fff;line-height:1}
.datslider-counter-sep{font-size:1.1rem;color:rgba(255,255,255,.25);margin:0 6px}
.datslider-counter-total{font-size:1.1rem;font-weight:600;color:rgba(255,255,255,.35)}

/* Arrows */
.datslider-arrows{position:absolute;bottom:40px;right:60px;z-index:10;display:flex;gap:12px}
.datslider-arrow{
  width:52px;height:52px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.04);
  color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .3s;backdrop-filter:blur(8px);pointer-events:auto
}
.datslider-arrow:hover{
  background:rgba(0,158,226,.25);
  border-color:rgba(0,158,226,.6);
  transform:scale(1.08)
}

/* Progress */
.datslider-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,.06);z-index:10}
.datslider-progress-bar{height:100%;background:var(--ds-grad);width:0%;transition:width .1s linear}

/* Dots */
.datslider-dots{
  position:absolute;right:60px;top:50%;transform:translateY(-50%);
  z-index:10;display:flex;flex-direction:column;gap:14px;pointer-events:auto
}
.datslider-dot{
  width:12px;height:12px;border-radius:50%;
  border:2px solid rgba(255,255,255,.25);background:transparent;
  cursor:pointer;transition:all .4s;position:relative;padding:0
}
.datslider-dot.active{
  border-color:var(--ds-blue);background:var(--ds-blue);transform:scale(1.3)
}

/* Scroll */
.datslider-scroll{
  position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
  z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,.35);font-size:.7rem;font-family:var(--ds-font);
  text-transform:uppercase;letter-spacing:.15em
}
.datslider-scroll-line{width:1px;height:40px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.datslider-scroll-line::after{
  content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:var(--ds-blue);animation:dsScroll 2s ease infinite
}
@keyframes dsScroll{0%{top:-100%}50%{top:100%}100%{top:100%}}

/* ================================================================
   CONTACT FORM
   ================================================================ */
.dsf-wrapper{
  position:absolute;top:0;right:0;width:460px;height:100%;z-index:20;
  display:flex;align-items:center;justify-content:flex-end;
  padding:20px 16px;pointer-events:none;
  transform:translateX(120%);transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .4s;opacity:0;
}
.dsf-wrapper.visible{transform:translateX(0);opacity:1;pointer-events:auto}

.dsf-card{
  background:#fff;border-radius:18px;padding:28px 26px 24px;
  width:100%;max-height:calc(100% - 40px);overflow-y:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.4),0 0 80px rgba(0,158,226,.12);
  position:relative;color:#333;
}
.dsf-card::-webkit-scrollbar{width:5px}
.dsf-card::-webkit-scrollbar-track{background:transparent}
.dsf-card::-webkit-scrollbar-thumb{background:rgba(0,158,226,.25);border-radius:10px}

.dsf-close{
  position:absolute;top:14px;right:16px;
  background:none;border:none;font-size:20px;color:#aaa;
  cursor:pointer;padding:4px 8px;border-radius:50%;transition:all .2s;z-index:2;line-height:1;
}
.dsf-close:hover{background:#f0f0f0;color:#333}

.dsf-header{text-align:center;margin-bottom:20px;padding-right:20px}
.dsf-header h2{font-family:var(--ds-font-title);font-size:1.25rem;font-weight:700;color:#1a1a2e;margin:0 0 6px}
.dsf-header p{font-size:.85rem;color:#888;margin:0;line-height:1.4;font-family:var(--ds-font)}

/* Form fields */
.dsf-form input[type="text"],
.dsf-form input[type="number"],
.dsf-form input[type="tel"],
.dsf-form input[type="email"],
.dsf-form select{
  width:100%;padding:12px 14px;border:1.5px solid #e0e4ea;border-radius:10px;
  font-family:var(--ds-font);font-size:.88rem;color:#333;
  background:#f8f9fb;outline:none;transition:border-color .25s,background .25s;
}
.dsf-form input:focus,.dsf-form select:focus{
  border-color:var(--ds-blue);background:#fff;
  box-shadow:0 0 0 3px rgba(0,158,226,.08);
}
.dsf-form input::placeholder{color:#b0b8c4}
.dsf-form select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;color:#555;
}
.dsf-form select:invalid,.dsf-form select option[value=""]{color:#b0b8c4}
.dsf-row{margin-bottom:10px}
.dsf-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.dsf-checks{margin:16px 0;display:flex;flex-direction:column;gap:10px}
.dsf-checks label{
  display:flex;align-items:flex-start;gap:10px;
  font-size:.8rem;color:#666;line-height:1.5;cursor:pointer;
  font-family:var(--ds-font);
}
.dsf-checks label input[type="checkbox"]{
  flex-shrink:0;width:18px;height:18px;margin-top:1px;
  accent-color:var(--ds-blue);cursor:pointer;
}
.dsf-checks label span{flex:1}
.dsf-checks a{color:var(--ds-blue);text-decoration:underline}

.dsf-submit{
  width:100%;padding:16px 32px;
  background:var(--ds-grad)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  border:none;border-radius:50px;
  font-family:var(--ds-font);font-size:1rem;font-weight:700;
  cursor:pointer;transition:all .3s;letter-spacing:.05em;margin-top:6px;
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.dsf-submit:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,158,226,.4)}
.dsf-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* Success Modal */
.dsf-modal{
  position:absolute;inset:0;z-index:30;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,6,26,.75);backdrop-filter:blur(12px);
  opacity:0;pointer-events:none;transition:opacity .4s;
}
.dsf-modal.visible{opacity:1;pointer-events:auto}
.dsf-modal-card{
  background:#fff;border-radius:20px;padding:44px 36px;
  text-align:center;max-width:400px;width:90%;
  box-shadow:0 24px 60px rgba(0,0,0,.3);
  transform:scale(.85);transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.dsf-modal.visible .dsf-modal-card{transform:scale(1)}
.dsf-modal-icon{font-size:52px;margin-bottom:16px;animation:dsPlaneFloat 2s ease infinite}
@keyframes dsPlaneFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.dsf-modal-card h3{font-family:var(--ds-font-title);font-size:1.4rem;font-weight:700;color:#1a1a2e;margin-bottom:10px}
.dsf-modal-card p{font-size:.95rem;color:#666;margin-bottom:26px;line-height:1.5;font-family:var(--ds-font)}
.dsf-modal-btn{
  padding:14px 40px;background:var(--ds-grad);color:#fff;border:none;
  border-radius:12px;font-family:var(--ds-font);font-weight:700;font-size:.95rem;
  cursor:pointer;transition:all .3s;
}
.dsf-modal-btn:hover{opacity:.9;transform:translateY(-2px)}

/* Responsive */
@media(max-width:900px){.dsf-wrapper{width:380px}}
@media(max-width:768px){
  .datslider-slider{min-height:100svh}
  .datslider-content-inner{padding:0 24px}
  .datslider-counter{left:24px;bottom:24px}
  .datslider-counter-current{font-size:2.2rem}
  .datslider-arrows{right:24px;bottom:24px}
  .datslider-arrow{width:46px;height:46px}
  .datslider-dots{right:18px}
  .datslider-scroll{display:none}
  .datslider-btn{padding:12px 24px;font-size:.85rem}
  .dsf-wrapper{
    width:100%;height:auto;max-height:100%;
    top:auto;bottom:0;padding:0;align-items:flex-end;
    transform:translateY(110%);
  }
  .dsf-wrapper.visible{transform:translateY(0)}
  .dsf-card{max-height:88vh;border-radius:20px 20px 0 0;padding:24px 20px 20px}
  .dsf-header h2{font-size:1.1rem}
  .dsf-row-2{grid-template-columns:1fr}
  .dsf-form input,.dsf-form select{padding:11px 12px;font-size:.85rem}
  .dsf-checks label{font-size:.76rem}
}
