:root {
  --primary: #38b6ff;
  --secondary: #171b26;
  --accent: #294861;
  --glow: #20415b60;
  --text: #ecf2f8;
  --card-bg: rgba(22,26,38, 0.92);
  --glass: rgba(35, 43, 55, 0.49);
}
body {
  min-height: 100vh;
  font-family: 'Montserrat', sans-serif;
  background: linear-gradient(135deg, var(--secondary) 0%, #232c3a 100%);
  color: var(--text);
  margin:0;
  overflow-x:hidden;
  box-sizing: border-box;
}
#background-anim { position: fixed; top:0; left:0; width:100vw; height:100vh; z-index: 0; pointer-events: none; }
.center-wrap { min-height: 100vh; display: flex; align-items: center; justify-content:center; position:relative; z-index:2; width:100vw; background: none;}
.login-box { background: var(--card-bg); border-radius: 1.1rem; box-shadow: 0 8px 38px #38b6ff3b, 0 6px 32px #38b6ff30; padding: 2.5em 2em 2.7em 2em; width: 330px; max-width: 97vw; text-align:center; border: 2.3px solid var(--primary); animation: popin .7s cubic-bezier(.56,0,.49,1); position: relative; z-index: 10;}
@keyframes popin { from {opacity:0;transform:scale(.95);} to {opacity:1;transform:none;} }
.login-box h2 { color: var(--primary); letter-spacing:1px; margin-bottom:.4em; text-shadow: 0 2px 16px #38b6ff44;}
.login-box label { display:block; margin:.9em 0 .23em 0; text-align:left; font-size:1em; color:#9bd0ff; text-shadow: 0 2px 7px #38b6ff10;}
.login-box input[type=text], .login-box input[type=password], .login-box input[type=email] { width:100%; padding:.77em .8em; border-radius:11px; border:1.1px solid var(--accent); background:#232c3a; color:var(--text); outline:none; margin-bottom:.25em; font-size:1em; transition:border .16s; box-shadow: 0 2px 14px #29486142;}
.login-box input:focus {border-color:var(--primary);}
.login-box button { width:100%; border:none; border-radius:18px; padding:.88em 0; font-size:1.09em; font-weight:bold; background: linear-gradient(90deg, #38b6ff 70%, #294861 100%); color: #171b26; letter-spacing:.3px; box-shadow: 0 4px 23px #38b6ff55; margin-top:1.2em; transition: background .16s, color .16s; cursor:pointer;}
.login-box button:hover { filter:brightness(1.13);}
.login-box .error { color:#fea6aa;background:#392728;border-radius:8px;padding:.7em .5em;font-size:.97em;margin-top:.75em; }
.login-box .success { color:#27e89f;background:#233931;border-radius:8px;padding:.7em .5em;font-size:.97em;margin-top:.75em; }
.login-box .switch { margin-top:1.28em; color:#84e2ff; font-size:.96em; cursor:pointer; text-decoration:underline;}
.admin-panel { background: var(--card-bg, #1a162b); border-radius: 1.2rem; box-shadow: 0 8px 38px #1b2d404b, 0 2px 12px #141e3054; padding: 2.4em 2em 2.3em 2em; width: 98vw; max-width: 850px; margin: 48px auto 40px auto; animation: popin .8s cubic-bezier(.63,0,.44,1);}
.admin-panel h2 { color: var(--primary); text-align: center; }
.admin-panel label { font-size:1.09em; color:#87e4d3; font-weight:bold; }
.admin-table { width: 100%; border-collapse: collapse; margin: 2em 0 0 0; font-size: 1em; border-radius:9px; box-shadow:0 2px 18px #1b2d4055; overflow:auto; background:var(--secondary);}
.admin-table th, .admin-table td { padding: .75em .7em; border: 1px solid #3d4e70; text-align: center; background: #202a39dd; }
.admin-table th { background: #294861; color: #ecf2f8;}
.toggle-access { accent-color: #38b6ff; width: 1.25em; height: 1.25em;}
.admin-txt { font-size:.97em; color:#a8edd9; }
input[type="search"].search-admin { width:70%;max-width:340px;padding:.69em 1.2em;margin:.42em auto .8em auto;border-radius:13px; border:1.2px solid #2dbfaf;background:#202531;color:var(--text);outline:none;display:block;font-size:1.07em;}
.cart-and-buttons { width: 350px; max-width: 95vw; display: flex; flex-direction: column; align-items: center; position: sticky; top: 0; right: 0; z-index: 5; margin-top: 48px; margin-right: 60px; margin-left: 48px; min-width: 290px;}
.cart-sidebar { background: rgba(24,30,48, 0.99); box-shadow: -6px 0 34px #17315633; width: 100%; max-width: 370px; height: 50vh; min-height: 240px; border-left: 2px solid var(--accent); border-radius: 18px; padding: 2.2rem 1.2rem 1.2rem 1.2rem; display: flex; flex-direction: column; justify-content: flex-start; overflow: hidden; position: relative; margin-bottom: 34px; transition: all .21s;}
.carrito-titulo { font-size: 1.40rem; font-weight: bold; text-align: center; color: var(--primary); letter-spacing: 1.2px; margin-bottom: .5em; margin-top: -.6em; padding: .4em 0 .18em 0; background: linear-gradient(90deg, #101b28 65%, #204d68 75%, #31e3d5 100%); border-radius: 1.1em; box-shadow: 0 2px 16px #31e3d525, 0 1px 7px #38b6ff26; border: 1.6px solid #38b6ff; position: relative; overflow: hidden;}
.carrito-emoji { font-size: 1.22em; filter: drop-shadow(0 1px 8px #38b6ffcc); margin-right: .37em; vertical-align: -.15em;}
.cart-list { flex: 1 1 0%; margin:1.1rem 0 1.2rem 0; padding:0; list-style:none; overflow-y:auto; max-height: 15vh;}
.cart-list li { background: rgba(41,72,97,0.13); margin-bottom: .9rem; padding: .8rem 1rem .8rem 1rem; border-radius:15px; font-size: 1.02rem; display: flex; justify-content: space-between; align-items: center; word-break: break-word;}
.cart-remove { background:none; border:none; color:#42e3c5; font-weight:bold; cursor:pointer; font-size:1.17em; margin-left:16px; transition: color .18s; }
.cart-remove:hover { color:#ff5c5c;}
.cart-total { text-align:right; font-size:1.1rem; margin-bottom:.8rem; color:#9ee7cd;}
.cart-actions { display: flex; flex-direction: column; gap: 13px; margin-top:0.5rem; align-items: stretch;}
.pay-btn, .web3-btn { border:none; border-radius:22px; padding:12px 0; font-size:1.13rem; font-weight:bold; cursor:pointer; transition: background .17s, color .17s, filter .17s; color:#fff; box-shadow: 0 2px 14px #1ae67424; margin-bottom:3px;}
.pay-btn { background: linear-gradient(90deg, #29d4d6 70%, #3492b8 100%);}
.pay-btn:hover { filter: brightness(1.1);}
.web3-btn { background: linear-gradient(90deg, #3eab7d 55%, #20415b 100%);}
.web3-btn:hover { filter: brightness(1.14);}
.cart-sidebar hr { border:0; border-top:1px solid #29486155; margin:1.2em 0;}
#cart-msg {color:#90efa8; margin:.7em 0 0;font-size:0.97em;}
.sidebar-buttons { display: flex; flex-direction: column; gap: 18px; align-items: center; margin-bottom: 30px; width: 100%;}
.sidebar-buttons a { display: flex; align-items: center; font-size: 1.09rem; font-weight: bold; padding: 14px 28px; border-radius: 90px; border: none; text-decoration: none; gap: 0.7rem; box-shadow: 0 2px 18px #1b2d4066; opacity:.98; transition: filter 0.17s, transform .17s, box-shadow .23s; background: #19212b; width: 90%; justify-content: center; }
.sidebar-buttons a:hover { filter: brightness(1.08) drop-shadow(0 0 8px #37ffdc90); transform: scale(1.06); box-shadow: 0 10px 38px #57e6df6b;}
.whatsapp-btn { background: linear-gradient(90deg, #2ec461 62%, #157247 100%); color: #fff;}
.whatsapp-btn img { height: 2rem;}
.telegram-btn { background: linear-gradient(90deg, #2f93bf 62%, #1d485f 100%); color: #fff;}
.telegram-btn img { height: 2rem;}
.instagram-btn { background: linear-gradient(90deg, #5a7faa 9%, #384355 85%);}
.instagram-btn img { height: 2rem; filter: brightness(1.15);}
.main-content { flex: 1 1 0%; min-width: 0; display: flex; flex-direction: column; z-index: 2; position: relative; }
header { position:relative; z-index:2; text-align: center; padding: 3.5rem 1rem 1.5rem 1rem; }
header h1 { font-size: 2.2rem; letter-spacing: 1.5px; margin-bottom: .5rem; color: var(--primary); text-shadow: 0 2px 22px var(--glow);}
header p { font-size: 1.10rem; opacity:.93; max-width: 600px; margin: 0 auto;}
#cursos-premium { margin-bottom: 2.8rem; display: flex; justify-content: center; align-items: flex-start; flex-wrap: wrap;}
.cursos { position:relative; z-index:2; display:flex; flex-wrap:wrap; justify-content:center; gap:2rem; padding: 3rem 1rem 2rem 1rem;}
.curso-card { background: var(--glass); border-radius: 1.3rem; padding: 2.2rem 2rem 1.6rem 2rem; box-shadow: 0 8px 48px 0 var(--glow), 0 1.5px 15px #11283a44; min-width: 255px;max-width:340px;border: 1.2px solid var(--accent);backdrop-filter: blur(4.5px) saturate(160%); position:relative; overflow:hidden; transition: transform .29s, box-shadow .29s, border-color .28s; animation: cardRise .9s cubic-bezier(.39,.575,.565,1) backwards; display: flex; flex-direction: column; justify-content: space-between;}
.curso-card:before { content: ""; position: absolute; top:-30%; right:-40px; width:140%; height:60%; background: radial-gradient(ellipse at top right, var(--primary) 10%, transparent 70%); opacity: 0.07; z-index:0; }
.curso-card:hover { transform: scale(1.045) translateY(-8px); border-color: #42e3c5; box-shadow: 0 16px 85px 0 var(--glow), 0 3px 27px #2ddaa475; }
.curso-card h3 { color: var(--primary); margin-top: 0; font-size: 1.23rem; text-shadow: 0 1px 6px #0c7da244; letter-spacing: 1px; }
.curso-card p {margin-bottom: 0.7rem;}
.premium-card { border: 2.2px solid #42e3c5 !important; background: linear-gradient(120deg, #202b38 65%, #32ffa9 110%) !important; box-shadow: 0 8px 62px #3cffd953, 0 3px 15px #32ffa954 !important; }
.card-btn { margin-top: 1.3rem; border:none; outline:none; font-size:1.09rem; padding:10px 15px; border-radius:16px; background:linear-gradient(90deg, #101725 80%, #294861 100%); color:#fff; font-weight: bold; cursor:pointer; transition: background .19s, color .19s, box-shadow .24s; box-shadow: 0 2px 10px #0f224044; letter-spacing: .5px; }
.card-btn.selected { background:linear-gradient(90deg, #42e3c5 60%, #2dbfaf 100%); color:#171b26;}
.card-btn:hover:not(.selected) { background:linear-gradient(90deg, #2c3b4e 80%, #274e60 100%);}
.card-btn.selected:hover { background:linear-gradient(90deg, #1ed2a1 42%, #35f6e2 100%); color:#0f3531;}
.video-btn { display:inline-block; border:none; border-radius:13px; background:linear-gradient(90deg,#3a83c9 75%,#22364b 100%); color:#fff; font-weight: bold; padding:.47em 1em; font-size:.99em; margin-top:8px; box-shadow:0 2px 7px #2a5e9340; cursor:pointer; transition:background .17s, color .17s, filter .17s;}
.video-btn:hover { background:linear-gradient(90deg,#38b6ff 90%,#294861 100%); color:#232c3a;}
.curso-card iframe { border:0; }
.solicita-acceso {color:#ffb18a; background:#28202b; font-size:.99em;padding:.75em 1em; border-radius:9px; margin-top:1em;}
/*** FAQ actualizado: FLOATING + ACCORDION ***/
#faq-fab {
  position: fixed;
  bottom: 34px;
  left: 38px;
  background: linear-gradient(135deg, #32ffa9 60%, #38b6ff 100%);
  color: #fff;
  border: 2px solid #38b6ff88;
  border-radius: 50%;
  width: 62px;
  height: 62px;
  z-index: 1001;
  box-shadow: 0 4px 26px #1ae67452, 0 1px 8px #0f1c3020;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: box-shadow 0.2s, transform 0.13s;
  font-size: 2rem;
}
#faq-fab:hover {
  box-shadow: 0 6px 32px #38b6ff73, 0 1px 8px #0f1c305c;
  transform: scale(1.07);
}
#faq-fab .faq-emoji { font-size: 2.1rem; filter: drop-shadow(0 2px 10px #2ddaa4cc);}
#faq-modal {
  position: fixed;
  top: 0;
  left:0;
  width:100vw;
  height:100vh;
  background: rgba(22,30,40,0.74);
  display: none;
  z-index: 1501;
  align-items: center;
  justify-content: center;
}
.faq-content {
  max-width: 440px;
  min-width: 290px;
  width: 94vw;
  background: linear-gradient(120deg,#22313f 80%,#2de3bb 100%);
  border-radius: 20px;
  box-shadow: 0 8px 46px #38b6ff53, 0 3px 21px #32ffa955;
  padding: 2.1em 1.7em 1.7em 1.7em;
  color: #fff;
  animation: popin .33s ease;
  position: relative;
}
.faq-header {
  font-size: 1.25rem;
  font-weight: bold;
  color: #38b6ff;
  letter-spacing: .5px;
  margin-bottom: 1.2em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#faq-close {
  font-size: 1.35em;
  border: none;
  background: none;
  color: #fff;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  width:32px;
  height:32px;
  transition: background .16s;
}
#faq-close:hover { background: #27e89f22;}
.faq-accordion {
  margin-bottom: 1.1em;
  border-radius: 12px;
  background: #19303fbe;
  box-shadow:0 1.5px 15px #1ee3d653;
  transition: box-shadow .2s;
}
.faq-accordion .faq-q {
  font-size: 1.03em; font-weight: 600; color: #d7fffb; padding: 0.93em 1.1em; display: flex; align-items: center; cursor:pointer;
  background: none; border: none; outline: none; width: 100%; text-align:left; transition: background .14s;
}
.faq-accordion .faq-q:hover,
.faq-accordion.faq-open .faq-q { background: linear-gradient(95deg, #18394f22 60%, #32ffa91e 100%); }
.faq-q-emoji { font-size: 1.12em; margin-right: .4em; }
.faq-accordion .faq-a-wrap { padding: 0 1.22em 1em 1.8em; display:none;}
.faq-accordion.faq-open .faq-a-wrap { display:block; animation: popin .23s cubic-bezier(.56,0,.49,1);}
.faq-a { font-size: .99em; color: #d7f7f3; background: #253e424c; border-radius: 9px; padding: .87em 1em .87em .7em; margin-bottom: 0.29em;}
.faq-video { border-radius: 11px; box-shadow: 0 4px 22px #1b294b48; margin-top:.8em; margin-bottom:.3em; width:100%; max-width:335px;}
/* -------------------------- RESPONSIVE UNA SOLA COLUMNA --------------------------- */
@media (max-width: 900px) {
  .cursos, #cursos-premium {
    flex-direction: column;
    align-items: center;
    row-gap: 1.2rem;
    gap: 1.2rem;
    padding: 2.1rem 0.5rem 1.2rem 0.5rem;
  }
  .curso-card {
    width: 99vw;
    min-width: 95vw;
    max-width: 98vw;
    margin: 0.5em 0;
    padding: 1.3em 0.8em 1.2em 0.8em;
    font-size: .98em;
  }
  .main-content, #curso-app, .cart-and-buttons, .cart-sidebar, .sidebar-buttons {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }
  .cart-and-buttons, .cart-sidebar {
    margin-top: 30px;
    margin-bottom: 30px;
  }
  .cart-sidebar {
    height: auto;
    min-height: 0;
    box-sizing: border-box;
    padding: 1.1em 0.7em;
  }
  .sidebar-buttons a, .sidebar-buttons { width: 98vw; max-width: 99vw; }
  #user-logout { width: 97vw; margin: 20px auto 30px auto; }
}
@media (max-width: 600px) {
  .curso-card {
    padding: 1em 0.35em 0.9em 0.35em;
    font-size: .91em;
  }
  header h1 { font-size: 1.08rem; }
  .admin-panel { padding: 1.2em 0.6em 1em 0.7em; }
  #login-panel, .center-wrap { min-height: 97vh; }
}
@media (max-width: 900px) {
  .cart-and-buttons {
    flex-direction: column !important;
    align-items: center !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
@media (max-width: 600px) {
  #newsletter-fab { left: 6px; width:40px; height:40px; font-size:1.46rem;}
  #faq-fab { left: 6px; width:40px; height:40px; font-size:1.46rem;}
  .newsletter-float { left: 47px; min-width: 110px; }
  .faq-content { padding: 0.7em 0.3em 0.7em 0.3em; }
}
body { overflow-x: hidden; }
#newsletter-fab {
  position: fixed;
  bottom: 104px;
  left: 38px;
  background: linear-gradient(135deg, #38b6ff 60%, #32ffa9 100%);
  color: #fff;
  border: 2px solid #38b6ff66;
  border-radius: 50%;
  width: 62px;
  height: 62px;
  z-index: 1100;
  box-shadow: 0 3px 14px #38b6ff22;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 2rem;
  transition: box-shadow 0.18s, transform 0.13s;
  opacity: .91;
}
#newsletter-fab:hover {
  box-shadow: 0 6px 24px #38b6ff66;
  transform: scale(1.10);
}
.newsletter-emoji {
  font-size: 2.1rem;
  filter: drop-shadow(0 2px 10px #38b6ffcc);
}
.newsletter-float {
  position: fixed;
  left: 110px;
  bottom: 110px;
  background: var(--glass);
  border-radius: 1.1rem;
  box-shadow: 0 4px 19px #38b6ff33, 0 2px 6px #0f1c3028;
  border: 2px solid var(--primary);
  z-index: 1800;
  padding: 1.1em 1em 1em 1em;
  max-width: 220px;
  text-align: center;
  font-size: .98em;
  animation: popin .33s cubic-bezier(.56,0,.49,1);
}
#newsletter-form {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
#newsletter-form input[type=email] {
  padding: 0.58em 0.7em;
  border-radius: 8px;
  border: 1px solid var(--accent);
  background: #232c3a;
  color: var(--text);
  font-size: 0.96em;
  margin-bottom: 0.18em;
  box-shadow: 0 1px 8px #29486122;
}
#newsletter-form input[type=email]:focus {
  border-color: var(--primary);
}
#newsletter-form button {
  background: linear-gradient(90deg, #38b6ff 70%, #294861 100%);
  color: #171b26;
  font-weight: bold;
  border: none;
  border-radius: 12px;
  padding: 0.47em 0;
  font-size: .99em;
  letter-spacing: .2px;
  box-shadow: 0 2px 8px #38b6ff35;
  cursor: pointer;
  transition: background .13s, color .13s, filter .11s;
}
#newsletter-form button:hover {
  filter: brightness(1.13);
}
#newsletter-msg {
  margin-top: 0.4em;
  font-size: .95em;
  color: #27e89f;
  min-height: 1.1em;
}

/* ==== TESTIMONIOS FAB FLOTANTE ==== */
#testimonios-fab {
  position: fixed;
  bottom: 175px; /* Ajusta si es necesario para que quede justo sobre newsletter-fab */
  left: 38px;
  background: linear-gradient(135deg, #ffda38 60%, #ff8638 100%);
  color: #fff;
  border: 2px solid #ffd03866;
  border-radius: 50%;
  width: 62px;
  height: 62px;
  z-index: 1120;
  box-shadow: 0 3px 18px #ffbb3855, 0 1px 8px #ff8c3872;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 2rem;
  transition: box-shadow 0.19s, transform 0.17s, filter 0.14s;
  opacity: .97;
  animation: fabBounce 1.6s infinite cubic-bezier(.62,0,.5,1.05);
}
#testimonios-fab:hover {
  filter: brightness(1.09) drop-shadow(0 0 13px #ffb038cc);
  box-shadow: 0 8px 40px 0 #ffc56666, 0 2px 12px #fff7a455;
  transform: scale(1.13) translateY(-6px) rotate(-5deg);
}
.testimonios-emoji {
  font-size: 2.1rem;
  filter: drop-shadow(0 2px 10px #ffe181cc);
}
@keyframes fabBounce {
  0% { transform: translateY(0);}
  10% { transform: translateY(-8px);}
  20% { transform: translateY(-16px);}
  30% { transform: translateY(-12px);}
  45% { transform: translateY(-22px);}
  60% { transform: translateY(-11px);}
  75% { transform: translateY(-16px);}
  90% { transform: translateY(-8px);}
  100% { transform: translateY(0);}
}
@media (max-width: 600px) {
  #testimonios-fab {
    left: 6px;
    width: 40px;
    height: 40px;
    font-size: 1.46rem;
    bottom: 75px; /* Encima del newsletter fab */
  }
  .testimonios-emoji {
    font-size: 1.4rem;
  }
}

/* ==== MODAL TESTIMONIOS VIDEO ==== */
#testimonios-modal {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  background: rgba(28,28,44,0.87);
  display: none;
  z-index: 2000;
  align-items: center;
  justify-content: center;
  animation: popin .28s cubic-bezier(.56,0,.49,1);
}
.testimonios-modal-content {
  background: linear-gradient(140deg, #232c3a 75%, #ffd04826 100%);
  border-radius: 20px;
  max-width: 1300px;  
  min-width: 480px;
  width: 97vw;
  box-shadow: 0 8px 53px #ffd04845, 0 3px 23px #ff863850, 0 0px 0px #fff0;
  padding: 2.2em 1.4em 1.7em 1.4em;
  color: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  outline: none;
}
.testimonios-modal-header {
  width: 100%;
  font-size: 1.25rem;
  font-weight: bold;
  color: #ffda38;
  letter-spacing: .5px;
  margin-bottom: 1.3em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#testimonios-close {
  font-size: 1.55em;
  border: none;
  background: none;
  color: #efd580;
  font-weight: bold;
  cursor: pointer;
  border-radius: 50%;
  width: 37px; height: 37px;
  transition: background .16s;
}
#testimonios-close:hover {
  background: #ffd04822;
}
#testimonios-carousel {
  width: 100%;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
/* ==== CARRUSEL DE TESTIMONIOS GALERÍA MULTIFILA ==== */
.carrusel-galeria {
  display: flex;
  flex-direction: row;
  overflow-x: auto;
  gap: 18px;
  width: 200%;
  min-width: 800px; 
  max-width: 1800px;
  padding: 12px 0;
  justify-content: center;
  scrollbar-color: #2ddaa4 #232c3a;
  scrollbar-width: thin;
  position: relative;
  z-index: 5;
}
.carrusel-galeria::-webkit-scrollbar {
  height: 8px;
}
.carrusel-galeria::-webkit-scrollbar-thumb {
  background: #2ddaa4;
  border-radius: 6px;
}
.carrusel-galeria::-webkit-scrollbar-track {
  background: #232c3a;
}
.carrusel-galeria video {
  box-shadow: 0 4px 15px #191e42aa;
  margin-bottom: 3px;
  cursor: pointer;
  background: #181e2a;
  border-radius: 13px;
  outline: 2px solid #232c3a;
  transition: 
    all .28s cubic-bezier(.7,-0.08,.43,1.2),
    outline-color .20s cubic-bezier(.59,-0.5,1,2.1),
    box-shadow .18s cubic-bezier(.33,.52,1,.97);
  position: relative;
}
.carrusel-galeria video[style*="340px"] {
  box-shadow: 0 8px 44px #32ffa9b8, 0 2px 24px #52bdff70;
  outline: 3px solid #64eea7;
  z-index: 12;
}
.carrusel-galeria video:hover:not([style*="340px"]) {
  outline: 2.7px solid #38b6ff;
  filter: brightness(1.17);
  transition: 
    filter .13s,
    outline-color .17s cubic-bezier(.55,-0.2,1,.56),
    box-shadow .15s;
}
.carrusel-galeria video[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%; bottom: -2.5em;
  transform: translateX(-50%);
  background: #181e2a;
  color: #27e89f;
  border-radius: 7px;
  padding: .23em .7em;
  font-size: .91em;
  white-space: nowrap;
  pointer-events: none;
  opacity: .92;
  box-shadow: 0 5px 24px #33ffce33;
}

/* Responsive: carrusel ocupa todo el ancho en móvil. */
@media (max-width: 600px) {
  .carrusel-galeria {
    gap: 9px;
    padding: 7px 0;
  }
  .carrusel-galeria video {
    max-width: 94vw;
  }
}
.testimonios-modal-content {
  background: linear-gradient(140deg, #232c3a 75%, #ffd04826 100%);
  border-radius: 20px;
  max-width: 1300px;    /* << hace el modal BIEN ancho */
  min-width: 480px;
  width: 97vw;
  box-shadow: 0 8px 53px #ffd04845, 0 3px 23px #ff863850, 0 0px 0px #fff0;
  padding: 2.2em 1.4em 1.7em 1.4em;
  color: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  outline: none;
}

@media (max-width: 1100px) {
  .testimonios-modal-content {
    max-width: 98vw;
    min-width: 0;
    padding: 1.2em 0.2em 0.9em 0.2em;
  }
}
