1<!DOCTYPE html> 2<html lang="es" prefix="og: https://ogp.me/ns#"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <meta name="theme-color" content="#ffffff">
vendor: 66 bytes, lines 7-8
7 8 <script async src="https://www.googletagmanager.com/gtag/js?id=
8G-XXXXXXXXXX
vendor: 13 bytes, lines 8-9
8"></script> 9
9<script>
vendor: 118 bytes, line 9
9window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
9G-XXXXXXXXXX
vendor: 3 bytes, line 9
9');
9</script>
9 10
10<script> 11 (function(){ 12 try { 13 var q = window.location.search; 14 if (/[?&]guru-app=1(&|$)/.test(q)) { sessionStorage.setItem('guru_app_preview', '1'); } 15 else if (/[?&]guru-app=0(&|$)/.test(q)) { sessionStorage.removeItem('guru_app_preview'); } 16 } catch (e) {} 17 function isApp(){ 18 try { 19 if (window.navigator.standalone === true) { return true; } 20 if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) { return true; } 21 if (sessionStorage.getItem('guru_app_preview') === '1') { return true; } 22 } catch (e) {} 23 return false; 24 } 25 if (isApp()) { document.documentElement.classList.add('guru-app'); } 26 })(); 27 </script>
27 28 29<!-- Optimización en motores de búsqueda por Rank Math PRO - https://rankmath.com/ --> 30<title>Casas de Apuestas - apostar.com.ec</title> 31<meta name="description" content="Casas de Apuestas Archive - apostar.com.ec"/> 32<meta name="robots" content="follow, index"/> 33<link rel="canonical" href="https://apostar.com.ec/casas-de-apuestas/" /> 34<link rel="next" href="https://apostar.com.ec/casas-de-apuestas/page/2/" /> 35<meta property="og:locale" content="es_ES" /> 36<meta property="og:type" content="article" /> 37<meta property="og:title" content="Casas de Apuestas - apostar.com.ec" /> 38<meta property="og:description" content="Casas de Apuestas Archive - apostar.com.ec" /> 39<meta property="og:url" content="https://apostar.com.ec/casas-de-apuestas/" /> 40<meta property="og:site_name" content="apostar.com.ec" /> 41<meta name="twitter:card" content="summary_large_image" /> 42<meta name="twitter:title" content="Casas de Apuestas - apostar.com.ec" /> 43<meta name="twitter:description" content="Casas de Apuestas Archive - apostar.com.ec" />
44<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Person","@id":"https://apostar.com.ec/#person","name":"apostar.com.ec","image":{"@type":"ImageObject","@id":"https://apostar.com.ec/#logo","url":"https://apostar.com.ec/wp-content/uploads/2022/06/logo_apostar-com-ec.svg","contentUrl":"https://apostar.com.ec/wp-content/uploads/2022/06/logo_apostar-com-ec.svg","caption":"apostar.com.ec","inLanguage":"es"}},{"@type":"WebSite","@id":"https://apostar.com.ec/#website","url":"https://apostar.com.ec","name":"apostar.com.ec","publisher":{"@id":"https://apostar.com.ec/#person"},"inLanguage":"es"},{"@type":"CollectionPage","@id":"https://apostar.com.ec/casas-de-apuestas/#webpage","url":"https://apostar.com.ec/casas-de-apuestas/","name":"Casas de Apuestas - apostar.com.ec","isPartOf":{"@id":"https://apostar.com.ec/#website"},"inLanguage":"es"}]}</script>
44 45<!-- /Plugin Rank Math WordPress SEO --> 46 47<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 48<link href='https://www.googletagmanager.com' crossorigin rel='preconnect' /> 49<style id="guru-critical-css">/* Guru Critical CSS â Inlined in <head> for instant first paint */ 50 51/* CSS Custom Properties â Light theme (default) */ 52:root{--bg-body:#ffffff;--bg-section:#f7f8fa;--bg-section-alt:#eef1f7;--bg-card:#ffffff;--bg-input:#ffffff;--bg-subtle:rgba(0,0,0,.05);--text-heading:#111827;--text-body:#374151;--text-muted:#6b7280;--text-light:#9ca3af;--border:rgba(0,0,0,.08);--border-strong:rgba(0,0,0,.12);--shadow-sm:0 1px 3px rgba(0,0,0,.05);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 30px rgba(0,0,0,.1);--accent:#b8860b;--accent-light:#d4a843;--accent-lighter:#f0c95a;--accent-dark:#b8922e;--accent-rgb:184,134,11;--accent-light-rgb:212,168,67;--accent-glow:rgba(var(--accent-rgb),.3);--accent-bg:rgba(var(--accent-rgb),.06);--accent-bg-light:rgba(var(--accent-rgb),.03);--secondary:#785707;--secondary-light:#9c7209;--secondary-rgb:120,87,7;--secondary-bg:rgba(var(--secondary-rgb),.12);--gold:var(--accent);--gold-light:var(--accent-light);--gold-glow:var(--accent-glow);--gold-bg:var(--accent-bg);--gold-bg-light:var(--accent-bg-light);--header-bg:rgba(255,255,255,.98);--footer-bg:#2f343b;--footer-text:#ffffff;--footer-muted:rgba(255,255,255,.72);--footer-border:rgba(255,255,255,.12)} 53 54/* Reset & Base */ 55*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} 56html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip} 57/* El overflow-x va solo en el html: alcanza para que la página no scrollee de 58 costado, y en el body rompÃa el position:fixed en Safari de iOS â las 59 barras pegadas abajo se despegaban y flotaban con el scroll. */ 60body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg-body);color:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} 61img,video,svg{max-width:100%;height:auto;display:block} 62iframe,embed,object{max-width:100%;display:block} 63iframe[src*="youtube.com"],iframe[src*="youtube-nocookie.com"],iframe[src*="vimeo.com"]{width:100%;height:auto;aspect-ratio:16/9} 64a{color:var(--gold);text-decoration:none;transition:color .2s ease} 65a:hover,a:focus{color:var(--gold-light)} 66h1,h2,h3,h4,h5,h6{font-family:'Playfair Display',Georgia,serif;color:var(--text-heading);line-height:1.2;font-weight:600} 67h1{font-size:clamp(1.6rem,3.8vw,2.75rem)} 68h2{font-size:clamp(1.5rem,3.5vw,2.5rem)} 69h3{font-size:clamp(1.2rem,2.5vw,1.75rem)} 70p{margin-bottom:1rem} 71ul,ol{list-style:none} 72button,input,select,textarea{font:inherit;color:inherit} 73 74/* Screen reader */ 75.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} 76.screen-reader-text:focus{position:fixed;top:5px;left:5px;z-index:100000;width:auto;height:auto;padding:15px 23px;clip:auto;background:var(--gold);color:#fff;font-size:1rem;font-weight:700} 77 78/* Skip link */ 79.skip-link:focus{position:fixed;top:5px;left:5px;z-index:100000;padding:15px 23px;background:var(--gold);color:#fff;font-size:1rem;font-weight:700;clip:auto;width:auto;height:auto} 80 81/* Layout */ 82.container{max-width:1200px;margin:0 auto;padding:0 1rem} 83.container--narrow{max-width:800px} 84 85/* ======================================== 86 HEADER 87 ======================================== */ 88.site-header{position:sticky;top:0;z-index:1000;transition:transform .3s ease;box-shadow:var(--shadow-sm)} 89 90/* --- Top bar --- */ 91.header-top{background:var(--header-top-bg,#ffffff);color:var(--header-top-text,#1a1a2e);border-bottom:1px solid var(--header-top-border,#e0e0e0)} 92.header-top__inner{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;padding-bottom:1rem;gap:1rem} 93.header-top__left,.header-top__right{flex:1;display:flex;align-items:center} 94.header-top__left{justify-content:flex-start} 95.header-top__right{justify-content:flex-end} 96 97/* Branding â centered in top bar */ 98.site-branding{flex-shrink:0;display:flex;align-items:center;justify-content:center} 99.site-branding a{display:flex;align-items:center;justify-content:center;text-decoration:none} 100.site-branding img,.site-branding .custom-logo{width:250px;max-height:80px;height:auto;object-fit:contain} 101.site-title{font-family:'Playfair Display',Georgia,serif;font-size:1.75rem;font-weight:700;color:var(--gold);letter-spacing:.02em;transition:color .2s ease} 102.site-title:hover{color:var(--gold-light)} 103 104/* Header CTA (in top bar) */ 105.header-cta{flex-shrink:0} 106/* Botón sol/luna: solo existe si algún contexto está en "auto", y se ve solo cuando lo está el de esta visita (html.guru-dark-auto, lo pone inc/dark-mode.php). */ 107.guru-theme-toggle{display:none;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;margin-right:.5rem;padding:0;border:1px solid var(--header-top-border,#e0e0e0);border-radius:50%;background:transparent;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease} 108html.guru-dark-auto .guru-theme-toggle{display:inline-flex} 109.guru-theme-toggle:hover{background:rgba(127,127,127,.12)} 110.guru-theme-toggle:focus-visible{outline:3px solid var(--accent,#b8860b);outline-offset:2px} 111.guru-theme-toggle svg{width:20px;height:20px} 112.guru-theme-toggle__sun,html.guru-dark .guru-theme-toggle__moon{display:none} 113html.guru-dark .guru-theme-toggle__sun{display:block} 114@media(max-width:480px){.guru-theme-toggle{width:36px;height:36px;margin-right:.35rem}.guru-theme-toggle svg{width:18px;height:18px}} 115.btn--header-cta{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.25rem;background:var(--btn-bg,linear-gradient(135deg,var(--accent),var(--accent-light)));color:var(--btn-text,#fff);font-size:.85rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;white-space:nowrap;box-shadow:0 2px 8px rgba(var(--accent-rgb),.25)} 116.btn--header-cta:hover{background:linear-gradient(135deg,var(--accent-light),var(--accent-lighter));color:var(--btn-text,#fff);transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--accent-rgb),.35)} 117.btn--header-cta svg{flex-shrink:0} 118 119/* --- Nav bar (below top bar) --- */ 120.header-nav{background:var(--header-nav-bg,var(--bg-section));border-bottom:1px solid var(--border)} 121.header-nav__inner{display:flex;align-items:center;justify-content:center;height:48px} 122 123/* Main Navigation */
124.main-navigation{display:flex;justify-content:center} 125.main-navigation .nav-menu{display:flex;gap:.25rem;align-items:center;margin:0;padding:0} 126.main-navigation .nav-menu>li{position:relative} 127.main-navigation .nav-menu>li>a{display:flex;align-items:center;gap:.3rem;color:var(--header-nav-text,var(--text-body));font-size:.9rem;font-weight:500;padding:.5rem .85rem;border-radius:8px;position:relative;transition:color .2s ease,background .2s ease} 128.main-navigation .nav-menu>li>a:hover,.main-navigation .nav-menu>li>a:focus,.main-navigation .nav-menu>li.current-menu-item>a{background:transparent;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px} 129.main-navigation .nav-menu>li.current-menu-item>a::after{content:none} 130 131/* Dropdown indicator for parent items */ 132.main-navigation .nav-menu>li.menu-item-has-children>a::after{content:'';display:inline-block;width:14px;height:14px;margin-left:.15rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:14px;transition:transform .25s ease;flex-shrink:0;position:static} 133.main-navigation .submenu-toggle{display:none} 134.main-navigation .nav-menu>li.menu-item-has-children:hover>a::after,.main-navigation .nav-menu>li.menu-item-has-children.is-open>a::after{transform:rotate(180deg)} 135.main-navigation .nav-menu>li.current-menu-item.menu-item-has-children>a::after{bottom:auto} 136 137/* Dropdown submenu */ 138.main-navigation .sub-menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);min-width:220px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.5rem;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:1001;list-style:none} 139.main-navigation .sub-menu::before{content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:16px;height:8px;background:var(--bg-card);clip-path:polygon(50% 0%,0% 100%,100% 100%)} 140.main-navigation .nav-menu>li:hover>.sub-menu,.main-navigation .nav-menu>li.is-open>.sub-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)} 141.main-navigation .sub-menu li{margin:0} 142.main-navigation .sub-menu li a{display:block;padding:.6rem .85rem;color:var(--text-body);font-size:.88rem;font-weight:400;border-radius:8px;transition:color .15s ease,background .15s ease} 143.main-navigation .sub-menu li a:hover{color:var(--gold);background:var(--gold-bg)} 144.main-navigation .sub-menu li.current-menu-item a{color:var(--gold);font-weight:500} 145 146/* Mobile menu toggle */ 147.menu-toggle,.nav-close-btn{display:none;background:none;border:none;cursor:pointer;padding:.5rem;width:44px;height:44px;position:relative;border-radius:8px;transition:background .2s ease} 148.menu-toggle:hover{background:var(--bg-subtle)} 149.hamburger,.hamburger::before,.hamburger::after{display:block;width:22px;height:2px;background:var(--text-body);transition:transform .3s ease,background .3s ease;position:absolute;left:11px} 150.hamburger{top:50%;transform:translateY(-50%)} 151.hamburger::before{content:'';top:-7px} 152.hamburger::after{content:'';top:7px} 153.menu-toggle[aria-expanded="true"] .hamburger{background:transparent} 154.menu-toggle[aria-expanded="true"] .hamburger::before{top:0;transform:rotate(45deg)} 155.menu-toggle[aria-expanded="true"] .hamburger::after{top:0;transform:rotate(-45deg)} 156 157/* Hero */ 158.hero{position:relative;min-height:80vh;display:flex;align-items:center;overflow:hidden;background:linear-gradient(135deg,var(--bg-section) 0%,var(--bg-section-alt) 50%,var(--bg-section) 100%)} 159.hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,var(--gold-bg) 0%,transparent 70%);pointer-events:none} 160.hero__inner{position:relative;text-align:center;padding:4rem 0} 161.hero__title{margin-bottom:1rem;background:linear-gradient(135deg,var(--accent),var(--accent-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} 162.hero__subtitle{font-size:clamp(1rem,2vw,1.25rem);color:var(--text-muted);max-width:600px;margin:0 auto 2rem} 163 164/* Buttons */ 165.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;border:none;transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;text-align:center;line-height:1.4} 166.btn--primary{background:var(--btn-bg,linear-gradient(135deg,var(--accent-light),var(--accent-dark)));color:var(--btn-text,#fff)} 167.btn--primary:hover{background:linear-gradient(135deg,var(--accent-lighter),var(--accent-light));color:var(--btn-text,#fff);transform:translateY(-1px);box-shadow:0 4px 20px rgba(var(--accent-rgb),.3)} 168.btn--gold{background:var(--btn-bg,linear-gradient(135deg,var(--accent-light),var(--accent-dark)));color:var(--btn-text,#fff);font-size:1.1rem} 169.btn--gold:hover{background:linear-gradient(135deg,var(--accent-lighter),var(--accent-light));color:var(--btn-text,#fff);transform:translateY(-1px);box-shadow:0 4px 24px rgba(var(--accent-rgb),.3)} 170.btn--outline{border:2px solid var(--gold);color:var(--gold);background:transparent} 171.btn--outline:hover{background:var(--gold);color:var(--btn-text,#fff)} 172.btn--lg{padding:1rem 2rem;font-size:1.1rem} 173 174/* ======================================== 175 CONTENT WITH TOC SIDEBAR 176 ======================================== */
177.content-with-toc{display:flex;flex-wrap:nowrap;gap:2rem;align-items:flex-start} 178/* En mobile este flex es column, y ahà `align-items:flex-start` hace que los 179 hijos se midan por su contenido en vez de estirarse al ancho del contenedor: 180 una tabla ancha estiraba .archive-main a 624px dentro de un viewport de 390 y 181 la página scrolleaba de costado. `min-width:0` no alcanza â en un flex column 182 el eje principal es la altura, asà que no toca el ancho. */ 183.content-with-toc>*{min-width:0;max-width:100%} 184.content-with-toc--archive{padding:2.5rem 0} 185.content-with-toc--archive>.archive-main{flex:1 1 0%;min-width:0;order:1} 186.content-with-toc--archive>.toc-sidebar{order:2;width:300px;max-width:300px} 187.archive-intro{margin-bottom:1.5rem;line-height:1.8;font-size:1.05rem} 188.archive-intro p:last-child{margin-bottom:0} 189.entry-content{flex:1;min-width:0;max-width:100%;overflow-x:hidden} 190.toc-sidebar{width:260px;max-width:260px;flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;gap:1rem} 191.page-sidebar{width:300px} 192.toc{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem} 193.toc__title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .75rem} 194.toc__list{list-style:none;margin:0;padding:0} 195.toc__list li{margin:0} 196.toc__list li a{display:block;padding:.35rem .75rem;font-size:.88rem;color:var(--text-body);text-decoration:none;border-left:2px solid transparent;transition:color .2s,border-color .2s} 197.toc__list li a:hover{color:var(--gold);border-left-color:var(--gold)} 198 199/* Casa destacada compacta del menú mobile: oculta por defecto (desktop). 200 Vive en critical.css âinline y fresco por deployâ para que NUNCA se cuele 201 en desktop aunque main.css quede cacheado por el minificador. */ 202.guru-menu-casa{display:none} 203 204/* ======================================== 205 MOBILE (<769px) 206 ======================================== */ 207@media(max-width:768px){ 208/* TOC mobile */ 209.content-with-toc{flex-direction:column} 210.toc-sidebar{width:100%} 211/* Top bar mobile */ 212.header-top__inner{padding:.4rem 1.25rem} 213.header-top__left{flex:0 0 auto} 214.site-branding{flex:1 1 0%;justify-content:flex-start;margin-left:.5rem} 215.site-branding img,.site-branding .custom-logo{width:180px;max-height:56px} 216.header-top__right{flex:0 0 auto} 217.btn--header-cta{padding:.45rem .9rem;font-size:.8rem} 218.btn--header-cta svg{display:none} 219/* Mobile nav close button */ 220.nav-close-btn{display:flex;position:absolute;top:1rem;right:1.5rem;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;z-index:1000;color:var(--text-heading);border-radius:8px} 221.nav-close-btn:hover{background:var(--bg-subtle)} 222.nav-close-btn svg{width:24px;height:24px} 223 224/* Nav bar mobile â collapse the desktop nav row to zero height (hamburger moved to header-top__left), but keep .main-navigation rendered inside so its fixed overlay still toggles. */ 225.header-nav{height:0;padding:0;border:0;background:none;overflow:visible} 226.header-nav__inner{height:0;min-height:0;padding:0} 227.header-top__left .menu-toggle{display:flex;align-items:center;justify-content:center;margin-right:.25rem} 228.menu-toggle{display:block} 229 230/* Mobile nav overlay */ 231.main-navigation{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-body);transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:999;padding:5rem 1.5rem calc(2rem + var(--guru-bottom-inset,0px));overflow-y:auto;-webkit-overflow-scrolling:touch} 232/* El blur va solo con el panel abierto. Cerrado el panel sigue en el DOM, y un 233 backdrop-filter vivo permanente manda a WebKit al camino lento de scroll: 234 con eso, todos los position:fixed de la página viajan con el scroll. */ 235.main-navigation.is-active{transform:translateX(0);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)} 236.main-navigation .nav-menu{flex-direction:column;gap:0;align-items:stretch} 237.main-navigation .nav-menu>li{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border)} 238.main-navigation .nav-menu>li>a{flex:1 1 0%;min-width:0;display:flex;justify-content:flex-start;align-items:center;padding:1rem 0;font-size:1.15rem;font-weight:500;border-bottom:none;border-radius:0;color:var(--text-heading)} 239.main-navigation .nav-menu>li>a:hover{background:none;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px} 240.main-navigation .nav-menu>li.menu-item-has-children>a::after{display:none} 241.main-navigation .submenu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:color .2s ease,background .2s ease;border-radius:8px} 242.main-navigation .submenu-toggle:hover,.main-navigation .submenu-toggle:focus{color:var(--gold);background:var(--gold-bg)} 243.main-navigation .submenu-toggle svg{transition:transform .25s ease} 244.main-navigation .nav-menu>li.is-open>.submenu-toggle svg{transform:rotate(180deg)} 245.main-navigation .nav-menu>li>.sub-menu{flex-basis:100%;order:99} 246.main-navigation .nav-menu>li.current-menu-item>a{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px} 247.main-navigation .nav-menu>li.current-menu-item>a::after{display:none} 248 249/* Mobile dropdown chevron */ 250.main-navigation .nav-menu>li.menu-item-has-children>a::after{position:static;margin-left:auto;transition:transform .3s ease} 251.main-navigation .nav-menu>li.menu-item-has-children.is-open>a::after{transform:rotate(180deg)} 252 253/* Mobile submenu */ 254.main-navigation .sub-menu{position:static;transform:none;min-width:0;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;opacity:1;visibility:visible;max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1)} 255.main-navigation .sub-menu::before{display:none} 256.main-navigation .nav-menu>li.is-open>.sub-menu{max-height:min(500px,calc(100vh - 200px));transform:none} 257.main-navigation .sub-menu li a{padding:.75rem 0 .75rem 1.25rem;font-size:1rem;border-bottom:1px solid var(--border);border-radius:0;color:var(--text-muted)} 258.main-navigation .sub-menu li a:hover{background:none;color:var(--gold)} 259.main-navigation .sub-menu li:last-child a{border-bottom:none} 260 261/* Casa destacada compacta anclada al fondo del drawer. El drawer pasa a
262 columna (manteniendo el menú centrado arriba) y la barra usa margin-top:auto 263 para quedar abajo. */ 264.main-navigation{flex-direction:column;align-items:center;justify-content:flex-start} 265.guru-menu-casa{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;width:100%;padding:.75rem .85rem;background:var(--bg-section-alt);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm)} 266.guru-menu-casa__label{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:center} 267.guru-menu-casa__row{display:flex;align-items:center;gap:.6rem} 268.guru-menu-casa__logo{flex:0 0 auto;width:60px;height:34px;display:flex;align-items:center;justify-content:center} 269.guru-menu-casa__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain} 270.guru-menu-casa__logo-fallback{font-weight:700;color:var(--text-heading);font-size:.9rem} 271.guru-menu-casa__bono{display:flex;flex-direction:column;line-height:1.1;min-width:0;flex:1 1 auto} 272.guru-menu-casa__bono-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)} 273.guru-menu-casa__bono-value{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.15rem;color:var(--text-heading);line-height:1} 274.guru-menu-casa__cta{flex:0 0 auto;padding:.55rem 1rem;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;text-decoration:none;white-space:nowrap} 275 276.hero{min-height:60vh} 277.hero__inner{padding:2.5rem 0} 278.container{padding:0 1rem} 279} 280 281@media(max-width:480px){ 282.site-branding img,.site-branding .custom-logo{width:140px;max-height:46px} 283.btn--header-cta{padding:.4rem .85rem;font-size:.75rem} 284.header-top__inner{padding:.3rem 1rem} 285.hero{min-height:50vh} 286.hero__inner{padding:2rem 0} 287.hero__subtitle{font-size:.9rem} 288} 289</style> 290<link rel="manifest" href="https://apostar.com.ec/?guru_manifest=1"> 291<link rel="alternate" type="application/rss+xml" title="apostar.com.ec » Casas de Apuestas Feed" href="https://apostar.com.ec/casas-de-apuestas/?feed=rss2" /> 292<style id="guru-color-override">:root{--accent:#b91c1c;--accent-light:#ef4444;--accent-lighter:#f87171;--accent-dark:#991b1b;--accent-rgb:185,28,28;--accent-light-rgb:239,68,68;--secondary:#fca5a5;--secondary-light:#fecaca;--secondary-rgb:252,165,165}</style> 293<link rel="next" href="https://apostar.com.ec/casas-de-apuestas/page/2/" /> 294<style id="guru-footer-color-override">:root{--footer-accent:#113caa;--footer-accent-rgb:17,60,170;--footer-accent-light:#4d6dbf}</style> 295<style id="guru-archive-hero-color-override">:root{--archive-hero-primary:#dd3333;--archive-hero-primary-rgb:221,51,51;--archive-hero-primary-light:#e66666;--archive-hero-secondary:#1e73be;--archive-hero-secondary-rgb:30,115,190}</style> 296<style id="wp-img-auto-sizes-contain-inline-css"> 297img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 298/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 299</style> 300<style id="wp-block-library-inline-css"> 301:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
301--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 302 303/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 304</style> 305<style id="classic-theme-styles-inline-css"> 306/*! This file is auto-generated */ 307.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 308/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 309</style> 310 311<style id="global-styles-inline-css"> 312:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
3120) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
312.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 313/*# sourceURL=global-styles-inline-css */ 314</style> 315 316<link rel="stylesheet" id="guru-style-css" href="https://apostar.com.ec/wp-content/themes/repo-igl-main/assets/css/main.css" media="print" onload="this.media='all'" /><noscript><link rel="stylesheet" href="https://apostar.com.ec/wp-content/themes/repo-igl-main/assets/css/main.css" /></noscript><style id="guru-style-inline-css"> 317/* Guru Forecast Banner â banner inline antes del Nth H2 con próximo partido. 318 Adaptación de las tarjetas del header banner (guru-fhb) para el contenido: 319 tarjeta blanca con acento verde arriba, badge de campeonato, escudos 320 circulares + nombres, VS, cuotas 1/2 y CTA rojo. */ 321.guru-fb{ 322 margin:2rem 0; 323 border-radius:16px; 324 background:#fff; 325 border:1px solid rgba(0,0,0,.08); 326 box-shadow:0 8px 26px rgba(0,0,0,.10); 327 overflow:hidden; 328 position:relative; 329 isolation:isolate; 330} 331.guru-fb::before{ 332 content:""; 333 position:absolute; 334 top:0;left:0;right:0; 335 height:4px; 336 background:linear-gradient(90deg,#2c9a42,#1c7a31 55%,#155f27); 337 z-index:1; 338} 339.guru-fb__inner{ 340 position:relative; 341 z-index:1; 342 display:flex; 343 flex-direction:column; 344 align-items:center; 345 gap:.7rem; 346 padding:1.2rem 1rem 1.2rem; 347 text-align:center; 348 box-sizing:border-box; 349 max-width:100%; 350} 351/* Cocarda del campeonato dentro del banner (flujo normal, centrada). */ 352.guru-fb__badge{ 353 display:inline-block; 354 padding:.24rem .85rem; 355 border-radius:999px; 356 background:linear-gradient(180deg,#f5c542,#e0a92a); 357 color:#3a2a05; 358 font-weight:800; 359 font-size:.72rem; 360 text-transform:uppercase; 361 letter-spacing:.06em; 362 box-shadow:0 2px 6px rgba(0,0,0,.12); 363 white-space:nowrap; 364} 365.guru-fb__match{ 366 display:grid; 367 grid-template-columns:1fr auto 1fr; 368 /* align-items:end â todas las columnas apoyan abajo, asà las cuotas 1/EMPATE/2 369 (último elemento de cada columna) quedan alineadas horizontalmente entre sÃ. */ 370 align-items:end; 371 justify-content:center; 372 gap:.4rem .6rem; 373 width:100%; 374 max-width:560px; 375} 376.guru-fb__center{ 377 display:flex; 378 flex-direction:column; 379 align-items:center; 380 gap:.35rem; 381 grid-column:2; 382} 383.guru-fb__side{ 384 display:flex; 385 flex-direction:column; 386 align-items:center; 387 gap:.5rem; 388 min-width:0; 389} 390.guru-fb__side--local{grid-column:1} 391.guru-fb__side--visit{grid-column:3} 392/* La cuota se separa apenas del nombre del equipo / VS. */ 393.guru-fb__odd{margin-top:.15rem} 394.guru-fb__shield{ 395 display:inline-flex; 396 align-items:center; 397 justify-content:center; 398 width:62px; 399 height:62px; 400 border-radius:50%; 401 background:#eef1f4; 402 overflow:hidden; 403 flex:0 0 auto; 404 box-shadow:0 2px 6px rgba(0,0,0,.1); 405} 406.guru-fb__shield img{width:100%;height:100%;object-fit:cover} 407.guru-fb__shield svg{width:64%;height:64%;object-fit:contain;color:#1c7a31} 408.guru-fb__team{ 409 font-weight:800; 410 font-size:.9rem; 411 color:#14301b; 412 text-transform:uppercase; 413 letter-spacing:.01em; 414 line-height:1.2; 415 overflow-wrap:anywhere; 416} 417.guru-fb__vs{ 418 font-weight:900; 419 font-size:1.05rem; 420 color:#9aa4ad; 421 letter-spacing:.03em; 422} 423.guru-fb__odd{ 424 display:inline-flex; 425 flex-direction:column; 426 align-items:center; 427 justify-content:center; 428 gap:.06rem; 429 min-width:48px; 430 padding:.32rem .45rem; 431 border:1px solid #dfe3e8; 432 border-radius:9px; 433 background:#f7f9fb; 434 line-height:1.05; 435 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease; 436} 437.guru-fb__odd:hover{ 438 border-color:#2c9a42; 439 background:#fff; 440 box-shadow:0 5px 14px rgba(44,154,66,.22); 441 transform:translateY(-2px); 442} 443.guru-fb__odd:hover .guru-fb__odd-key{color:#2c9a42} 444/* Las cuotas son links (mismo destino que el botón). */ 445a.guru-fb__odd{text-decoration:none;cursor:pointer} 446a.guru-fb__odd:hover,a.guru-fb__odd:focus,a.guru-fb__odd:visited{text-decoration:none} 447a.guru-fb__odd:focus-visible{outline:2px solid #2c9a42;outline-offset:2px} 448.guru-fb__odd-key{font-size:.6rem;font-weight:800;color:#8a929e;text-transform:uppercase;letter-spacing:.02em} 449.guru-fb__odd-val{font-size:.92rem;font-weight:800;color:#14301b;font-variant-numeric:tabular-nums;white-space:nowrap} 450/* Texto customizable: va arriba (debajo del campeonato, antes de los equipos) 451 como frase de gancho. Más grande y con los nombres/campeonato en verde de 452 acento para que resalte. */ 453.guru-fb__headline{ 454 margin:.1rem 0 .1rem; 455 font-size:1.32rem; 456 font-weight:700; 457 line-height:1.32;
458 color:#14301b; 459 max-width:520px; 460 letter-spacing:-.01em; 461 overflow-wrap:break-word; 462 word-wrap:break-word; 463} 464.guru-fb__headline strong{font-weight:800;color:#1c7a31} 465.guru-fb__cta-wrap{ 466 display:flex; 467 justify-content:center; 468 width:100%; 469 margin-top:.1rem; 470} 471.guru-fb__cta-wrap > p{margin:0} 472.guru-fb__cta, 473.guru-fb a.guru-fb__cta{ 474 display:inline-block; 475 padding:.72rem 2.1rem; 476 border-radius:999px; 477 background:#e11d2f; 478 color:#fff; 479 border:0; 480 font-weight:800; 481 font-size:1rem; 482 letter-spacing:.03em; 483 text-transform:uppercase; 484 text-decoration:none; 485 box-shadow:0 4px 14px rgba(225,29,47,.35); 486 transition:transform .18s ease,box-shadow .18s ease,background .18s ease; 487} 488.guru-fb__cta:visited, 489.guru-fb a.guru-fb__cta:visited{color:#fff} 490.guru-fb__cta:hover, 491.guru-fb__cta:focus-visible, 492.guru-fb a.guru-fb__cta:hover, 493.guru-fb a.guru-fb__cta:focus, 494.guru-fb a.guru-fb__cta:focus-visible{ 495 background:#c81628; 496 color:#fff; 497 text-decoration:none; 498 transform:scale(1.06); 499 box-shadow:0 9px 24px rgba(225,29,47,.45); 500 outline:none; 501} 502 503/* Escudos como marca de agua en los laterales de la tarjeta: grandes, en color, 504 centrados verticalmente y cortados por el borde (se ve solo la mitad de cada
505 uno). z-index:0 los deja detrás del contenido (.guru-fb__inner va en z-index:1) 506 y el overflow:hidden de la tarjeta recorta la mitad de afuera. */ 507.guru-fb__wm{ 508 position:absolute; 509 top:50%; 510 width:320px; 511 height:320px; 512 opacity:.09; 513 filter:blur(1.5px); 514 pointer-events:none; 515 z-index:0; 516} 517.guru-fb__wm--local{left:0;transform:translate(-50%,-50%)} 518.guru-fb__wm--visit{right:0;transform:translate(50%,-50%)} 519.guru-fb__wm img,.guru-fb__wm svg{width:100%;height:100%;object-fit:contain} 520 521@media (max-width:540px){ 522 .guru-fb{border-radius:12px} 523 .guru-fb__wm{width:230px;height:230px} 524 .guru-fb__inner{padding:1.05rem .55rem 1.05rem;gap:.6rem} 525 .guru-fb__shield{width:46px;height:46px} 526 .guru-fb__team{font-size:.64rem;overflow-wrap:break-word} 527 .guru-fb__match{max-width:100%;gap:.3rem .3rem} 528 .guru-fb__odd{min-width:38px;padding:.26rem .28rem} 529 .guru-fb__odd-val{font-size:.82rem} 530 .guru-fb__odd-key{font-size:.55rem} 531 .guru-fb__cta{padding:.65rem 1.7rem;font-size:.95rem} 532 .guru-fb__headline{font-size:1.1rem} 533} 534@media (prefers-reduced-motion:reduce){ 535 .guru-fb__cta,.guru-fb a.guru-fb__cta,.guru-fb__odd{transition:none} 536 .guru-fb__odd:hover{transform:none} 537} 538 539/* Guru â Modal "Casa sin link" */ 540.guru-nolink-modal,.guru-nolink-modal *{box-sizing:border-box} 541.guru-nolink-modal[hidden]{display:none} 542/* El lock va también en <html>: ver la nota en guru-popup-modal.css. */ 543html.guru-nolink-open,body.guru-nolink-open{overflow:hidden;overscroll-behavior:contain;scroll-behavior:auto} 544.guru-nolink-modal,.guru-nolink-modal__dialog{overscroll-behavior:contain} 545.guru-nolink-modal{position:fixed;inset:0;z-index:99990;display:flex;align-items:flex-end;justify-content:center} 546.guru-nolink-modal__overlay{position:absolute;inset:0;background:rgba(17,24,39,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)} 547.guru-nolink-modal__dialog{position:relative;z-index:1;width:100%;max-width:460px;background:var(--bg-card,#fff);color:var(--text-body,#374151);border-radius:20px 20px 0 0;padding:1.5rem 1.25rem calc(1.35rem + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 48px rgba(0,0,0,.3);max-height:90vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:guru-nolink-up .28s cubic-bezier(.22,1,.36,1)} 548@keyframes guru-nolink-up{from{transform:translateY(100%)}to{transform:translateY(0)}} 549.guru-nolink-modal__close{position:absolute;top:.6rem;right:.7rem;width:2.1rem;height:2.1rem;display:flex;align-items:center;justify-content:center;border:0;background:var(--bg-subtle,rgba(0,0,0,.05));font-size:1.4rem;line-height:1;color:var(--text-muted,#6b7280);cursor:pointer;border-radius:50%;transition:background .15s,color .15s} 550.guru-nolink-modal__close:hover{background:var(--border-strong,rgba(0,0,0,.12));color:var(--text-heading,#111827)} 551.guru-nolink-modal__title{margin:.15rem 2rem 1.25rem 0;font-size:1.02rem;font-weight:500;line-height:1.5;color:var(--text-heading,#111827);letter-spacing:-.01em} 552.guru-nolink-modal__domain{font-weight:800;color:var(--accent,#b8860b);white-space:nowrap} 553.guru-nolink-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem} 554.guru-nolink-modal__item{display:flex;align-items:center;gap:.8rem;min-width:0;padding:.5rem .55rem .5rem .7rem;border:1px solid var(--border,rgba(0,0,0,.08));border-radius:14px;background:var(--bg-section,#f7f8fa);transition:border-color .15s,box-shadow .15s} 555.guru-nolink-modal__item:hover{border-color:var(--accent,#b8860b);box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.06))} 556.guru-nolink-modal__rank{flex:0 0 auto;font-weight:800;font-size:.78rem;color:var(--text-light,#9ca3af)} 557.guru-nolink-modal__logo{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-start;text-decoration:none;overflow:hidden} 558.guru-nolink-modal__logo img{max-width:100%;max-height:32px;width:auto;height:auto;object-fit:contain;display:block} 559.guru-nolink-modal__logo-fallback{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .55rem;background:#222;color:#fff;border-radius:7px;font-weight:700;text-transform:uppercase;font-size:.78rem} 560.guru-nolink-modal__cta{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;padding:.5rem .95rem;min-height:38px;background:var(--gold,#b8860b);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border-radius:9px;white-space:nowrap;transition:filter .15s,transform .15s} 561.guru-nolink-modal__cta:hover{filter:brightness(1.08);transform:translateY(-1px)} 562.guru-nolink-modal__cta:active{transform:translateY(0)} 563.guru-nolink-modal__redirect{margin:0 0 1.1rem;padding:.85rem .9rem;border:1px solid var(--border,rgba(0,0,0,.08));border-radius:12px;background:var(--bg-section,#f7f8fa)} 564.guru-nolink-modal__redirect-text{margin:0 0 .55rem;font-size:.84rem;line-height:1.4;text-align:center;color:var(--text-muted,#6b7280)} 565.guru-nolink-modal__count{font-weight:800;color:var(--accent,#b8860b)} 566.guru-nolink-modal__bar{height:6px;border-radius:99px;background:var(--bg-subtle,rgba(0,0,0,.08));overflow:hidden} 567.guru-nolink-modal__bar-fill{display:block;height:100%;width:0;border-radius:99px;background:var(--gold,#b8860b)} 568@media (prefers-reduced-motion:reduce){.guru-nolink-modal__bar-fill{transition:none!important}} 569/* Desktop: modal centrado en vez de bottom-sheet */ 570@media (min-width:600px){ 571 .guru-nolink-modal{align-items:center;padding:1rem} 572 .guru-nolink-modal__dialog{border-radius:20px;padding-bottom:1.5rem;animation:guru-nolink-in .22s ease} 573} 574@keyframes guru-nolink-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}} 575@media (prefers-reduced-motion:reduce){.guru-nolink-modal__dialog{animation:none}} 576/* Touch: el :hover queda pegado tras el tap, asà que en touch mantenemos el 577 aspecto base (el :active da el feedback momentáneo). Los equivalentes para 578 los botones del resto del sitio viven en main.css, no acá: esta hoja se 579 sirve solo en las páginas que montan el modal. */ 580@media (hover:none){ 581 .guru-nolink-modal__cta:hover,.guru-nolink-modal__cta:focus{filter:none;transform:none} 582} 583 584/* Guru â Popups tipo modal (4 slots configurables) */ 585.guru-popup,.guru-popup *{box-sizing:border-box} 586.guru-popup[hidden]{display:none} 587/* El lock va en <html> y no solo en <body>: critical.css le pone overflow-x:clip 588 al html, asà que el viewport toma su overflow del html y el del body nunca 589 llega a propagarse. Con el lock solo en body la página seguÃa scrolleando 590 detrás del popup, hasta el fondo. overscroll-behavior corta además el 591 encadenamiento desde el diálogo, que es corto y llega a su tope enseguida. */ 592html.guru-popup-open,body.guru-popup-open{overflow:hidden;overscroll-behavior:contain;scroll-behavior:auto} 593.guru-popup,.guru-popup__dialog{overscroll-behavior:contain} 594.guru-popup{position:fixed;inset:0;z-index:99992;display:flex;align-items:flex-end;justify-content:center} 595.guru-popup__overlay{position:absolute;inset:0;background:rgba(17,24,39,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)} 596.guru-popup__dialog{position:relative;z-index:1;width:100%;max-width:480px;background:var(--bg-card,#fff);color:var(--text-body,#374151);border-radius:20px 20px 0 0;padding:1.75rem 1.35rem calc(1.5rem + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 48px rgba(0,0,0,.3);max-height:90vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;text-align:center;animation:guru-popup-up .28s cubic-bezier(.22,1,.36,1)} 597@keyframes guru-popup-up{from{transform:translateY(100%)}to{transform:translateY(0)}} 598.guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:10;width:2.1rem;height:2.1rem;display:flex;align-items:center;justify-content:center;border:0;background:var(--bg-card,#fff);box-shadow:0 1px 4px rgba(0,0,0,.18);font-size:1.4rem;line-height:1;color:var(--text-muted,#6b7280);cursor:pointer;border-radius:50%;transition:background .15s,color .15s} 599.guru-popup__close:hover{background:var(--border-strong,rgba(0,0,0,.12));color:var(--text-heading,#111827)} 600.guru-popup__title{margin:.25rem 1.5rem .5rem;font-size:1.5rem;font-weight:800;line-height:1.2;color:var(--text-heading,#111827);letter-spacing:-.02em} 601.guru-popup__subtitle{margin:0 0 1rem;font-size:1.05rem;font-weight:600;line-height:1.35;color:var(--accent,#b8860b)} 602.guru-popup__text{margin:0 0 1.25rem;font-size:.95rem;line-height:1.55;color:var(--text-body,#374151)} 603.guru-popup__text p{margin:0 0 .75rem} 604.guru-popup__text p:last-child{margin-bottom:0} 605.guru-popup__custom{margin:0 0 1.25rem} 606.guru-popup__custom:last-child{margin-bottom:0} 607.guru-popup__custom canvas,.guru-popup__custom img,.guru-popup__custom svg{max-width:100%} 608.guru-popup__cta{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:340px;padding:.85rem 1.5rem;min-height:48px;background:var(--btn-bg,var(--gold,#b8860b));color:var(--btn-text,#fff);font-size:.95rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;border-radius:11px;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.18);transition:filter .15s,transform .15s,box-shadow .15s,background .15s} 609.guru-popup__cta:hover,.guru-popup__cta:focus{filter:brightness(.86) saturate(1.1);transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.34);color:var(--btn-text,#fff);text-decoration:none} 610.guru-popup__cta:active{transform:translateY(0);box-shadow:0 3px 10px rgba(0,0,0,.2)} 611.guru-popup__disclaimer{margin:1.15rem 0 0;font-size:.72rem;line-height:1.45;color:var(--text-muted,#6b7280)} 612/* Desktop: modal centrado en vez de bottom-sheet */ 613@media (min-width:600px){ 614 .guru-popup{align-items:center;padding:1rem} 615 .guru-popup__dialog{border-radius:20px;padding-bottom:1.75rem;animation:guru-popup-in .22s ease} 616 /* Popup ancho (la creatividad de imagen): el doble. En mobile no aplica, 617 que ya ocupa todo el ancho; el max-width lo acota igual en pantallas 618 angostas de escritorio. */ 619 .guru-popup[data-wide="1"] .guru-popup__dialog{max-width:960px} 620 /* En un diálogo de 960 el CTA de 340 queda perdido. */ 621 .guru-popup[data-wide="1"] .guru-popup__cta{max-width:420px} 622 623 /* Tragaperras: la palanca sobresale por el borde derecho del modal. Requiere 624 overflow visible, y por spec no se puede tener un eje visible y el otro 625 auto â asà que el scroll se delega al contenedor. El .guru-popup ya emite 626 data-kind, con eso alcanza para acotarlo a este popup. */ 627 .guru-popup__dialog--slotmachine{overflow:visible;max-height:none} 628 .guru-popup[data-kind="slotmachine"]{align-items:flex-start;overflow-y:auto} 629 /* margin auto + flex-start: sin esto, el contenido más alto que el viewport 630 se corta por arriba y no hay forma de scrollear hasta ahÃ. */ 631 .guru-popup[data-kind="slotmachine"] .guru-popup__dialog{margin:auto} 632 .guru-popup__dialog--slotmachine .guru-slotmachine__lever{position:absolute;right:-52px;top:0;bottom:0;flex:none;width:44px} 633 .guru-popup__dialog--slotmachine .guru-slotmachine__lever-rod{height:64px} 634 .guru-popup__dialog--slotmachine .guru-slotmachine__lever-knob{width:32px;height:32px;top:-18px} 635 .guru-popup__dialog--slotmachine .guru-slotmachine__lever-base{width:36px;height:26px} 636} 637@keyframes guru-popup-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}} 638@media (prefers-reduced-motion:reduce){.guru-popup__dialog{animation:none}} 639@media (hover:none){ 640 .guru-popup__cta:hover,.guru-popup__cta:focus{filter:none;transform:none} 641} 642 643/* Creatividad de imagen (Popup 5) â la imagen sangra hasta los bordes del 644 diálogo, asà que el padding de arriba se va y el radio lo pone la imagen. */ 645.guru-popup__dialog--image{padding-top:0} 646.guru-popup__image{display:block;margin:0 -1.35rem 1.25rem;border-radius:20px 20px 0 0;overflow:hidden;line-height:0} 647.guru-popup__image:last-child{margin-bottom:0} 648.guru-popup__image picture,.guru-popup__image img{display:block;width:100%;height:auto} 649a.guru-popup__image{transition:filter .15s} 650a.guru-popup__image:hover{filter:brightness(.94)} 651@media (hover:none){a.guru-popup__image:hover{filter:none}} 652/* Creatividad de iframe: un banner externo en vez de la imagen. Sangra igual, 653 y el alto lo pone el JS al abrir junto con el src â el creativo va a su 654 tamaño real y escalado desde la esquina para entrar en el diálogo, porque un 655 iframe no achica lo que trae adentro. El fondo tapa el hueco mientras el 656 banner viaja. */ 657.guru-popup__frame{position:relative;margin:0 -1.35rem 1.25rem;border-radius:20px 20px 0 0;overflow:hidden;line-height:0;background:var(--bg-soft,rgba(17,24,39,.05))} 658.guru-popup__frame:last-child{margin-bottom:0} 659.guru-popup__frame iframe{display:block;border:0;transform-origin:top left} 660/* Una creatividad distinta por caso: la que no corresponde a este ancho no se 661 muestra, y si es un iframe nunca recibe src, asà que tampoco se descarga. */ 662.guru-popup__creative--desktop{display:none} 663@media (min-width:600px){ 664 .guru-popup__creative--desktop{display:block} 665 .guru-popup__creative--mobile{display:none} 666} 667/* Compliance de texto libre: legible y alineado a la izquierda como todo texto 668 legal. Sin scroll propio a propósito: un T&C largo estira el diálogo, que ya 669 scrollea, y asà no queda texto legal escondido detrás de una barra chica. */ 670.guru-popup__compliance{margin:1.15rem 0 0;padding:.8rem .9rem;background:var(--bg-soft,rgba(17,24,39,.05));border-radius:10px;font-size:.78rem;line-height:1.5;color:var(--text-muted,#6b7280);text-align:left} 671.guru-popup__compliance p{margin:0 0 .55rem} 672.guru-popup__compliance p:last-child{margin-bottom:0} 673.guru-popup__compliance a{color:inherit;text-decoration:underline} 674 675/* Ruleta de premios (Popup 1) */ 676.guru-roulette{display:flex;flex-direction:column;align-items:center;gap:1.15rem;margin:0 0 1.25rem} 677.guru-roulette__stage{position:relative;margin:0 auto} 678/* Brillo/vidrio fijo sobre la rueda que gira (da profundidad y efecto) */ 679.guru-roulette__stage::after{content:"";position:absolute;inset:7px;border-radius:50%;pointer-events:none;z-index:3;background:radial-gradient(120% 90% at 30% 20%,rgba(255,255,255,.16),rgba(255,255,255,0) 34%),radial-gradient(100% 100% at 50% 120%,rgba(15,23,42,.10),rgba(15,23,42,0) 58%)} 680.guru-roulette__pointer{position:absolute;top:-10px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:24px solid var(--accent,#b8860b);z-index:5;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))} 681.guru-roulette__wheel{position:relative;width:100%;height:100%;border-radius:50%;box-shadow:0 0 0 8px #fff,0 0 0 11px rgba(0,0,0,.10),0 14px 38px rgba(0,0,0,.45);will-change:transform} 682.guru-roulette__sep{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:1} 683.guru-roulette__hub{position:absolute;top:50%;left:50%;width:38px;height:38px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:4} 684.guru-roulette__hub-icon{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))} 685.guru-roulette__logo{position:absolute;z-index:2;display:flex;align-items:center;justify-content:center;background:none;border:0;padding:0;box-shadow:none} 686.guru-roulette__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.22));transition:transform .18s ease} 687/* Logo que pasa por la flechita: solo se agranda (colores reales, sin tocar el color) */ 688.guru-roulette__logo.is-active{z-index:3} 689.guru-roulette__logo.is-active img{transform:scale(1.3);filter:drop-shadow(0 3px 8px rgba(0,0,0,.32))} 690.guru-roulette__logo-fallback{font-size:.72rem;font-weight:800;text-transform:uppercase;color:#1f2937;line-height:1;text-shadow:0 1px 2px rgba(255,255,255,.6)} 691@media (prefers-reduced-motion:reduce){.guru-roulette__logo img{transition:none}} 692.guru-roulette__spin{display:inline-flex;align-items:center;justify-content:center;min-width:180px;padding:.8rem 1.6rem;min-height:48px;border:0;border-radius:11px;background:var(--btn-bg,var(--gold,#b8860b));color:var(--btn-text,#fff);font-size:1rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:filter .15s,transform .15s} 693.guru-roulette__spin:hov
693er{filter:brightness(.88) saturate(1.1);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.32)} 694.guru-roulette__spin:active{transform:translateY(0)} 695.guru-roulette__spin[disabled]{opacity:.55;cursor:default} 696.guru-roulette__spin[hidden]{display:none} 697.guru-roulette__result{display:flex;flex-direction:column;align-items:center;gap:.85rem;width:100%;animation:guru-roulette-pop .3s ease} 698.guru-roulette__result[hidden]{display:none} 699@keyframes guru-roulette-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}} 700.guru-roulette__win{margin:0;font-size:1.15rem;font-weight:700;line-height:1.35;color:var(--text-heading,#111827)} 701.guru-roulette__winname{color:var(--accent,#b8860b);font-weight:800} 702.guru-roulette__cta{margin:0} 703.guru-roulette__confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:9;} 704/* Latido sutil del botón GIRAR para invitar al giro */ 705.guru-roulette__spin:not([disabled]){animation:guru-roulette-pulse 1.6s ease-in-out infinite} 706@keyframes guru-roulette-pulse{0%,100%{box-shadow:0 4px 14px rgba(0,0,0,.2)}50%{box-shadow:0 4px 22px rgba(0,0,0,.28),0 0 0 6px rgba(184,134,11,.15)}} 707@media (prefers-reduced-motion:reduce){.guru-roulette__wheel{transition:none}.guru-roulette__spin:not([disabled]){animation:none}} 708@media (hover:none){.guru-roulette__spin:hover{filter:none;transform:none}} 709 710/* Fondo del modal cuando hay ruleta: verde paño de casino */ 711.guru-popup__dialog--roulette{background:radial-gradient(130% 100% at 50% -10%,#1f7a45 0%,#14532d 45%,#0b3a22 100%);color:#f0fdf4;box-shadow:0 -12px 48px rgba(11,58,34,.55)} 712.guru-popup__dialog--roulette::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(60% 40% at 50% 8%,rgba(255,255,255,.10),transparent 70%)} 713.guru-popup__dialog--roulette>*{position:relative;z-index:1} 714/* El botón de cierre debe seguir absoluto arriba-derecha (la regla de arriba 715 le pisaba el position:absolute y lo mandaba al flujo/arriba-izquierda). */ 716.guru-popup__dialog--roulette .guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:11} 717.guru-popup__dialog--roulette .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.3)} 718.guru-popup__dialog--roulette .guru-popup__subtitle{color:#bbf7d0} 719.guru-popup__dialog--roulette .guru-popup__text{color:#dcfce7} 720.guru-popup__dialog--roulette .guru-popup__disclaimer{color:rgba(220,252,231,.72)} 721.guru-popup__dialog--roulette .guru-popup__close{background:rgba(255,255,255,.16);color:#fff;box-shadow:none} 722.guru-popup__dialog--roulette .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff} 723.guru-popup__dialog--roulette .guru-roulette__win{color:#fff} 724.guru-popup__dialog--roulette .guru-roulette__winname{color:#fde68a} 725@media (min-width:600px){.guru-popup__dialog--roulette{box-shadow:0 24px 60px rgba(11,58,34,.6)}} 726 727/* Fondo del modal cuando hay raspadita (vibe premium, distinto a la ruleta) */ 728.guru-popup__dialog--scratch{background:radial-gradient(130% 100% at 50% -10%,#1e3a5f 0%,#16324f 45%,#0c1f34 100%);color:#eaf2fb;box-shadow:0 -12px 48px rgba(12,31,52,.55)} 729.guru-popup__dialog--scratch::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(60% 40% at 50% 8%,rgba(255,255,255,.10),transparent 70%)} 730.guru-popup__dialog--scratch>*{position:relative;z-index:1} 731.guru-popup__dialog--scratch .guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:11;background:rgba(255,255,255,.16);color:#fff;box-shadow:none} 732.guru-popup__dialog--scratch .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff} 733.guru-popup__dialog--scratch .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.3)} 734.guru-popup__dialog--scratch .guru-popup__subtitle{color:#bfdbfe} 735.guru-popup__dialog--scratch .guru-popup__text{color:#dbe9fb} 736.guru-popup__dialog--scratch .guru-popup__disclaimer{color:rgba(219,233,251,.72)} 737 738/* Raspadita */ 739.guru-scratch{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:0 0 1.25rem} 740.guru-scratch__panel{position:relative;width:100%;max-width:320px;height:132px;border-radius:14px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.28),inset 0 0 0 2px rgba(255,255,255,.35);background:#fff;user-select:none;-webkit-user-select:none;touch-action:none} 741.guru-scratch__prize{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.5rem;background:linear-gradient(135deg,#fff7e0,#fde68a)} 742.guru-scratch__label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#92700f} 743.guru-scratch__code{font-size:1.55rem;font-weight:800;letter-spacing:.06em;color:#1f2937;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace} 744/* Copiar: pill compacto DENTRO del recuadro del código (no agranda el modal) */
745.guru-scratch__copy{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;margin-top:.15rem;min-height:28px;padding:.25rem .7rem;border:1.5px dashed rgba(120,90,10,.5);border-radius:8px;background:rgba(255,255,255,.55);color:#7a5b0a;font-size:.76rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s} 746.guru-scratch__copy:hover{background:rgba(255,255,255,.85);border-color:rgba(120,90,10,.85)} 747.guru-scratch__copy.is-copied{background:#16a34a;border-color:#16a34a;border-style:solid;color:#fff} 748.guru-scratch__copy-ico{flex:0 0 auto} 749.guru-scratch__cover{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;z-index:1} 750.guru-scratch__cover:active{cursor:grabbing} 751/* Brillo diagonal animado que invita a raspar (solo sin revelar) */ 752.guru-scratch__shine{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:14px;display:none} 753.guru-scratch.is-scratch:not(.is-revealed) .guru-scratch__shine{display:block} 754.guru-scratch__shine::before{content:"";position:absolute;top:-40%;left:-70%;width:45%;height:180%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),rgba(255,255,255,.6),rgba(255,255,255,.15),transparent);animation:guru-scratch-shine 2.6s ease-in-out infinite} 755@keyframes guru-scratch-shine{0%{left:-70%}55%,100%{left:130%}} 756@media (prefers-reduced-motion:reduce){.guru-scratch__shine{display:none!important}} 757.guru-scratch__actions{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease} 758.guru-scratch__actions[hidden]{display:none} 759.guru-scratch__cta{margin:0} 760@media (prefers-reduced-motion:reduce){.guru-scratch__actions{animation:none}} 761 762/* ââ Tragaperras (Popup 3) âââââââââââââââââââââââââââââââââââââââââââââââ */ 763/* Fondo del modal â púrpura/magenta arcade. Misma estructura que las variantes 764 --roulette (verde) y --scratch (azul noche) de más arriba. */ 765.guru-popup__dialog--slotmachine{background:radial-gradient(130% 100% at 50% -10%,#7e22ce 0%,#5b21b6 42%,#2e1065 100%);color:#f5ecff;box-shadow:0 -12px 48px rgba(46,16,101,.6)} 766.guru-popup__dialog--slotmachine::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(60% 40% at 50% 8%,rgba(255,255,255,.12),transparent 70%),radial-gradient(80% 50% at 50% 105%,rgba(217,70,239,.28),transparent 70%)} 767.guru-popup__dialog--slotmachine>*{position:relative;z-index:1} 768.guru-popup__dialog--slotmachine .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)} 769.guru-popup__dialog--slotmachine .guru-popup__subtitle{color:#f0abfc} 770.guru-popup__dialog--slotmachine .guru-popup__text{color:#ede9fe} 771.guru-popup__dialog--slotmachine .guru-popup__disclaimer{color:rgba(237,233,254,.72)} 772.guru-popup__dialog--slotmachine .guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:11;background:rgba(255,255,255,.16);color:#fff;box-shadow:none} 773.guru-popup__dialog--slotmachine .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff} 774.guru-popup__dialog--slotmachine .guru-slotmachine__win{color:#fff} 775.guru-popup__dialog--slotmachine .guru-slotmachine__winname{color:#fde68a} 776@media (min-width:600px){.guru-popup__dialog--slotmachine{box-shadow:0 24px 60px rgba(46,16,101,.65)}} 777 778.guru-slotmachine{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin:0 0 1.25rem} 779/* Gabinete + palanca, como una sola pieza centrada */ 780.guru-slotmachine__machine{position:relative;display:flex;align-items:stretch;justify-content:center;gap:.5rem;width:100%;max-width:440px;margin:0 auto} 781 782.guru-slotmachine__cabinet{flex:1 1 auto;min-width:0;position:relative;padding:.55rem .6rem .5rem;border-radius:18px;background:linear-gradient(180deg,#4c1d95,#2e1065);border:2px solid rgba(253,224,71,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -14px 24px rgba(0,0,0,.45),0 10px 26px rgba(0,0,0,.45)} 783 784/* Cartel superior con bombitas */ 785.guru-slotmachine__marquee{display:flex;align-items:center;justify-content:space-between;gap:.25rem;height:22px;margin:0 .1rem .5rem;padding:0 .5rem;border-radius:8px;background:linear-gradient(180deg,#fbbf24,#b45309);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 2px 6px rgba(0,0,0,.35)} 786.guru-slotmachine__bulb{width:8px;height:8px;border-radius:50%;background:#fffbeb;box-shadow:0 0 7px 2px rgba(255,251,235,.9);animation:guru-slot-bulb 1.1s ease-in-out infinite} 787.guru-slotmachine__bulb:nth-child(2n){animation-delay:.18s} 788.guru-slotmachine__bulb:nth-child(3n){animation-delay:.36s} 789.guru-slotmachine__bulb:nth-child(5n){animation-delay:.54s} 790@keyframes guru-slot-bulb{0%,100%{opacity:1}50%{opacity:.28}} 791 792/* Ventana de rodillos */ 793.guru-slotmachine__reels{position:relative;display:flex;width:100%;gap:.4rem;padding:.3rem;overflow:hidden;border-radius:10px;background:#1e1b4b;box-shadow:inset 0 2px 8px rgba(0,0,0,.6)} 794.guru-slotmachine__reel{flex:1 1 0;min-width:0;position:relative;overflow:hidden;border-radius:7px;background:linear-gradient(180deg,#e5e7eb,#fff 22%,#fff 78%,#cbd5e1);box-shadow:inset 0 10px 12px -8px rgba(15,23,42,.75),inset 0 -10px 12px -8px rgba(15,23,42,.75)} 795.guru-slotmachine__strip{display:flex;flex-direction:column;will-change:transform} 796.guru-slotmachine__cell{display:flex;align-items:center;justify-content:center;padding:.4rem;box-sizing:border-box} 797.guru-slotmachine__cell img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(.5) brightness(.96);opacity:.94;transition:filter .25s,opacity .25s,transform .25s} 798.guru-slotmachine.is-won .guru-slotmachine__cell img{filter:none;opacity:1;transform:scale(1.04)} 799.guru-slotmachine__cell-fallback{font-size:.8rem;font-weight:800;letter-spacing:.04em;color:#334155;text-transform:uppercase} 800/* LÃnea de pago: dentro de la ventana, asà el 50% es el centro real */ 801.guru-slotmachine__payline{position:absolute;
801left:.5rem;right:.5rem;top:50%;height:2px;transform:translateY(-50%);background:linear-gradient(90deg,transparent,#f43f5e,#f43f5e,transparent);opacity:.8;pointer-events:none;border-radius:2px;z-index:2} 802.guru-slotmachine.is-won .guru-slotmachine__payline{background:linear-gradient(90deg,transparent,#22c55e,#22c55e,transparent);opacity:1} 803 804/* Bandeja de monedas */ 805.guru-slotmachine__tray{display:block;height:11px;margin:.45rem .5rem 0;border-radius:0 0 7px 7px;background:linear-gradient(180deg,#1e1b4b,#0f0a2e);box-shadow:inset 0 3px 6px rgba(0,0,0,.8)} 806 807/* Palanca */ 808.guru-slotmachine__lever{position:relative;flex:0 0 34px;width:34px;cursor:pointer;-webkit-tap-highlight-color:transparent} 809/* Todo en % de la altura del gabinete (la palanca estira con él), asà el pivote 810 queda siempre a la altura de los rodillos sin depender de pÃxeles fijos. */ 811.guru-slotmachine__lever-arm{position:absolute;left:50%;bottom:calc(38% + 12px);width:10px;transform:translateX(-50%);transition:transform .16s cubic-bezier(.34,1.56,.64,1)} 812.guru-slotmachine__lever-rod{display:block;width:8px;height:52px;margin:0 auto;border-radius:5px;background:linear-gradient(90deg,#94a3b8,#f1f5f9 45%,#64748b)} 813.guru-slotmachine__lever-knob{position:absolute;top:-15px;left:50%;width:26px;height:26px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 33% 28%,#fca5a5,#ef4444 45%,#991b1b);box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 -3px 6px rgba(0,0,0,.35)} 814.guru-slotmachine__lever-base{position:absolute;left:50%;bottom:38%;width:30px;height:22px;transform:translateX(-50%);border-radius:7px;background:linear-gradient(180deg,#94a3b8,#334155);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 3px 7px rgba(0,0,0,.5)} 815/* Tornillo del pivote */ 816.guru-slotmachine__lever-base::after{content:"";position:absolute;left:50%;top:7px;width:8px;height:8px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#e2e8f0,#475569);box-shadow:inset 0 1px 1px rgba(0,0,0,.4)} 817.guru-slotmachine.is-pulled .guru-slotmachine__lever-arm{transform:translateX(-50%) translateY(30px)} 818.guru-slotmachine.is-won .guru-slotmachine__lever{cursor:default} 819 820.guru-slotmachine.is-won .guru-slotmachine__msg{display:none} 821.guru-slotmachine__msg{margin:0;min-height:1.2em;font-size:.9rem;font-weight:700;color:#fde68a;text-align:center} 822.guru-slotmachine__spin{min-width:190px;padding:.7rem 1.4rem;border:0;border-radius:999px;background:linear-gradient(180deg,#fbbf24,#d97706);color:#3b1d02;font-size:1rem;font-weight:800;letter-spacing:.06em;cursor:pointer;box-shadow:0 4px 0 #92400e,0 8px 16px rgba(0,0,0,.35);transition:transform .12s,box-shadow .12s,filter .15s} 823.guru-slotmachine__spin:hover:not(:disabled){filter:brightness(1.07)} 824.guru-slotmachine__spin:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #92400e,0 4px 10px rgba(0,0,0,.3)} 825.guru-slotmachine__spin:disabled{opacity:.55;cursor:default} 826.guru-slotmachine__spin[hidden]{display:none} 827.guru-slotmachine__result{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease} 828.guru-slotmachine__result[hidden]{display:none} 829.guru-slotmachine__win{margin:0;font-size:1.02rem;font-weight:700;text-align:center} 830.guru-slotmachine__winname{color:#fde68a} 831.guru-slotmachine__cta{margin:0} 832@media (max-width:400px){ 833 .guru-slotmachine__lever{flex:0 0 28px;width:28px} 834 .guru-slotmachine__lever-rod{height:44px} 835 .guru-slotmachine__lever-knob{width:22px;height:22px;top:-13px} 836 .guru-slotmachine__spin{min-width:100%} 837} 838@media (prefers-reduced-motion:reduce){ 839 .guru-slotmachine__result{animation:none} 840 .guru-slotmachine__bulb{animation:none} 841 .guru-slotmachine__lever-arm{transition:none} 842} 843 844/* Tragaperras de frutas (Popup 4) â máquina de video: marco dorado sobre violeta, 845 cinco rodillos y barra de controles abajo. Sin palanca. */ 846.guru-popup__dialog--fruits{background:radial-gradient(130% 100% at 50% -8%,#6d28d9 0%,#4c1d95 44%,#1b1140 100%);color:#efe9ff;box-shadow:0 -12px 48px rgba(27,17,64,.62)} 847.guru-popup__dialog--fruits::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(60% 40% at 50% 6%,rgba(255,255,255,.14),transparent 70%),radial-gradient(80% 50% at 50% 104%,rgba(251,191,36,.2),transparent 70%)} 848.guru-popup__dialog--fruits>*{position:relative;z-index:1} 849.guru-popup__dialog--fruits .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4)} 850.guru-popup__dialog--fruits .guru-popup__subtitle{color:#fcd34d} 851.guru-popup__dialog--fruits .guru-popup__text{color:#e9e2ff} 852.guru-popup__dialog--fruits .guru-popup__disclaimer{color:rgba(233,226,255,.7)} 853.guru-popup__dialog--fruits .guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:11;background:rgba(255,255,255,.16);color:#fff;box-shadow:none} 854.guru-popup__dialog--fruits .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff} 855@media (min-width:600px){.guru-popup__dialog--fruits{box-shadow:0 24px 60px rgba(27,17,64,.68)}} 856 857/* --guru-cell: alto de cada casilla. Es la medida madre de la máquina (la
858 ventana son 3 filas) y se achica en pantallas bajas para que el popup entre 859 sin scroll. El JS la mide antes de cada tirada para frenar en la lÃnea. */ 860.guru-fruits{--guru-cell:74px;display:flex;flex-direction:column;align-items:center;gap:.8rem;margin:0 0 1.1rem} 861.guru-fruits__sprite{position:absolute;width:0;height:0;overflow:hidden} 862.guru-fruits__machine{position:relative;width:100%;max-width:460px;margin:0 auto .35rem;padding-top:13px} 863/* Con el premio, el anillo de luz se sale 14px del marco y comÃa el espacio 864 hasta el texto de abajo: el resplandor quedaba pegado al mensaje. */ 865.guru-fruits.is-won .guru-fruits__machine{margin-bottom:1.4rem} 866 867/* Cartel: chapa dorada apoyada sobre el borde superior del marco */ 868.guru-fruits__plate{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:.45rem;max-width:86%;padding:.2rem .7rem;border-radius:10px;background:linear-gradient(180deg,#fef3c7,#f59e0b 55%,#b45309);border:1px solid rgba(120,53,15,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 3px 10px rgba(0,0,0,.5)} 869.guru-fruits__plate-text{min-width:0;font-size:.86rem;font-weight:900;letter-spacing:.16em;line-height:1.5;color:#7c2d12;text-transform:uppercase;text-shadow:0 1px 0 rgba(255,255,255,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} 870.guru-fruits__bulbs{display:flex;align-items:center;gap:.24rem} 871.guru-fruits__bulb{width:7px;height:7px;border-radius:50%;background:#fffbeb;box-shadow:0 0 6px 2px rgba(255,251,235,.95);animation:guru-fruits-bulb 1.05s ease-in-out infinite} 872.guru-fruits__bulb:nth-child(2n){animation-delay:.18s} 873.guru-fruits__bulb:nth-child(3n){animation-delay:.36s} 874@keyframes guru-fruits-bulb{0%,100%{opacity:1}50%{opacity:.25}} 875 876/* Marco dorado */ 877.guru-fruits__cabinet{--guru-rivet:radial-gradient(circle at 50% 50%,rgba(255,251,235,.95) 0 2px,rgba(146,64,14,.75) 2.2px 3.4px,transparent 3.6px);position:relative;padding:.55rem .5rem .5rem;border-radius:16px;background:linear-gradient(180deg,#fde68a,#eab308 22%,#a16207 78%,#78350f);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),inset 0 -3px 6px rgba(120,53,15,.6),0 10px 28px rgba(0,0,0,.5)} 878/* Remaches de las esquinas */ 879/* Una capa por remache: el número de posiciones lo manda background-image, asà 880 que con un solo gradiente las otras tres posiciones se ignoran. */ 881.guru-fruits__cabinet::before{content:"";position:absolute;inset:4px;border-radius:12px;pointer-events:none;background-image:var(--guru-rivet),var(--guru-rivet),var(--guru-rivet),var(--guru-rivet);background-repeat:no-repeat;background-position:1px 1px,calc(100% - 1px) 1px,1px calc(100% - 1px),calc(100% - 1px) calc(100% - 1px);background-size:9px 9px} 882 883/* Premio: la máquina queda encendida con un halo fijo, y arriba de eso corre la 884 luz del anillo. El halo va en el box-shadow del propio marco (no en una capa 885 encima) porque el botón de giro vive adentro del gabinete. */ 886.guru-fruits.is-won .guru-fruits__cabinet{box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -3px 6px rgba(120,53,15,.55),0 10px 28px rgba(0,0,0,.5),0 0 0 2px rgba(251,191,36,.4),0 0 16px 2px rgba(251,191,36,.32)} 887/* Las bombitas del cartel titilan más rápido con el premio */ 888.guru-fruits.is-won .guru-fruits__bulb{animation-duration:.4s} 889 890/* Anillo de luz que da la vuelta al marco. 891 Adentro gira un cuadrado con un gajo de luz (conic-gradient); el `overflow` 892 del anillo lo recorta a la banda que rodea al gabinete y el gabinete, opaco, 893 tapa el resto. Se anima el `transform` del cuadrado y no el ángulo del 894 gradiente: interpolar un ángulo dentro de un gradiente necesita @property, 895 que no está en todos los navegadores donde sà corre esto. */ 896.guru-fruits__halo{position:absolute;top:-1px;left:-14px;right:-14px;bottom:-14px;border-radius:30px;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .35s ease} 897.guru-fruits__halo::before{content:"";position:absolute;top:50%;left:50%;width:160%;aspect-ratio:1;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0 62%,rgba(251,191,36,.35) 67%,rgba(253,230,138,.9) 74%,#fffdf5 79%,rgba(253,230,138,.9) 84%,rgba(251,191,36,.35) 91%,transparent 96%);filter:blur(6px);will-change:transform} 898.guru-fruits.is-won .guru-fruits__halo{opacity:1} 899.guru-fruits.is-won .guru-fruits__halo::before{animation:guru-fruits-orbit 2.2s linear infinite} 900@keyframes guru-fruits-orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}} 901
902/* Ventana de rodillos: 3 filas visibles, la del medio es la que paga */ 903.guru-fruits__reels{position:relative;display:flex;width:100%;height:calc(var(--guru-cell) * 3);gap:.22rem;padding:.26rem;overflow:hidden;border-radius:10px;background:#160e33;box-shadow:inset 0 2px 12px rgba(0,0,0,.85)} 904.guru-fruits__reel{flex:1 1 0;min-width:0;position:relative;overflow:hidden;border-radius:6px;background:linear-gradient(180deg,#c7d2fe,#fff 20%,#fff 80%,#c7d2fe)} 905/* Sombras arriba y abajo: dan la curva del rodillo y hacen que solo la fila 906 del medio se lea nÃtida, como en una máquina real. */ 907.guru-fruits__reel::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(180deg,rgba(23,14,58,.62),rgba(23,14,58,.05) 30%,rgba(23,14,58,.05) 70%,rgba(23,14,58,.62))} 908.guru-fruits__strip{display:flex;flex-direction:column;will-change:transform} 909.guru-fruits__cell{height:var(--guru-cell);display:flex;align-items:center;justify-content:center;padding:.3rem;box-sizing:border-box} 910.guru-fruits__icon{width:80%;max-width:calc(var(--guru-cell) * .76);height:auto;aspect-ratio:1;display:block;filter:drop-shadow(0 2px 3px rgba(23,14,58,.3))} 911 912/* Banda de la fila que paga: apagada mientras se juega, encendida con el premio 913 (el alto lo pone el PHP, que es quien sabe cuánto mide cada casilla). */ 914.guru-fruits__winline{position:absolute;left:.26rem;right:.26rem;top:50%;transform:translateY(-50%);border-radius:7px;pointer-events:none;z-index:3;opacity:0;background:linear-gradient(180deg,rgba(251,191,36,.05),rgba(251,191,36,.4) 50%,rgba(251,191,36,.05));box-shadow:inset 0 0 0 2px rgba(251,191,36,.95),0 0 24px rgba(251,191,36,.75);transition:opacity .25s} 915.guru-fruits.is-won .guru-fruits__winline{opacity:1;animation:guru-fruits-band 1.1s ease-in-out infinite} 916@keyframes guru-fruits-band{0%,100%{opacity:1}50%{opacity:.55}} 917 918/* LÃnea de pago: adentro de la ventana, asà el 50% es el centro real */ 919.guru-fruits__payline{position:absolute;left:.26rem;right:.26rem;top:50%;height:2px;transform:translateY(-50%);border-radius:2px;background:linear-gradient(90deg,transparent,rgba(244,63,94,.9) 14%,rgba(251,191,36,.9) 50%,rgba(244,63,94,.9) 86%,transparent);opacity:.8;pointer-events:none;z-index:4;transition:opacity .2s} 920.guru-fruits__payline::before,.guru-fruits__payline::after{content:"";position:absolute;top:50%;width:0;height:0;transform:translateY(-50%);border-top:6px solid transparent;border-bottom:6px solid transparent} 921.guru-fruits__payline::before{left:-7px;border-left:8px solid #fbbf24} 922.guru-fruits__payline::after{right:-7px;border-right:8px solid #fbbf24} 923.guru-fruits.is-spinning .guru-fruits__payline{opacity:.4} 924.guru-fruits.is-won .guru-fruits__payline{background:linear-gradient(90deg,transparent,#22c55e 14%,#bbf7d0 50%,#22c55e 86%,transparent);opacity:1} 925.guru-fruits.is-won .guru-fruits__payline::before{border-left-color:#22c55e} 926.guru-fruits.is-won .guru-fruits__payline::after{border-right-color:#22c55e} 927/* Brillo del vidrio, fijo sobre los rodillos que giran */ 928.guru-fruits__glass{position:absolute;inset:0;pointer-events:none;z-index:5;border-radius:10px;background:linear-gradient(115deg,rgba(255,255,255,.15) 0 22%,rgba(255,255,255,0) 46%)} 929 930/* Barra de controles: marcadores tipo display + botón de giro */ 931.guru-fruits__panel{display:flex;flex-wrap:wrap;align-items:stretch;gap:.28rem;margin:.45rem 0 0;padding:.3rem;border-radius:10px;background:linear-gradient(180deg,#241a4d,#140d31);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -2px 6px rgba(0,0,0,.6)} 932.guru-fruits__meter{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;padding:.3rem .18rem;border-radius:7px;background:#0b0722;border:1px solid rgba(251,191,36,.28);box-shadow:inset 0 2px 6px rgba(0,0,0,.85)} 933.guru-fruits__meter-label{font-size:.54rem;font-style:normal;font-weight:800;letter-spacing:.1em;color:rgba(253,230,138,.72)} 934.guru-fruits__meter-value{font-size:1rem;font-weight:900;line-height:1.15;font-variant-numeric:tabular-nums;color:#fbbf24;text-shadow:0 0 9px rgba(251,191,36,.6)} 935.guru-fruits__meter--prize .guru-fruits__meter-value{color:#4ade80;text-shadow:0 0 9px rgba(74,222,128,.55)} 936.guru-fruits.is-won .guru-fruits__meter--prize{border-color:rgba(74,222,128,.75)} 937.guru-fruits__spin{flex:0 0 auto;min-width:92px;padding:.3rem .9rem;border:0;border-radius:8px;background:linear-gradient(180deg,#7dd3fc,#0284c7 55%,#075985);color:#fff;font-size:.86rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 3px 0 #063f5f,0 5px 12px rgba(0,0,0,.4);transition:transform .12s,box-shadow .12s,filter .15s} 938.guru-fruits__spin:hover:not(:disabled){filter:brightness(1.08)} 939.guru-fruits__spin:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 0 #063f5f,0 3px 8px rgba(0,0,0,.35)} 940.guru-fruits__spin:disabled{opacity:.5;cursor:default} 941.guru-fruits__spin[hidden]{display:none} 942 943.guru-fruits__msg{margin:0;min-height:1.2em;font-size:.9rem;font-weight:700;color:#fcd34d;text-align:center} 944.guru-fruits.is-won .guru-fruits__msg{display:none} 945.guru-fruits__result{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease} 946.guru-fruits__result[hidden]{display:none} 947.guru-fruits__win{margin:0;font-size:1.02rem;font-weight:700;line-height:1.4;text-align:center;color:#fff} 948.guru-fruits__winname{color:#fcd34d} 949.guru-fruits__winamount{color:#4ade80} 950.guru-fruits__cta{margin:0} 951.guru-fruits__note{margin:.1rem 0 0;font-size:.68rem;line-height:1.4;color:rgba(233,226,255,.6);max-width:340px} 952@media (max-width:420px){ 953 /* El botón no entra en la misma fila que los tres marcadores: pasa abajo, 954 a todo el ancho de la barra. */ 955 .guru-fruits__spin{flex:1 0 100%;order:4;padding:.5rem .9rem} 956 .guru-fruits__plate-text{font-size:.76rem;letter-spacing:.1em} 957 .guru-fruits__meter-value{font-size:.9rem} 958 .guru-fruits__icon{width:82%} 959} 960 961/* Pantallas bajas (notebooks, ventanas chicas): el diálogo tiene max-height:90vh, 962 asà que si la máquina no achica, el popup queda con scroll interno. */ 963@media (max-height:820px){ 964 .guru-fruits{--guru-cell:62px;gap:.6rem;margin-bottom:.85rem} 965 .guru-fruits.is-won .guru-fruits__machine{margin-bottom:1rem} 966 .guru-popup__dialog--fruits{padding-top:1.4rem} 967 .guru-popup__dialog--fruits .guru-popup__title{font-size:1.25rem;margin-bottom:.35rem} 968 .guru-popup__dialog--fruits .guru-popup__subtitle{font-size:.95rem;margin-bottom:.7rem} 969 .guru-popup__dialog--fruits .guru-popup__disclaimer{margin-top:.85rem} 970 .guru-fruits__note{font-size:.64rem} 971 .guru-fruits__result{gap:.55rem} 972 .guru-fruits__win{font-size:.95rem} 973} 974@media (max-height:680px){ 975 .guru-fruits{--guru-cell:52px;gap:.5rem} 976 .guru-fruits.is-won .guru-fruits__machine{margin-bottom:.75rem} 977 .guru-popup__dialog--fruits .guru-popup__title{font-size:1.1rem} 978 .guru-popup__dialog--fruits .guru-popup__subtitle{font-size:.88rem;margin-bottom:.55rem} 979 .guru-popup__dialog--fruits .guru-popup__cta{min-height:42px;padding:.6rem 1.5rem} 980 .guru-fruits__plate-text{font-size:.78rem} 981 .guru-fruits__meter-value{font-size:.92rem} 982 .guru-fruits__msg{font-size:.82rem} 983} 984@media (prefers-reduced-motion:reduce){ 985 .guru-fruits__result{animation:none} 986 .guru-fruits__bulb{animation:none} 987 .guru-fruits.is-won .guru-fruits__winline{animation:none} 988 /* El resplandor del premio queda, pero sin la luz que gira: en su lugar, un 989 halo fijo un poco más fuerte, asà el premio sigue notándose. */ 990 .guru-fruits.is-won .guru-fruits__cabinet{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -3px 6px rgba(120,53,15,.5),0 10px 28px rgba(0,0,0,.45),0 0 0 3px rgba(253,230,138,.75),0 0 44px 12px rgba(251,191,36,.7)} 991 .guru-fruits.is-won .guru-fruits__halo{opacity:0}
991 992 .guru-fruits.is-won .guru-fruits__halo::before{animation:none} 993} 994 995/* Guru â Controles de navegación en modo app (PWA standalone) */ 996 997/* Alto de la barra, con la zona segura del gesto de home de iOS sumada. */ 998:root{--guru-appnav-h:calc(3.1rem + env(safe-area-inset-bottom,0px))} 999 1000/* Fuera de modo app la barra no existe y --guru-bottom-inset queda sin 1001 definir, asà que cada regla que la usa cae en su fallback de 0px y nada se 1002 mueve. Dos vÃas para entrar en modo app: la media query (Android, escritorio, 1003 iOS 16.4+) y la clase que pone el JS, que es la única en el iOS viejo 1004 (navigator.standalone) y la que usa el modo de prueba ?guru-app=1. 1005 1006 Solo `standalone`: `fullscreen` también matchea con el navegador común en 1007 pantalla completa (F11), y ahà la barra salÃa en desktop sin que la web 1008 estuviera instalada. Nuestro manifest declara display:standalone, asà que 1009 la app instalada nunca corre en fullscreen. */ 1010.guru-appnav{display:none} 1011@media (display-mode:standalone){ 1012 :root{--guru-bottom-inset:var(--guru-appnav-h)} 1013 .guru-appnav{display:flex} 1014 /* El Ãcono de menú pasa a la barra: acá se oculta el de la cabecera. */ 1015 .header-top__left .menu-toggle{display:none} 1016} 1017html.guru-app{--guru-bottom-inset:var(--guru-appnav-h)} 1018html.guru-app .guru-appnav{display:flex} 1019html.guru-app .header-top__left .menu-toggle{display:none} 1020 1021/* El inset le reserva el lugar a la barra al final del documento: sin esto la 1022 barra tapa lo último del footer. */ 1023body{padding-bottom:var(--guru-bottom-inset,0px)} 1024 1025/* z-index 9990: arriba del panel del menú mobile (999) y de sus submenús 1026 (1001), para que la navegación siga a mano con el menú abierto; abajo de la 1027 burbuja del chat (9998) y de los modales (99990/99992), que igual no la 1028 pisan porque se corren por el inset o la esconden. */ 1029.guru-appnav{ 1030 position:fixed;left:0;right:0;bottom:0;z-index:9990; 1031 align-items:stretch;justify-content:space-around; 1032 height:var(--guru-appnav-h); 1033 padding:0 .5rem env(safe-area-inset-bottom,0px); 1034 /* El color principal del sitio. `--accent` lo define el Customizer por 1035 sitio, asà que la barra toma el de cada uno sin configurar nada. */ 1036 background:var(--accent,#b8860b); 1037 border-top:1px solid rgba(255,255,255,.18); 1038 box-shadow:0 -2px 14px rgba(0,0,0,.2); 1039 transition:transform .25s ease; 1040 /* Capa de composición propia: en WebKit es lo que evita que una barra fija 1041 se despegue y viaje con el scroll. Por eso los dos estados van en 1042 translate3d y no en translateY, para no pelearse con esto. */ 1043 transform:translate3d(0,0,0); 1044 will-change:transform; 1045} 1046.guru-appnav__btn{ 1047 flex:1 1 0;max-width:8rem;min-width:0; 1048 display:flex;align-items:center;justify-content:center; 1049 /* `--guru-appnav-fg` lo calcula app-nav.php según el color del sitio: con 1050 un acento claro el blanco da 1,4:1 y los Ãconos se pierden. Solo se 1051 imprime cuando no es blanco, asà que acá el fallback alcanza. */ 1052 padding:0;border:0;background:none;color:var(--guru-appnav-fg,#fff); 1053 cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent; 1054 transition:color .15s,transform .12s,opacity .15s; 1055} 1056.guru-appnav__btn svg{width:23px;height:23px;flex:none} 1057/* Sobre el fondo de acento el hover no puede ser el acento mismo: se marca 1058 bajando la opacidad, que funciona con cualquier color de sitio. */ 1059.guru-appnav__btn:hover,.guru-appnav__btn:focus-visible{color:var(--guru-appnav-fg,#fff);opacity:.7} 1060.guru-appnav__btn:active{transform:scale(.9)} 1061.guru-appnav__btn[aria-disabled="true"]{opacity:.3;pointer-events:none} 1062 1063/* Menú: en modo app el Ãcono de la cabecera se oculta para no tenerlo dos 1064 veces, y el de la barra reusa el <span class="hamburger"> del header, asà 1065 hereda el dibujo y la animación a X de critical.css. Solo hay que centrarlo 1066 (allá va con left:11px dentro de un botón de 44px) y repetir el morph, que 1067 está atado a la clase .menu-toggle. */ 1068.guru-appnav__menu{position:relative} 1069.guru-appnav__menu .hamburger{left:calc(50% - 11px)} 1070/* El hamburguesa del header pinta sus barras con --text-body, que sobre el 1071 fondo de acento no se ve. */ 1072.guru-appnav__menu .hamburger, 1073.guru-appnav__menu .hamburger::before, 1074.guru-appnav__menu .hamburger::after{background:var(--guru-appnav-fg,#fff)} 1075.guru-appnav__menu[aria-expanded="true"] .hamburger{background:transparent} 1076.guru-appnav__menu[aria-expanded="true"] .hamburger::before{top:0;transform:rotate(45deg)} 1077.guru-appnav__menu[aria-expanded="true"] .hamburger::after{top:0;transform:rotate(-45deg)} 1078 1079/* Con un popup o el modal "casa sin link" abiertos la barra se va: el diálogo 1080 es una hoja pegada abajo, justo donde vive ella, y mientras hay un modal la 1081 navegación de atrás no deberÃa estar a mano. */ 1082html.guru-popup-open .guru-appnav,html.guru-nolink-open .guru-appnav{transform:translate3d(0,110%,0);pointer-events:none} 1083 1084@media (prefers-reduced-motion:reduce){ 1085 .guru-appnav,.guru-appnav__btn{transition:none} 1086 .guru-appnav__btn:active{transform:none} 1087} 1088 1089/* Barra superior en modo app: el logo va centrado y más grande. 1090 Se centra con position:absolute y no repartiendo el flex, porque los
1091 costados no miden igual âa la izquierda el hamburguesa, a la derecha el CTA, 1092 que además puede no estarâ y con flex el logo quedarÃa corrido. El 1093 min-height del inner reemplaza la altura que el logo aportaba al flujo. */ 1094html.guru-app .header-top__inner{position:relative;min-height:64px} 1095/* left/right en 0 le dan un ancho definido al wrapper. El wrapper cubre toda la 1096 barra pero es transparente al tap: solo su contenido recibe el toque, asà el 1097 hamburguesa y el CTA de los costados siguen vivos. */ 1098html.guru-app .site-branding{position:absolute;left:0;right:0;top:0;bottom:0;margin:0;max-width:none;transform:none;justify-content:center;pointer-events:none} 1099html.guru-app .site-branding>*{pointer-events:auto} 1100/* El ancho va explÃcito, como en el resto del tema (critical.css le pone 1101 140/180/250px según el ancho de pantalla). Con `width:auto` la imagen queda 1102 sin ancho definido y el `max-width:100%` que hereda de `img{}` se resuelve 1103 contra un <a> que a su vez se mide por su contenido: la dependencia es 1104 circular y el navegador la colapsa a 0Ã0. Con logos en SVG, siempre. */ 1105html.guru-app .site-branding img, 1106html.guru-app .site-branding .custom-logo{width:260px;max-height:60px} 1107/* El tÃtulo en texto, para los sitios sin logo cargado. */ 1108html.guru-app .site-branding .site-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 8rem)} 1109@media(max-width:768px){ 1110 html.guru-app .header-top__inner{min-height:60px} 1111 html.guru-app .site-branding img, 1112 html.guru-app .site-branding .custom-logo{width:210px;max-height:52px} 1113} 1114@media(max-width:480px){ 1115 html.guru-app .site-branding img, 1116 html.guru-app .site-branding .custom-logo{width:180px;max-height:48px} 1117} 1118 1119/* 1120 * Guru â Banner de Telegram (.guru-tg). 1121 * 1122 * Banner horizontal inyectado al final del post: cocarda "Telegram" con logo, 1123 * tÃtulo destacado, bajada, handle del canal (@) y botón celeste (--tg-c). 1124 * Aislado del cascade de .entry-content vÃa `all: revert` en la raÃz y 1125 * selectores duplicados `.entry-content ...`. 1126 */ 1127 1128.guru-tg, 1129.entry-content .guru-tg { 1130 all: revert; 1131 position: relative; 1132 display: block; 1133 max-width: 640px; 1134 margin: 2.5rem auto; 1135 padding: 1.5rem 1.5rem 1.4rem; 1136 background: linear-gradient(135deg, rgba(var(--tg-c-rgb, 34, 158, 217), .07) 0%, #ffffff 60%); 1137 border: 1px solid #e2e8f0; 1138 border-radius: 16px; 1139 box-shadow: 0 12px 34px -16px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .05); 1140 color: #14161f; 1141 font-family: inherit; 1142 line-height: 1.45; 1143 box-sizing: border-box; 1144 isolation: isolate; 1145 overflow: hidden; 1146} 1147 1148.guru-tg *, 1149.guru-tg *::before, 1150.guru-tg *::after { 1151 box-sizing: border-box; 1152} 1153 1154/* Fila flex: la maqueta vive en el inner, no en el root, para que ningún 1155 bloque ajeno inyectado pueda volverse un item flex del banner. */ 1156.guru-tg__inner { 1157 display: flex; 1158 flex-wrap: wrap; 1159 align-items: center; 1160 gap: 1rem 1.25rem; 1161 margin-top: 1.1rem; 1162} 1163 1164/* Cocarda "Telegram" arriba a la izquierda. */ 1165.guru-tg__badge { 1166 position: absolute; 1167 top: 0; 1168 left: 1.25rem; 1169 display: inline-flex; 1170 align-items: center; 1171 gap: .35rem; 1172 padding: .3rem .7rem; 1173 background: var(--tg-c, #229ED9); 1174 color: #ffffff; 1175 border-radius: 0 0 10px 10px; 1176 font-size: .72rem; 1177 font-weight: 800; 1178 text-transform: uppercase; 1179 letter-spacing: .06em; 1180} 1181 1182.guru-tg__badge .guru-tg__logo { 1183 width: 15px; 1184 height: 15px; 1185} 1186 1187.guru-tg__body { 1188 flex: 1 1 260px; 1189 min-width: 0; 1190} 1191 1192.guru-tg__title, 1193.entry-content .guru-tg__title { 1194 display: block; 1195 margin: 0 0 .3rem; 1196 font-size: 1.3rem; 1197 line-height: 1.2; 1198 font-weight: 800; 1199 letter-spacing: -.01em; 1200 color: #14161f; 1201} 1202 1203.guru-tg__subtitle, 1204.entry-content .guru-tg__subtitle { 1205 display: block; 1206 margin: 0 0 .4rem; 1207 font-size: .98rem; 1208 font-weight: 500; 1209 color: #55606f; 1210} 1211 1212.guru-tg__channel { 1213 display: inline-block; 1214 font-size: .92rem; 1215 font-weight: 700; 1216 color: var(--tg-c, #229ED9); 1217} 1218 1219/* Botón celeste (Telegram). */ 1220.guru-tg__cta, 1221.entry-content .guru-tg__cta { 1222 display: inline-flex; 1223 align-items: center; 1224 justify-content: center; 1225 gap: .5rem; 1226 flex: 0 0 auto; 1227 padding: .85rem 1.6rem; 1228 background: var(--tg-c, #229ED9); 1229 color: #ffffff; 1230 border: 0; 1231 border-radius: 10px; 1232 font-size: 1rem; 1233 font-weight: 800; 1234 text-transform: uppercase; 1235 letter-spacing: .03em; 1236 text-decoration: none; 1237 white-space: nowrap; 1238 box-shadow: 0 8px 20px -8px rgba(var(--tg-c-rgb, 34, 158, 217), .6); 1239 transition: transform .15s ease, filter .15s ease; 1240} 1241 1242.guru-tg__cta .guru-tg__logo { 1243 width: 18px; 1244 height: 18px; 1245} 1246 1247.guru-tg__cta:hover, 1248.guru-tg__cta:focus { 1249 transform: translateY(-1px); 1250 filter: brightness(1.06); 1251 color: #ffffff; 1252} 1253 1254@media (max-width: 540px) { 1255 .guru-tg { padding: 1.35rem 1.15rem 1.2rem; } 1256 .guru-tg__body { flex-basis: 100%; } 1257 .guru-tg__cta { width: 100%; } 1258 .guru-tg__title { font-size: 1.18rem; } 1259} 1260 1261@media (prefers-reduced-motion: reduce) { 1262 .guru-tg__cta { transition: none; } 1263} 1264 1265/* 1266 * Guru â Banner de newsletter del sidebar (.guru-sn). 1267 * 1268 * Banner vertical con captura de email (Brevo) para la barra lateral. 1269 * Temática de apuestas deportivas. Colores y textos se configuran desde el 1270 * Customizer (sección "Newsletter sidebar"); llegan como variables inline: 1271 * --sn-bg fondo del banner 1272 * --sn-text color de texto base 1273 * --sn-accent color de acento (borde superior, botón, foco) 1274 * --sn-accent-rgb versión rgb del acento para rgba() 1275 */ 1276 1277.guru-sn { 1278 position: relative; 1279 display: flex; 1280 flex-direction: column; 1281 gap: .7rem; 1282 width: 100%; 1283 margin: 1rem 0 1.5rem; 1284 padding: 1.4rem 1.15rem 1.25rem; 1285 background: var(--sn-bg, #ffffff); 1286 border: 1px solid rgba(var(--sn-accent-rgb, 22, 163, 74), .28);
1287 border-top: 4px solid var(--sn-accent, #16a34a); 1288 border-radius: 14px; 1289 box-shadow: 0 10px 28px -14px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .05); 1290 color: var(--sn-text, #1a1a2e); 1291 text-align: center; 1292 font-family: inherit; 1293 line-height: 1.45; 1294 box-sizing: border-box; 1295 overflow: hidden; 1296} 1297 1298.guru-sn *, 1299.guru-sn *::before, 1300.guru-sn *::after { 1301 box-sizing: border-box; 1302} 1303 1304/* Glow decorativo con el tono de acento. */ 1305.guru-sn::before { 1306 content: ''; 1307 position: absolute; 1308 top: -45px; 1309 right: -45px; 1310 width: 150px; 1311 height: 150px; 1312 background: radial-gradient(circle, rgba(var(--sn-accent-rgb, 22, 163, 74), .14) 0%, transparent 70%); 1313 pointer-events: none; 1314 z-index: 0; 1315} 1316 1317.guru-sn > * { 1318 position: relative; 1319 z-index: 1; 1320} 1321 1322.guru-sn__eyebrow { 1323 align-self: center; 1324 display: inline-flex; 1325 align-items: center; 1326 gap: .4rem; 1327 font-size: .68rem; 1328 font-weight: 800; 1329 letter-spacing: .1em; 1330 text-transform: uppercase; 1331 color: var(--sn-accent, #16a34a); 1332} 1333 1334.guru-sn__eyebrow-icon { 1335 width: 15px; 1336 height: 15px; 1337 flex: 0 0 auto; 1338} 1339 1340.guru-sn__title { 1341 margin: 0; 1342 font-size: 1.3rem; 1343 line-height: 1.2; 1344 font-weight: 800; 1345 letter-spacing: -.01em; 1346 color: var(--sn-text, #14161f); 1347} 1348 1349.guru-sn__subtitle { 1350 margin: 0; 1351 font-size: .92rem; 1352 font-weight: 500; 1353 color: var(--sn-text, #55606f); 1354 opacity: .82; 1355} 1356 1357.guru-sn__form { 1358 display: flex; 1359 flex-direction: column; 1360 gap: .55rem; 1361 margin: .2rem 0 0; 1362} 1363 1364/* Honeypot anti-bots â fuera de pantalla, no lo ve el usuario. */ 1365.guru-sn__hp { 1366 position: absolute; 1367 left: -9999px; 1368 width: 1px; 1369 height: 1px; 1370 overflow: hidden; 1371} 1372 1373.guru-sn__input { 1374 width: 100%; 1375 padding: .75rem .9rem; 1376 background: #ffffff; 1377 border: 1px solid rgba(0, 0, 0, .16); 1378 border-radius: 10px; 1379 color: #14161f; 1380 font-family: inherit; 1381 font-size: .95rem; 1382 line-height: 1.3; 1383 transition: border-color .15s ease, box-shadow .15s ease; 1384} 1385 1386.guru-sn__input::placeholder { 1387 color: #9aa2ae; 1388} 1389 1390.guru-sn__input:focus { 1391 outline: none; 1392 border-color: var(--sn-accent, #16a34a); 1393 box-shadow: 0 0 0 3px rgba(var(--sn-accent-rgb, 22, 163, 74), .18); 1394} 1395 1396.guru-sn__input:disabled { 1397 background: #f3f4f6; 1398 color: #6b7280; 1399 cursor: default; 1400 opacity: .8; 1401} 1402 1403/* El atributo hidden debe ganarle al display de las clases de abajo. */ 1404.guru-sn__button[hidden], 1405.guru-sn__form[hidden] { 1406 display: none; 1407} 1408 1409.guru-sn__button { 1410 display: block; 1411 width: 100%; 1412 padding: .8rem 1.2rem; 1413 background: var(--sn-accent, #16a34a); 1414 color: #ffffff; 1415 border: 0; 1416 border-radius: 10px; 1417 font-family: inherit; 1418 font-size: .95rem; 1419 font-weight: 800; 1420 text-transform: uppercase; 1421 letter-spacing: .04em; 1422 cursor: pointer; 1423 box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .35); 1424 transition: transform .15s ease, filter .15s ease; 1425} 1426 1427.guru-sn__button:hover, 1428.guru-sn__button:focus-visible { 1429 transform: translateY(-1px); 1430 filter: brightness(1.06); 1431} 1432 1433.guru-sn__button:active { 1434 transform: translateY(1px); 1435} 1436 1437.guru-sn__button[disabled] { 1438 opacity: .65; 1439 cursor: default; 1440 transform: none; 1441 filter: none; 1442} 1443 1444/* Mensaje de feedback (éxito / error) tras el submit. */ 1445.guru-sn__message { 1446 margin: .15rem 0 0; 1447 font-size: .85rem; 1448 font-weight: 600; 1449 line-height: 1.35; 1450} 1451 1452.guru-sn__message[hidden] { 1453 display: none; 1454} 1455 1456.guru-sn__message.is-success { 1457 color: #15803d; 1458} 1459 1460.guru-sn__message.is-error { 1461 color: #dc2626; 1462} 1463 1464.guru-sn__disclaimer { 1465 margin: .4rem 0 0; 1466 font-size: .66rem; 1467 line-height: 1.4; 1468 color: var(--sn-text, #8a929e); 1469 opacity: .68; 1470 font-weight: 400; 1471} 1472 1473@media (max-width: 480px) { 1474 .guru-sn { padding: 1.25rem 1rem 1.1rem; } 1475 .guru-sn__title { font-size: 1.2rem; } 1476} 1477 1478@media (prefers-reduced-motion: reduce) { 1479 .guru-sn__input, 1480 .guru-sn__button { transition: none; } 1481} 1482 1483/*# sourceURL=guru-style-inline-css */ 1484</style> 1485<link rel="https://api.w.org/" href="https://apostar.com.ec/wp-json/" />
1485<script async id="google_gtagjs" src="https://apostar.com.ec/?local_ga_js=4bcaf11ac9f74fde3c2d05d826b77c4f"></script>
vendor: 1 bytes, line 1485
1485
1486<script id="google_gtagjs-inline">
vendor: 124 bytes, line 1487
1487window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
1487G-XH8BYWFRQX
vendor: 9 bytes, line 1487
1487', {} );
1488</script>
1488 1489<link rel="icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" sizes="32x32" /> 1490<link rel="icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" sizes="192x192" /> 1491<link rel="apple-touch-icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" /> 1492<meta name="msapplication-TileImage" content="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" /> 1493</head> 1494<body class="archive post-type-archive post-type-archive-betting_house wp-custom-logo wp-embed-responsive wp-theme-repo-igl-main"> 1495 1496<a class="skip-link screen-reader-text" href="#main-content">Saltar al contenido</a> 1497 1498<header id="site-header" class="site-header" role="banner"> 1499 <!-- Top bar: logo centered + CTA --> 1500 <div class="header-top"> 1501 <div class="container header-top__inner"> 1502 <div class="header-top__left"> 1503 <button class="menu-toggle" aria-controls="primary-nav" aria-expanded="false" aria-label="Abrir menú"> 1504 <span class="hamburger"></span> 1505 </button> 1506 </div> 1507 1508 <div class="site-branding"> 1509 <a href="https://apostar.com.ec/" class="custom-logo-link" rel="home"> 1510 <img src="https://apostar.com.ec/wp-content/uploads/2022/06/logo_apostar-com-ec.svg" class="custom-logo" alt="apostar.com.ec" width="250" height="80" decoding="async" fetchpriority="high"> 1511 </a> 1512 </div> 1513 1514 <div class="header-top__right"> 1515 <div class="header-cta"> 1516 </div> 1517 </div> 1518 </div> 1519 </div> 1520 1521 <!-- Bottom bar: navigation menu --> 1522 <div class="header-nav"> 1523 <div class="container header-nav__inner"> 1524 <nav id="primary-nav" class="main-navigation" role="navigation" aria-label="Navegación principal"> 1525 <button class="nav-close-btn" aria-label="Cerrar menú"> 1526 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 1527 </button> 1528 <ul id="menu-apostar-com-ec" class="nav-menu"><li id="menu-item-14100" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14100"><a href="https://apostar.com.ec/casas-de-apuestas/">Casas de apuestas</a></li> 1529<li id="menu-item-13885" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13885"><a href="https://apostar.com.ec/slots/">Jugar slots</a></li> 1530<li id="menu-item-14759" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-14759"><a href="https://apostar.com.ec/casinos/">Casinos</a> 1531<ul class="sub-menu"> 1532 <li id="menu-item-14301" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14301"><a href="https://apostar.com.ec/blackjack-online/">Blackjack online</a></li> 1533 <li id="menu-item-14300" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14300"><a href="https://apostar.com.ec/crash-games/">Crash Games</a></li> 1534 <li id="menu-item-14299" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14299"><a href="https://apostar.com.ec/guia-completa-de-poker-online-domina-las-manos-tacticas-claves-y-donde-jugar/">GuÃa póker online</a></li> 1535</ul> 1536</li> 1537<li id="menu-item-4200" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4200"><a href="https://apostar.com.ec/bonos/">Bonos</a></li> 1538<li id="menu-item-4199" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-4199"><a href="https://apostar.com.ec/apuestas-deportivas/">Apuestas deportivas</a> 1539<ul class="sub-menu"> 1540 <li id="menu-item-14298" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14298"><a href="https://apostar.com.ec/?page_id=12286">Apuestas de fútbol en Ecuador</a></li> 1541</ul> 1542</li> 1543<li id="menu-item-341" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-341"><a href="https://apostar.com.ec/pronosticos/">Pronósticos</a></li> 1544<li id="menu-item-5083" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5083"><a href="https://apostar.com.ec/contacto/">Contacto</a></li> 1545</ul> <aside class="guru-menu-casa" aria-label="Casa destacada"> 1546 <span class="guru-menu-casa__label">CASA DESTACADA</span> 1547 <div class="guru-menu-casa__row"> 1548 <a class="guru-menu-casa__logo" href="https://apostar.com.ec/casas-de-apuestas/bet365/"> 1549 <img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/06/bet365.svg" class="attachment-guru-card size-guru-card
1549wp-post-image" alt="Bet365" loading="lazy" /> </a> 1550 <span class="guru-menu-casa__bono"> 1551 <span class="guru-menu-casa__bono-label">Bono hasta</span> 1552 <span class="guru-menu-casa__bono-value"><span class="bono-currency guru-menu-casa__bono-currency">$</span><span class="bono-amount guru-menu-casa__bono-amount">30</span></span> 1553 </span> 1554 <a class="guru-menu-casa__cta" href="https://apostar.com.ec/ir/bet365bh" target="_blank" rel="noopener noreferrer nofollow">REGISTRARSE</a> 1555 </div> 1556 </aside> 1557 </nav> 1558 </div> 1559 </div> 1560</header> 1561 1562 1563 1564<style id="guru-pcb-css">.guru-pcb.guru-pcb--sticky{position:sticky;top:0;z-index:200;transition:top .3s ease} 1565.guru-pcb{position:relative;overflow:visible;isolation:isolate;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.9rem 1.2rem;padding:.85rem 1.1rem;background:linear-gradient(110deg,#5b2bd6 0%,#1f9ed6 26%,#16b87a 50%,#ff7a00 74%,#e22653 100%);background-size:220% 100%;animation:guru-pcb-bg 15s ease-in-out infinite;box-shadow:inset 0 -2px 0 rgba(255,255,255,.18);font-family:inherit} 1566.guru-pcb__fx{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none} 1567.guru-pcb__shape{position:absolute;width:34%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:0;filter:blur(26px);mix-blend-mode:screen;opacity:.55} 1568.guru-pcb__shape--1{background:radial-gradient(circle,rgba(255,221,0,.7),transparent 70%);animation:guru-pcb-float-1 14s ease-in-out infinite} 1569.guru-pcb__shape--2{background:radial-gradient(circle,rgba(255,255,255,.6),transparent 70%);animation:guru-pcb-float-2 19s ease-in-out infinite -5s} 1570.guru-pcb__shape--3{background:radial-gradient(circle,rgba(0,220,255,.55),transparent 70%);animation:guru-pcb-float-3 16s ease-in-out infinite -3s} 1571.guru-pcb::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.32));pointer-events:none} 1572.guru-pcb__fx::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:22%;z-index:1;background:linear-gradient(100deg,transparent,rgba(255,255,255,.18) 50%,transparent);transform:skewX(-18deg);animation:guru-pcb-sheen 6.5s ease-in-out infinite;pointer-events:none} 1573@keyframes guru-pcb-bg{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}} 1574@keyframes guru-pcb-float-1{0%,100%{left:10%;top:35%}33%{left:45%;top:75%}66%{left:80%;top:20%}} 1575@keyframes guru-pcb-float-2{0%,100%{left:78%;top:60%}33%{left:30%;top:25%}66%{left:55%;top:80%}} 1576@keyframes guru-pcb-float-3{0%,100%{left:48%;top:40%}33%{left:88%;top:72%}66%{left:15%;top:55%}} 1577@keyframes guru-pcb-sheen{0%{left:-30%}55%{left:120%}100%{left:120%}} 1578@keyframes guru-pcb-glow{0%,100%{box-shadow:0 0 0 2px rgba(255,255,255,.55),0 0 10px rgba(255,255,255,.3)}50%{box-shadow:0 0 0 2px rgba(255,255,255,.95),0 0 24px rgba(255,255,255,.8)}} 1579@keyframes guru-pcb-logo-glow{0%,100%{filter:drop-shadow(0 0 3px rgba(255,255,255,.45))}50%{filter:drop-shadow(0 0 11px rgba(255,255,255,.95))}} 1580.guru-pcb>*:not(.guru-pcb__fx):not(.guru-pcb__toggle){position:relative;z-index:2} 1581.guru-pcb__logo{height:38px;width:auto;max-width:130px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 0 3px rgba(255,255,255,.45));animation:guru-pcb-logo-glow 2.8s ease-in-out infinite;will-change:filter} 1582.guru-pcb__text{margin:0;color:#fff;font-weight:700;font-size:1rem;line-height:1.2;text-shadow:0 1px 3px rgba(0,0,0,.55),0 0 12px rgba(0,0,0,.35)} 1583.guru-pcb__hl-xl{display:inline-block;font-size:1.32em;font-weight:900;letter-spacing:.01em;transform:rotate(-3deg);text-shadow:0 2px 10px rgba(0,0,0,.55);padding:0 .08em} 1584.guru-pcb__hl{display:inline-block;font-style:normal;font-size:1.12em;font-weight:800;transform:rotate(1.5deg);padding:0 .04em} 1585.guru-pcb__code{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:.45rem;cursor:pointer;background:rgba(0,0,0,.32);color:#fff;border:2px dashed rgba(255,255,255,.85);border-radius:.5rem;padding:.32rem .8rem;font-family:inherit;line-height:1;transition:transform .15s ease,background .15s ease} 1586.guru-pcb__code:hover,.guru-pcb__code:focus-visible{transform:translateY(-1px);background:rgba(0,0,0,.45)} 1587.guru-pcb__code-value{font-weight:900;font-size:1.05rem;letter-spacing:.12em;font-variant-numeric:tabular-nums} 1588.guru-pcb__code-icon{width:15px;height:15px;flex:0 0 auto;opacity:.9} 1589.guru-pcb__code-toast{position:absolute;
1589left:50%;top:-1.7rem;transform:translateX(-50%) translateY(4px);background:#111;color:#fff;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.16rem .42rem;border-radius:.25rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease} 1590.guru-pcb__code.is-copied{background:rgba(0,0,0,.5)} 1591.guru-pcb__code.is-copied .guru-pcb__code-toast{opacity:1;transform:translateX(-50%) translateY(0)} 1592.guru-pcb__cta{display:inline-flex;align-items:center;background:var(--pcb-btn-bg);color:var(--pcb-btn-text);padding:.6rem 1.3rem;border-radius:.55rem;font-weight:900;text-decoration:none;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;transition:transform .18s ease,filter .18s ease;border:0;animation:guru-pcb-glow 2.4s ease-in-out infinite;will-change:box-shadow} 1593.guru-pcb__cta:hover,.guru-pcb__cta:focus{transform:translateY(-1px);filter:brightness(1.04);color:var(--pcb-btn-text)} 1594.guru-pcb__compliance{flex:0 0 100%;width:100%;order:1;margin:-.35rem 0 0;text-align:center;color:#fff;opacity:.8;font-size:.62rem;line-height:1.3;font-weight:400;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.5)} 1595.guru-pcb__toggle{display:none;position:absolute;left:50%;bottom:-12px;transform:translateX(-50%);z-index:5;align-items:center;justify-content:center;width:52px;height:24px;padding:0;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;color:#4b5563;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 3px 9px rgba(0,0,0,.28);transition:background .15s ease,color .15s ease} 1596.guru-pcb__toggle:hover,.guru-pcb__toggle:focus-visible{background:#f1f2f4;color:#111} 1597.guru-pcb__toggle svg{width:18px;height:18px;transition:transform .25s ease} 1598.guru-pcb.is-collapsed .guru-pcb__toggle svg{transform:rotate(180deg)} 1599.guru-pcb__collapsed-label{display:none;margin:0;padding:0 2rem;color:#fff;font-weight:800;font-size:.85rem;letter-spacing:.02em;text-shadow:0 1px 3px rgba(0,0,0,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%} 1600@media (max-width:720px){.guru-pcb{gap:.55rem .8rem;padding:.85rem .7rem 1rem;margin-bottom:1rem}.guru-pcb__logo{height:30px;max-width:96px}.guru-pcb__text{font-size:.85rem;flex-basis:100%;text-align:center;order:-1}.guru-pcb__code-value{font-size:.95rem;letter-spacing:.1em}.guru-pcb__cta{font-size:.8rem;padding:.5rem 1.05rem}.guru-pcb__compliance{font-size:.56rem;margin-top:.3rem}.guru-pcb__toggle{display:inline-flex}.guru-pcb.is-collapsed{gap:0;min-height:2.3rem;padding-top:.55rem;padding-bottom:.55rem}.guru-pcb.is-collapsed>*:not(.guru-pcb__fx):not(.guru-pcb__toggle):not(.guru-pcb__collapsed-label){display:none!important}.guru-pcb.is-collapsed .guru-pcb__collapsed-label{display:block;line-height:1.1}} 1601@media (prefers-reduced-motion:reduce){.guru-pcb,.guru-pcb__shape--1,.guru-pcb__shape--2,.guru-pcb__shape--3,.guru-pcb__fx::after,.guru-pcb__cta,.guru-pcb__logo{animation:none}.guru-pcb__cta,.guru-pcb__code,.guru-pcb__toggle svg{transition:none}}</style> 1602<aside class="guru-pcb guru-pcb--sticky" style="--pcb-btn-bg:#ffffff;--pcb-btn-text:#111111;" aria-label="Reclama 200 Giros Gratis con el código especial"> 1603 <span class="guru-pcb__fx" aria-hidden="true"> 1604 <span class="guru-pcb__shape guru-pcb__shape--1"></span> 1605 <span class="guru-pcb__shape guru-pcb__shape--2"></span> 1606 <span class="guru-pcb__shape guru-pcb__shape--3"></span> 1607 </span> 1608 <button type="button" class="guru-pcb__toggle" aria-expanded="true" aria-label="Ocultar promoción" data-label-collapse="Ocultar promoción" data-label-expand="Mostrar promoción"> 1609 <svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M18 15l-6-6-6 6"/></svg> 1610 </button> 1611 <span class="guru-pcb__collapsed-label" aria-hidden="true">BetWinner · AEC100</span> 1612 <img class="guru-pcb__logo" src="https://apostar.com.ec/wp-content/uploads/2026/08/Betwinner.svg" alt="BetWinner" loading="eager" decoding="async" width="130" height="38"> 1613 <p class="guru-pcb__text">Reclama <strong class="guru-pcb__hl-xl">200 Giros Gratis</strong> con el código especial</p> 1614 <button type="button" class="guru-pcb__code" data-code="AEC100" aria-label="Copiar código AEC100"> 1615 <span class="guru-pcb__code-value">AEC100</span> 1616 <svg class="guru-pcb__code-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></svg> 1617 <span class="guru-pcb__code-toast" aria-hidden="true">¡Copiado!</span> 1618 </button> 1619 <a class="guru-pcb__cta" href="https://apostar.com.ec/ir/betwinnerpromo" target="_blank" rel="noopener noreferrer nofollow">ACTIVAR CÃDIGO</a> 1620 </aside>
1621<script> 1622(function(){ 1623 var b = document.querySelector('.guru-pcb__code'); 1624 if (!b) return; 1625 function fallback(t){ var ta=document.createElement('textarea'); ta.value=t; ta.style.position='fixed'; ta.style.opacity='0'; document.body.appendChild(ta); ta.focus(); ta.select(); try{document.execCommand('copy');}catch(e){} document.body.removeChild(ta); } 1626 b.addEventListener('click', function(){ 1627 var code = b.getAttribute('data-code') || ''; 1628 var done = function(){ 1629 b.classList.add('is-copied'); 1630 setTimeout(function(){ b.classList.remove('is-copied'); }, 1800); 1631 }; 1632 if (navigator.clipboard && navigator.clipboard.writeText) { 1633 navigator.clipboard.writeText(code).then(done).catch(function(){ fallback(code); done(); }); 1634 } else { fallback(code); done(); } 1635 }); 1636})(); 1637</script>
vendor: 1 bytes, line 1637
1637
1638<script> 1639(function(){ 1640 var banner = document.querySelector('.guru-pcb--sticky'); 1641 var header = document.getElementById('site-header'); 1642 if (!banner || !header) return; 1643 // El banner queda siempre visible y pegado al borde inferior del header: si 1644 // el header está arriba, va debajo; si el header se oculta al scrollear, sube 1645 // a top:0. Leemos la posición real del header (sirva como sea que se oculte). 1646 var ticking = false; 1647 function sync(){ var b = header.getBoundingClientRect().bottom; banner.style.top = (b > 0 ? b : 0) + 'px'; ticking = false; } 1648 function onScroll(){ if (!ticking) { requestAnimationFrame(sync); ticking = true; } } 1649 sync(); 1650 window.addEventListener('scroll', onScroll, { passive: true }); 1651 window.addEventListener('resize', sync, { passive: true }); 1652 header.addEventListener('transitionend', sync); 1653})(); 1654</script>
vendor: 1 bytes, line 1654
1654
1655<script> 1656(function(){ 1657 var banner = document.querySelector('.guru-pcb'); 1658 if (!banner) return; 1659 var toggle = banner.querySelector('.guru-pcb__toggle'); 1660 if (!toggle) return; 1661 var KEY = 'guruPcbCollapsed'; 1662 function apply(collapsed){ 1663 banner.classList.toggle('is-collapsed', collapsed); 1664 toggle.setAttribute('aria-expanded', collapsed ? 'false' : 'true'); 1665 toggle.setAttribute('aria-label', collapsed ? (toggle.getAttribute('data-label-expand') || '') : (toggle.getAttribute('data-label-collapse') || '')); 1666 } 1667 var stored = false; 1668 try { stored = localStorage.getItem(KEY) === '1'; } catch(e) {} 1669 apply(stored); 1670 toggle.addEventListener('click', function(){ 1671 var collapsed = !banner.classList.contains('is-collapsed'); 1672 apply(collapsed); 1673 try { localStorage.setItem(KEY, collapsed ? '1' : '0'); } catch(e) {} 1674 // El alto del banner cambió: resincronizamos el sticky (usa el listener de resize). 1675 window.dispatchEvent(new Event('resize')); 1676 }); 1677})(); 1678</script>
1678 1679 1680 1681 1682<main id="main-content" class="site-main" role="main"> 1683 1684<section class="page-hero page-hero--category"> 1685 <div class="container"> 1686 <nav class="breadcrumbs" aria-label="Breadcrumb"><a href="https://apostar.com.ec">Inicio</a> <span class="sep">/</span> <span aria-current="page">Casas de Apuestas</span></nav> <h1 class="page-hero__title">Casas de Apuestas</h1> 1687 <p class="page-hero__intro"><!-- ARTICLE --></p> </div> 1688</section> 1689 1690 <section class="ranking-banner" aria-label="Ranking de Casas de Apuestas"> 1691 <div class="container"> 1692 <div class="ranking-banner__header"> 1693 <h2 class="ranking-banner__title"> 1694 <svg aria-hidden="true" focusable="false" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> 1695 Top Casas de Apuestas </h2> 1696 <span class="ranking-banner__date">septiembre 2026</span> 1697 </div> 1698 1699 1700 <div class="ranking-banner__list"> 1701 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1702 <span class="ranking-row__border-label" style="background:#ff3c00">¡LA MEJOR DE ECUADOR!</span> 1703 <div class="ranking-row ranking-row--top"> 1704 1705 <!-- Col 1: Rank + Logo --> 1706 <div class="ranking-row__col ranking-row__col--logo"> 1707 <span class="ranking-row__rank">#1</span> 1708 <div class="ranking-row__logo"> 1709 <a href="https://apostar.com.ec/casas-de-apuestas/betano/" aria-label="Betano"> 1710 <img width="400" height="86" src="https://apostar.com.ec/wp-content/uploads/2022/12/Betano2.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Betano" loading="lazy" /> </a> 1711 </div> 1712 </div> 1713 1714 <!-- Col 2: Rating + Pros + Tags --> 1715 <div class="ranking-row__col ranking-row__col--pros"> 1716 <ul class="ranking-row__pros"> 1717 <li>Código promocional EXCLUSIVO: APUESTASECUADOR</li> 1718 <li>Bono de bienvenida de $300</li> 1719 <li>Depósito mÃnimo $5 | Retiro mÃnimo $10</li> 1720 </ul> 1721 </div> 1722 1723 <!-- Col 3: Métodos de Pago --> 1724 <div class="ranking-row__col ranking-row__col--medios"> 1725 <div class="ranking-row__medios"> 1726 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1727 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Transferencia-Bancaria.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Transferencia bancaria en Ecuador" loading="lazy" /></span> 1728 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Visa.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Visa" loading="lazy" /></span> 1729 </div> 1730 </div> 1731 1732 <!-- Col 4: Bono --> 1733 <div class="ranking-row__col ranking-row__col--bono"> 1734 <span class="ranking-row__bono-label">Bono hasta</span> 1735 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">300</span></span> 1736 </div> 1737 1738 <!-- Col 4: REGISTRARSE + Leer reseña --> 1739 <div class="ranking-row__col ranking-row__col--cta"> 1740 <a href="https://apostar.com.ec/ir/betanobh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Betano"> 1741 REGISTRARSE </a> 1742 <a href="https://apostar.com.ec/casas-de-apuestas/betano/" class="ranking-row__review-link" aria-label="Leer reseña de Betano"> 1743 Leer reseña </a> 1744 </div> 1745 1746 </div> 1747 </div><!-- /.ranking-row-wrap --> 1748 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1749 <span class="ranking-row__border-label" style="background:#126e51">¡MAYOR CANTIDAD DE APOSTADORES EN EL MUNDO!</span> 1750 <div class="ranking-row"> 1751 1752 <!-- Col 1: Rank + Logo --> 1753 <div class="ranking-row__col ranking-row__col--logo"> 1754 <span class="ranking-row__rank">#2</span> 1755 <div class="ranking-row__logo"> 1756 <a href="https://apostar.com.ec/casas-de-apuestas/bet365/" aria-label="Bet365"> 1757 <img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/06/bet365.svg" class="attachment-guru-card size-guru-card
1757wp-post-image" alt="Bet365" loading="lazy" /> </a> 1758 </div> 1759 </div> 1760 1761 <!-- Col 2: Rating + Pros + Tags --> 1762 <div class="ranking-row__col ranking-row__col--pros"> 1763 <ul class="ranking-row__pros"> 1764 <li>Bono de $30 sin rollover</li> 1765 <li>El mejor cashout del mercado ecuatoriano</li> 1766 <li>La oferta de Casino es enorme</li> 1767 </ul> 1768 </div> 1769 1770 <!-- Col 3: Métodos de Pago --> 1771 <div class="ranking-row__col ranking-row__col--medios"> 1772 <div class="ranking-row__medios"> 1773 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Maestro.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Maestro" loading="lazy" /></span> 1774 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1775 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 1776 <span class="ranking-row__medio-more">+3</span> 1777 </div> 1778 </div> 1779 1780 <!-- Col 4: Bono --> 1781 <div class="ranking-row__col ranking-row__col--bono"> 1782 <span class="ranking-row__bono-label">Bono hasta</span> 1783 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">30</span></span> 1784 </div> 1785 1786 <!-- Col 4: REGISTRARSE + Leer reseña --> 1787 <div class="ranking-row__col ranking-row__col--cta"> 1788 <a href="https://apostar.com.ec/ir/bet365bh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Bet365"> 1789 REGISTRARSE </a> 1790 <a href="https://apostar.com.ec/casas-de-apuestas/bet365/" class="ranking-row__review-link" aria-label="Leer reseña de Bet365"> 1791 Leer reseña </a> 1792 </div> 1793 1794 <div class="ranking-row__disclaimer">+18. Juega con responsabilidad. Aplican términos y condiciones.</div> 1795 </div> 1796 </div><!-- /.ranking-row-wrap --> 1797 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1798 <span class="ranking-row__border-label" style="background:#0a4da2">¡CASA 100% ECUATORIANA!</span> 1799 <div class="ranking-row"> 1800 1801 <!-- Col 1: Rank + Logo --> 1802 <div class="ranking-row__col ranking-row__col--logo"> 1803 <span class="ranking-row__rank">#3</span> 1804 <div class="ranking-row__logo"> 1805 <a href="https://apostar.com.ec/casas-de-apuestas/latribet/" aria-label="LaTriBet"> 1806 <img width="400" height="104" src="https://apostar.com.ec/wp-content/uploads/2022/08/latribet-2.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="LaTriBet" loading="lazy" /> </a> 1807 </div> 1808 </div> 1809 1810 <!-- Col 2: Rating + Pros + Tags --> 1811 <div class="ranking-row__col ranking-row__col--pros"> 1812 <ul class="ranking-row__pros"> 1813 <li>Bono $200</li> 1814 <li>Acepta cripto y efectivo</li> 1815 <li>Gran cobertura de deportes ecuatorianos</li> 1816 </ul> 1817 </div> 1818 1819 <!-- Col 3: Métodos de Pago --> 1820 <div class="ranking-row__col ranking-row__col--medios"> 1821 <div class="ranking-row__medios"> 1822 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 1823 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1824 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 1825 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Transferencia-Bancaria.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Transferencia bancaria en Ecuador" loading="lazy" /></span> 1826 <span class="ranking-row__medio-more">+1</span> 1827 </div> 1828 </div> 1829
1830 <!-- Col 4: Bono --> 1831 <div class="ranking-row__col ranking-row__col--bono"> 1832 <span class="ranking-row__bono-label">Bono hasta</span> 1833 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">220</span></span> 1834 </div> 1835 1836 <!-- Col 4: REGISTRARSE + Leer reseña --> 1837 <div class="ranking-row__col ranking-row__col--cta"> 1838 <a href="https://apostar.com.ec/ir/latribetbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en LaTriBet"> 1839 REGISTRARSE </a> 1840 <a href="https://apostar.com.ec/casas-de-apuestas/latribet/" class="ranking-row__review-link" aria-label="Leer reseña de LaTriBet"> 1841 Leer reseña </a> 1842 </div> 1843 1844 </div> 1845 </div><!-- /.ranking-row-wrap --> 1846 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1847 <span class="ranking-row__border-label" style="background:#b8860b">¡BONO MÃS ALTO!</span> 1848 <div class="ranking-row"> 1849 1850 <!-- Col 1: Rank + Logo --> 1851 <div class="ranking-row__col ranking-row__col--logo"> 1852 <span class="ranking-row__rank">#4</span> 1853 <div class="ranking-row__logo"> 1854 <a href="https://apostar.com.ec/casas-de-apuestas/1xbet/" aria-label="1xBET"> 1855 <img width="250" height="71" src="https://apostar.com.ec/wp-content/uploads/2022/06/1xbet.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="1xBET" loading="lazy" /> </a> 1856 </div> 1857 </div> 1858 1859 <!-- Col 2: Rating + Pros + Tags --> 1860 <div class="ranking-row__col ranking-row__col--pros"> 1861 <ul class="ranking-row__pros"> 1862 <li>Bono de $100</li> 1863 <li>Más de 1000 eventos deportivos</li> 1864 <li>Acepta criptomonedas</li> 1865 </ul> 1866 </div> 1867 1868 <!-- Col 3: Métodos de Pago --> 1869 <div class="ranking-row__col ranking-row__col--medios"> 1870 <div class="ranking-row__medios"> 1871 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 1872 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 1873 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1874 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 1875 <span class="ranking-row__medio-more">+2</span> 1876 </div> 1877 </div> 1878 1879 <!-- Col 4: Bono --> 1880 <div class="ranking-row__col ranking-row__col--bono"> 1881 <span class="ranking-row__bono-label">Bono hasta</span> 1882 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">500</span></span> 1883 </div> 1884 1885 <!-- Col 4: REGISTRARSE + Leer reseña --> 1886 <div class="ranking-row__col ranking-row__col--cta"> 1887 <a href="https://apostar.com.ec/ir/1xbetbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en 1xBET"> 1888 REGISTRARSE </a> 1889 <a href="https://apostar.com.ec/casas-de-apuestas/1xbet/" class="ranking-row__review-link" aria-label="Leer reseña de 1xBET"> 1890 Leer reseña </a> 1891 </div> 1892 1893 <div class="ranking-row__disclaimer">Apuesta con responsabilidad. Apto unicamente para mayores de 18 años. Se aplican Términos &
1893 Condiciones.</div> 1894 </div> 1895 </div><!-- /.ranking-row-wrap --> 1896 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1897 <span class="ranking-row__border-label" style="background:#b8860b">¡CASA DESTACADA!</span> 1898 <div class="ranking-row"> 1899 1900 <!-- Col 1: Rank + Logo --> 1901 <div class="ranking-row__col ranking-row__col--logo"> 1902 <span class="ranking-row__rank">#5</span> 1903 <div class="ranking-row__logo"> 1904 <a href="https://apostar.com.ec/casas-de-apuestas/betwinner-ecuador-resena/" aria-label="BetWinner"> 1905 <img width="110" height="11" src="https://apostar.com.ec/wp-content/uploads/2026/08/Betwinner.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="BetWinner" loading="lazy" /> </a> 1906 </div> 1907 </div> 1908 1909 <!-- Col 2: Rating + Pros + Tags --> 1910 <div class="ranking-row__col ranking-row__col--pros"> 1911 <ul class="ranking-row__pros"> 1912 <li>Pagos locales en USD.</li> 1913 <li>Requisito de liberación bajo (x5) en comparación con otras casas del sector.</li> 1914 <li>Más de 60 disciplinas deportivas y un casino con más de 6.000 juegos.</li> 1915 </ul> 1916 </div> 1917 1918 <!-- Col 3: Métodos de Pago --> 1919 <div class="ranking-row__col ranking-row__col--medios"> 1920 <div class="ranking-row__medios"> 1921 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2026/08/AirTM.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Airtm" loading="lazy" /></span> 1922 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 1923 <span class="ranking-row__medio-img"><img width="50" height="14" src="https://apostar.com.ec/wp-content/uploads/2026/08/Deuna.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Deuna" loading="lazy" /></span> 1924 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1925 <span class="ranking-row__medio-more">+2</span> 1926 </div> 1927 </div> 1928 1929 <!-- Col 4: Bono --> 1930 <div class="ranking-row__col ranking-row__col--bono"> 1931 <span class="ranking-row__bono-label">Bono hasta</span> 1932 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">2.295</span></span> 1933 </div> 1934 1935 <!-- Col 4: REGISTRARSE + Leer reseña --> 1936 <div class="ranking-row__col ranking-row__col--cta"> 1937 <a href="https://apostar.com.ec/ir/betwinnerbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en BetWinner"> 1938 REGISTRARSE </a> 1939 <a href="https://apostar.com.ec/casas-de-apuestas/betwinner-ecuador-resena/" class="ranking-row__review-link" aria-label="Leer reseña de BetWinner"> 1940 Leer reseña </a> 1941 </div> 1942 1943 <div class="ranking-row__disclaimer">+18 Juega con responsabilidad. Aplican términos y condiciones.</div> 1944 </div> 1945 </div><!-- /.ranking-row-wrap --> 1946 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1947 <span class="ranking-row__border-label" style="background:#b8860b">SUPER CONFIABLE</span> 1948 <div class="ranking-row"> 1949 1950 <!-- Col 1: Rank + Logo --> 1951 <div class="ranking-row__col ranking-row__col--logo"> 1952 <span class="ranking-row__rank">#6</span> 1953 <div class="ranking-row__logo"> 1954 <a href="https://apostar.com.ec/casas-de-apuestas/betsson/" aria-label="Betsson"> 1955 <img width="120" height="32" src="https://apostar.com.ec/wp-content/uploads/2025/06/Betsson.svg" class="attachment-guru-card size-guru-card
1955wp-post-image" alt="Betsson" loading="lazy" /> </a> 1956 </div> 1957 </div> 1958 1959 <!-- Col 2: Rating + Pros + Tags --> 1960 <div class="ranking-row__col ranking-row__col--pros"> 1961 <ul class="ranking-row__pros"> 1962 <li>Amplia variedad de ofertas de Apuestas Deportivas</li> 1963 <li>Plataforma moderna, intuitiva y fácil de usar</li> 1964 <li>Cuotas competitivas que en muchos eventos superan a la competencia local</li> 1965 </ul> 1966 </div> 1967 1968 <!-- Col 3: Métodos de Pago --> 1969 <div class="ranking-row__col ranking-row__col--medios"> 1970 <div class="ranking-row__medios"> 1971 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 1972 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 1973 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Paysafecard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Paysafecard" loading="lazy" /></span> 1974 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 1975 <span class="ranking-row__medio-more">+2</span> 1976 </div> 1977 </div> 1978 1979 <!-- Col 4: Bono --> 1980 <div class="ranking-row__col ranking-row__col--bono"> 1981 <span class="ranking-row__bono-label">Bono hasta</span> 1982 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">50</span></span> 1983 </div> 1984 1985 <!-- Col 4: REGISTRARSE + Leer reseña --> 1986 <div class="ranking-row__col ranking-row__col--cta"> 1987 <a href="https://apostar.com.ec/ir/betssonbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Betsson"> 1988 REGISTRARSE </a> 1989 <a href="https://apostar.com.ec/casas-de-apuestas/betsson/" class="ranking-row__review-link" aria-label="Leer reseña de Betsson"> 1990 Leer reseña </a> 1991 </div> 1992 1993 <div class="ranking-row__disclaimer">+18 Juega con responsabilidad. Aplican términos y condiciones.</div> 1994 </div> 1995 </div><!-- /.ranking-row-wrap --> 1996 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 1997 <span class="ranking-row__border-label" style="background:#b8860b">SUPER CONFIABLE</span> 1998 <div class="ranking-row"> 1999 2000 <!-- Col 1: Rank + Logo --> 2001 <div class="ranking-row__col ranking-row__col--logo"> 2002 <span class="ranking-row__rank">#7</span> 2003 <div class="ranking-row__logo"> 2004 <a href="https://apostar.com.ec/casas-de-apuestas/megapari/" aria-label="Megapari"> 2005 <img width="340" height="38" src="https://apostar.com.ec/wp-content/uploads/2025/05/Megapari.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Megapari" loading="lazy" /> </a> 2006 </div> 2007 </div> 2008 2009 <!-- Col 2: Rating + Pros + Tags --> 2010 <div class="ranking-row__col ranking-row__col--pros"> 2011 <ul class="ranking-row__pros"> 2012 <li>Retiros súper rápidos y gratuitos</li> 2013 <li>Mesas de juego con crupier en vivo</li> 2014 <li>Alta variedad de deportes</li> 2015 </ul> 2016 </div> 2017 2018 <!-- Col 3: Métodos de Pago --> 2019 <div class="ranking-row__col ranking-row__col--medios"> 2020 <div class="ranking-row__medios"> 2021 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2022 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 2023 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2024 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Transferencia-Bancaria.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Transferencia bancaria en Ecuador" loading="lazy" /></span> 2025 <span class="ranking-row__medio-more">+1</span> 2026 </div> 2027 </div> 2028
2029 <!-- Col 4: Bono --> 2030 <div class="ranking-row__col ranking-row__col--bono"> 2031 <span class="ranking-row__bono-label">Bono hasta</span> 2032 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">320</span></span> 2033 </div> 2034 2035 <!-- Col 4: REGISTRARSE + Leer reseña --> 2036 <div class="ranking-row__col ranking-row__col--cta"> 2037 <a href="https://apostar.com.ec/ir/megapariranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Megapari"> 2038 REGISTRARSE </a> 2039 <a href="https://apostar.com.ec/casas-de-apuestas/megapari/" class="ranking-row__review-link" aria-label="Leer reseña de Megapari"> 2040 Leer reseña </a> 2041 </div> 2042 2043 </div> 2044 </div><!-- /.ranking-row-wrap --> 2045 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2046 <span class="ranking-row__border-label" style="background:#e86c51">¡MUY RECOMENDADA!</span> 2047 <div class="ranking-row"> 2048 2049 <!-- Col 1: Rank + Logo --> 2050 <div class="ranking-row__col ranking-row__col--logo"> 2051 <span class="ranking-row__rank">#8</span> 2052 <div class="ranking-row__logo"> 2053 <a href="https://apostar.com.ec/casas-de-apuestas/spinbookie/" aria-label="Spinbookie"> 2054 <img width="400" height="250" src="https://apostar.com.ec/wp-content/uploads/2023/05/SpinBookie.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Spinbookie" loading="lazy" /> </a> 2055 </div> 2056 </div> 2057 2058 <!-- Col 2: Rating + Pros + Tags --> 2059 <div class="ranking-row__col ranking-row__col--pros"> 2060 <ul class="ranking-row__pros"> 2061 <li>Bono de $100</li> 2062 <li>Casino online con +3000 juegos</li> 2063 <li>+60 deportes para apostar</li> 2064 </ul> 2065 </div> 2066 2067 <!-- Col 3: Métodos de Pago --> 2068 <div class="ranking-row__col ranking-row__col--medios"> 2069 </div> 2070 2071 <!-- Col 4: Bono --> 2072 <div class="ranking-row__col ranking-row__col--bono"> 2073 <span class="ranking-row__bono-label">Bono hasta</span> 2074 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">100</span></span> 2075 </div> 2076 2077 <!-- Col 4: REGISTRARSE + Leer reseña --> 2078 <div class="ranking-row__col ranking-row__col--cta"> 2079 <a href="https://apostar.com.ec/ir/spinbookiebh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Spinbookie"> 2080 REGISTRARSE </a> 2081 <a href="https://apostar.com.ec/casas-de-apuestas/spinbookie/" class="ranking-row__review-link" aria-label="Leer reseña de Spinbookie"> 2082 Leer reseña </a> 2083 </div> 2084 2085 </div> 2086 </div><!-- /.ranking-row-wrap --> 2087 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2088 <span class="ranking-row__border-label" style="background:#ff4800">100% CONFIABLE</span> 2089 <div class="ranking-row"> 2090 2091 <!-- Col 1: Rank + Logo --> 2092 <div class="ranking-row__col ranking-row__col--logo"> 2093 <span class="ranking-row__rank">#9</span> 2094 <div class="ranking-row__logo"> 2095 <a href="https://apostar.com.ec/casas-de-apuestas/xlbet/" aria-label="XLBet"> 2096 <img width="400" height="114" src="https://apostar.com.ec/wp-content/uploads/2023/04/XLBet.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="XLBet" loading="lazy" /> </a> 2097 </div> 2098 </div> 2099 2100 <!-- Col 2: Rating + Pros + Tags --> 2101 <div class="ranking-row__col ranking-row__col--pros"> 2102 <ul class="ranking-row__pros"> 2103 <li>Tiene programa VIP</li> 2104 <li>Tragamonedas variadas</li> 2105 <li>Atención al cliente disponible 24/7</li> 2106 </ul> 2107 </div> 2108 2109 <!-- Col 3: Métodos de Pago --> 2110 <div class="ranking-row__col ranking-row__col--medios"> 2111 <div class="ranking-row__medios"> 2112 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2113 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2114 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 2115 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 2116 <span class="ranking-row__medio-more">+1</span> 2117 </div> 2118 </div> 2119
2120 <!-- Col 4: Bono --> 2121 <div class="ranking-row__col ranking-row__col--bono"> 2122 <span class="ranking-row__bono-label">Bono hasta</span> 2123 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">20</span></span> 2124 </div> 2125 2126 <!-- Col 4: REGISTRARSE + Leer reseña --> 2127 <div class="ranking-row__col ranking-row__col--cta"> 2128 <a href="https://apostar.com.ec/ir/xlbetbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en XLBet"> 2129 REGISTRARSE </a> 2130 <a href="https://apostar.com.ec/casas-de-apuestas/xlbet/" class="ranking-row__review-link" aria-label="Leer reseña de XLBet"> 2131 Leer reseña </a> 2132 </div> 2133 2134 </div> 2135 </div><!-- /.ranking-row-wrap --> 2136 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2137 <span class="ranking-row__border-label" style="background:#d4b273">¡CASA DESTACADA!</span> 2138 <div class="ranking-row"> 2139 2140 <!-- Col 1: Rank + Logo --> 2141 <div class="ranking-row__col ranking-row__col--logo"> 2142 <span class="ranking-row__rank">#10</span> 2143 <div class="ranking-row__logo"> 2144 <a href="https://apostar.com.ec/casas-de-apuestas/1xslots/" aria-label="1xslots"> 2145 <img width="400" height="63" src="https://apostar.com.ec/wp-content/uploads/2023/08/1XSlots-1.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="1xslots" loading="lazy" /> </a> 2146 </div> 2147 </div> 2148 2149 <!-- Col 2: Rating + Pros + Tags --> 2150 <div class="ranking-row__col ranking-row__col--pros"> 2151 <ul class="ranking-row__pros"> 2152 <li>Bono $2,700 + 150 giros gratis</li> 2153 <li>Más de 3250 juegos con RTP 96.12%</li> 2154 <li>Proveedores top: MGA, High Games, Pragmatic, Spinomenal</li> 2155 </ul> 2156 </div> 2157 2158 <!-- Col 3: Métodos de Pago --> 2159 <div class="ranking-row__col ranking-row__col--medios"> 2160 <div class="ranking-row__medios"> 2161 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2162 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 2163 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Maestro.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Maestro" loading="lazy" /></span> 2164 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2165 <span class="ranking-row__medio-more">+4</span> 2166 </div> 2167 </div> 2168 2169 <!-- Col 4: Bono --> 2170 <div class="ranking-row__col ranking-row__col--bono"> 2171 <span class="ranking-row__bono-label">Bono hasta</span> 2172 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">300</span></span> 2173 </div> 2174 2175 <!-- Col 4: REGISTRARSE + Leer reseña --> 2176 <div class="ranking-row__col ranking-row__col--cta"> 2177 <a href="https://apostar.com.ec/ir/1xslotsbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en 1xslots"> 2178 REGISTRARSE </a> 2179 <a href="https://apostar.com.ec/casas-de-apuestas/1xslots/" class="ranking-row__review-link" aria-label="Leer reseña de 1xslots"> 2180 Leer reseña </a> 2181 </div> 2182 2183 </div>
2184 </div><!-- /.ranking-row-wrap --> 2185 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2186 <span class="ranking-row__border-label" style="background:#005c97">¡MUY RECOMENDADA!</span> 2187 <div class="ranking-row"> 2188 2189 <!-- Col 1: Rank + Logo --> 2190 <div class="ranking-row__col ranking-row__col--logo"> 2191 <span class="ranking-row__rank">#11</span> 2192 <div class="ranking-row__logo"> 2193 <a href="https://apostar.com.ec/casas-de-apuestas/betcris/" aria-label="Betcris"> 2194 <img width="148" height="33" src="https://apostar.com.ec/wp-content/uploads/2022/09/Betcris-1-azul.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Betcris" loading="lazy" /> </a> 2195 </div> 2196 </div> 2197 2198 <!-- Col 2: Rating + Pros + Tags --> 2199 <div class="ranking-row__col ranking-row__col--pros"> 2200 <ul class="ranking-row__pros"> 2201 <li>Mercados pensados para clientes ecuatorianos</li> 2202 <li>Posee apuestas en vivo</li> 2203 <li>App móvil para iOS y Android</li> 2204 </ul> 2205 </div> 2206 2207 <!-- Col 3: Métodos de Pago --> 2208 <div class="ranking-row__col ranking-row__col--medios"> 2209 <div class="ranking-row__medios"> 2210 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2211 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2212 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 2213 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Paysafecard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Paysafecard" loading="lazy" /></span> 2214 <span class="ranking-row__medio-more">+1</span> 2215 </div> 2216 </div> 2217 2218 <!-- Col 4: Bono --> 2219 <div class="ranking-row__col ranking-row__col--bono"> 2220 <span class="ranking-row__bono-label">Bono hasta</span> 2221 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">100</span></span> 2222 </div> 2223 2224 <!-- Col 4: REGISTRARSE + Leer reseña --> 2225 <div class="ranking-row__col ranking-row__col--cta"> 2226 <a href="https://apostar.com.ec/ir/betcrisbh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Betcris"> 2227 REGISTRARSE </a> 2228 <a href="https://apostar.com.ec/casas-de-apuestas/betcris/" class="ranking-row__review-link" aria-label="Leer reseña de Betcris"> 2229 Leer reseña </a> 2230 </div> 2231 2232 </div> 2233 </div><!-- /.ranking-row-wrap --> 2234 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2235 <span class="ranking-row__border-label" style="background:#00a826">¡TOP EN EL MUNDO!</span> 2236 <div class="ranking-row"> 2237 2238 <!-- Col 1: Rank + Logo --> 2239 <div class="ranking-row__col ranking-row__col--logo"> 2240 <span class="ranking-row__rank">#12</span> 2241 <div class="ranking-row__logo"> 2242 <a href="https://apostar.com.ec/casas-de-apuestas/betway/" aria-label="Betway"> 2243 <img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/09/betway.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Betway" loading="lazy" /> </a> 2244 </div> 2245 </div> 2246 2247 <!-- Col 2: Rating + Pros + Tags --> 2248 <div class="ranking-row__col ranking-row__col--pros"> 2249 <ul class="ranking-row__pros"> 2250 <li>Excelentes cuotas en apuestas deportivas</li> 2251 <li>Múltiples permisos para operar</li> 2252 <li>Gran variedad de apuestas deportivas</li> 2253 </ul> 2254 </div> 2255 2256 <!-- Col 3: Métodos de Pago --> 2257 <div class="ranking-row__col ranking-row__col--medios"> 2258 <div class="ranking-row__medios"> 2259 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2260 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2261 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 2262 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/PayPal.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="PayPal" loading="lazy" /></span> 2263 <span class="ranking-row__medio-more">+3</span> 2264 </div> 2265 </div> 2266
2267 <!-- Col 4: Bono --> 2268 <div class="ranking-row__col ranking-row__col--bono"> 2269 <span class="ranking-row__bono-label">Bono hasta</span> 2270 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">60</span></span> 2271 </div> 2272 2273 <!-- Col 4: REGISTRARSE + Leer reseña --> 2274 <div class="ranking-row__col ranking-row__col--cta"> 2275 <a href="https://apostar.com.ec/ir/betwaybh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Betway"> 2276 REGISTRARSE </a> 2277 <a href="https://apostar.com.ec/casas-de-apuestas/betway/" class="ranking-row__review-link" aria-label="Leer reseña de Betway"> 2278 Leer reseña </a> 2279 </div> 2280 2281 </div> 2282 </div><!-- /.ranking-row-wrap --> 2283 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2284 <span class="ranking-row__border-label" style="background:#fcdc02">¡Somos Ecuador!</span> 2285 <div class="ranking-row"> 2286 2287 <!-- Col 1: Rank + Logo --> 2288 <div class="ranking-row__col ranking-row__col--logo"> 2289 <span class="ranking-row__rank">
2289#13</span> 2290 <div class="ranking-row__logo"> 2291 <a href="https://apostar.com.ec/casas-de-apuestas/ecuabet/" aria-label="Ecuabet"> 2292 <img width="400" height="97" src="https://apostar.com.ec/wp-content/uploads/2023/05/Ecuabet.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Ecuabet" loading="lazy" /> </a> 2293 </div> 2294 </div> 2295 2296 <!-- Col 2: Rating + Pros + Tags --> 2297 <div class="ranking-row__col ranking-row__col--pros"> 2298 <ul class="ranking-row__pros"> 2299 <li>Gran variedad de promociones</li> 2300 <li>Posee apuestas en vivo</li> 2301 <li>Amplia variedad de juegos de casino</li> 2302 </ul> 2303 </div> 2304 2305 <!-- Col 3: Métodos de Pago --> 2306 <div class="ranking-row__col ranking-row__col--medios"> 2307 <div class="ranking-row__medios"> 2308 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Maestro.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Maestro" loading="lazy" /></span> 2309 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2310 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 2311 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/PayPal.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="PayPal" loading="lazy" /></span> 2312 <span class="ranking-row__medio-more">+3</span> 2313 </div> 2314 </div> 2315 2316 <!-- Col 4: Bono --> 2317 <div class="ranking-row__col ranking-row__col--bono"> 2318 <span class="ranking-row__bono-label">Bono hasta</span> 2319 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">500</span></span> 2320 </div> 2321 2322 <!-- Col 4: REGISTRARSE + Leer reseña --> 2323 <div class="ranking-row__col ranking-row__col--cta"> 2324 <a href="#" role="button" data-guru-nolink="1" class="btn ranking-row__register-btn" aria-label="Registrarse en Ecuabet"> 2325 REGISTRARSE </a> 2326 <a href="https://apostar.com.ec/casas-de-apuestas/ecuabet/" class="ranking-row__review-link" aria-label="Leer reseña de Ecuabet"> 2327 Leer reseña </a> 2328 </div> 2329 2330 <div class="ranking-row__disclaimer">+18 Juega con responsabilidad. Aplican términos y condiciones.</div> 2331 </div> 2332 </div><!-- /.ranking-row-wrap --> 2333 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2334 <span class="ranking-row__border-label" style="background:#00858f">SUPER CONFIABLE</span> 2335 <div class="ranking-row"> 2336 2337 <!-- Col 1: Rank + Logo --> 2338 <div class="ranking-row__col ranking-row__col--logo"> 2339 <span class="ranking-row__rank">#14</span> 2340 <div class="ranking-row__logo"> 2341 <a href="https://apostar.com.ec/casas-de-apuestas/coolbet/" aria-label="Coolbet"> 2342 <img width="400" height="48" src="https://apostar.com.ec/wp-content/uploads/2023/01/Coolbet.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Coolbet" loading="lazy" /> </a> 2343 </div> 2344 </div> 2345 2346 <!-- Col 2: Rating + Pros + Tags --> 2347 <div class="ranking-row__col ranking-row__col--pros"> 2348 <ul class="ranking-row__pros"> 2349 <li>ATENCION: No disponible</li> 2350 <li>Añade bono y promociones con frecuencia</li> 2351 <li>Amplia variedad en disciplinas deportivas</li> 2352 </ul> 2353 </div> 2354 2355 <!-- Col 3: Métodos de Pago --> 2356 <div class="ranking-row__col ranking-row__col--medios"> 2357 <div class="ranking-row__medios"> 2358 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Astropay.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Astropay" loading="lazy" /></span> 2359 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2360 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Neteller.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Neteller" loading="lazy" /></span> 2361 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 2362 <span class="ranking-row__medio-more">+2</span> 2363 </div> 2364 </div> 2365
2366 <!-- Col 4: Bono --> 2367 <div class="ranking-row__col ranking-row__col--bono"> 2368 <span class="ranking-row__bono-label">Bono hasta</span> 2369 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">100</span></span> 2370 </div> 2371 2372 <!-- Col 4: REGISTRARSE + Leer reseña --> 2373 <div class="ranking-row__col ranking-row__col--cta"> 2374 <a href="#" role="button" data-guru-nolink="1" class="btn ranking-row__register-btn" aria-label="Registrarse en Coolbet"> 2375 REGISTRARSE </a> 2376 <a href="https://apostar.com.ec/casas-de-apuestas/coolbet/" class="ranking-row__review-link" aria-label="Leer reseña de Coolbet"> 2377 Leer reseña </a> 2378 </div> 2379 2380 </div> 2381 </div><!-- /.ranking-row-wrap --> 2382 <div class="ranking-row-wrap ranking-row-wrap--labeled"> 2383 <span class="ranking-row__border-label" style="background:#b8860b">¡CASA MUY DESTACADA!</span> 2384 <div class="ranking-row"> 2385 2386 <!-- Col 1: Rank + Logo --> 2387 <div class="ranking-row__col ranking-row__col--logo"> 2388 <span class="ranking-row__rank">#15</span> 2389 <div class="ranking-row__logo"> 2390 <a href="https://apostar.com.ec/casas-de-apuestas/starda/" aria-label="Starda"> 2391 <img width="140" height="44" src="https://apostar.com.ec/wp-content/uploads/2024/10/Starda.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Starda" loading="lazy" /> </a> 2392 </div> 2393 </div> 2394 2395 <!-- Col 2: Rating + Pros + Tags --> 2396 <div class="ranking-row__col ranking-row__col--pros"> 2397 <ul class="ranking-row__pros"> 2398 <li>Bono del 150% Hasta $100</li> 2399 <li>Acepta Banco Pichincha y Guayaquil</li> 2400 <li>+5000 juegos de casino</li> 2401 </ul> 2402 </div> 2403 2404 <!-- Col 3: Métodos de Pago --> 2405 <div class="ranking-row__col ranking-row__col--medios"> 2406 <div class="ranking-row__medios"> 2407 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Criptomonedas.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Criptomonedas" loading="lazy" /></span> 2408 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/MasterCard.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Mastercard" loading="lazy" /></span> 2409 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Skrill.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Skrill" loading="lazy" /></span> 2410 <span class="ranking-row__medio-img"><img width="32" height="32" src="https://apostar.com.ec/wp-content/uploads/2022/06/Transferencia-Bancaria.svg" class="attachment-50x32 size-50x32 wp-post-image" alt="Transferencia bancaria en Ecuador" loading="lazy" /></span> 2411 <span class="ranking-row__medio-more">+1</span> 2412 </div> 2413 </div> 2414 2415 <!-- Col 4: Bono --> 2416 <div class="ranking-row__col ranking-row__col--bono"> 2417 <span class="ranking-row__bono-label">Bono hasta</span> 2418 <span class="ranking-row__bono-value"><span class="bono-currency ranking-row__bono-currency">$</span><span class="bono-amount ranking-row__bono-amount">300</span></span> 2419 </div> 2420 2421 <!-- Col 4: REGISTRARSE + Leer reseña --> 2422 <div class="ranking-row__col ranking-row__col--cta"> 2423 <a href="https://apostar.com.ec/ir/stardabh" target="_blank" rel="noopener noreferrer nofollow" class="btn ranking-row__register-btn" aria-label="Registrarse en Starda"> 2424 REGISTRARSE </a> 2425 <a href="https://apostar.com.ec/casas-de-apuestas/starda/" class="ranking-row__review-link" aria-label="Leer reseña de Starda"> 2426 Leer reseña </a> 2427 </div> 2428 2429 <div class="ranking-row__disclaimer">+18 Juega con responsabilidad. Aplican términos y condiciones.</
2429div> 2430 </div> 2431 </div><!-- /.ranking-row-wrap --> 2432 </div> 2433 </div> 2434 </section> 2435 2436 <div class="container"> 2437 <div class="content-with-toc content-with-toc--archive"> 2438 <div class="archive-main" id="entry-content"> 2439 <div class="archive-intro entry-content"> 2440 <section class="hero"> 2441<h1>Análisis de las mejores casas de apuestas 100% legales en Ecuador</h1> 2442</section> 2443 2444<div class="page-wrap"> 2445<article class="article-body"><!-- INTRO --></p> 2446<p class="lead fade-up">Si estás buscando las mejores <strong>casas de apuestas en Ecuador</strong>, llegaste al lugar indicado. El mercado de apuestas deportivas online creció de forma notable en los últimos años en el paÃs, y hoy los ecuatorianos tienen acceso a plataformas de primer nivel, 100% legales, que permiten apostar desde el celular o la computadora en cualquier momento del dÃa.</p> 2447<p class="fade-up">En este sitio, un equipo de expertos en apuestas deportivas analizó en profundidad cada plataforma antes de recomendarla: revisamos licencias, evaluamos cuotas, probamos los métodos de pago locales, medimos los tiempos de retiro y pusimos a prueba el servicio al cliente. El resultado de ese trabajo es la guÃa que estás leyendo ahora. Encontrarás las <strong>casas de apuestas deportivas</strong> que realmente vale la pena considerar en Ecuador, los criterios que usamos para elegirlas y todo lo que necesitás saber antes de registrarte en una plataforma.</p> 2448<p class="fade-up">Seguà leyendo y tomá la mejor decisión con información real, actualizada y verificada por quienes conocen el mundo de las apuestas online desde adentro.</p> 2449<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-3.webp 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-3-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img fetchpriority="high" decoding="async" class="aligncenter wp-image-15434 size-full" src="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-3.jpg" alt="" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-3.jpg 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-3-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p> 2450 2451<p class="fade-up">Una casa de apuestas online es una plataforma digital que permite a los usuarios realizar predicciones sobre el resultado de eventos deportivos y ganar dinero en caso de acertar. El funcionamiento básico es sencillo: te registrás en el sitio, realizás un depósito mediante alguno de los métodos de pago disponibles, elegÃs el evento y el mercado que querés apostar, y si tu predicción es correcta, el dinero llega a tu cuenta en minutos o en pocas horas.</p> 2452<p class="fade-up">Lo que hace interesante al modelo de las <strong>casas de apuestas online</strong> es que operan las 24 horas del dÃa, los 7 dÃas de la semana, desde cualquier dispositivo con conexión a internet. En Ecuador, este modelo creció impulsado principalmente por el fútbol: la Liga Pro, la Copa Libertadores y los partidos de la selección ecuatoriana generan un volumen importante de apuestas cada semana. Pero la oferta no se limita al fútbol: tenis, básquetbol, béisbol, MMA, esports y decenas de deportes adicionales forman parte del catálogo de las principales <strong>casas de apuestas deportivas en Ecuador</strong>.</p> 2453<p class="fade-up">El proceso completo âdesde el registro hasta el cobro de gananciasâ puede realizarse Ãntegramente desde el celular, lo que explica por qué las casas de apuestas online en Ecuador han ganado tanta popularidad en comparación con las agencias fÃsicas tradicionales.</p> 2454<h2 class="fade-up">¿Son legales las casas de apuestas en Ecuador?</h2> 2455<p class="fade-up">SÃ: apostar en <strong>casas de apuestas en Ecuador</strong> es completamente legal, siempre que se elija una plataforma autorizada que opere dentro del marco regulatorio vigente. Esta distinción es fundamental, porque en internet conviven operadores legÃtimos con sitios sin ningún tipo de control que pueden poner en riesgo el dinero y los datos personales del usuario.</p> 2456<h3 class="fade-up">
2456El marco regulatorio ecuatoriano</h3> 2457<p class="fade-up">En Ecuador, la actividad de las apuestas y los juegos de azar está regulada por el Estado, que establece las condiciones bajo las cuales un operador puede ofrecer sus servicios en el paÃs. Las plataformas que cumplen con los requisitos legales obtienen una autorización para operar, lo que implica comprometerse con normas de juego responsable, transparencia en el manejo de fondos, protección de los datos del usuario y mecanismos de atención al cliente efectivos.</p> 2458<p class="fade-up">La regulación ecuatoriana ha ido evolucionando para acompañar el crecimiento del mercado digital. Hoy existe un esquema más claro para distinguir qué operadores actúan dentro de la ley y cuáles no, y los usuarios tienen más herramientas para verificarlo antes de registrarse en una plataforma.</p> 2459<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-4.webp 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-4-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img decoding="async" class="aligncenter wp-image-15435 size-full" src="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-4.jpg" alt="casas de apuestas ecuador 4" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-4.jpg 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-4-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p> 2460<h3 class="fade-up">Por qué solo debés apostar en plataformas con licencia</h3> 2461<p class="fade-up">Apostar en un sitio sin licencia puede parecer inofensivo, pero los riesgos son reales y concretos. El más grave es la imposibilidad de cobrar las ganancias: un operador no regulado no tiene ninguna obligación legal de pagar, y si decide no hacerlo, el usuario no tiene a dónde recurrir. A eso se suma la exposición de datos personales y bancarios en entornos sin protocolos de seguridad adecuados, la ausencia de atención al cliente real y la falta de cualquier mecanismo de resolución de disputas.</p> 2462<p class="fade-up">Todas las plataformas que recomendamos en este sitio fueron verificadas por nuestro equipo. Solo aparecen aquà las <strong>casas de apuestas online Ecuador</strong> que operan dentro del marco legal, ofrecen garantÃas reales al usuario y tienen un historial de pagos comprobable.</p> 2463<h2 class="fade-up">¿Cómo saber si una casa de apuestas es legal en Ecuador?</h2> 2464<p class="fade-up">Esta es una de las preguntas más frecuentes entre quienes están dando sus primeros pasos en el mundo de las apuestas deportivas. La buena noticia es que hay señales concretas y verificables que cualquier usuario puede revisar antes de registrarse:</p> 2465<div class="signals-grid fade-up"> 2466<div class="signal-card"> 2467<div> 2468<p><strong>Licencia visible en el sitio: </strong>Un operador legal muestra el número y el organismo emisor de su licencia, generalmente en el pie de página. Si esa información no existe o es difÃcil de encontrar, es una señal de alerta.</p> 2469</div> 2470</div> 2471<div class="signal-card"> 2472<div> 2473<p><strong>PolÃtica de KYC activa: </strong>Las plataformas reguladas verifican la identidad del usuario antes de procesar retiros. Este proceso es una garantÃa de que tus fondos están protegidos, no un obstáculo.</p> 2474</div> 2475</div> 2476<div class="signal-card"> 2477<div> 2478<p><strong>Términos y condiciones claros: </strong>Las casas legales tienen T&C completos en español, sin cláusulas ambiguas ni letra chica que oculte condiciones desfavorables para el usuario.</p> 2479</div> 2480</div> 2481<div class="signal-card"> 2482<div> 2483<p><strong>Métodos de pago reconocidos: </strong>Los operadores legales trabajan con bancos y procesadores de pago regulados. Si solo acepta métodos anónimos o desconocidos, investigá antes de depositar.</p> 2484</div> 2485</div> 2486<div class="signal-card"> 2487<div> 2488<p><strong>Sección de juego responsable: </strong>Un operador con licencia está legalmente obligado a ofrecer herramientas de autoexclusión, lÃmites de depósito y acceso a recursos de ayuda.</p> 2489</div> 2490</div> 2491<div class="signal-card"> 2492<div> 2493<p><strong>Presencia verificable en medios: </strong>Las casas legales aparecen en sitios especializados, tienen reseñas reales y un servicio al cliente funcional. La ausencia total de información externa es una señal de desconfianza.</p> 2494</div> 2495</div> 2496</div> 2497<p class="fade-up">Todas las <strong>casas de apuestas deportivas en Ecuador</strong> que recomendamos en este sitio fueron revisadas punto por punto con estos criterios. Si una plataforma no los cumplÃa, simplemente no aparece en nuestra selección.</p> 2498<h2 class="fade-up">¿Cómo encontrar la mejor casa de apuestas en Ecuador?</h2> 2499<p class="fade-up">
2499Con tantas opciones disponibles, elegir la plataforma adecuada puede resultar abrumador. Por eso nuestro equipo editorial desarrolló un proceso de análisis sistemático que va mucho más allá de leer la página de inicio de cada operador. Registrarse, depositar, apostar, intentar retirar y contactar al soporte son pasos que hacemos nosotros antes de publicar cualquier recomendación.</p> 2500<h3 class="fade-up">Los criterios que nuestros expertos analizaron en profundidad</h3> 2501<p class="fade-up">El primer criterio ây el más importanteâ es la licencia y legalidad en Ecuador. Sin ese punto cubierto, ningún análisis adicional tiene sentido. Solo evaluamos plataformas que operan dentro del marco legal y que podemos recomendar con responsabilidad.</p> 2502<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-5.webp 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-5-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img decoding="async" class="aligncenter wp-image-15472 size-full" src="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-5.jpg" alt="casas de apuestas ecuador 5" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-5.jpg 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-5-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p> 2503<ul> 2504<li class="fade-up">Solo plataformas con operación legal verificada en Ecuador. Es el filtro inicial e innegociable.</li> 2505<li class="fade-up">Fútbol ecuatoriano, Champions League, NBA, tenis, esports y mercados alternativos como hándicap asiático o goles en el primer tiempo.</li> 2506<li class="fade-up">Comparamos cuotas en tiempo real para identificar cuáles ofrecen más valor. Una diferencia del 10% en las cuotas impacta directamente en el retorno a largo plazo.</li> 2507<li class="fade-up">Evaluamos la calidad de las ofertas para nuevos usuarios y los requisitos de apuesta. En nuestra guÃa de bonos de bienvenida encontrás toda la comparativa actualizada.</li> 2508<li class="fade-up">Tarjetas locales, transferencias a bancos ecuatorianos, billeteras digitales y efectivo. Una plataforma que no acepta los métodos habituales en el paÃs complica la experiencia desde el primer dÃa.</li> 2509<li class="fade-up">Fluidez, velocidad de carga y facilidad de navegación en Android e iOS. En Ecuador, gran parte de las apuestas se hacen desde el celular.</li> 2510<li class="fade-up">Disponibilidad 24/7, soporte en español y tiempos de respuesta razonables. Lo testeamos antes de recomendar cualquier plataforma.</li> 2511<li class="fade-up">Plazos de pago, lÃmites y métodos disponibles. Este es el aspecto que más impacta en la experiencia real del usuario una vez que está operando.</li> 2512</ul> 2513<h2 class="fade-up">Las mejores casas de apuestas deportivas en Ecuador</h2> 2514<p class="fade-up">Después de aplicar todos los criterios mencionados, estas son las plataformas que nuestro equipo recomienda con mayor convicción para el apostador ecuatoriano en 2025.</p> 2515<div class="platform-card fade-up"> 2516<div class="platform-header"><strong><span class="platform-badge">Betano es la mejor para apostar en la LigaPro y selección ecuatoriana</span></strong></div> 2517<p>Es en este momento, una de las casas de apuestas más completas para el usuario latinoamericano. Tiene una cobertura muy sólida del fútbol sudamericano âincluyendo todos los partidos de la Liga Pro ecuatoriana y los clubes del paÃs en torneos internacionalesâ, cuotas competitivas y una app móvil que es de las mejor valoradas del mercado regional. El proceso de registro en <a href="https://apostar.com.ec/casas-de-apuestas/betano/">Betano</a> Ecuador es sencillo y rápido, los retiros se procesan en plazos razonables y la plataforma incluye un bono de bienvenida para nuevos usuarios ecuatorianos. A eso se suma una sección de apuestas en vivo bien desarrollada, con actualización de cuotas en tiempo real durante los partidos.</p> 2518</div> 2519<div class="platform-card fade-up"> 2520<div class="platform-header"><strong><span class="platform-badge">
2520Bet365 es la que más jugadores tiene en el mundo</span></strong></div> 2521<p>Probablemente el nombre más reconocido a nivel mundial dentro de las casas de apuestas online, y esa reputación tiene base: lleva más de dos décadas en el mercado, cuenta con uno de los catálogos de deportes más amplios disponibles âcon más de 30 disciplinas y miles de mercados por eventoâ, y es la referencia indiscutida en apuestas en vivo gracias a su servicio de streaming en directo que permite ver partidos desde la propia plataforma. Está disponible para usuarios ecuatorianos y acepta los métodos de pago habituales en el paÃs, lo que la hace completamente accesible para quien quiera apostar con la tranquilidad de usar uno de los operadores más establecidos del mundo.</p> 2522</div> 2523<div class="platform-card fade-up"> 2524<div class="platform-header"><strong><span class="platform-badge">Latribet fue creada para público ecuatoriano</span></strong></div> 2525<p>Latribet es la opción que más se destaca por su adaptación especÃfica al mercado ecuatoriano. Desde los métodos de pago âque incluyen opciones locales muy utilizadas en el paÃsâ hasta la atención al cliente en español con soporte ágil, Latribet construyó una propuesta orientada al apostador de Ecuador. El registro es rápido, la navegación es intuitiva tanto en escritorio como en móvil, y la cobertura de fútbol local es especialmente detallada. Para alguien que está comenzando a apostar online en Ecuador, es una de las primeras opciones a considerar por la facilidad que ofrece en todo el flujo de uso.</p> 2526</div> 2527<div class="platform-card fade-up"> 2528<div class="platform-header"><strong><span class="platform-badge">1xbet es la que ofrece mayor variedad de mercados en apuestas deportivas</span></strong></div> 2529<p>1xbet se distingue por la amplitud casi inabarcable de su catálogo: cubre deportes convencionales con una profundidad de mercados enorme, pero también esports, deportes virtuales, polÃtica y entretenimiento, lo que la convierte en la favorita de apostadores que buscan mercados alternativos o que quieren apostar en disciplinas menos habituales. Tiene versión completa en español, acepta métodos de pago accesibles para el usuario ecuatoriano âincluidas criptomonedas para quienes las prefierenâ y una app bien optimizada para Android. Es una plataforma que requiere un poco más de familiarización al principio, pero una vez que se conoce la interfaz, ofrece una profundidad difÃcil de igualar.</p> 2530</div> 2531<div class="note-box fade-up"><strong>Otras opciones en el mercado ecuatoriano.</strong> El mercado de casas de apuestas en Ecuador también se ha enriquecido con el ingreso de operadores que provienen principalmente del segmento de casino online. Plataformas como <strong>Sol Casino</strong>, <strong>Starda</strong> y <strong>Spin Casino</strong>, aunque más conocidas por sus tragamonedas y juegos de mesa en vivo, han incorporado secciones de apuestas deportivas que están ganando usuarios entre quienes buscan tener todo en un mismo sitio. Otras opciones como <strong>Betway</strong>, <strong>Ecuabet</strong> y <strong>Solbet Ecuador</strong> también tienen presencia en el mercado local y son nombres que aparecen con frecuencia entre la comunidad de apostadores ecuatorianos.</div> 2532<h2 class="fade-up">Métodos de pago en las casas de apuestas de Ecuador</h2> 2533<p class="fade-up">Uno de los factores que más influye en la experiencia del apostador ecuatoriano es la disponibilidad de métodos de pago locales. No alcanza con que una plataforma sea buena en todo lo demás: si depositar o retirar se convierte en un proceso complicado o costoso, la experiencia se deteriora rápidamente.</p> 2534<div class="payment-grid fade-up"> 2535<div class="payment-item"> 2536<ul> 2537<li><strong>Tarjetas Visa / Mastercard: </strong>Disponibles en todas las plataformas. Depósitos inmediatos, opción más sencilla para comenzar.</li> 2538</ul> 2539</div> 2540<div class="payment-item"> 2541<ul> 2542<li><strong>Transferencia bancaria: </strong>Banco Pichincha, Produbanco, Banco del PacÃfico. Más lenta pero preferida para montos altos.</li> 2543</ul> 2544</div> 2545<div class="payment-item"> 2546<ul> 2547<li><strong>Skrill / Neteller: </strong>Billeteras digitales que actúan como intermediarias. Mayor privacidad y control sobre los fondos.</li> 2548</ul> 2549</div> 2550<div class="payment-item"> 2551<ul> 2552<li><strong>Efectivo / Puntos de pago: </strong>Depósitos en efectivo sin cuenta bancaria ni tarjeta. Disponible en plataformas seleccionad
2552as.</li> 2553</ul> 2554</div> 2555<div class="payment-item"> 2556<ul> 2557<li><strong>Criptomonedas: </strong>Bitcoin, Ethereum y más, principalmente en 1xbet. Velocidad y privacidad para usuarios avanzados.</li> 2558</ul> 2559<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-6.webp 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-6-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img decoding="async" class="aligncenter wp-image-15474 size-full" src="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-6.jpg" alt="casas de apuestas ecuador 6" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-6.jpg 672w, https://apostar.com.ec/wp-content/uploads/2026/05/casas-de-apuestas-ecuador-6-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p> 2560</div> 2561</div> 2562<p class="fade-up">En términos de adaptación al mercado local, <strong>Latribet y Betano</strong> son las plataformas que mayor cobertura ofrecen de los métodos más utilizados en Ecuador, lo que las convierte en las opciones más convenientes para el apostador que valora la facilidad operativa desde el primer dÃa.</p> 2563<h2 class="fade-up">¿Cuáles son las mejores casas de apuestas deportivas para apostar en vivo?</h2> 2564<p class="fade-up">Las apuestas en vivo âtambién llamadas in-play o live bettingâ permiten realizar predicciones mientras el evento ya está en curso, con cuotas que se actualizan en tiempo real según lo que va sucediendo en el campo. Es una modalidad que creció exponencialmente en los últimos años y que hoy es una de las funcionalidades más valoradas por los apostadores con experiencia.</p> 2565<p class="fade-up"><strong>Bet365</strong> es, históricamente, la referencia del mercado en esta categorÃa. Su plataforma de apuestas en vivo incluye transmisión de video en streaming de miles de eventos por año âmuchos de ellos sin costo adicional para el usuario registradoâ, lo que permite ver el partido y apostar al mismo tiempo desde la misma pantalla. La actualización de cuotas es muy ágil y la cobertura de deportes en directo es difÃcilmente igualable.</p> 2566<p class="fade-up"><strong>Betano</strong> y <strong>1xbet</strong> también tienen secciones de live betting muy desarrolladas, con mercados en tiempo real para fútbol, tenis, básquetbol y varios deportes más. Ambas ofrecen visualizaciones estadÃsticas en vivo que permiten seguir el ritmo del partido incluso sin video.</p> 2567<p class="fade-up">Para sacarle el máximo partido a las apuestas en vivo, es fundamental contar con una app móvil fluida y rápida. La diferencia entre colocar una apuesta en el momento correcto y perderla por lentitud en la carga puede ser de apenas unos segundos. Por eso, la calidad de la aplicación móvil es un criterio especialmente relevante al evaluar las <strong>casas de apuestas deportivas en Ecuador</strong> para esta modalidad.</p> 2568<p>Para ganar en las apuestas deportivas en vivo, te recomendamos visitar nuestros <a href="https://apostar.com.ec/pronosticos/">pronósticos</a> de la LigaPro y la selección ecuatoriana, donde nuestros expertos analizan cada partido y te traen las mejores cuotas.</p> 2569<div class="responsible-box fade-up"> 2570<p><strong>Recuerda apostar responsablemente.</strong> Las apuestas deportivas son una forma de entretenimiento que debe disfrutarse con responsabilidad. Recomendamos establecer lÃmites de depósito y tiempo de juego antes de comenzar. Si en algún momento sentÃs que las apuestas dejan de ser un juego y se convierten en un problema, existen organizaciones de ayuda como Jugadores Anónimos Ecuador a las que podés recurrir con total confidencialidad. Apostar debe ser siempre una decisión libre, informada y dentro de tus posibilidades económicas.</p> 2571</div> 2572<h2 class="fade-up">Preguntas frecuentes sobre las casas de apuestas en Ecuador</h2> 2573<h3>¿Cuáles son las mejores casas de apuestas en Ecuador?</h3> 2574<div class="faq-answer">Según el análisis de nuestro equipo, las opciones más completas para el apostador ecuatoriano en 2025 son Betano, Bet365, Latribet y 1xbet. Cada una tiene puntos fuertes diferenciados: Betano destaca por su cobertura del fútbol regional, Bet365 por la profundidad de su oferta en vivo, Latribet por su adaptación al mercado local y 1xbet por la amplitud de su catálogo de deportes y mercados alternativos.</div> 2575<h3>¿Son legales las apuestas deportivas online en Ecuador?</h3> 2576<div class="faq-answer">SÃ. Las apuestas deportivas online están reguladas en Ecuador y es completamente legal participar en ellas a través de plataformas autorizadas. La clave está en elegir operadores que cuenten con licencia y que cumplan con los estándares de protección al usuario establecidos por la regulación vigente.</div> 2577<h3>¿Cómo puedo verificar si una casa de apuestas es legal en Ecuador?</h3> 2578<div class="faq-answer">Podés revisar varios indicadores: que la licencia esté visible en el pie de página del sitio, que la plataforma tenga polÃtica de KYC (verificación de identidad), que sus términos y condiciones estén en español y sean claros, que trabaje con métodos de pago reconocidos y que cuente con una sección de juego responsable activa. Las plataformas que recomendamos en este sitio cumplen con todos estos criterios.</div> 2579<h3>¿Puedo apostar desde el celular en Ecuador?</h3> 2580<div class="faq-answer">
2580SÃ, todas las plataformas recomendadas tienen aplicaciones móviles para Android o versiones web optimizadas para celular que funcionan perfectamente en Ecuador. Betano y Bet365 tienen apps especialmente bien valoradas por su fluidez y velocidad, lo que las hace ideales para apostar en vivo desde el teléfono.</div> 2581<h3>¿Cuánto tiempo tardan los retiros en las casas de apuestas ecuatorianas?</h3> 2582<div class="faq-answer">Los tiempos varÃan según el método de pago y la plataforma. En general, los retiros a billeteras digitales como Skrill o Neteller se procesan en 24 a 48 horas. Las transferencias bancarias pueden tardar entre 2 y 5 dÃas hábiles. Antes de registrarte, revisá la polÃtica de retiros de cada plataforma y completá el proceso de verificación de identidad para evitar demoras.</div> 2583<h3>¿Qué diferencia hay entre un bono de bienvenida y un bono sin depósito?</h3> 2584<div class="faq-answer">Un bono de bienvenida con depósito requiere que el nuevo usuario realice un primer depósito, sobre el cual la plataforma agrega un porcentaje adicional de fondos. Un bono sin depósito, en cambio, se otorga simplemente por registrarse o verificar la cuenta, sin necesidad de ingresar dinero. Este segundo tipo es menos común pero muy valorado porque permite explorar la plataforma sin arriesgar fondos propios.</div> 2585<h3>¿Cómo me registro en una casa de apuestas online en Ecuador?</h3> 2586<div class="faq-answer">El proceso es similar en todas las plataformas: ingresás al sitio, hacés clic en «Registrarse» o «Crear cuenta», completás el formulario con tus datos personales (nombre, correo, fecha de nacimiento), verificás tu cuenta a través del correo electrónico y, en algunos casos, subÃs una copia de tu cédula para completar el KYC. Una vez verificada la cuenta, podés realizar tu primer depósito y comenzar a apostar.</div> 2587<h3>¿Cuáles son las mejores casas de apuestas deportivas para apostar en fútbol ecuatoriano?</h3> 2588<div class="faq-answer">Para apostar en la Liga Pro y en los clubes ecuatorianos que participan en torneos internacionales, Latribet y Betano tienen la cobertura más detallada del mercado local. Ofrecen mercados especÃficos para los partidos de Ecuador, incluyendo opciones más allá del resultado final, como goleadores, tarjetas y hándicap.</div> 2589</article> 2590</div> </div> 2591 </div> 2592 <aside class="toc-sidebar" id="toc-sidebar" role="complementary" aria-label="Barra lateral"> 2593 2594 2595 <nav class="toc" aria-label="Tabla de contenidos"> 2596 <h2 class="toc__title">Contenido</h2> 2597 <ul class="toc__list" id="toc-list"> 2598 <!-- Generated by JS --> 2599 </ul> 2600 </nav> 2601 2602 <aside class="guru-sn" style="--sn-bg:#ffffff;--sn-text:#1a1a2e;--sn-accent:#16a34a;--sn-accent-rgb:22,163,74" aria-label="Suscripción a newsletter"> 2603 <span class="guru-sn__eyebrow"> 2604 <svg class="guru-sn__eyebrow-icon" aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"/><path d="m4 6 8 6 8-6"/></svg> 2605 Newsletter </span> 2606 <h2 class="guru-sn__title">Pronósticos deportivos gratis</h2> 2607 <p class="guru-sn__subtitle">Recibe los mejores picks y bonos de apuestas directo en tu correo.</p> 2608 <form class="guru-sn__form" data-guru-sn novalidate> 2609 <label class="guru-sn__hp" aria-hidden="true"> 2610 No completar <input type="text" name="guru_sn_website" tabindex="-1" autocomplete="off"> 2611 </label> 2612 <label class="screen-reader-text" for="guru-sn-email">Tu email</label> 2613 <input class="guru-sn__input" type="email" id="guru-sn-email" name="email" required 2614 placeholder="Tu email" 2615 autocomplete="email" inputmode="email"> 2616 <button type="submit" class="guru-sn__button">QUIERO RECIBIRLOS</button> 2617 </form> 2618 <p class="guru-sn__message" data-guru-sn-msg role="status" aria-live="polite" hidden></p> 2619 <p class="guru-sn__disclaimer">+18. Juega responsablemente. Al suscribirte aceptas recibir correos y nuestra polÃtica de privacidad.</p> 2620 </aside> <aside class="guru-sidebar-banner" aria-label="Casa destacada"> 2621 <div class="guru-sidebar-banner__header"> 2622 CASA DESTACADA </div> 2623 <div class="guru-sidebar-banner__logo"> 2624 <a href="https://apostar.com.ec/casas-de-apuestas/bet365/"><img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/06/bet365.svg" class="attachment-guru-card size-guru-card
2624wp-post-image" alt="Bet365" loading="lazy" /></a> 2625 </div> 2626 <ul class="guru-sidebar-banner__pros"> 2627 <li>Bono de $30 sin rollover</li> 2628 <li>El mejor cashout del mercado ecuatoriano</li> 2629 <li>La oferta de Casino es enorme</li> 2630 </ul> 2631 <div class="guru-sidebar-banner__bono"> 2632 <span class="guru-sidebar-banner__bono-label">Bono hasta</span> 2633 <span class="guru-sidebar-banner__bono-value"><span class="bono-currency guru-sidebar-banner__bono-currency">$</span><span class="bono-amount guru-sidebar-banner__bono-amount">30</span></span> 2634 </div> 2635 <a href="https://apostar.com.ec/ir/bet365bh" class="guru-sidebar-banner__cta" target="_blank" rel="noopener noreferrer nofollow"> 2636 REGISTRARSE </a> 2637 <a href="https://apostar.com.ec/casas-de-apuestas/bet365/" class="guru-sidebar-banner__review"> 2638 Leer reseña </a> 2639 <div class="guru-sidebar-banner__disclaimer"> 2640 +18. Juega con responsabilidad. Aplican términos y condiciones. </div> 2641 </aside> 2642 2643</aside> 2644 </div> 2645 </div> 2646 2647</main><!-- #main-content --> 2648 2649<footer id="site-footer" class="site-footer no-badges" role="contentinfo"> 2650 <div class="container"> 2651 <div class="footer-top"> 2652 <div class="footer-brand"> 2653 <a href="https://apostar.com.ec/" class="custom-logo-link" rel="home"><img width="287" height="56" src="https://apostar.com.ec/wp-content/uploads/2022/06/logo_apostar-com-ec.svg" class="custom-logo" alt="Apuestas Ecuador" decoding="async" loading="lazy" /></a> </div> 2654 <ul id="menu-apostar-com-ec-1" class="footer-menu"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14100"><a href="https://apostar.com.ec/casas-de-apuestas/">Casas de apuestas</a></li> 2655<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-13885"><a href="https://apostar.com.ec/slots/">Jugar slots</a></li> 2656<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14759"><a href="https://apostar.com.ec/casinos/">Casinos</a></li> 2657<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4200"><a href="https://apostar.com.ec/bonos/">Bonos</a></li> 2658<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-4199"><a href="https://apostar.com.ec/apuestas-deportivas/">Apuestas deportivas</a></li> 2659<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-341"><a href="https://apostar.com.ec/pronosticos/">Pronósticos</a></li> 2660<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5083"><a href="https://apostar.com.ec/contacto/">Contacto</a></li> 2661</ul> </div> 2662 2663 2664 <div class="footer-bottom"> 2665 <div class="disclaimer"> 2666 <span class="age-badge">18+</span> 2667 <p>Juega con responsabilidad. Solo para mayores de 18 años.</p> 2668 </div> 2669 <p class="copyright"> 2670 © 2026 apostar.com.ec. Todos los derechos reservados. </p> 2671 <p class="footer-sitemap"> 2672 <a href="https://apostar.com.ec/sitemap/" class="sitemap-link">Mapa del sitio</a> 2673 </p> 2674 </div> 2675 </div> 2676</footer> 2677 2678<!-- BEGIN: TAG CODE -->
2679<script src="https://tools.betforce.io/scripts/js/affbc/v.1.1/apostar.com.ec/b-base.min.js"></script>
vendor: 1 bytes, line 2679
2679
2680<script type="text/javascript"> 2681 document.addEventListener('DOMContentLoaded', () => 2682 { 2683 onComplete('banner-id-54545836',document.getElementById('banner-id-54545836').getAttribute('data-id')); 2684 }); 2685</script>
2685 2686<div data-active="N" data-id="528" id="banner-id-54545836"></div> 2687<!-- END: TAG CODE -->
2687<script type="speculationrules"> 2688{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/repo-igl-main/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 2689</script>
2689 2690
2690<script> 2691 (function(){ 2692 var ajax = 'https://apostar.com.ec/wp-admin/admin-ajax.php'; 2693 var nonce = 'fdfc2f0822'; 2694 var ua = navigator.userAgent; 2695 var device = /iPhone|iPad|iPod/i.test(ua) ? 'ios' 2696 : /Android/i.test(ua) ? 'android' 2697 : 'desktop'; 2698 function logEvent(type) { 2699 var fd = new FormData(); 2700 fd.append('action', 'igl_connector_pwa_event'); 2701 fd.append('security', nonce); 2702 fd.append('event_type', type); 2703 fd.append('device', device); 2704 fetch(ajax, { method: 'POST', body: fd, credentials: 'same-origin' }).catch(function(){}); 2705 } 2706 window.addEventListener('appinstalled', function() { logEvent('install'); }); 2707 if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) { 2708 logEvent('standalone_session'); 2709 } 2710 })(); 2711 </script>
2711 2712 <div class="guru-nolink-modal" id="guru-nolink-modal" hidden> 2713 <div class="guru-nolink-modal__overlay" data-guru-nolink-close></div> 2714 <div class="guru-nolink-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="guru-nolink-modal-title"> 2715 <button type="button" class="guru-nolink-modal__close" data-guru-nolink-close aria-label="Cerrar">×</button> 2716 <p class="guru-nolink-modal__title" id="guru-nolink-modal-title">Esta Casa actualmente no está disponible en <strong class="guru-nolink-modal__domain">apostar.com.ec</strong>. Te recomendamos estas opciones:</p> 2717 <div class="guru-nolink-modal__redirect" data-guru-redirect-url="https://apostar.com.ec/ir/betanobh" data-guru-redirect-seconds="5"> 2718 <p class="guru-nolink-modal__redirect-text">En <span class="guru-nolink-modal__count">5</span> segundos te redirigiremos a la mejor Casa de Apuestas...</p> 2719 <div class="guru-nolink-modal__bar"><span class="guru-nolink-modal__bar-fill"></span></div> 2720 </div> 2721 <ul class="guru-nolink-modal__list"> 2722 <li class="guru-nolink-modal__item"> 2723 <span class="guru-nolink-modal__rank">#1</span> 2724 <a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/betano/" aria-label="Betano"> 2725 <img width="400" height="86" src="https://apostar.com.ec/wp-content/uploads/2022/12/Betano2.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Betano" loading="lazy" /> </a> 2726 <a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/betanobh" target="_blank" rel="noopener noreferrer nofollow"> 2727 REGISTRARSE </a> 2728 </li> 2729 <li class="guru-nolink-modal__item"> 2730 <span class="guru-nolink-modal__rank">#2</span> 2731 <a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/bet365/" aria-label="Bet365"> 2732 <img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/06/bet365.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Bet365" loading="lazy" /> </a> 2733 <a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/bet365bh" target="_blank" rel="noopener noreferrer nofollow"> 2734 REGISTRARSE </a> 2735 </li> 2736 <li class="guru-nolink-modal__item"> 2737 <span class="guru-nolink-modal__rank">#3</span> 2738 <a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/latribet/" aria-label="LaTriBet"> 2739 <img width="400" height="104" src="https://apostar.com.ec/wp-content/uploads/2022/08/latribet-2.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="LaTriBet" loading="lazy" /> </a> 2740 <a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/latribetbh" target="_blank" rel="noopener noreferrer nofollow"> 2741 REGISTRARSE </a> 2742 </li> 2743 </ul> 2744 </div> 2745 </div> 2746
2746<script> 2747 (function(){ 2748 var modal = document.getElementById('guru-nolink-modal'); 2749 if (!modal) { return; } 2750 var dialog = modal.querySelector('.guru-nolink-modal__dialog'); 2751 var lastFocus = null; 2752 function focusables(){ 2753 if (!dialog) { return []; } 2754 return Array.prototype.slice.call( 2755 dialog.querySelectorAll('a[href], button:not([disabled])') 2756 ).filter(function(el){ return el.offsetParent !== null; }); 2757 } 2758 var redirect = modal.querySelector('[data-guru-redirect-url]'); 2759 var timer = null; 2760 var redirectTimer = null; 2761 var didRedirect = false; 2762 function startCountdown(){ 2763 if (!redirect) { return; } 2764 var url = redirect.getAttribute('data-guru-redirect-url'); 2765 var secs = parseInt(redirect.getAttribute('data-guru-redirect-seconds'), 10) || 0; 2766 if (!url || secs <= 0) { return; } 2767 var countEl = redirect.querySelector('.guru-nolink-modal__count'); 2768 var fill = redirect.querySelector('.guru-nolink-modal__bar-fill'); 2769 didRedirect = false; 2770 // La navegación se dispara por un deadline absoluto, no por la suma de 2771 // ticks: asà sigue funcionando aunque el navegador/optimizador limite 2772 // (throttle) los timers o la pestaña pierda foco un instante. 2773 var deadline = Date.now() + secs * 1000; 2774 function go(){ 2775 if (didRedirect) { return; } 2776 didRedirect = true; 2777 if (timer) { clearInterval(timer); timer = null; } 2778 if (redirectTimer) { clearTimeout(redirectTimer); redirectTimer = null; } 2779 window.location.href = url; 2780 } 2781 if (countEl) { countEl.textContent = secs; } 2782 if (fill) { 2783 fill.style.transition = 'none'; 2784 fill.style.width = '0%'; 2785 void fill.offsetWidth; // reflow para reiniciar la animación 2786 fill.style.transition = 'width ' + secs + 's linear'; 2787 fill.style.width = '100%'; 2788 } 2789 // Camino principal: timeout único garantizado. 2790 redirectTimer = setTimeout(go, secs * 1000); 2791 // Solo refresca el número visible; no decide la redirección. 2792 timer = setInterval(function(){ 2793 var remaining = Math.ceil((deadline - Date.now()) / 1000); 2794 if (remaining < 0) { remaining = 0; } 2795 if (countEl) { countEl.textContent = remaining; } 2796 if (remaining <= 0) { go(); } 2797 }, 250); 2798 } 2799 function stopCountdown(){ 2800 didRedirect = true; // evita que un timeout pendiente navegue tras cerrar 2801 if (timer) { clearInterval(timer); timer = null; } 2802 if (redirectTimer) { clearTimeout(redirectTimer); redirectTimer = null; } 2803 if (redirect) { 2804 var fill = redirect.querySelector('.guru-nolink-modal__bar-fill'); 2805 if (fill) { fill.style.transition = 'none'; fill.style.width = '0%'; } 2806 } 2807 } 2808 // Enfoca sin mover la página; mismo helper que en los popups. 2809 function focusNoScroll(el){ 2810 if (!el || typeof el.focus !== 'function' || !document.contains(el)) { return; } 2811 var y = window.pageYOffset; 2812 try { el.focus({ preventScroll: true }); } 2813 catch (e) { el.focus(); } 2814 if (window.pageYOffset !== y) { jumpTo(y); } 2815 } 2816 // Salta sin animar: critical.css pone html{scroll-behavior:smooth}. 2817 function jumpTo(y){ 2818 var html = document.documentElement; 2819 var prev = html.style.scrollBehavior; 2820 html.style.scrollBehavior = 'auto'; 2821 window.scrollTo(window.pageXOffset, y); 2822 html.style.scrollBehavior = prev; 2823 } 2824 var lockY = 0; 2825 var scrollGuard = null; 2826 // overflow:hidden no detiene el scroll programático: un scroll suave en 2827 // vuelo (TOC, anclas) seguÃa deslizando la página por detrás del modal. 2828 // Mismo lock que en los popups; ver la nota larga en popup-modals.php. 2829 function lockScroll(){ 2830 lockY = window.pageYOffset; 2831 // La clase va en <html> y en <body>: el viewport toma su overflow del 2832 // html (critical.css le pone overflow-x:clip), asà que con el lock solo 2833 // en body la página seguÃa scrolleando detrás del modal. 2834 document.documentElement.classList.add('guru-nolink-open'); 2835 document.body.classList.add('guru-nolink-open'); 2836 jumpTo(lockY); 2837 scrollGuard = function(e){ 2838 if (e && e.target && e.target !== document && e.target !== document.documentElement) { return; } 2839 if (window.pageYOffset !== lockY) { jumpTo(lockY); } 2840 }; 2841 window.addEventListener('scroll', scrollGuard, { passive: true }); 2842 } 2843 function unlockScroll(){ 2844 if (scrollGuard) { window.removeEventListener('scroll', scrollGuard); scrollGuard = null; } 2845 document.documentElement.classList.remove('guru-nolink-open'); 2846 document.body.classList.remove('guru-nolink-open'); 2847 } 2848 function openModal(trigger){ 2849 lastFocus = trigger || null; 2850 modal.hidden = false;
2851 lockScroll(); 2852 focusNoScroll(modal.querySelector('.guru-nolink-modal__close')); 2853 startCountdown(); 2854 } 2855 function closeModal(){ 2856 stopCountdown(); 2857 modal.hidden = true; 2858 unlockScroll(); 2859 focusNoScroll(lastFocus); 2860 } 2861 document.addEventListener('click', function(e){ 2862 var trigger = e.target.closest('[data-guru-nolink]'); 2863 if (trigger) { e.preventDefault(); openModal(trigger); return; } 2864 if (e.target.closest('[data-guru-nolink-close]')) { e.preventDefault(); closeModal(); } 2865 }); 2866 document.addEventListener('keydown', function(e){ 2867 if (modal.hidden) { return; } 2868 if (e.key === 'Escape') { closeModal(); return; } 2869 // Focus trap: Tab/Shift+Tab ciclan dentro del diálogo (aria-modal ya 2870 // aÃsla a los lectores de pantalla; esto aÃsla al teclado). 2871 if (e.key === 'Tab') { 2872 var f = focusables(); 2873 if (!f.length) { return; } 2874 var first = f[0], last = f[f.length - 1]; 2875 if (!dialog || !dialog.contains(document.activeElement)) { 2876 e.preventDefault(); first.focus(); 2877 } else if (e.shiftKey && document.activeElement === first) { 2878 e.preventDefault(); last.focus(); 2879 } else if (!e.shiftKey && document.activeElement === last) { 2880 e.preventDefault(); first.focus(); 2881 } 2882 } 2883 }); 2884 })(); 2885 </script>
2885 2886
2886<script> 2887 // Helper de analytics de los popups: manda a GA4 (gtag) y al dataLayer. 2888 // Guarda por si GA4 está apagado. Se define antes de los popups para que los 2889 // scripts de la ruleta/raspadita lo puedan usar. 2890 window.guruPopupTrack = window.guruPopupTrack || function(name, params){ 2891 params = params || {}; 2892 try { if (typeof window.gtag === 'function') { window.gtag('event', name, params); } } catch (e) {} 2893 try { (window.dataLayer = window.dataLayer || []).push(Object.assign({ event: name }, params)); } catch (e) {} 2894 }; 2895 2896 // Confeti compartido. La ruleta y la raspadita todavÃa llevan su propia copia 2897 // (código previo); migrarlas a este helper es un cambio aparte. 2898 window.guruPopupConfetti = window.guruPopupConfetti || function(root){ 2899 try { if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) { return; } } catch (e) {} 2900 var box = (root && root.closest('.guru-popup')) || root; 2901 if (!box) { return; } 2902 var W = box.clientWidth, H = box.clientHeight; 2903 if (!W || !H) { return; } 2904 var canvas = document.createElement('canvas'); 2905 canvas.className = 'guru-roulette__confetti'; 2906 canvas.width = W; canvas.height = H; 2907 box.appendChild(canvas); 2908 var ctx = canvas.getContext('2d'); 2909 if (!ctx) { canvas.remove(); return; } 2910 var colors = ['#ffd34e','#5eb1ff','#7ee0a1','#ff9e7a','#c7a3ff','#ef5da8','#4ade80']; 2911 var parts = [], originX = W / 2, originY = H * 0.34; 2912 for (var i = 0; i < 140; i++) { 2913 var ang = Math.PI * (0.15 + 0.7 * (i / 140)) * -1 - 0.15; 2914 var sp = 6 + Math.random() * 7; 2915 parts.push({ 2916 x: originX + (Math.random() - 0.5) * 40, y: originY, 2917 vx: Math.cos(ang) * sp * (Math.random() < 0.5 ? -1 : 1), 2918 vy: Math.sin(ang) * sp - Math.random() * 3, 2919 g: 0.18 + Math.random() * 0.12, size: 5 + Math.random() * 6, 2920 color: colors[i % colors.length], rot: Math.random() * 6.28, 2921 vr: (Math.random() - 0.5) * 0.4 2922 }); 2923 } 2924 var start = null, DUR = 1800; 2925 function frame(t){ 2926 if (start === null) { start = t; } 2927 var el = t - start; 2928 ctx.clearRect(0, 0, W, H); 2929 for (var i = 0; i < parts.length; i++) { 2930 var pp = parts[i]; 2931 pp.x += pp.vx; pp.y += pp.vy; pp.vy += pp.g; pp.vx *= 0.995; pp.rot += pp.vr; 2932 ctx.save(); 2933 ctx.translate(pp.x, pp.y); 2934 ctx.rotate(pp.rot); 2935 ctx.globalAlpha = Math.max(0, 1 - el / DUR); 2936 ctx.fillStyle = pp.color; 2937 ctx.fillRect(-pp.size / 2, -pp.size / 2, pp.size, pp.size * 0.6); 2938 ctx.restore(); 2939 } 2940 if (el < DUR) { requestAnimationFrame(frame); } else { canvas.remove(); } 2941 } 2942 requestAnimationFrame(frame); 2943 }; 2944 </script>
2944 2945 <div class="guru-popup" id="guru-popup-1" data-guru-popup="1" data-kind="roulette" data-max="1" data-delay="3000" hidden> 2946 <div class="guru-popup__overlay" data-guru-popup-close></div> 2947 <div class="guru-popup__dialog guru-popup__dialog--roulette" role="dialog" aria-modal="true" aria-labelledby="guru-popup-1-title"> 2948 <button type="button" class="guru-popup__close" data-guru-popup-close aria-label="Cerrar">×</button> 2949 2950 2951 <h2 class="guru-popup__title" id="guru-popup-1-title">¡Pilas pana! Gira la ruleta y llévate tu bono de una vez</h2> 2952 2953 <p class="guru-popup__subtitle">Prueba tu suerte al toque y arranca con el pie derecho en la jugada</p> 2954 2955 2956 2957 <div class="guru-roulette" id="guru-roulette" data-winner="LaTriBet"> 2958 <div class="guru-roulette__stage" style="width:264px;height:264px"> 2959 <span class="guru-roulette__pointer" aria-hidden="true"></span> 2960 <div class="guru-roulette__wheel" style="background:conic-gradient(from -30.000deg, #ffffff 0.000deg 60.000deg,#dfe3e9 60.000deg 120.000deg,#ffffff 120.000deg 180.000deg,#dfe3e9 180.000deg 240.000deg,#ffffff 240.000deg 300.000deg,#dfe3e9 300.000deg 360.000deg);transform:rotate(-30deg)"> 2961 <span class="guru-roulette__sep" style="background:repeating-conic-gradient(from -30.000deg, rgba(15,23,42,.18) 0 1.3deg, transparent 1.3deg 60.000deg)" aria-hidden="true"></span> 2962 <span class="guru-roulette__logo" style="left:103px;top:17px;width:58px;height:58px;transform:rotate(90deg)"> 2963 <img src="https://apostar.com.ec/wp-content/uploads/2022/08/latribet-2.svg" alt="LaTriBet" loading="lazy" decoding="async"> 2964 </span> 2965 <span class="guru-roulette__logo" style="left:177.5px;top:60px;width:58px;height:58px;transform:rotate(330deg)"> 2966 <img src="https://apostar.com.ec/wp-content/uploads/2023/05/SpinBookie.svg" alt="Spinbookie" loading="lazy" decoding="async"> 2967 </span> 2968 <span class="guru-roulette__logo" style="left:177.5px;top:146px;width:58px;height:58px;transform:rotate(390deg)"> 2969 <img src="https://apostar.com.ec/wp-content/uploads/2023/08/1XSlots-1.svg" alt="1xslots" loading="lazy" decoding="async"> 2970 </span> 2971 <span class="guru-roulette__logo" style="left:103px;top:189px;width:58px;height:58px;transform:rotate(270deg)"> 2972 <img src="https://apostar.com.ec/wp-content/uploads/2025/05/Megapari.svg" alt="Megapari" loading="lazy" decoding="async"> 2973 </span> 2974 <span class="guru-roulette__logo" style="left:28.5px;top:146px;width:58px;height:58px;transform:rotate(330deg)"> 2975 <img src="https://apostar.com.ec/wp-content/uploads/2024/11/logo2-1.svg" alt="Paripesa" loading="lazy" decoding="async"> 2976 </span> 2977 <span class="guru-roulette__logo" style="left:28.5px;top:60px;width:58px;height:58px;transform:rotate(390deg)"> 2978 <img src="https://apostar.com.ec/wp-content/uploads/2023/04/XLBet.svg" alt="XLBet" loading="lazy" decoding="async"> 2979 </span> 2980 </div> 2981 <span class="guru-roulette__hub" aria-hidden="true"> 2982 <img class="guru-roulette__hub-icon" src="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" alt="" loading="lazy" decoding="async"> 2983 </span> 2984 </div> 2985 2986 <button type="button" class="guru-roulette__spin">GIRAR</button> 2987 2988 <div class="guru-roulette__result" hidden> 2989 <p class="guru-roulette__win">Te ganaste un bono de casino para <strong class="guru-roulette__winname">LaTriBet</strong></p> 2990 <a class="guru-roulette__cta guru-popup__cta" href="https://apostar.com.ec/ir/latribetroulette" target="_blank" rel="noopener noreferrer nofollow">OBTENER</a> 2991 </div> 2992 </div> 2993
2993<script> 2994 (function(){ 2995 var root = document.getElementById('guru-roulette'); 2996 if (!root) { return; } 2997 var wheel = root.querySelector('.guru-roulette__wheel'); 2998 var spin = root.querySelector('.guru-roulette__spin'); 2999 var result = root.querySelector('.guru-roulette__result'); 3000 var logos = Array.prototype.slice.call(root.querySelectorAll('.guru-roulette__logo')); 3001 var REST = -30; 3002 var N = logos.length || 1; 3003 var SEG = 360 / N; 3004 var done = false; 3005 var rafId = null; 3006 3007 function reduced(){ 3008 return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 3009 } 3010 3011 // Ãngulo actual de la rueda (mod 360) leÃdo del transform computado, asà 3012 // funciona con Web Animations API o transición CSS. 3013 function wheelAngle(){ 3014 var st = getComputedStyle(wheel).transform; 3015 if (!st || st === 'none') { return 0; } 3016 var m = st.match(/matrix\(([^)]+)\)/); 3017 if (!m) { return 0; } 3018 var v = m[1].split(','); 3019 return Math.atan2(parseFloat(v[1]), parseFloat(v[0])) * 180 / Math.PI; 3020 } 3021 function norm180(x){ x = ((x % 360) + 360) % 360; return x > 180 ? x - 360 : x; } 3022 3023 // Marca como activo (agrandado + color pleno) el logo que está pasando 3024 // bajo la flechita (arriba). El gajo i está centrado en i*SEG en el 3025 // espacio de la rueda; en pantalla aparece en i*SEG + R. 3026 function setActive(idx){ 3027 for (var i = 0; i < logos.length; i++) { logos[i].classList.toggle('is-active', i === idx); } 3028 } 3029 function updateActive(){ 3030 var R = wheelAngle(); 3031 var best = -1, bestd = 1e9; 3032 for (var i = 0; i < N; i++) { 3033 var d = Math.abs(norm180(i * SEG + R)); 3034 if (d < bestd) { bestd = d; best = i; } 3035 } 3036 setActive(best); 3037 } 3038 function track(){ updateActive(); rafId = requestAnimationFrame(track); } 3039 function stopTrack(){ if (rafId) { cancelAnimationFrame(rafId); rafId = null; } } 3040 3041 // Confeti vanilla sobre el popup (sin librerÃas). Se dibuja en un canvas 3042 // a pantalla del popup y se autodestruye al terminar. 3043 function confetti(){ 3044 if (reduced()) { return; } 3045 var box = root.closest('.guru-popup') || root; 3046 var W = box.clientWidth, H = box.clientHeight; 3047 if (!W || !H) { return; } 3048 var canvas = document.createElement('canvas'); 3049 canvas.className = 'guru-roulette__confetti'; 3050 canvas.width = W; canvas.height = H; 3051 box.appendChild(canvas); 3052 var ctx = canvas.getContext('2d'); 3053 if (!ctx) { canvas.remove(); return; } 3054 var colors = ['#ffd34e','#5eb1ff','#7ee0a1','#ff9e7a','#c7a3ff','#ef5da8','#4ade80']; 3055 var parts = []; 3056 var originX = W / 2, originY = H * 0.34; 3057 for (var i = 0; i < 140; i++) { 3058 var ang = Math.PI * (0.15 + 0.7 * (i / 140)) * -1 - 0.15; // hacia arriba, en abanico 3059 var sp = 6 + Math.random() * 7; 3060 parts.push({ 3061 x: originX + (Math.random() - 0.5) * 40, 3062 y: originY, 3063 vx: Math.cos(ang) * sp * (Math.random() < 0.5 ? -1 : 1), 3064 vy: Math.sin(ang) * sp - Math.random() * 3, 3065 g: 0.18 + Math.random() * 0.12, 3066 size: 5 + Math.random() * 6, 3067 color: colors[i % colors.length], 3068 rot: Math.random() * 6.28, 3069 vr: (Math.random() - 0.5) * 0.4 3070 }); 3071 } 3072 var start = null, DUR = 1800; 3073 function frame(t){ 3074 if (start === null) { start = t; } 3075 var el = t - start; 3076 ctx.clearRect(0, 0, W, H); 3077 for (var i = 0; i < parts.length; i++) { 3078 var p = parts[i]; 3079 p.vy += p.g; p.x += p.vx; p.y += p.vy; p.rot += p.vr; 3080 ctx.save(); 3081 ctx.globalAlpha = Math.max(0, 1 - el / DUR); 3082 ctx.translate(p.x, p.y); 3083 ctx.rotate(p.rot); 3084 ctx.fillStyle = p.color; 3085 ctx.fillRect(-p.size / 2, -p.size / 2, p.size, p.size * 0.55); 3086 ctx.restore(); 3087 } 3088 if (el < DUR) { requestAnimationFrame(frame); } 3089 else { canvas.remove(); } 3090 } 3091 requestAnimationFrame(frame); 3092 } 3093 3094 var WINNER = root.getAttribute('data-winner') || ''; 3095 3096 function reveal(){ 3097 if (done) { return; } 3098 done = true; 3099 stopTrack(); 3100 setActive(0); // el ganador (#1) queda arriba y destacado 3101 if (result) { result.hidden = false; } 3102 if (spin) { spin.disabled = true; spin.setAttribute('hidden', ''); } 3103 window.guruPopupTrack && window.guruPopupTrack('popup_roulette_result', { popup_slot: 1, casa: WINNER }); 3104 confetti(); 3105 } 3106 3107 function go(){ 3108 if (!wheel || spin.disabled) { return; } 3109 spin.disabled = true; 3110 window.guruPopupTrack && window.guruPopupTrack('popup_roulette_spin', { popup_slot: 1 }); 3111 track(); // resalta el logo que pasa por la flechita durante el giro 3112 // Objetivo múltiplo de 360° â el gajo 0 (centrado arriba) queda bajo 3113 // el puntero: siempre gana la #1. Sumamos varias vueltas desde el reposo. 3114 var turns = reduced() ? 2 : 6; 3115 var target = 360 * turns; // 2160/720: múltiplo de 360 = gajo 0 arriba 3116 var dur = reduced() ? 700 : 4200; 3117 3118 // Camino principal: Web Animations API (no depende de transition CSS). 3119 if (typeof wheel.animate === 'function') { 3120 var anim = wheel.animate( 3121 [ { transform: 'rotate(' + REST + 'deg)' }, { transform: 'rotate(' + target + 'deg)' } ], 3122 { duration: dur, easing: 'cubic-bezier(.16,1,.3,1)', fill: 'forwards' } 3123 ); 3124 var settled = false;
3125 var finish = function(){ if (settled) { return; } settled = true; wheel.style.transform = 'rotate(' + target + 'deg)'; reveal(); }; 3126 anim.onfinish = finish; 3127 setTimeout(finish, dur + 250); // respaldo por si onfinish no dispara 3128 return; 3129 } 3130 3131 // Fallback: transición CSS. 3132 wheel.style.transition = 'transform ' + dur + 'ms cubic-bezier(.16,1,.3,1)'; 3133 // Forzamos reflow para que el cambio de transform anime desde el reposo. 3134 void wheel.offsetWidth; 3135 wheel.style.transform = 'rotate(' + target + 'deg)'; 3136 var fired = false; 3137 wheel.addEventListener('transitionend', function(){ fired = true; reveal(); }, { once: true }); 3138 setTimeout(function(){ if (!fired) { reveal(); } }, dur + 400); 3139 } 3140 3141 spin.addEventListener('click', go); 3142 3143 // Click en el CTA de la ruleta (OBTENER). 3144 var rouletteCta = root.querySelector('.guru-roulette__cta'); 3145 if (rouletteCta) { 3146 rouletteCta.addEventListener('click', function(){ 3147 window.guruPopupTrack && window.guruPopupTrack('popup_roulette_cta', { popup_slot: 1, casa: WINNER, link_url: rouletteCta.getAttribute('href') || '' }); 3148 }); 3149 } 3150 })(); 3151 </script>
3151 3152 3153 3154 3155 3156 3157 3158 </div> 3159 </div> 3160
3160<script> 3161 (function(){ 3162 var popups = Array.prototype.slice.call(document.querySelectorAll('[data-guru-popup]')); 3163 if (!popups.length) { return; } 3164 3165 // Modo prueba: en la URL de prueba el popup salta siempre (ignora el tope 3166 // diario y no persiste el contador), para poder probarlo cuantas veces sea. 3167 // Además, si el usuario está logueado, también salta siempre (para testear 3168 // refrescando la página sin gastar el cupo del dÃa). 3169 var TEST = false; 3170 3171 function todayKey(){ 3172 var d = new Date(); 3173 return '' + d.getFullYear() + (d.getMonth() + 1) + d.getDate(); 3174 } 3175 function storeKey(id){ return 'guru_popup_' + id + '_' + todayKey(); } 3176 function shownToday(id){ 3177 try { return parseInt(localStorage.getItem(storeKey(id)), 10) || 0; } 3178 catch (e) { return 0; } 3179 } 3180 function bump(id){ 3181 try { localStorage.setItem(storeKey(id), shownToday(id) + 1); } 3182 catch (e) {} 3183 } 3184 3185 var current = null; 3186 var lastFocus = null; 3187 3188 function focusables(dialog){ 3189 if (!dialog) { return []; } 3190 return Array.prototype.slice.call( 3191 dialog.querySelectorAll('a[href], button:not([disabled])') 3192 ).filter(function(el){ return el.offsetParent !== null; }); 3193 } 3194 function modalMeta(modal){ 3195 return { popup_slot: parseInt(modal.getAttribute('data-guru-popup'), 10) || 0, popup_kind: modal.getAttribute('data-kind') || 'plain' }; 3196 } 3197 // Enfoca sin mover la página. Sin esto, al cerrar el popup el navegador 3198 // scrollea hasta donde esté el elemento que tenÃa el foco antes de abrirlo 3199 // (un link que el visitante tocó, el botón de aceptar cookies del final): 3200 // si ese elemento está abajo, la página salta al fondo. 3201 function focusNoScroll(el){ 3202 if (!el || typeof el.focus !== 'function' || !document.contains(el)) { return; } 3203 var y = window.pageYOffset; 3204 try { el.focus({ preventScroll: true }); } 3205 catch (e) { el.focus(); } 3206 // Safari < 15.4 ignora preventScroll: si igual saltó, volvemos. 3207 if (window.pageYOffset !== y) { jumpTo(y); } 3208 } 3209 // Salta sin animar: critical.css pone html{scroll-behavior:smooth}, asà que 3210 // un window.scrollTo pelado también se animarÃa. 3211 function jumpTo(y){ 3212 var html = document.documentElement; 3213 var prev = html.style.scrollBehavior; 3214 html.style.scrollBehavior = 'auto'; 3215 window.scrollTo(window.pageXOffset, y); 3216 html.style.scrollBehavior = prev; 3217 } 3218 var lockY = 0; 3219 var scrollGuard = null; 3220 // overflow:hidden corta la rueda y el touch, pero NO el scroll programático: 3221 // un scroll suave ya en vuelo cuando abre el popup seguÃa deslizando la 3222 // página hasta su destino por detrás. El TOC y las anclas usan 3223 // scrollIntoView smooth y con miles de pÃxeles Chrome tarda segundos: el 3224 // popup abre en medio de la animación y la página termina en el pie. El 3225 // salto instantáneo a la posición actual cancela esa animación; el guardia 3226 // la devuelve si algo más la mueve mientras el popup está abierto. 3227 function lockScroll(){ 3228 lockY = window.pageYOffset; 3229 // La clase va en <html> y en <body>: el viewport toma su overflow del 3230 // html (critical.css le pone overflow-x:clip), asà que con el lock solo 3231 // en body la página seguÃa scrolleando detrás del popup hasta el fondo. 3232 document.documentElement.classList.add('guru-popup-open'); 3233 document.body.classList.add('guru-popup-open'); 3234 jumpTo(lockY); 3235 scrollGuard = function(e){ 3236 // El diálogo scrollea por dentro; acá solo miramos el documento. 3237 if (e && e.target && e.target !== document && e.target !== document.documentElement) { return; } 3238 if (window.pageYOffset !== lockY) { jumpTo(lockY); } 3239 }; 3240 window.addEventListener('scroll', scrollGuard, { passive: true }); 3241 } 3242 function unlockScroll(){ 3243 if (scrollGuard) { window.removeEventListener('scroll', scrollGuard); scrollGuard = null; } 3244 document.documentElement.classList.remove('guru-popup-open'); 3245 document.body.classList.remove('guru-popup-open'); 3246 } 3247 // Creatividad de iframe: el `src` se pone recién acá. Un iframe con src 3248 // se descarga aunque esté oculto, y el popup vive en el footer desde la 3249 // carga: el banner externo pesarÃa en todas las páginas aunque nadie 3250 // llegue a verlo. Además se le da al iframe el tamaño real del creativo 3251 // y se lo escala para que entre en el diálogo â un iframe no achica lo 3252 // que trae adentro, asà que en una caja más angosta se verÃa un recorte. 3253 function setupFrame(modal){ 3254 var box = modal.querySelector('.guru-popup__frame'); 3255 if (!box || box.dataset.guruFrameReady) { return; } 3256 var frame = box.querySelector('iframe'); 3257 var pick = window.matchMedia('(max-width: 599.98px)').matches ? 'mobile' : 'desktop'; 3258 var src = box.getAttribute('data-src-' + pick); 3259 // Sin src para este ancho la caja está oculta por CSS: no hay nada 3260 // que pedir ni que medir. 3261 if (!frame || !src) { return; } 3262 box.dataset.guruFrameReady = '1'; 3263 var w = parseInt(box.getAttribute('data-w-' + pick), 10) || 0; 3264 var h = parseInt(box.getAttribute('data-h-' + pick), 10) || 0; 3265 function fit(){ 3266 var avail = box.clientWidth; 3267 if (!avail || !w || !h) { return; } 3268 var s = Math.min(1, avail / w); 3269 frame.style.width = w + 'px'; 3270 frame.style.height = h + 'px'; 3271 frame.style.transform = s < 1 ? 'scale(' + s + ')' : ''; 3272 box.style.height = Math.round(h * s) + 'px'; 3273 } 3274 fit(); 3275 window.addEventListener('resize', fit); 3276 frame.setAttribute('src', src); 3277 } 3278 function openModal(modal){ 3279 current = modal; 3280 lastFocus = document.activeElement; 3281 modal.hidden = false;
3282 setupFrame(modal); 3283 lockScroll(); 3284 var closeBtn = modal.querySelector('.guru-popup__close'); 3285 focusNoScroll(closeBtn); 3286 window.guruPopupTrack && window.guruPopupTrack('popup_view', modalMeta(modal)); 3287 // Aviso para widgets que necesitan (re)inicializarse ya visibles 3288 // (canvas, ruletas, raspaditas que miden ancho/alto al arrancar). 3289 try { 3290 modal.dispatchEvent(new CustomEvent('guru:popup:open', { bubbles: true, detail: { id: modal.getAttribute('data-guru-popup') } })); 3291 } catch (e) {} 3292 } 3293 function closeModal(){ 3294 if (!current) { return; } 3295 window.guruPopupTrack && window.guruPopupTrack('popup_close', modalMeta(current)); 3296 current.hidden = true; 3297 unlockScroll(); 3298 focusNoScroll(lastFocus); 3299 current = null; 3300 } 3301 3302 document.addEventListener('click', function(e){ 3303 if (!current) { return; } 3304 if (e.target.closest('[data-guru-popup-close]')) { e.preventDefault(); closeModal(); return; } 3305 // CTA de popups de texto: los juegos mandan su propio evento, asà que 3306 // acá se saltean para no contar la misma conversión dos veces. 3307 // Creatividad clickeable del popup de imagen. 3308 var creative = e.target.closest('a.guru-popup__image'); 3309 if (creative) { 3310 var mi = modalMeta(current); 3311 mi.link_url = creative.getAttribute('href') || ''; 3312 window.guruPopupTrack && window.guruPopupTrack('popup_image_click', mi); 3313 return; 3314 } 3315 var cta = e.target.closest('.guru-popup__cta'); 3316 if (cta && !cta.closest('.guru-roulette') && !cta.closest('.guru-scratch') && !cta.closest('.guru-slotmachine') && !cta.closest('.guru-fruits')) { 3317 var m = modalMeta(current); 3318 m.link_url = cta.getAttribute('href') || ''; 3319 window.guruPopupTrack && window.guruPopupTrack('popup_cta', m); 3320 } 3321 }); 3322 document.addEventListener('keydown', function(e){ 3323 if (!current) { return; } 3324 if (e.key === 'Escape') { closeModal(); return; } 3325 if (e.key === 'Tab') { 3326 var dialog = current.querySelector('.guru-popup__dialog'); 3327 var f = focusables(dialog); 3328 if (!f.length) { return; } 3329 var first = f[0], last = f[f.length - 1]; 3330 if (!dialog || !dialog.contains(document.activeElement)) { 3331 e.preventDefault(); first.focus(); 3332 } else if (e.shiftKey && document.activeElement === first) { 3333 e.preventDefault(); last.focus(); 3334 } else if (!e.shiftKey && document.activeElement === last) { 3335 e.preventDefault(); first.focus(); 3336 } 3337 } 3338 }); 3339 3340 // Solo un popup por carga: el primero (en orden de slot) que todavÃa no 3341 // haya llegado a su tope de apariciones del dÃa. 3342 var pick = null; 3343 for (var i = 0; i < popups.length; i++) { 3344 var id = popups[i].getAttribute('data-guru-popup'); 3345 var max = parseInt(popups[i].getAttribute('data-max'), 10) || 1; 3346 if (TEST || shownToday(id) < max) { pick = popups[i]; break; } 3347 } 3348 if (!pick) { return; } 3349 3350 var delay = parseInt(pick.getAttribute('data-delay'), 10) || 0; 3351 window.setTimeout(function(){ 3352 if (!TEST) { bump(pick.getAttribute('data-guru-popup')); } 3353 openModal(pick); 3354 }, delay); 3355 })(); 3356 </script>
3356 3357 <nav class="guru-appnav" aria-label="Navegación de la app"> 3358 <button type="button" class="guru-appnav__btn" data-guru-appnav="back" aria-label="Atrás"> 3359 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M15 18l-6-6 6-6"/></svg> 3360 </button> 3361 <a class="guru-appnav__btn" href="https://apostar.com.ec/" data-guru-appnav="home" aria-label="Inicio"> 3362 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 10.5L12 3l9 7.5"/><path d="M5 9.8V20h14V9.8"/></svg> 3363 </a> 3364 <button type="button" class="guru-appnav__btn" data-guru-appnav="reload" aria-label="Recargar"> 3365 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M21 12a9 9 0 1 1-2.64-6.36"/><path d="M21 3v6h-6"/></svg> 3366 </button> 3367 <button type="button" class="guru-appnav__btn guru-appnav__menu" data-guru-appnav="menu" aria-controls="primary-nav" aria-expanded="false" aria-label="Abrir menú"> 3368 <span class="hamburger"></span> 3369 </button> 3370 </nav> 3371
3371<script> 3372 (function(){ 3373 var nav = document.querySelector('.guru-appnav'); 3374 if (!nav) { return; } 3375 var HOME = "https:\/\/apostar.com.ec\/"; 3376 var back = nav.querySelector('[data-guru-appnav="back"]'); 3377 3378 // history.length cuenta entradas, no la posición: en la página en la que 3379 // abrió la app vale 1 y atrás no tiene a dónde ir, asà que el botón sale 3380 // apagado. Después de navegar y volver sigue valiendo 2 aunque estemos de 3381 // nuevo en el principio, y ahà history.back() no hace nada: de eso se 3382 // encarga el respaldo de abajo. 3383 function syncBack(){ 3384 if (!back) { return; } 3385 if (window.history.length > 1) { back.removeAttribute('aria-disabled'); } 3386 else { back.setAttribute('aria-disabled', 'true'); } 3387 } 3388 syncBack(); 3389 // Al volver desde el caché de atrás/adelante la página no se re-ejecuta. 3390 window.addEventListener('pageshow', syncBack); 3391 3392 // El menú lo sigue manejando el toggle del header (initMobileMenu en 3393 // main.js engancha un solo .menu-toggle): este botón le pasa el click y 3394 // espeja su aria-expanded, asà la animación a X y el cierre por el botón 3395 // del panel quedan sincronizados sin duplicar la lógica. 3396 var headerToggle = document.querySelector('.header-top__left .menu-toggle') || document.querySelector('.menu-toggle'); 3397 var menuBtn = nav.querySelector('[data-guru-appnav="menu"]'); 3398 if (menuBtn) { 3399 if (!headerToggle) { 3400 menuBtn.remove(); 3401 menuBtn = null; 3402 } else if (window.MutationObserver) { 3403 new MutationObserver(function(){ 3404 var open = 'true' === headerToggle.getAttribute('aria-expanded'); 3405 menuBtn.setAttribute('aria-expanded', String(open)); 3406 }).observe(headerToggle, { attributes: true, attributeFilter: ['aria-expanded'] }); 3407 } 3408 } 3409 3410 function goBack(){ 3411 var from = window.location.href; 3412 // Si history.back() no llevó a ninguna parte, caemos al inicio en vez 3413 // de dejar un botón que no hace nada. 3414 var t = window.setTimeout(function(){ 3415 if (window.location.href === from) { window.location.href = HOME; } 3416 }, 450); 3417 window.addEventListener('pagehide', function(){ window.clearTimeout(t); }, { once: true }); 3418 window.history.back(); 3419 } 3420 3421 nav.addEventListener('click', function(e){ 3422 var el = e.target.closest('[data-guru-appnav]'); 3423 if (!el || 'true' === el.getAttribute('aria-disabled')) { return; } 3424 var action = el.getAttribute('data-guru-appnav'); 3425 if ('back' === action) { e.preventDefault(); goBack(); return; } 3426 if ('reload' === action) { e.preventDefault(); window.location.reload(); return; } 3427 if ('menu' === action) { 3428 e.preventDefault(); 3429 // main.js cierra el menú con un handler de "click afuera" en 3430 // document, y este botón queda afuera del panel y del toggle: sin 3431 // cortar la propagación, el click abre el menú por el toggle y 3432 // después el mismo click lo vuelve a cerrar. 3433 e.stopPropagation(); 3434 if (headerToggle) { headerToggle.click(); } 3435 return; 3436 } 3437 // "inicio" es un <a> de verdad: lo resuelve el navegador. 3438 }); 3439 })(); 3440 </script>
3440 3441
3441<script id="guru-main-js-extra"> 3442var GURU_AJAX = {"url":"https://apostar.com.ec/wp-admin/admin-ajax.php","nonce":"1b2c0a4cfc","i18n":{"toggleSubmenu":"Mostrar submen\u00fa"}}; 3443//# sourceURL=guru-main-js-extra 3444</script>
vendor: 1 bytes, line 3444
3444
3445<script data-wp-strategy="defer" defer id="guru-main-js" defer src="https://apostar.com.ec/wp-content/themes/repo-igl-main/assets/js/main.js"></script>
3445 3446
3446<script id="guru-sn-inline"> 3447 (function () { 3448 var CFG = {"url":"https:\/\/apostar.com.ec\/wp-admin\/admin-ajax.php","action":"guru_sn_subscribe","i18n":{"success":"\u00a1Listo! Revisa tu correo para confirmar.","invalid":"Ingres\u00e1 un email v\u00e1lido.","error":"No pudimos suscribirte ahora. Prob\u00e1 m\u00e1s tarde.","sending":"Enviando\u2026"}}; 3449 function bind(form) { 3450 if (form.getAttribute('data-guru-sn-bound')) { return; } 3451 form.setAttribute('data-guru-sn-bound', '1'); 3452 var banner = form.closest ? form.closest('.guru-sn') : null; 3453 var input = form.querySelector('input[type="email"]'); 3454 var button = form.querySelector('button[type="submit"]'); 3455 var msg = banner ? banner.querySelector('[data-guru-sn-msg]') : null; 3456 var hp = form.querySelector('input[name="guru_sn_website"]'); 3457 function showMsg(text, ok) { 3458 if (!msg) { return; } 3459 msg.textContent = text; 3460 msg.className = 'guru-sn__message ' + (ok ? 'is-success' : 'is-error'); 3461 msg.hidden = false; 3462 } 3463 form.addEventListener('submit', function (e) { 3464 e.preventDefault(); 3465 var email = input ? input.value.trim() : ''; 3466 if (!email || email.indexOf('@') < 1 || email.indexOf('.') < 0) { 3467 showMsg(CFG.i18n.invalid, false); 3468 if (input) { input.focus(); } 3469 return; 3470 } 3471 var btnText = button ? button.textContent : ''; 3472 if (button) { button.disabled = true; button.textContent = CFG.i18n.sending; } 3473 var data = new URLSearchParams(); 3474 data.append('action', CFG.action); 3475 data.append('email', email); 3476 data.append('guru_sn_website', hp ? hp.value : ''); 3477 fetch(CFG.url, { 3478 method: 'POST', 3479 headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 3480 body: data.toString(), 3481 credentials: 'same-origin' 3482 }).then(function (r) { 3483 return r.json().catch(function () { return { success: r.ok }; }); 3484 }).then(function (j) { 3485 if (j && j.success) { 3486 // Ãxito: ocultar el botón, dejar el email visible pero 3487 // deshabilitado, y mostrar el mensaje en su lugar. 3488 if (button) { button.hidden = true; } 3489 if (input) { input.disabled = true; input.readOnly = true; } 3490 showMsg(CFG.i18n.success, true); 3491 } else { 3492 showMsg(CFG.i18n.error, false); 3493 if (button) { button.disabled = false; button.textContent = btnText; } 3494 } 3495 }).catch(function () { 3496 showMsg(CFG.i18n.error, false); 3497 if (button) { button.disabled = false; button.textContent = btnText; } 3498 }); 3499 }); 3500 } 3501 function init() { 3502 var forms = document.querySelectorAll('form[data-guru-sn]'); 3503 for (var i = 0; i < forms.length; i++) { bind(forms[i]); } 3504 } 3505 if (document.readyState === 'loading') { 3506 document.addEventListener('DOMContentLoaded', init); 3507 } else { 3508 init(); 3509 } 3510 })(); 3511 </script>
3511 3512 </body> 3513</html> 3514 3515<!-- Cache served by breeze CACHE - Last modified: Tue, 29 Sep 2026 21:41:49 GMT --> 3516 3517<!-- plugin=object-cache-pro client=phpredis metric#hits=22935 metric#misses=1432 metric#hit-ratio=94.1 metric#bytes=4362964 metric#prefetches=0 metric#store-reads=1580 metric#store-writes=5 metric#store-hits=579 metric#store-misses=1427 metric#sql-queries=14 metric#ms-total=1895.94 metric#ms-cache=182.85 metric#ms-cache-avg=0.1154 metric#ms-cache-ratio=9.6 sample#redis-hits=12539494 sample#redis-misses=22381618 sample#redis-hit-ratio=35.9 sample#redis-ops-per-sec=969 sample#redis-evicted-keys=0 sample#redis-used-memory=70306568 sample#redis-used-memory-rss=73814016 sample#redis-memory-fragmentation-ratio=1.1 sample#redis-connected-clients=1 sample#redis-tracking-clients=0 sample#redis-rejected-connections=0 sample#redis-keys=4293 -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.