PageSourceSearch

https://apostar.com.ec/blackjack-online/

html apostar.com.ec collected 2026-09-29 21:42:00 UTC 214,457 bytes, 3,017 lines download raw bytes

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>Cómo jugar Blackjack en Ecuador: Guía paso a paso 2026.</title>
31<meta name="description" content="Ven y descubre como jugar al Blackjack en Ecuador: ¿Cómo ganar?, tipos de juego, estrategia básica, casinos legales para apostar."/>
32<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
33<link rel="canonical" href="https://apostar.com.ec/blackjack-online/" />
34<meta property="og:locale" content="es_ES" />
35<meta property="og:type" content="article" />
36<meta property="og:title" content="Cómo jugar Blackjack en Ecuador: Guía paso a paso 2026." />
37<meta property="og:description" content="Ven y descubre como jugar al Blackjack en Ecuador: ¿Cómo ganar?, tipos de juego, estrategia básica, casinos legales para apostar." />
38<meta property="og:url" content="https://apostar.com.ec/blackjack-online/" />
39<meta property="og:site_name" content="apostar.com.ec" />
40<meta property="og:updated_time" content="2026-07-29T13:52:43-03:00" />
41<meta property="og:image" content="https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg" />
42<meta property="og:image:secure_url" content="https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg" />
43<meta property="og:image:width" content="1024" />
44<meta property="og:image:height" content="576" />
45<meta property="og:image:alt" content="blackjack online" />
46<meta property="og:image:type" content="image/jpeg" />
47<meta property="article:published_time" content="2025-12-03T09:46:42-03:00" />
48<meta property="article:modified_time" content="2026-07-29T13:52:43-03:00" />
49<meta name="twitter:card" content="summary_large_image" />
50<meta name="twitter:title" content="Cómo jugar Blackjack en Ecuador: Guía paso a paso 2026." />
51<meta name="twitter:description" content="Ven y descubre como jugar al Blackjack en Ecuador: ¿Cómo ganar?, tipos de juego, estrategia básica, casinos legales para apostar." />
52<meta name="twitter:image" content="https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg" />
53<meta name="twitter:label1" content="Tiempo de lectura" />
54<meta name="twitter:data1" content="16 minutos" />
55<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://apostar.com.ec/#person","name":"apostar.com.ec","logo":{"@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"},"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":"ImageObject","@id":"https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg","url":"https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg","width":"1024","height":"576","caption":"blackjack online","inLanguage":"es"},{"@type":"WebPage","@id":"https://apostar.com.ec/blackjack-online/#webpage","url":"https://apostar.com.ec/blackjack-online/","name":"C\u00f3mo jugar Blackjack en Ecuador: Gu\u00eda paso a paso 2026.","datePublished":"2025-12-03T09:46:42-03:00","dateModified":"2026-07-29T13:52:43-03:00","isPartOf":{"@id":"https://apostar.com.ec/#website"},"primaryImageOfPage":{"@id":"https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg"},"inLanguage":"es"},{"@type":"Person","@id":"https://apostar.com.ec/blackjack-online/#author","name":"Byron Caicedo","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/e2944fdfefaea8b8bb0e6961b6e38635d91646d48a96797c34968085acedc390?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/e2944fdfefaea8b8bb0e6961b6e38635d91646d48a96797c34968085acedc390?s=96&amp;d=mm&amp;r=g","caption":"Byron Caicedo","inLanguage":"es"},"sameAs":["https://www.linkedin.com/in/byron-caicedo-861b98412/"]},{"@type":"Article","headline":"C\u00f3mo jugar Blackjack en Ecuador: Gu\u00eda paso a paso 2026.","keywords":"blackjack","datePublished":"2025-12-03T09:46:42-03:00","dateModified":"2026-07-29T13:52:43-03:00","author":{"@id":"https://apostar.com.ec/blackjack-online/#author","name":"Byron Caicedo"},"publisher":{"@id":"https://apostar.com.ec/#person"},"description":"Ven y descubre como jugar al Blackjack en Ecuador: \u00bfC\u00f3mo ganar?, tipos de juego, estrategia b\u00e1sica, casinos legales para apostar.","name":"C\u00f3mo jugar Blackjack en Ecuador: Gu\u00eda paso a paso 2026.","@id":"https://apostar.com.ec/blackjack-online/#richSnippet","isPartOf":{"@id":"https://apostar.com.ec/blackjack-online/#webpage"},"image":{"@id":"https://apostar.com.ec/wp-content/uploads/2025/12/blackjack-online.jpg"},"inLanguage":"es","mainEntityOfPage":{"@id":"https://apostar.com.ec/blackjack-online/#webpage"}}]}</script>
55
56<!-- /Plugin Rank Math WordPress SEO -->
57
58<link rel='dns-prefetch' href='//www.googletagmanager.com' />
59<link href='https://www.googletagmanager.com' crossorigin rel='preconnect' />
60<style id="guru-critical-css">/* Guru Critical CSS — Inlined in <head> for instant first paint */
61
62/* CSS Custom Properties — Light theme (default) */
63: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)}
64
65/* Reset & Base */
66*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
67html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
68/* El overflow-x va solo en el html: alcanza para que la página no scrollee de
69   costado, y en el body rompía el position:fixed en Safari de iOS — las
70   barras pegadas abajo se despegaban y flotaban con el scroll. */
71body{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}
72img,video,svg{max-width:100%;height:auto;display:block}
73iframe,embed,object{max-width:100%;display:block}
74iframe[src*="youtube.com"],iframe[src*="youtube-nocookie.com"],iframe[src*="vimeo.com"]{width:100%;height:auto;aspect-ratio:16/9}
75a{color:var(--gold);text-decoration:none;transition:color .2s ease}
76a:hover,a:focus{color:var(--gold-light)}
77h1,h2,h3,h4,h5,h6{font-family:'Playfair Display',Georgia,serif;color:var(--text-heading);line-height:1.2;font-weight:600}
78h1{font-size:clamp(1.6rem,3.8vw,2.75rem)}
79h2{font-size:clamp(1.5rem,3.5vw,2.5rem)}
80h3{font-size:clamp(1.2rem,2.5vw,1.75rem)}
81p{margin-bottom:1rem}
82ul,ol{list-style:none}
83button,input,select,textarea{font:inherit;color:inherit}
84
85/* Screen reader */
86.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}
87.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}
88
89/* Skip link */
90.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}
91
92/* Layout */
93.container{max-width:1200px;margin:0 auto;padding:0 1rem}
94.container--narrow{max-width:800px}
95
96/* ========================================
97   HEADER
98   ======================================== */
99.site-header{position:sticky;top:0;z-index:1000;transition:transform .3s ease;box-shadow:var(--shadow-sm)}
100
101/* --- Top bar --- */
102.header-top{background:var(--header-top-bg,#ffffff);color:var(--header-top-text,#1a1a2e);border-bottom:1px solid var(--header-top-border,#e0e0e0)}
103.header-top__inner{display:flex;align-items:center;justify-content:space-between;padding-top:1rem;padding-bottom:1rem;gap:1rem}
104.header-top__left,.header-top__right{flex:1;display:flex;align-items:center}
105.header-top__left{justify-content:flex-start}
106.header-top__right{justify-content:flex-end}
107
108/* Branding — centered in top bar */
109.site-branding{flex-shrink:0;display:flex;align-items:center;justify-content:center}
110.site-branding a{display:flex;align-items:center;justify-content:center;text-decoration:none}
111.site-branding img,.site-branding .custom-logo{width:250px;max-height:80px;height:auto;object-fit:contain}
112.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}
113.site-title:hover{color:var(--gold-light)}
114
115/* Header CTA (in top bar) */
116.header-cta{flex-shrink:0}
117/* 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). */
118.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}
119html.guru-dark-auto .guru-theme-toggle{display:inline-flex}
120.guru-theme-toggle:hover{background:rgba(127,127,127,.12)}
121.guru-theme-toggle:focus-visible{outline:3px solid var(--accent,#b8860b);outline-offset:2px}
122.guru-theme-toggle svg{width:20px;height:20px}
123.guru-theme-toggle__sun,html.guru-dark .guru-theme-toggle__moon{display:none}
124html.guru-dark .guru-theme-toggle__sun{display:block}
125@media(max-width:480px){.guru-theme-toggle{width:36px;height:36px;margin-right:.35rem}.guru-theme-toggle svg{width:18px;height:18px}}
126.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)}
127.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)}
128.btn--header-cta svg{flex-shrink:0}
129
130/* --- Nav bar (below top bar) --- */
131.header-nav{background:var(--header-nav-bg,var(--bg-section));border-bottom:1px solid var(--border)}
132.header-nav__inner{display:flex;align-items:center;justify-content:center;height:48px}
133
134/* Main Navigation */
135.main-navigation{display:flex;justify-content:center}
136.main-navigation .nav-menu{display:flex;gap:.25rem;align-items:center;margin:0;padding:0}
137.main-navigation .nav-menu>li{position:relative}
138.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}
139.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}
140.main-navigation .nav-menu>li.current-menu-item>a::after{content:none}
141
142/* Dropdown indicator for parent items */
143.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}
144.main-navigation .submenu-toggle{display:none}
145.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)}
146.main-navigation .nav-menu>li.current-menu-item.menu-item-has-children>a::after{bottom:auto}
147
148/* Dropdown submenu */
149.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}
150.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%)}
151.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)}
152.main-navigation .sub-menu li{margin:0}
153.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}
154.main-navigation .sub-menu li a:hover{color:var(--gold);background:var(--gold-bg)}
155.main-navigation .sub-menu li.current-menu-item a{color:var(--gold);font-weight:500}
156
157/* Mobile menu toggle */
158.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}
159.menu-toggle:hover{background:var(--bg-subtle)}
160.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}
161.hamburger{top:50%;transform:translateY(-50%)}
162.hamburger::before{content:'';top:-7px}
163.hamburger::after{content:'';top:7px}
164.menu-toggle[aria-expanded="true"] .hamburger{background:transparent}
165.menu-toggle[aria-expanded="true"] .hamburger::before{top:0;transform:rotate(45deg)}
166.menu-toggle[aria-expanded="true"] .hamburger::after{top:0;transform:rotate(-45deg)}
167
168/* Hero */
169.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%)}
170.hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,var(--gold-bg) 0%,transparent 70%);pointer-events:none}
171.hero__inner{position:relative;text-align:center;padding:4rem 0}
172.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}
173.hero__subtitle{font-size:clamp(1rem,2vw,1.25rem);color:var(--text-muted);max-width:600px;margin:0 auto 2rem}
174
175/* Buttons */
176.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}
177.btn--primary{background:var(--btn-bg,linear-gradient(135deg,var(--accent-light),var(--accent-dark)));color:var(--btn-text,#fff)}
178.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)}
179.btn--gold{background:var(--btn-bg,linear-gradient(135deg,var(--accent-light),var(--accent-dark)));color:var(--btn-text,#fff);font-size:1.1rem}
180.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)}
181.btn--outline{border:2px solid var(--gold);color:var(--gold);background:transparent}
182.btn--outline:hover{background:var(--gold);color:var(--btn-text,#fff)}
183.btn--lg{padding:1rem 2rem;font-size:1.1rem}
184
185/* ========================================
186   CONTENT WITH TOC SIDEBAR
187   ======================================== */
188.content-with-toc{display:flex;flex-wrap:nowrap;gap:2rem;align-items:flex-start}
189/* En mobile este flex es column, y ahí `align-items:flex-start` hace que los
190   hijos se midan por su contenido en vez de estirarse al ancho del contenedor:
191   una tabla ancha estiraba .archive-main a 624px dentro de un viewport de 390 y
192   la página scrolleaba de costado. `min-width:0` no alcanza — en un flex column
193   el eje principal es la altura, así que no toca el ancho. */
194.content-with-toc>*{min-width:0;max-width:100%}
195.content-with-toc--archive{padding:2.5rem 0}
196.content-with-toc--archive>.archive-main{flex:1 1 0%;min-width:0;order:1}
197.content-with-toc--archive>.toc-sidebar{order:2;width:300px;max-width:300px}
198.archive-intro{margin-bottom:1.5rem;line-height:1.8;font-size:1.05rem}
199.archive-intro p:last-child{margin-bottom:0}
200.entry-content{flex:1;min-width:0;max-width:100%;overflow-x:hidden}
201.toc-sidebar{width:260px;max-width:260px;flex-shrink:0;align-self:stretch;display:flex;flex-direction:column;gap:1rem}
202.page-sidebar{width:300px}
203.toc{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem}
204.toc__title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .75rem}
205.toc__list{list-style:none;margin:0;padding:0}
206.toc__list li{margin:0}
207.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}
208.toc__list li a:hover{color:var(--gold);border-left-color:var(--gold)}
209
210/* Casa destacada compacta del menú mobile: oculta por defecto (desktop).
211   Vive en critical.css —inline y fresco por deploy— para que NUNCA se cuele
212   en desktop aunque main.css quede cacheado por el minificador. */
213.guru-menu-casa{display:none}
214
215/* ========================================
216   MOBILE (<769px)
217   ======================================== */
218@media(max-width:768px){
219/* TOC mobile */
220.content-with-toc{flex-direction:column}
221.toc-sidebar{width:100%}
222/* Top bar mobile */
223.header-top__inner{padding:.4rem 1.25rem}
224.header-top__left{flex:0 0 auto}
225.site-branding{flex:1 1 0%;justify-content:flex-start;margin-left:.5rem}
226.site-branding img,.site-branding .custom-logo{width:180px;max-height:56px}
227.header-top__right{flex:0 0 auto}
228.btn--header-cta{padding:.45rem .9rem;font-size:.8rem}
229.btn--header-cta svg{display:none}
230/* Mobile nav close button */
231.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}
232.nav-close-btn:hover{background:var(--bg-subtle)}
233.nav-close-btn svg{width:24px;height:24px}
234
235/* 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. */
236.header-nav{height:0;padding:0;border:0;background:none;overflow:visible}
237.header-nav__inner{height:0;min-height:0;padding:0}
238.header-top__left .menu-toggle{display:flex;align-items:center;justify-content:center;margin-right:.25rem}
239.menu-toggle{display:block}
240
241/* Mobile nav overlay */
242.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}
243/* El blur va solo con el panel abierto. Cerrado el panel sigue en el DOM, y un
244   backdrop-filter vivo permanente manda a WebKit al camino lento de scroll:
245   con eso, todos los position:fixed de la página viajan con el scroll. */
246.main-navigation.is-active{transform:translateX(0);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
247.main-navigation .nav-menu{flex-direction:column;gap:0;align-items:stretch}
248.main-navigation .nav-menu>li{display:flex;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border)}
249.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)}
250.main-navigation .nav-menu>li>a:hover{background:none;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
251.main-navigation .nav-menu>li.menu-item-has-children>a::after{display:none}
252.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}
253.main-navigation .submenu-toggle:hover,.main-navigation .submenu-toggle:focus{color:var(--gold);background:var(--gold-bg)}
254.main-navigation .submenu-toggle svg{transition:transform .25s ease}
255.main-navigation .nav-menu>li.is-open>.submenu-toggle svg{transform:rotate(180deg)}
256.main-navigation .nav-menu>li>.sub-menu{flex-basis:100%;order:99}
257.main-navigation .nav-menu>li.current-menu-item>a{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
258.main-navigation .nav-menu>li.current-menu-item>a::after{display:none}
259
260/* Mobile dropdown chevron */
261.main-navigation .nav-menu>li.menu-item-has-children>a::after{position:static;margin-left:auto;transition:transform .3s ease}
262.main-navigation .nav-menu>li.menu-item-has-children.is-open>a::after{transform:rotate(180deg)}
263
264/* Mobile submenu */
265.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)}
266.main-navigation .sub-menu::before{display:none}
267.main-navigation .nav-menu>li.is-open>.sub-menu{max-height:min(500px,calc(100vh - 200px));transform:none}
268.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)}
269.main-navigation .sub-menu li a:hover{background:none;color:var(--gold)}
270.main-navigation .sub-menu li:last-child a{border-bottom:none}
271
272/* Casa destacada compacta anclada al fondo del drawer. El drawer pasa a
273   columna (manteniendo el menú centrado arriba) y la barra usa margin-top:auto
274   para quedar abajo. */
275.main-navigation{flex-direction:column;align-items:center;justify-content:flex-start}
276.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)}
277.guru-menu-casa__label{font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);text-align:center}
278.guru-menu-casa__row{display:flex;align-items:center;gap:.6rem}
279.guru-menu-casa__logo{flex:0 0 auto;width:60px;height:34px;display:flex;align-items:center;justify-content:center}
280.guru-menu-casa__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
281.guru-menu-casa__logo-fallback{font-weight:700;color:var(--text-heading);font-size:.9rem}
282.guru-menu-casa__bono{display:flex;flex-direction:column;line-height:1.1;min-width:0;flex:1 1 auto}
283.guru-menu-casa__bono-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
284.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}
285.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}
286
287.hero{min-height:60vh}
288.hero__inner{padding:2.5rem 0}
289.container{padding:0 1rem}
290}
291
292@media(max-width:480px){
293.site-branding img,.site-branding .custom-logo{width:140px;max-height:46px}
294.btn--header-cta{padding:.4rem .85rem;font-size:.75rem}
295.header-top__inner{padding:.3rem 1rem}
296.hero{min-height:50vh}
297.hero__inner{padding:2rem 0}
298.hero__subtitle{font-size:.9rem}
299}
300</style>
301<link rel="manifest" href="https://apostar.com.ec/?guru_manifest=1">
302<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>
303<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://apostar.com.ec/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fapostar.com.ec%2Fblackjack-online%2F" />
304<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://apostar.com.ec/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fapostar.com.ec%2Fblackjack-online%2F&#038;format=xml" />
305<style id="guru-footer-color-override">:root{--footer-accent:#113caa;--footer-accent-rgb:17,60,170;--footer-accent-light:#4d6dbf}</style>
306<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https://apostar.com.ec/"},{"@type":"ListItem","position":2,"name":"Blackjack online: Guía completa para jugar en Ecuador","item":"https://apostar.com.ec/blackjack-online/"}]}</script>
306
307<style id="wp-img-auto-sizes-contain-inline-css">
308img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
309/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
310</style>
311<style id="wp-block-library-inline-css">
312: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;
312--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}}
313
314/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
315</style>
316<style id="classic-theme-styles-inline-css">
317/*! This file is auto-generated */
318.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}
319/*# sourceURL=/wp-includes/css/classic-themes.min.css */
320</style>
321
322<style id="global-styles-inline-css">
323: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,
3230) 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;}
323.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;}
324/*# sourceURL=global-styles-inline-css */
325</style>
326
327<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">
328/* Guru Forecast Banner — banner inline antes del Nth H2 con próximo partido.
329   Adaptación de las tarjetas del header banner (guru-fhb) para el contenido:
330   tarjeta blanca con acento verde arriba, badge de campeonato, escudos
331   circulares + nombres, VS, cuotas 1/2 y CTA rojo. */
332.guru-fb{
333	margin:2rem 0;
334	border-radius:16px;
335	background:#fff;
336	border:1px solid rgba(0,0,0,.08);
337	box-shadow:0 8px 26px rgba(0,0,0,.10);
338	overflow:hidden;
339	position:relative;
340	isolation:isolate;
341}
342.guru-fb::before{
343	content:"";
344	position:absolute;
345	top:0;left:0;right:0;
346	height:4px;
347	background:linear-gradient(90deg,#2c9a42,#1c7a31 55%,#155f27);
348	z-index:1;
349}
350.guru-fb__inner{
351	position:relative;
352	z-index:1;
353	display:flex;
354	flex-direction:column;
355	align-items:center;
356	gap:.7rem;
357	padding:1.2rem 1rem 1.2rem;
358	text-align:center;
359	box-sizing:border-box;
360	max-width:100%;
361}
362/* Cocarda del campeonato dentro del banner (flujo normal, centrada). */
363.guru-fb__badge{
364	display:inline-block;
365	padding:.24rem .85rem;
366	border-radius:999px;
367	background:linear-gradient(180deg,#f5c542,#e0a92a);
368	color:#3a2a05;
369	font-weight:800;
370	font-size:.72rem;
371	text-transform:uppercase;
372	letter-spacing:.06em;
373	box-shadow:0 2px 6px rgba(0,0,0,.12);
374	white-space:nowrap;
375}
376.guru-fb__match{
377	display:grid;
378	grid-template-columns:1fr auto 1fr;
379	/* align-items:end → todas las columnas apoyan abajo, así las cuotas 1/EMPATE/2
380	   (último elemento de cada columna) quedan alineadas horizontalmente entre sí. */
381	align-items:end;
382	justify-content:center;
383	gap:.4rem .6rem;
384	width:100%;
385	max-width:560px;
386}
387.guru-fb__center{
388	display:flex;
389	flex-direction:column;
390	align-items:center;
391	gap:.35rem;
392	grid-column:2;
393}
394.guru-fb__side{
395	display:flex;
396	flex-direction:column;
397	align-items:center;
398	gap:.5rem;
399	min-width:0;
400}
401.guru-fb__side--local{grid-column:1}
402.guru-fb__side--visit{grid-column:3}
403/* La cuota se separa apenas del nombre del equipo / VS. */
404.guru-fb__odd{margin-top:.15rem}
405.guru-fb__shield{
406	display:inline-flex;
407	align-items:center;
408	justify-content:center;
409	width:62px;
410	height:62px;
411	border-radius:50%;
412	background:#eef1f4;
413	overflow:hidden;
414	flex:0 0 auto;
415	box-shadow:0 2px 6px rgba(0,0,0,.1);
416}
417.guru-fb__shield img{width:100%;height:100%;object-fit:cover}
418.guru-fb__shield svg{width:64%;height:64%;object-fit:contain;color:#1c7a31}
419.guru-fb__team{
420	font-weight:800;
421	font-size:.9rem;
422	color:#14301b;
423	text-transform:uppercase;
424	letter-spacing:.01em;
425	line-height:1.2;
426	overflow-wrap:anywhere;
427}
428.guru-fb__vs{
429	font-weight:900;
430	font-size:1.05rem;
431	color:#9aa4ad;
432	letter-spacing:.03em;
433}
434.guru-fb__odd{
435	display:inline-flex;
436	flex-direction:column;
437	align-items:center;
438	justify-content:center;
439	gap:.06rem;
440	min-width:48px;
441	padding:.32rem .45rem;
442	border:1px solid #dfe3e8;
443	border-radius:9px;
444	background:#f7f9fb;
445	line-height:1.05;
446	transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
447}
448.guru-fb__odd:hover{
449	border-color:#2c9a42;
450	background:#fff;
451	box-shadow:0 5px 14px rgba(44,154,66,.22);
452	transform:translateY(-2px);
453}
454.guru-fb__odd:hover .guru-fb__odd-key{color:#2c9a42}
455/* Las cuotas son links (mismo destino que el botón). */
456a.guru-fb__odd{text-decoration:none;cursor:pointer}
457a.guru-fb__odd:hover,a.guru-fb__odd:focus,a.guru-fb__odd:visited{text-decoration:none}
458a.guru-fb__odd:focus-visible{outline:2px solid #2c9a42;outline-offset:2px}
459.guru-fb__odd-key{font-size:.6rem;font-weight:800;color:#8a929e;text-transform:uppercase;letter-spacing:.02em}
460.guru-fb__odd-val{font-size:.92rem;font-weight:800;color:#14301b;font-variant-numeric:tabular-nums;white-space:nowrap}
461/* Texto customizable: va arriba (debajo del campeonato, antes de los equipos)
462   como frase de gancho. Más grande y con los nombres/campeonato en verde de
463   acento para que resalte. */
464.guru-fb__headline{
465	margin:.1rem 0 .1rem;
466	font-size:1.32rem;
467	font-weight:700;
468	line-height:1.32;
469	color:#14301b;
470	max-width:520px;
471	letter-spacing:-.01em;
472	overflow-wrap:break-word;
473	word-wrap:break-word;
474}
475.guru-fb__headline strong{font-weight:800;color:#1c7a31}
476.guru-fb__cta-wrap{
477	display:flex;
478	justify-content:center;
479	width:100%;
480	margin-top:.1rem;
481}
482.guru-fb__cta-wrap > p{margin:0}
483.guru-fb__cta,
484.guru-fb a.guru-fb__cta{
485	display:inline-block;
486	padding:.72rem 2.1rem;
487	border-radius:999px;
488	background:#e11d2f;
489	color:#fff;
490	border:0;
491	font-weight:800;
492	font-size:1rem;
493	letter-spacing:.03em;
494	text-transform:uppercase;
495	text-decoration:none;
496	box-shadow:0 4px 14px rgba(225,29,47,.35);
497	transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
498}
499.guru-fb__cta:visited,
500.guru-fb a.guru-fb__cta:visited{color:#fff}
501.guru-fb__cta:hover,
502.guru-fb__cta:focus-visible,
503.guru-fb a.guru-fb__cta:hover,
504.guru-fb a.guru-fb__cta:focus,
505.guru-fb a.guru-fb__cta:focus-visible{
506	background:#c81628;
507	color:#fff;
508	text-decoration:none;
509	transform:scale(1.06);
510	box-shadow:0 9px 24px rgba(225,29,47,.45);
511	outline:none;
512}
513
514/* Escudos como marca de agua en los laterales de la tarjeta: grandes, en color,
515   centrados verticalmente y cortados por el borde (se ve solo la mitad de cada
516   uno). z-index:0 los deja detrás del contenido (.guru-fb__inner va en z-index:1)
517   y el overflow:hidden de la tarjeta recorta la mitad de afuera. */
518.guru-fb__wm{
519	position:absolute;
520	top:50%;
521	width:320px;
522	height:320px;
523	opacity:.09;
524	filter:blur(1.5px);
525	pointer-events:none;
526	z-index:0;
527}
528.guru-fb__wm--local{left:0;transform:translate(-50%,-50%)}
529.guru-fb__wm--visit{right:0;transform:translate(50%,-50%)}
530.guru-fb__wm img,.guru-fb__wm svg{width:100%;height:100%;object-fit:contain}
531
532@media (max-width:540px){
533	.guru-fb{border-radius:12px}
534	.guru-fb__wm{width:230px;height:230px}
535	.guru-fb__inner{padding:1.05rem .55rem 1.05rem;gap:.6rem}
536	.guru-fb__shield{width:46px;height:46px}
537	.guru-fb__team{font-size:.64rem;overflow-wrap:break-word}
538	.guru-fb__match{max-width:100%;gap:.3rem .3rem}
539	.guru-fb__odd{min-width:38px;padding:.26rem .28rem}
540	.guru-fb__odd-val{font-size:.82rem}
541	.guru-fb__odd-key{font-size:.55rem}
542	.guru-fb__cta{padding:.65rem 1.7rem;font-size:.95rem}
543	.guru-fb__headline{font-size:1.1rem}
544}
545@media (prefers-reduced-motion:reduce){
546	.guru-fb__cta,.guru-fb a.guru-fb__cta,.guru-fb__odd{transition:none}
547	.guru-fb__odd:hover{transform:none}
548}
549
550/* Guru — Modal "Casa sin link" */
551.guru-nolink-modal,.guru-nolink-modal *{box-sizing:border-box}
552.guru-nolink-modal[hidden]{display:none}
553/* El lock va también en <html>: ver la nota en guru-popup-modal.css. */
554html.guru-nolink-open,body.guru-nolink-open{overflow:hidden;overscroll-behavior:contain;scroll-behavior:auto}
555.guru-nolink-modal,.guru-nolink-modal__dialog{overscroll-behavior:contain}
556.guru-nolink-modal{position:fixed;inset:0;z-index:99990;display:flex;align-items:flex-end;justify-content:center}
557.guru-nolink-modal__overlay{position:absolute;inset:0;background:rgba(17,24,39,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
558.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)}
559@keyframes guru-nolink-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
560.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}
561.guru-nolink-modal__close:hover{background:var(--border-strong,rgba(0,0,0,.12));color:var(--text-heading,#111827)}
562.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}
563.guru-nolink-modal__domain{font-weight:800;color:var(--accent,#b8860b);white-space:nowrap}
564.guru-nolink-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
565.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}
566.guru-nolink-modal__item:hover{border-color:var(--accent,#b8860b);box-shadow:var(--shadow-sm,0 1px 3px rgba(0,0,0,.06))}
567.guru-nolink-modal__rank{flex:0 0 auto;font-weight:800;font-size:.78rem;color:var(--text-light,#9ca3af)}
568.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}
569.guru-nolink-modal__logo img{max-width:100%;max-height:32px;width:auto;height:auto;object-fit:contain;display:block}
570.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}
571.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}
572.guru-nolink-modal__cta:hover{filter:brightness(1.08);transform:translateY(-1px)}
573.guru-nolink-modal__cta:active{transform:translateY(0)}
574.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)}
575.guru-nolink-modal__redirect-text{margin:0 0 .55rem;font-size:.84rem;line-height:1.4;text-align:center;color:var(--text-muted,#6b7280)}
576.guru-nolink-modal__count{font-weight:800;color:var(--accent,#b8860b)}
577.guru-nolink-modal__bar{height:6px;border-radius:99px;background:var(--bg-subtle,rgba(0,0,0,.08));overflow:hidden}
578.guru-nolink-modal__bar-fill{display:block;height:100%;width:0;border-radius:99px;background:var(--gold,#b8860b)}
579@media (prefers-reduced-motion:reduce){.guru-nolink-modal__bar-fill{transition:none!important}}
580/* Desktop: modal centrado en vez de bottom-sheet */
581@media (min-width:600px){
582	.guru-nolink-modal{align-items:center;padding:1rem}
583	.guru-nolink-modal__dialog{border-radius:20px;padding-bottom:1.5rem;animation:guru-nolink-in .22s ease}
584}
585@keyframes guru-nolink-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
586@media (prefers-reduced-motion:reduce){.guru-nolink-modal__dialog{animation:none}}
587/* Touch: el :hover queda pegado tras el tap, así que en touch mantenemos el
588   aspecto base (el :active da el feedback momentáneo). Los equivalentes para
589   los botones del resto del sitio viven en main.css, no acá: esta hoja se
590   sirve solo en las páginas que montan el modal. */
591@media (hover:none){
592	.guru-nolink-modal__cta:hover,.guru-nolink-modal__cta:focus{filter:none;transform:none}
593}
594
595/* Guru — Popups tipo modal (4 slots configurables) */
596.guru-popup,.guru-popup *{box-sizing:border-box}
597.guru-popup[hidden]{display:none}
598/* El lock va en <html> y no solo en <body>: critical.css le pone overflow-x:clip
599   al html, así que el viewport toma su overflow del html y el del body nunca
600   llega a propagarse. Con el lock solo en body la página seguía scrolleando
601   detrás del popup, hasta el fondo. overscroll-behavior corta además el
602   encadenamiento desde el diálogo, que es corto y llega a su tope enseguida. */
603html.guru-popup-open,body.guru-popup-open{overflow:hidden;overscroll-behavior:contain;scroll-behavior:auto}
604.guru-popup,.guru-popup__dialog{overscroll-behavior:contain}
605.guru-popup{position:fixed;inset:0;z-index:99992;display:flex;align-items:flex-end;justify-content:center}
606.guru-popup__overlay{position:absolute;inset:0;background:rgba(17,24,39,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
607.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)}
608@keyframes guru-popup-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
609.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}
610.guru-popup__close:hover{background:var(--border-strong,rgba(0,0,0,.12));color:var(--text-heading,#111827)}
611.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}
612.guru-popup__subtitle{margin:0 0 1rem;font-size:1.05rem;font-weight:600;line-height:1.35;color:var(--accent,#b8860b)}
613.guru-popup__text{margin:0 0 1.25rem;font-size:.95rem;line-height:1.55;color:var(--text-body,#374151)}
614.guru-popup__text p{margin:0 0 .75rem}
615.guru-popup__text p:last-child{margin-bottom:0}
616.guru-popup__custom{margin:0 0 1.25rem}
617.guru-popup__custom:last-child{margin-bottom:0}
618.guru-popup__custom canvas,.guru-popup__custom img,.guru-popup__custom svg{max-width:100%}
619.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}
620.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}
621.guru-popup__cta:active{transform:translateY(0);box-shadow:0 3px 10px rgba(0,0,0,.2)}
622.guru-popup__disclaimer{margin:1.15rem 0 0;font-size:.72rem;line-height:1.45;color:var(--text-muted,#6b7280)}
623/* Desktop: modal centrado en vez de bottom-sheet */
624@media (min-width:600px){
625	.guru-popup{align-items:center;padding:1rem}
626	.guru-popup__dialog{border-radius:20px;padding-bottom:1.75rem;animation:guru-popup-in .22s ease}
627	/* Popup ancho (la creatividad de imagen): el doble. En mobile no aplica,
628	   que ya ocupa todo el ancho; el max-width lo acota igual en pantallas
629	   angostas de escritorio. */
630	.guru-popup[data-wide="1"] .guru-popup__dialog{max-width:960px}
631	/* En un diálogo de 960 el CTA de 340 queda perdido. */
632	.guru-popup[data-wide="1"] .guru-popup__cta{max-width:420px}
633
634	/* Tragaperras: la palanca sobresale por el borde derecho del modal. Requiere
635	   overflow visible, y por spec no se puede tener un eje visible y el otro
636	   auto — así que el scroll se delega al contenedor. El .guru-popup ya emite
637	   data-kind, con eso alcanza para acotarlo a este popup. */
638	.guru-popup__dialog--slotmachine{overflow:visible;max-height:none}
639	.guru-popup[data-kind="slotmachine"]{align-items:flex-start;overflow-y:auto}
640	/* margin auto + flex-start: sin esto, el contenido más alto que el viewport
641	   se corta por arriba y no hay forma de scrollear hasta ahí. */
642	.guru-popup[data-kind="slotmachine"] .guru-popup__dialog{margin:auto}
643	.guru-popup__dialog--slotmachine .guru-slotmachine__lever{position:absolute;right:-52px;top:0;bottom:0;flex:none;width:44px}
644	.guru-popup__dialog--slotmachine .guru-slotmachine__lever-rod{height:64px}
645	.guru-popup__dialog--slotmachine .guru-slotmachine__lever-knob{width:32px;height:32px;top:-18px}
646	.guru-popup__dialog--slotmachine .guru-slotmachine__lever-base{width:36px;height:26px}
647}
648@keyframes guru-popup-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
649@media (prefers-reduced-motion:reduce){.guru-popup__dialog{animation:none}}
650@media (hover:none){
651	.guru-popup__cta:hover,.guru-popup__cta:focus{filter:none;transform:none}
652}
653
654/* Creatividad de imagen (Popup 5) — la imagen sangra hasta los bordes del
655   diálogo, así que el padding de arriba se va y el radio lo pone la imagen. */
656.guru-popup__dialog--image{padding-top:0}
657.guru-popup__image{display:block;margin:0 -1.35rem 1.25rem;border-radius:20px 20px 0 0;overflow:hidden;line-height:0}
658.guru-popup__image:last-child{margin-bottom:0}
659.guru-popup__image picture,.guru-popup__image img{display:block;width:100%;height:auto}
660a.guru-popup__image{transition:filter .15s}
661a.guru-popup__image:hover{filter:brightness(.94)}
662@media (hover:none){a.guru-popup__image:hover{filter:none}}
663/* Creatividad de iframe: un banner externo en vez de la imagen. Sangra igual,
664   y el alto lo pone el JS al abrir junto con el src — el creativo va a su
665   tamaño real y escalado desde la esquina para entrar en el diálogo, porque un
666   iframe no achica lo que trae adentro. El fondo tapa el hueco mientras el
667   banner viaja. */
668.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))}
669.guru-popup__frame:last-child{margin-bottom:0}
670.guru-popup__frame iframe{display:block;border:0;transform-origin:top left}
671/* Una creatividad distinta por caso: la que no corresponde a este ancho no se
672   muestra, y si es un iframe nunca recibe src, así que tampoco se descarga. */
673.guru-popup__creative--desktop{display:none}
674@media (min-width:600px){
675	.guru-popup__creative--desktop{display:block}
676	.guru-popup__creative--mobile{display:none}
677}
678/* Compliance de texto libre: legible y alineado a la izquierda como todo texto
679   legal. Sin scroll propio a propósito: un T&C largo estira el diálogo, que ya
680   scrollea, y así no queda texto legal escondido detrás de una barra chica. */
681.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}
682.guru-popup__compliance p{margin:0 0 .55rem}
683.guru-popup__compliance p:last-child{margin-bottom:0}
684.guru-popup__compliance a{color:inherit;text-decoration:underline}
685
686/* Ruleta de premios (Popup 1) */
687.guru-roulette{display:flex;flex-direction:column;align-items:center;gap:1.15rem;margin:0 0 1.25rem}
688.guru-roulette__stage{position:relative;margin:0 auto}
689/* Brillo/vidrio fijo sobre la rueda que gira (da profundidad y efecto) */
690.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%)}
691.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))}
692.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}
693.guru-roulette__sep{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:1}
694.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}
695.guru-roulette__hub-icon{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
696.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}
697.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}
698/* Logo que pasa por la flechita: solo se agranda (colores reales, sin tocar el color) */
699.guru-roulette__logo.is-active{z-index:3}
700.guru-roulette__logo.is-active img{transform:scale(1.3);filter:drop-shadow(0 3px 8px rgba(0,0,0,.32))}
701.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)}
702@media (prefers-reduced-motion:reduce){.guru-roulette__logo img{transition:none}}
703.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}
704.guru-roulette__spin:hov
704er{filter:brightness(.88) saturate(1.1);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.32)}
705.guru-roulette__spin:active{transform:translateY(0)}
706.guru-roulette__spin[disabled]{opacity:.55;cursor:default}
707.guru-roulette__spin[hidden]{display:none}
708.guru-roulette__result{display:flex;flex-direction:column;align-items:center;gap:.85rem;width:100%;animation:guru-roulette-pop .3s ease}
709.guru-roulette__result[hidden]{display:none}
710@keyframes guru-roulette-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
711.guru-roulette__win{margin:0;font-size:1.15rem;font-weight:700;line-height:1.35;color:var(--text-heading,#111827)}
712.guru-roulette__winname{color:var(--accent,#b8860b);font-weight:800}
713.guru-roulette__cta{margin:0}
714.guru-roulette__confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:9;}
715/* Latido sutil del botón GIRAR para invitar al giro */
716.guru-roulette__spin:not([disabled]){animation:guru-roulette-pulse 1.6s ease-in-out infinite}
717@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)}}
718@media (prefers-reduced-motion:reduce){.guru-roulette__wheel{transition:none}.guru-roulette__spin:not([disabled]){animation:none}}
719@media (hover:none){.guru-roulette__spin:hover{filter:none;transform:none}}
720
721/* Fondo del modal cuando hay ruleta: verde paño de casino */
722.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)}
723.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%)}
724.guru-popup__dialog--roulette>*{position:relative;z-index:1}
725/* El botón de cierre debe seguir absoluto arriba-derecha (la regla de arriba
726   le pisaba el position:absolute y lo mandaba al flujo/arriba-izquierda). */
727.guru-popup__dialog--roulette .guru-popup__close{position:absolute;top:.6rem;right:.7rem;z-index:11}
728.guru-popup__dialog--roulette .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.3)}
729.guru-popup__dialog--roulette .guru-popup__subtitle{color:#bbf7d0}
730.guru-popup__dialog--roulette .guru-popup__text{color:#dcfce7}
731.guru-popup__dialog--roulette .guru-popup__disclaimer{color:rgba(220,252,231,.72)}
732.guru-popup__dialog--roulette .guru-popup__close{background:rgba(255,255,255,.16);color:#fff;box-shadow:none}
733.guru-popup__dialog--roulette .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff}
734.guru-popup__dialog--roulette .guru-roulette__win{color:#fff}
735.guru-popup__dialog--roulette .guru-roulette__winname{color:#fde68a}
736@media (min-width:600px){.guru-popup__dialog--roulette{box-shadow:0 24px 60px rgba(11,58,34,.6)}}
737
738/* Fondo del modal cuando hay raspadita (vibe premium, distinto a la ruleta) */
739.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)}
740.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%)}
741.guru-popup__dialog--scratch>*{position:relative;z-index:1}
742.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}
743.guru-popup__dialog--scratch .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff}
744.guru-popup__dialog--scratch .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.3)}
745.guru-popup__dialog--scratch .guru-popup__subtitle{color:#bfdbfe}
746.guru-popup__dialog--scratch .guru-popup__text{color:#dbe9fb}
747.guru-popup__dialog--scratch .guru-popup__disclaimer{color:rgba(219,233,251,.72)}
748
749/* Raspadita */
750.guru-scratch{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:0 0 1.25rem}
751.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}
752.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)}
753.guru-scratch__label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#92700f}
754.guru-scratch__code{font-size:1.55rem;font-weight:800;letter-spacing:.06em;color:#1f2937;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
755/* Copiar: pill compacto DENTRO del recuadro del código (no agranda el modal) */
756.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}
757.guru-scratch__copy:hover{background:rgba(255,255,255,.85);border-color:rgba(120,90,10,.85)}
758.guru-scratch__copy.is-copied{background:#16a34a;border-color:#16a34a;border-style:solid;color:#fff}
759.guru-scratch__copy-ico{flex:0 0 auto}
760.guru-scratch__cover{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;z-index:1}
761.guru-scratch__cover:active{cursor:grabbing}
762/* Brillo diagonal animado que invita a raspar (solo sin revelar) */
763.guru-scratch__shine{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:14px;display:none}
764.guru-scratch.is-scratch:not(.is-revealed) .guru-scratch__shine{display:block}
765.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}
766@keyframes guru-scratch-shine{0%{left:-70%}55%,100%{left:130%}}
767@media (prefers-reduced-motion:reduce){.guru-scratch__shine{display:none!important}}
768.guru-scratch__actions{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease}
769.guru-scratch__actions[hidden]{display:none}
770.guru-scratch__cta{margin:0}
771@media (prefers-reduced-motion:reduce){.guru-scratch__actions{animation:none}}
772
773/* ── Tragaperras (Popup 3) ─────────────────────────────────────────────── */
774/* Fondo del modal — púrpura/magenta arcade. Misma estructura que las variantes
775   --roulette (verde) y --scratch (azul noche) de más arriba. */
776.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)}
777.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%)}
778.guru-popup__dialog--slotmachine>*{position:relative;z-index:1}
779.guru-popup__dialog--slotmachine .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
780.guru-popup__dialog--slotmachine .guru-popup__subtitle{color:#f0abfc}
781.guru-popup__dialog--slotmachine .guru-popup__text{color:#ede9fe}
782.guru-popup__dialog--slotmachine .guru-popup__disclaimer{color:rgba(237,233,254,.72)}
783.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}
784.guru-popup__dialog--slotmachine .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff}
785.guru-popup__dialog--slotmachine .guru-slotmachine__win{color:#fff}
786.guru-popup__dialog--slotmachine .guru-slotmachine__winname{color:#fde68a}
787@media (min-width:600px){.guru-popup__dialog--slotmachine{box-shadow:0 24px 60px rgba(46,16,101,.65)}}
788
789.guru-slotmachine{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin:0 0 1.25rem}
790/* Gabinete + palanca, como una sola pieza centrada */
791.guru-slotmachine__machine{position:relative;display:flex;align-items:stretch;justify-content:center;gap:.5rem;width:100%;max-width:440px;margin:0 auto}
792
793.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)}
794
795/* Cartel superior con bombitas */
796.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)}
797.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}
798.guru-slotmachine__bulb:nth-child(2n){animation-delay:.18s}
799.guru-slotmachine__bulb:nth-child(3n){animation-delay:.36s}
800.guru-slotmachine__bulb:nth-child(5n){animation-delay:.54s}
801@keyframes guru-slot-bulb{0%,100%{opacity:1}50%{opacity:.28}}
802
803/* Ventana de rodillos */
804.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)}
805.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)}
806.guru-slotmachine__strip{display:flex;flex-direction:column;will-change:transform}
807.guru-slotmachine__cell{display:flex;align-items:center;justify-content:center;padding:.4rem;box-sizing:border-box}
808.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}
809.guru-slotmachine.is-won .guru-slotmachine__cell img{filter:none;opacity:1;transform:scale(1.04)}
810.guru-slotmachine__cell-fallback{font-size:.8rem;font-weight:800;letter-spacing:.04em;color:#334155;text-transform:uppercase}
811/* Línea de pago: dentro de la ventana, así el 50% es el centro real */
812.guru-slotmachine__payline{position:absolute;
812left:.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}
813.guru-slotmachine.is-won .guru-slotmachine__payline{background:linear-gradient(90deg,transparent,#22c55e,#22c55e,transparent);opacity:1}
814
815/* Bandeja de monedas */
816.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)}
817
818/* Palanca */
819.guru-slotmachine__lever{position:relative;flex:0 0 34px;width:34px;cursor:pointer;-webkit-tap-highlight-color:transparent}
820/* Todo en % de la altura del gabinete (la palanca estira con él), así el pivote
821   queda siempre a la altura de los rodillos sin depender de píxeles fijos. */
822.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)}
823.guru-slotmachine__lever-rod{display:block;width:8px;height:52px;margin:0 auto;border-radius:5px;background:linear-gradient(90deg,#94a3b8,#f1f5f9 45%,#64748b)}
824.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)}
825.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)}
826/* Tornillo del pivote */
827.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)}
828.guru-slotmachine.is-pulled .guru-slotmachine__lever-arm{transform:translateX(-50%) translateY(30px)}
829.guru-slotmachine.is-won .guru-slotmachine__lever{cursor:default}
830
831.guru-slotmachine.is-won .guru-slotmachine__msg{display:none}
832.guru-slotmachine__msg{margin:0;min-height:1.2em;font-size:.9rem;font-weight:700;color:#fde68a;text-align:center}
833.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}
834.guru-slotmachine__spin:hover:not(:disabled){filter:brightness(1.07)}
835.guru-slotmachine__spin:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #92400e,0 4px 10px rgba(0,0,0,.3)}
836.guru-slotmachine__spin:disabled{opacity:.55;cursor:default}
837.guru-slotmachine__spin[hidden]{display:none}
838.guru-slotmachine__result{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease}
839.guru-slotmachine__result[hidden]{display:none}
840.guru-slotmachine__win{margin:0;font-size:1.02rem;font-weight:700;text-align:center}
841.guru-slotmachine__winname{color:#fde68a}
842.guru-slotmachine__cta{margin:0}
843@media (max-width:400px){
844	.guru-slotmachine__lever{flex:0 0 28px;width:28px}
845	.guru-slotmachine__lever-rod{height:44px}
846	.guru-slotmachine__lever-knob{width:22px;height:22px;top:-13px}
847	.guru-slotmachine__spin{min-width:100%}
848}
849@media (prefers-reduced-motion:reduce){
850	.guru-slotmachine__result{animation:none}
851	.guru-slotmachine__bulb{animation:none}
852	.guru-slotmachine__lever-arm{transition:none}
853}
854
855/* Tragaperras de frutas (Popup 4) — máquina de video: marco dorado sobre violeta,
856   cinco rodillos y barra de controles abajo. Sin palanca. */
857.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)}
858.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%)}
859.guru-popup__dialog--fruits>*{position:relative;z-index:1}
860.guru-popup__dialog--fruits .guru-popup__title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4)}
861.guru-popup__dialog--fruits .guru-popup__subtitle{color:#fcd34d}
862.guru-popup__dialog--fruits .guru-popup__text{color:#e9e2ff}
863.guru-popup__dialog--fruits .guru-popup__disclaimer{color:rgba(233,226,255,.7)}
864.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}
865.guru-popup__dialog--fruits .guru-popup__close:hover{background:rgba(255,255,255,.3);color:#fff}
866@media (min-width:600px){.guru-popup__dialog--fruits{box-shadow:0 24px 60px rgba(27,17,64,.68)}}
867
868/* --guru-cell: alto de cada casilla. Es la medida madre de la máquina (la
869   ventana son 3 filas) y se achica en pantallas bajas para que el popup entre
870   sin scroll. El JS la mide antes de cada tirada para frenar en la línea. */
871.guru-fruits{--guru-cell:74px;display:flex;flex-direction:column;align-items:center;gap:.8rem;margin:0 0 1.1rem}
872.guru-fruits__sprite{position:absolute;width:0;height:0;overflow:hidden}
873.guru-fruits__machine{position:relative;width:100%;max-width:460px;margin:0 auto .35rem;padding-top:13px}
874/* Con el premio, el anillo de luz se sale 14px del marco y comía el espacio
875   hasta el texto de abajo: el resplandor quedaba pegado al mensaje. */
876.guru-fruits.is-won .guru-fruits__machine{margin-bottom:1.4rem}
877
878/* Cartel: chapa dorada apoyada sobre el borde superior del marco */
879.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)}
880.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}
881.guru-fruits__bulbs{display:flex;align-items:center;gap:.24rem}
882.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}
883.guru-fruits__bulb:nth-child(2n){animation-delay:.18s}
884.guru-fruits__bulb:nth-child(3n){animation-delay:.36s}
885@keyframes guru-fruits-bulb{0%,100%{opacity:1}50%{opacity:.25}}
886
887/* Marco dorado */
888.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)}
889/* Remaches de las esquinas */
890/* Una capa por remache: el número de posiciones lo manda background-image, así
891   que con un solo gradiente las otras tres posiciones se ignoran. */
892.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}
893
894/* Premio: la máquina queda encendida con un halo fijo, y arriba de eso corre la
895   luz del anillo. El halo va en el box-shadow del propio marco (no en una capa
896   encima) porque el botón de giro vive adentro del gabinete. */
897.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)}
898/* Las bombitas del cartel titilan más rápido con el premio */
899.guru-fruits.is-won .guru-fruits__bulb{animation-duration:.4s}
900
901/* Anillo de luz que da la vuelta al marco.
902   Adentro gira un cuadrado con un gajo de luz (conic-gradient); el `overflow`
903   del anillo lo recorta a la banda que rodea al gabinete y el gabinete, opaco,
904   tapa el resto. Se anima el `transform` del cuadrado y no el ángulo del
905   gradiente: interpolar un ángulo dentro de un gradiente necesita @property,
906   que no está en todos los navegadores donde sí corre esto. */
907.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}
908.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}
909.guru-fruits.is-won .guru-fruits__halo{opacity:1}
910.guru-fruits.is-won .guru-fruits__halo::before{animation:guru-fruits-orbit 2.2s linear infinite}
911@keyframes guru-fruits-orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
912
913/* Ventana de rodillos: 3 filas visibles, la del medio es la que paga */
914.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)}
915.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)}
916/* Sombras arriba y abajo: dan la curva del rodillo y hacen que solo la fila
917   del medio se lea nítida, como en una máquina real. */
918.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))}
919.guru-fruits__strip{display:flex;flex-direction:column;will-change:transform}
920.guru-fruits__cell{height:var(--guru-cell);display:flex;align-items:center;justify-content:center;padding:.3rem;box-sizing:border-box}
921.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))}
922
923/* Banda de la fila que paga: apagada mientras se juega, encendida con el premio
924   (el alto lo pone el PHP, que es quien sabe cuánto mide cada casilla). */
925.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}
926.guru-fruits.is-won .guru-fruits__winline{opacity:1;animation:guru-fruits-band 1.1s ease-in-out infinite}
927@keyframes guru-fruits-band{0%,100%{opacity:1}50%{opacity:.55}}
928
929/* Línea de pago: adentro de la ventana, así el 50% es el centro real */
930.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}
931.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}
932.guru-fruits__payline::before{left:-7px;border-left:8px solid #fbbf24}
933.guru-fruits__payline::after{right:-7px;border-right:8px solid #fbbf24}
934.guru-fruits.is-spinning .guru-fruits__payline{opacity:.4}
935.guru-fruits.is-won .guru-fruits__payline{background:linear-gradient(90deg,transparent,#22c55e 14%,#bbf7d0 50%,#22c55e 86%,transparent);opacity:1}
936.guru-fruits.is-won .guru-fruits__payline::before{border-left-color:#22c55e}
937.guru-fruits.is-won .guru-fruits__payline::after{border-right-color:#22c55e}
938/* Brillo del vidrio, fijo sobre los rodillos que giran */
939.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%)}
940
941/* Barra de controles: marcadores tipo display + botón de giro */
942.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)}
943.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)}
944.guru-fruits__meter-label{font-size:.54rem;font-style:normal;font-weight:800;letter-spacing:.1em;color:rgba(253,230,138,.72)}
945.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)}
946.guru-fruits__meter--prize .guru-fruits__meter-value{color:#4ade80;text-shadow:0 0 9px rgba(74,222,128,.55)}
947.guru-fruits.is-won .guru-fruits__meter--prize{border-color:rgba(74,222,128,.75)}
948.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}
949.guru-fruits__spin:hover:not(:disabled){filter:brightness(1.08)}
950.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)}
951.guru-fruits__spin:disabled{opacity:.5;cursor:default}
952.guru-fruits__spin[hidden]{display:none}
953
954.guru-fruits__msg{margin:0;min-height:1.2em;font-size:.9rem;font-weight:700;color:#fcd34d;text-align:center}
955.guru-fruits.is-won .guru-fruits__msg{display:none}
956.guru-fruits__result{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;animation:guru-roulette-pop .3s ease}
957.guru-fruits__result[hidden]{display:none}
958.guru-fruits__win{margin:0;font-size:1.02rem;font-weight:700;line-height:1.4;text-align:center;color:#fff}
959.guru-fruits__winname{color:#fcd34d}
960.guru-fruits__winamount{color:#4ade80}
961.guru-fruits__cta{margin:0}
962.guru-fruits__note{margin:.1rem 0 0;font-size:.68rem;line-height:1.4;color:rgba(233,226,255,.6);max-width:340px}
963@media (max-width:420px){
964	/* El botón no entra en la misma fila que los tres marcadores: pasa abajo,
965	   a todo el ancho de la barra. */
966	.guru-fruits__spin{flex:1 0 100%;order:4;padding:.5rem .9rem}
967	.guru-fruits__plate-text{font-size:.76rem;letter-spacing:.1em}
968	.guru-fruits__meter-value{font-size:.9rem}
969	.guru-fruits__icon{width:82%}
970}
971
972/* Pantallas bajas (notebooks, ventanas chicas): el diálogo tiene max-height:90vh,
973   así que si la máquina no achica, el popup queda con scroll interno. */
974@media (max-height:820px){
975	.guru-fruits{--guru-cell:62px;gap:.6rem;margin-bottom:.85rem}
976	.guru-fruits.is-won .guru-fruits__machine{margin-bottom:1rem}
977	.guru-popup__dialog--fruits{padding-top:1.4rem}
978	.guru-popup__dialog--fruits .guru-popup__title{font-size:1.25rem;margin-bottom:.35rem}
979	.guru-popup__dialog--fruits .guru-popup__subtitle{font-size:.95rem;margin-bottom:.7rem}
980	.guru-popup__dialog--fruits .guru-popup__disclaimer{margin-top:.85rem}
981	.guru-fruits__note{font-size:.64rem}
982	.guru-fruits__result{gap:.55rem}
983	.guru-fruits__win{font-size:.95rem}
984}
985@media (max-height:680px){
986	.guru-fruits{--guru-cell:52px;gap:.5rem}
987	.guru-fruits.is-won .guru-fruits__machine{margin-bottom:.75rem}
988	.guru-popup__dialog--fruits .guru-popup__title{font-size:1.1rem}
989	.guru-popup__dialog--fruits .guru-popup__subtitle{font-size:.88rem;margin-bottom:.55rem}
990	.guru-popup__dialog--fruits .guru-popup__cta{min-height:42px;padding:.6rem 1.5rem}
991	.guru-fruits__plate-text{font-size:.78rem}
992	.guru-fruits__meter-value{font-size:.92rem}
993	.guru-fruits__msg{font-size:.82rem}
994}
995@media (prefers-reduced-motion:reduce){
996	.guru-fruits__result{animation:none}
997	.guru-fruits__bulb{animation:none}
998	.guru-fruits.is-won .guru-fruits__winline{animation:none}
999	/* El resplandor del premio queda, pero sin la luz que gira: en su lugar, un
1000	   halo fijo un poco más fuerte, así el premio sigue notándose. */
1001	.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)}
1002	.guru-fruits.is-won .guru-fruits__halo{opacity:0}
1002
1003	.guru-fruits.is-won .guru-fruits__halo::before{animation:none}
1004}
1005
1006/* Guru — Controles de navegación en modo app (PWA standalone) */
1007
1008/* Alto de la barra, con la zona segura del gesto de home de iOS sumada. */
1009:root{--guru-appnav-h:calc(3.1rem + env(safe-area-inset-bottom,0px))}
1010
1011/* Fuera de modo app la barra no existe y --guru-bottom-inset queda sin
1012   definir, así que cada regla que la usa cae en su fallback de 0px y nada se
1013   mueve. Dos vías para entrar en modo app: la media query (Android, escritorio,
1014   iOS 16.4+) y la clase que pone el JS, que es la única en el iOS viejo
1015   (navigator.standalone) y la que usa el modo de prueba ?guru-app=1.
1016
1017   Solo `standalone`: `fullscreen` también matchea con el navegador común en
1018   pantalla completa (F11), y ahí la barra salía en desktop sin que la web
1019   estuviera instalada. Nuestro manifest declara display:standalone, así que
1020   la app instalada nunca corre en fullscreen. */
1021.guru-appnav{display:none}
1022@media (display-mode:standalone){
1023	:root{--guru-bottom-inset:var(--guru-appnav-h)}
1024	.guru-appnav{display:flex}
1025	/* El ícono de menú pasa a la barra: acá se oculta el de la cabecera. */
1026	.header-top__left .menu-toggle{display:none}
1027}
1028html.guru-app{--guru-bottom-inset:var(--guru-appnav-h)}
1029html.guru-app .guru-appnav{display:flex}
1030html.guru-app .header-top__left .menu-toggle{display:none}
1031
1032/* El inset le reserva el lugar a la barra al final del documento: sin esto la
1033   barra tapa lo último del footer. */
1034body{padding-bottom:var(--guru-bottom-inset,0px)}
1035
1036/* z-index 9990: arriba del panel del menú mobile (999) y de sus submenús
1037   (1001), para que la navegación siga a mano con el menú abierto; abajo de la
1038   burbuja del chat (9998) y de los modales (99990/99992), que igual no la
1039   pisan porque se corren por el inset o la esconden. */
1040.guru-appnav{
1041	position:fixed;left:0;right:0;bottom:0;z-index:9990;
1042	align-items:stretch;justify-content:space-around;
1043	height:var(--guru-appnav-h);
1044	padding:0 .5rem env(safe-area-inset-bottom,0px);
1045	/* El color principal del sitio. `--accent` lo define el Customizer por
1046	   sitio, así que la barra toma el de cada uno sin configurar nada. */
1047	background:var(--accent,#b8860b);
1048	border-top:1px solid rgba(255,255,255,.18);
1049	box-shadow:0 -2px 14px rgba(0,0,0,.2);
1050	transition:transform .25s ease;
1051	/* Capa de composición propia: en WebKit es lo que evita que una barra fija
1052	   se despegue y viaje con el scroll. Por eso los dos estados van en
1053	   translate3d y no en translateY, para no pelearse con esto. */
1054	transform:translate3d(0,0,0);
1055	will-change:transform;
1056}
1057.guru-appnav__btn{
1058	flex:1 1 0;max-width:8rem;min-width:0;
1059	display:flex;align-items:center;justify-content:center;
1060	/* `--guru-appnav-fg` lo calcula app-nav.php según el color del sitio: con
1061	   un acento claro el blanco da 1,4:1 y los íconos se pierden. Solo se
1062	   imprime cuando no es blanco, así que acá el fallback alcanza. */
1063	padding:0;border:0;background:none;color:var(--guru-appnav-fg,#fff);
1064	cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;
1065	transition:color .15s,transform .12s,opacity .15s;
1066}
1067.guru-appnav__btn svg{width:23px;height:23px;flex:none}
1068/* Sobre el fondo de acento el hover no puede ser el acento mismo: se marca
1069   bajando la opacidad, que funciona con cualquier color de sitio. */
1070.guru-appnav__btn:hover,.guru-appnav__btn:focus-visible{color:var(--guru-appnav-fg,#fff);opacity:.7}
1071.guru-appnav__btn:active{transform:scale(.9)}
1072.guru-appnav__btn[aria-disabled="true"]{opacity:.3;pointer-events:none}
1073
1074/* Menú: en modo app el ícono de la cabecera se oculta para no tenerlo dos
1075   veces, y el de la barra reusa el <span class="hamburger"> del header, así
1076   hereda el dibujo y la animación a X de critical.css. Solo hay que centrarlo
1077   (allá va con left:11px dentro de un botón de 44px) y repetir el morph, que
1078   está atado a la clase .menu-toggle. */
1079.guru-appnav__menu{position:relative}
1080.guru-appnav__menu .hamburger{left:calc(50% - 11px)}
1081/* El hamburguesa del header pinta sus barras con --text-body, que sobre el
1082   fondo de acento no se ve. */
1083.guru-appnav__menu .hamburger,
1084.guru-appnav__menu .hamburger::before,
1085.guru-appnav__menu .hamburger::after{background:var(--guru-appnav-fg,#fff)}
1086.guru-appnav__menu[aria-expanded="true"] .hamburger{background:transparent}
1087.guru-appnav__menu[aria-expanded="true"] .hamburger::before{top:0;transform:rotate(45deg)}
1088.guru-appnav__menu[aria-expanded="true"] .hamburger::after{top:0;transform:rotate(-45deg)}
1089
1090/* Con un popup o el modal "casa sin link" abiertos la barra se va: el diálogo
1091   es una hoja pegada abajo, justo donde vive ella, y mientras hay un modal la
1092   navegación de atrás no debería estar a mano. */
1093html.guru-popup-open .guru-appnav,html.guru-nolink-open .guru-appnav{transform:translate3d(0,110%,0);pointer-events:none}
1094
1095@media (prefers-reduced-motion:reduce){
1096	.guru-appnav,.guru-appnav__btn{transition:none}
1097	.guru-appnav__btn:active{transform:none}
1098}
1099
1100/* Barra superior en modo app: el logo va centrado y más grande.
1101   Se centra con position:absolute y no repartiendo el flex, porque los
1102   costados no miden igual —a la izquierda el hamburguesa, a la derecha el CTA,
1103   que además puede no estar— y con flex el logo quedaría corrido. El
1104   min-height del inner reemplaza la altura que el logo aportaba al flujo. */
1105html.guru-app .header-top__inner{position:relative;min-height:64px}
1106/* left/right en 0 le dan un ancho definido al wrapper. El wrapper cubre toda la
1107   barra pero es transparente al tap: solo su contenido recibe el toque, así el
1108   hamburguesa y el CTA de los costados siguen vivos. */
1109html.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}
1110html.guru-app .site-branding>*{pointer-events:auto}
1111/* El ancho va explícito, como en el resto del tema (critical.css le pone
1112   140/180/250px según el ancho de pantalla). Con `width:auto` la imagen queda
1113   sin ancho definido y el `max-width:100%` que hereda de `img{}` se resuelve
1114   contra un <a> que a su vez se mide por su contenido: la dependencia es
1115   circular y el navegador la colapsa a 0×0. Con logos en SVG, siempre. */
1116html.guru-app .site-branding img,
1117html.guru-app .site-branding .custom-logo{width:260px;max-height:60px}
1118/* El título en texto, para los sitios sin logo cargado. */
1119html.guru-app .site-branding .site-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 8rem)}
1120@media(max-width:768px){
1121	html.guru-app .header-top__inner{min-height:60px}
1122	html.guru-app .site-branding img,
1123	html.guru-app .site-branding .custom-logo{width:210px;max-height:52px}
1124}
1125@media(max-width:480px){
1126	html.guru-app .site-branding img,
1127	html.guru-app .site-branding .custom-logo{width:180px;max-height:48px}
1128}
1129
1130/*
1131 * Guru — Banner de Telegram (.guru-tg).
1132 *
1133 * Banner horizontal inyectado al final del post: cocarda "Telegram" con logo,
1134 * título destacado, bajada, handle del canal (@) y botón celeste (--tg-c).
1135 * Aislado del cascade de .entry-content vía `all: revert` en la raíz y
1136 * selectores duplicados `.entry-content ...`.
1137 */
1138
1139.guru-tg,
1140.entry-content .guru-tg {
1141  all: revert;
1142  position: relative;
1143  display: block;
1144  max-width: 640px;
1145  margin: 2.5rem auto;
1146  padding: 1.5rem 1.5rem 1.4rem;
1147  background: linear-gradient(135deg, rgba(var(--tg-c-rgb, 34, 158, 217), .07) 0%, #ffffff 60%);
1148  border: 1px solid #e2e8f0;
1149  border-radius: 16px;
1150  box-shadow: 0 12px 34px -16px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .05);
1151  color: #14161f;
1152  font-family: inherit;
1153  line-height: 1.45;
1154  box-sizing: border-box;
1155  isolation: isolate;
1156  overflow: hidden;
1157}
1158
1159.guru-tg *,
1160.guru-tg *::before,
1161.guru-tg *::after {
1162  box-sizing: border-box;
1163}
1164
1165/* Fila flex: la maqueta vive en el inner, no en el root, para que ningún
1166   bloque ajeno inyectado pueda volverse un item flex del banner. */
1167.guru-tg__inner {
1168  display: flex;
1169  flex-wrap: wrap;
1170  align-items: center;
1171  gap: 1rem 1.25rem;
1172  margin-top: 1.1rem;
1173}
1174
1175/* Cocarda "Telegram" arriba a la izquierda. */
1176.guru-tg__badge {
1177  position: absolute;
1178  top: 0;
1179  left: 1.25rem;
1180  display: inline-flex;
1181  align-items: center;
1182  gap: .35rem;
1183  padding: .3rem .7rem;
1184  background: var(--tg-c, #229ED9);
1185  color: #ffffff;
1186  border-radius: 0 0 10px 10px;
1187  font-size: .72rem;
1188  font-weight: 800;
1189  text-transform: uppercase;
1190  letter-spacing: .06em;
1191}
1192
1193.guru-tg__badge .guru-tg__logo {
1194  width: 15px;
1195  height: 15px;
1196}
1197
1198.guru-tg__body {
1199  flex: 1 1 260px;
1200  min-width: 0;
1201}
1202
1203.guru-tg__title,
1204.entry-content .guru-tg__title {
1205  display: block;
1206  margin: 0 0 .3rem;
1207  font-size: 1.3rem;
1208  line-height: 1.2;
1209  font-weight: 800;
1210  letter-spacing: -.01em;
1211  color: #14161f;
1212}
1213
1214.guru-tg__subtitle,
1215.entry-content .guru-tg__subtitle {
1216  display: block;
1217  margin: 0 0 .4rem;
1218  font-size: .98rem;
1219  font-weight: 500;
1220  color: #55606f;
1221}
1222
1223.guru-tg__channel {
1224  display: inline-block;
1225  font-size: .92rem;
1226  font-weight: 700;
1227  color: var(--tg-c, #229ED9);
1228}
1229
1230/* Botón celeste (Telegram). */
1231.guru-tg__cta,
1232.entry-content .guru-tg__cta {
1233  display: inline-flex;
1234  align-items: center;
1235  justify-content: center;
1236  gap: .5rem;
1237  flex: 0 0 auto;
1238  padding: .85rem 1.6rem;
1239  background: var(--tg-c, #229ED9);
1240  color: #ffffff;
1241  border: 0;
1242  border-radius: 10px;
1243  font-size: 1rem;
1244  font-weight: 800;
1245  text-transform: uppercase;
1246  letter-spacing: .03em;
1247  text-decoration: none;
1248  white-space: nowrap;
1249  box-shadow: 0 8px 20px -8px rgba(var(--tg-c-rgb, 34, 158, 217), .6);
1250  transition: transform .15s ease, filter .15s ease;
1251}
1252
1253.guru-tg__cta .guru-tg__logo {
1254  width: 18px;
1255  height: 18px;
1256}
1257
1258.guru-tg__cta:hover,
1259.guru-tg__cta:focus {
1260  transform: translateY(-1px);
1261  filter: brightness(1.06);
1262  color: #ffffff;
1263}
1264
1265@media (max-width: 540px) {
1266  .guru-tg { padding: 1.35rem 1.15rem 1.2rem; }
1267  .guru-tg__body { flex-basis: 100%; }
1268  .guru-tg__cta { width: 100%; }
1269  .guru-tg__title { font-size: 1.18rem; }
1270}
1271
1272@media (prefers-reduced-motion: reduce) {
1273  .guru-tg__cta { transition: none; }
1274}
1275
1276/*
1277 * Guru — Banner de newsletter del sidebar (.guru-sn).
1278 *
1279 * Banner vertical con captura de email (Brevo) para la barra lateral.
1280 * Temática de apuestas deportivas. Colores y textos se configuran desde el
1281 * Customizer (sección "Newsletter sidebar"); llegan como variables inline:
1282 *   --sn-bg        fondo del banner
1283 *   --sn-text      color de texto base
1284 *   --sn-accent    color de acento (borde superior, botón, foco)
1285 *   --sn-accent-rgb versión rgb del acento para rgba()
1286 */
1287
1288.guru-sn {
1289  position: relative;
1290  display: flex;
1291  flex-direction: column;
1292  gap: .7rem;
1293  width: 100%;
1294  margin: 1rem 0 1.5rem;
1295  padding: 1.4rem 1.15rem 1.25rem;
1296  background: var(--sn-bg, #ffffff);
1297  border: 1px solid rgba(var(--sn-accent-rgb, 22, 163, 74), .28);
1298  border-top: 4px solid var(--sn-accent, #16a34a);
1299  border-radius: 14px;
1300  box-shadow: 0 10px 28px -14px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .05);
1301  color: var(--sn-text, #1a1a2e);
1302  text-align: center;
1303  font-family: inherit;
1304  line-height: 1.45;
1305  box-sizing: border-box;
1306  overflow: hidden;
1307}
1308
1309.guru-sn *,
1310.guru-sn *::before,
1311.guru-sn *::after {
1312  box-sizing: border-box;
1313}
1314
1315/* Glow decorativo con el tono de acento. */
1316.guru-sn::before {
1317  content: '';
1318  position: absolute;
1319  top: -45px;
1320  right: -45px;
1321  width: 150px;
1322  height: 150px;
1323  background: radial-gradient(circle, rgba(var(--sn-accent-rgb, 22, 163, 74), .14) 0%, transparent 70%);
1324  pointer-events: none;
1325  z-index: 0;
1326}
1327
1328.guru-sn > * {
1329  position: relative;
1330  z-index: 1;
1331}
1332
1333.guru-sn__eyebrow {
1334  align-self: center;
1335  display: inline-flex;
1336  align-items: center;
1337  gap: .4rem;
1338  font-size: .68rem;
1339  font-weight: 800;
1340  letter-spacing: .1em;
1341  text-transform: uppercase;
1342  color: var(--sn-accent, #16a34a);
1343}
1344
1345.guru-sn__eyebrow-icon {
1346  width: 15px;
1347  height: 15px;
1348  flex: 0 0 auto;
1349}
1350
1351.guru-sn__title {
1352  margin: 0;
1353  font-size: 1.3rem;
1354  line-height: 1.2;
1355  font-weight: 800;
1356  letter-spacing: -.01em;
1357  color: var(--sn-text, #14161f);
1358}
1359
1360.guru-sn__subtitle {
1361  margin: 0;
1362  font-size: .92rem;
1363  font-weight: 500;
1364  color: var(--sn-text, #55606f);
1365  opacity: .82;
1366}
1367
1368.guru-sn__form {
1369  display: flex;
1370  flex-direction: column;
1371  gap: .55rem;
1372  margin: .2rem 0 0;
1373}
1374
1375/* Honeypot anti-bots — fuera de pantalla, no lo ve el usuario. */
1376.guru-sn__hp {
1377  position: absolute;
1378  left: -9999px;
1379  width: 1px;
1380  height: 1px;
1381  overflow: hidden;
1382}
1383
1384.guru-sn__input {
1385  width: 100%;
1386  padding: .75rem .9rem;
1387  background: #ffffff;
1388  border: 1px solid rgba(0, 0, 0, .16);
1389  border-radius: 10px;
1390  color: #14161f;
1391  font-family: inherit;
1392  font-size: .95rem;
1393  line-height: 1.3;
1394  transition: border-color .15s ease, box-shadow .15s ease;
1395}
1396
1397.guru-sn__input::placeholder {
1398  color: #9aa2ae;
1399}
1400
1401.guru-sn__input:focus {
1402  outline: none;
1403  border-color: var(--sn-accent, #16a34a);
1404  box-shadow: 0 0 0 3px rgba(var(--sn-accent-rgb, 22, 163, 74), .18);
1405}
1406
1407.guru-sn__input:disabled {
1408  background: #f3f4f6;
1409  color: #6b7280;
1410  cursor: default;
1411  opacity: .8;
1412}
1413
1414/* El atributo hidden debe ganarle al display de las clases de abajo. */
1415.guru-sn__button[hidden],
1416.guru-sn__form[hidden] {
1417  display: none;
1418}
1419
1420.guru-sn__button {
1421  display: block;
1422  width: 100%;
1423  padding: .8rem 1.2rem;
1424  background: var(--sn-accent, #16a34a);
1425  color: #ffffff;
1426  border: 0;
1427  border-radius: 10px;
1428  font-family: inherit;
1429  font-size: .95rem;
1430  font-weight: 800;
1431  text-transform: uppercase;
1432  letter-spacing: .04em;
1433  cursor: pointer;
1434  box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .35);
1435  transition: transform .15s ease, filter .15s ease;
1436}
1437
1438.guru-sn__button:hover,
1439.guru-sn__button:focus-visible {
1440  transform: translateY(-1px);
1441  filter: brightness(1.06);
1442}
1443
1444.guru-sn__button:active {
1445  transform: translateY(1px);
1446}
1447
1448.guru-sn__button[disabled] {
1449  opacity: .65;
1450  cursor: default;
1451  transform: none;
1452  filter: none;
1453}
1454
1455/* Mensaje de feedback (éxito / error) tras el submit. */
1456.guru-sn__message {
1457  margin: .15rem 0 0;
1458  font-size: .85rem;
1459  font-weight: 600;
1460  line-height: 1.35;
1461}
1462
1463.guru-sn__message[hidden] {
1464  display: none;
1465}
1466
1467.guru-sn__message.is-success {
1468  color: #15803d;
1469}
1470
1471.guru-sn__message.is-error {
1472  color: #dc2626;
1473}
1474
1475.guru-sn__disclaimer {
1476  margin: .4rem 0 0;
1477  font-size: .66rem;
1478  line-height: 1.4;
1479  color: var(--sn-text, #8a929e);
1480  opacity: .68;
1481  font-weight: 400;
1482}
1483
1484@media (max-width: 480px) {
1485  .guru-sn { padding: 1.25rem 1rem 1.1rem; }
1486  .guru-sn__title { font-size: 1.2rem; }
1487}
1488
1489@media (prefers-reduced-motion: reduce) {
1490  .guru-sn__input,
1491  .guru-sn__button { transition: none; }
1492}
1493
1494/*# sourceURL=guru-style-inline-css */
1495</style>
1496<link rel="https://api.w.org/" href="https://apostar.com.ec/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://apostar.com.ec/wp-json/wp/v2/pages/14234" />
1496<script async id="google_gtagjs" src="https://apostar.com.ec/?local_ga_js=4bcaf11ac9f74fde3c2d05d826b77c4f"></script>
vendor: 1 bytes, line 1496
1496
1497<script id="google_gtagjs-inline">
vendor: 124 bytes, line 1498
1498window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
1498G-XH8BYWFRQX
vendor: 9 bytes, line 1498
1498', {} );
1499</script>
1499
1500<link rel="icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" sizes="32x32" />
1501<link rel="icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" sizes="192x192" />
1502<link rel="apple-touch-icon" href="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" />
1503<meta name="msapplication-TileImage" content="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" />
1504</head>
1505<body class="wp-singular page-template-default page page-id-14234 wp-custom-logo wp-embed-responsive wp-theme-repo-igl-main">
1506
1507<a class="skip-link screen-reader-text" href="#main-content">Saltar al contenido</a>
1508
1509<header id="site-header" class="site-header" role="banner">
1510	<!-- Top bar: logo centered + CTA -->
1511	<div class="header-top">
1512		<div class="container header-top__inner">
1513			<div class="header-top__left">
1514				<button class="menu-toggle" aria-controls="primary-nav" aria-expanded="false" aria-label="Abrir menú">
1515					<span class="hamburger"></span>
1516				</button>
1517			</div>
1518
1519			<div class="site-branding">
1520									<a href="https://apostar.com.ec/" class="custom-logo-link" rel="home">
1521						<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">
1522					</a>
1523							</div>
1524
1525			<div class="header-top__right">
1526								<div class="header-cta">
1527									</div>
1528			</div>
1529		</div>
1530	</div>
1531
1532	<!-- Bottom bar: navigation menu -->
1533	<div class="header-nav">
1534		<div class="container header-nav__inner">
1535			<nav id="primary-nav" class="main-navigation" role="navigation" aria-label="Navegación principal">
1536				<button class="nav-close-btn" aria-label="Cerrar menú">
1537					<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>
1538				</button>
1539				<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>
1540<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>
1541<li id="menu-item-14759" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-ancestor current-menu-parent menu-item-has-children menu-item-14759"><a href="https://apostar.com.ec/casinos/">Casinos</a>
1542<ul class="sub-menu">
1543	<li id="menu-item-14301" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-14234 current_page_item menu-item-14301"><a href="https://apostar.com.ec/blackjack-online/" aria-current="page">Blackjack online</a></li>
1544	<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>
1545	<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>
1546</ul>
1547</li>
1548<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>
1549<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>
1550<ul class="sub-menu">
1551	<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>
1552</ul>
1553</li>
1554<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>
1555<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>
1556</ul>					<aside class="guru-menu-casa" aria-label="Casa destacada">
1557		<span class="guru-menu-casa__label">CASA DESTACADA</span>
1558		<div class="guru-menu-casa__row">
1559			<a class="guru-menu-casa__logo" href="https://apostar.com.ec/casas-de-apuestas/bet365/">
1560									<img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/06/bet365.svg" class="attachment-guru-card size-guru-card 
1560wp-post-image" alt="Bet365" loading="lazy" />							</a>
1561						<span class="guru-menu-casa__bono">
1562				<span class="guru-menu-casa__bono-label">Bono hasta</span>
1563				<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>
1564			</span>
1565						<a class="guru-menu-casa__cta" href="https://apostar.com.ec/ir/bet365ranksportbono" target="_blank" rel="noopener noreferrer nofollow">REGISTRARSE</a>
1566		</div>
1567	</aside>
1568				</nav>
1569		</div>
1570	</div>
1571</header>
1572
1573
1574
1575<style id="guru-pcb-css">.guru-pcb.guru-pcb--sticky{position:sticky;top:0;z-index:200;transition:top .3s ease}
1576.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}
1577.guru-pcb__fx{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
1578.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}
1579.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}
1580.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}
1581.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}
1582.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}
1583.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}
1584@keyframes guru-pcb-bg{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
1585@keyframes guru-pcb-float-1{0%,100%{left:10%;top:35%}33%{left:45%;top:75%}66%{left:80%;top:20%}}
1586@keyframes guru-pcb-float-2{0%,100%{left:78%;top:60%}33%{left:30%;top:25%}66%{left:55%;top:80%}}
1587@keyframes guru-pcb-float-3{0%,100%{left:48%;top:40%}33%{left:88%;top:72%}66%{left:15%;top:55%}}
1588@keyframes guru-pcb-sheen{0%{left:-30%}55%{left:120%}100%{left:120%}}
1589@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)}}
1590@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))}}
1591.guru-pcb>*:not(.guru-pcb__fx):not(.guru-pcb__toggle){position:relative;z-index:2}
1592.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}
1593.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)}
1594.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}
1595.guru-pcb__hl{display:inline-block;font-style:normal;font-size:1.12em;font-weight:800;transform:rotate(1.5deg);padding:0 .04em}
1596.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}
1597.guru-pcb__code:hover,.guru-pcb__code:focus-visible{transform:translateY(-1px);background:rgba(0,0,0,.45)}
1598.guru-pcb__code-value{font-weight:900;font-size:1.05rem;letter-spacing:.12em;font-variant-numeric:tabular-nums}
1599.guru-pcb__code-icon{width:15px;height:15px;flex:0 0 auto;opacity:.9}
1600.guru-pcb__code-toast{position:absolute;
1600left: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}
1601.guru-pcb__code.is-copied{background:rgba(0,0,0,.5)}
1602.guru-pcb__code.is-copied .guru-pcb__code-toast{opacity:1;transform:translateX(-50%) translateY(0)}
1603.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}
1604.guru-pcb__cta:hover,.guru-pcb__cta:focus{transform:translateY(-1px);filter:brightness(1.04);color:var(--pcb-btn-text)}
1605.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)}
1606.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}
1607.guru-pcb__toggle:hover,.guru-pcb__toggle:focus-visible{background:#f1f2f4;color:#111}
1608.guru-pcb__toggle svg{width:18px;height:18px;transition:transform .25s ease}
1609.guru-pcb.is-collapsed .guru-pcb__toggle svg{transform:rotate(180deg)}
1610.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%}
1611@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}}
1612@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>
1613<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">
1614	<span class="guru-pcb__fx" aria-hidden="true">
1615		<span class="guru-pcb__shape guru-pcb__shape--1"></span>
1616		<span class="guru-pcb__shape guru-pcb__shape--2"></span>
1617		<span class="guru-pcb__shape guru-pcb__shape--3"></span>
1618	</span>
1619	<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">
1620		<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>
1621	</button>
1622	<span class="guru-pcb__collapsed-label" aria-hidden="true">BetWinner · AEC100</span>
1623			<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">
1624		<p class="guru-pcb__text">Reclama <strong class="guru-pcb__hl-xl">200 Giros Gratis</strong> con el código especial</p>
1625			<button type="button" class="guru-pcb__code" data-code="AEC100" aria-label="Copiar código AEC100">
1626			<span class="guru-pcb__code-value">AEC100</span>
1627			<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>
1628			<span class="guru-pcb__code-toast" aria-hidden="true">¡Copiado!</span>
1629		</button>
1630		<a class="guru-pcb__cta" href="https://apostar.com.ec/ir/betwinnerpromo" target="_blank" rel="noopener noreferrer nofollow">ACTIVAR CÓDIGO</a>
1631	</aside>
1632<script>
1633(function(){
1634	var b = document.querySelector('.guru-pcb__code');
1635	if (!b) return;
1636	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); }
1637	b.addEventListener('click', function(){
1638		var code = b.getAttribute('data-code') || '';
1639		var done = function(){
1640			b.classList.add('is-copied');
1641			setTimeout(function(){ b.classList.remove('is-copied'); }, 1800);
1642		};
1643		if (navigator.clipboard && navigator.clipboard.writeText) {
1644			navigator.clipboard.writeText(code).then(done).catch(function(){ fallback(code); done(); });
1645		} else { fallback(code); done(); }
1646	});
1647})();
1648</script>
vendor: 1 bytes, line 1648
1648
1649<script>
1650(function(){
1651	var banner = document.querySelector('.guru-pcb--sticky');
1652	var header = document.getElementById('site-header');
1653	if (!banner || !header) return;
1654	// El banner queda siempre visible y pegado al borde inferior del header: si
1655	// el header está arriba, va debajo; si el header se oculta al scrollear, sube
1656	// a top:0. Leemos la posición real del header (sirva como sea que se oculte).
1657	var ticking = false;
1658	function sync(){ var b = header.getBoundingClientRect().bottom; banner.style.top = (b > 0 ? b : 0) + 'px'; ticking = false; }
1659	function onScroll(){ if (!ticking) { requestAnimationFrame(sync); ticking = true; } }
1660	sync();
1661	window.addEventListener('scroll', onScroll, { passive: true });
1662	window.addEventListener('resize', sync, { passive: true });
1663	header.addEventListener('transitionend', sync);
1664})();
1665</script>
vendor: 1 bytes, line 1665
1665
1666<script>
1667(function(){
1668	var banner = document.querySelector('.guru-pcb');
1669	if (!banner) return;
1670	var toggle = banner.querySelector('.guru-pcb__toggle');
1671	if (!toggle) return;
1672	var KEY = 'guruPcbCollapsed';
1673	function apply(collapsed){
1674		banner.classList.toggle('is-collapsed', collapsed);
1675		toggle.setAttribute('aria-expanded', collapsed ? 'false' : 'true');
1676		toggle.setAttribute('aria-label', collapsed ? (toggle.getAttribute('data-label-expand') || '') : (toggle.getAttribute('data-label-collapse') || ''));
1677	}
1678	var stored = false;
1679	try { stored = localStorage.getItem(KEY) === '1'; } catch(e) {}
1680	apply(stored);
1681	toggle.addEventListener('click', function(){
1682		var collapsed = !banner.classList.contains('is-collapsed');
1683		apply(collapsed);
1684		try { localStorage.setItem(KEY, collapsed ? '1' : '0'); } catch(e) {}
1685		// El alto del banner cambió: resincronizamos el sticky (usa el listener de resize).
1686		window.dispatchEvent(new Event('resize'));
1687	});
1688})();
1689</script>
1689
1690	
1691
1692
1693<main id="main-content" class="site-main" role="main">
1694
1695<section class="page-hero page-hero--page">
1696	<div class="container">
1697		<nav class="breadcrumbs" aria-label="Breadcrumb"><a href="https://apostar.com.ec">Inicio</a> <span class="sep">/</span> <span aria-current="page">Blackjack online: Guía completa para jugar en Ecuador</span></nav>		<h1 class="page-hero__title">Blackjack online: Guía completa para jugar en Ecuador</h1>
1698	</div>
1699</section>
1700
1701<div class="container">
1702	<div class="single-layout">
1703
1704		<div class="entry-content page-content" id="entry-content">
1705			<p>El Blackjack se ha consolidado como el juego de mesa más estratégico de los casinos online. A diferencia de las tragamonedas, donde todo depende del azar, en el Blackjack tus decisiones impactan directamente en el resultado, esto lo que lo convierte en uno de los juegos más rentables del casino.</p>
1706<p>En esta guía te enseñamos desde las reglas básicas hasta las estrategias avanzadas y dónde encontrar los mejores casinos para jugar con dinero real en Ecuador.</p>
1707<h2>¿Qué es el Blackjack?</h2>
1708<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/que-es-blackjack.webp 672w, https://apostar.com.ec/wp-content/uploads/2025/12/que-es-blackjack-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-14240" src="https://apostar.com.ec/wp-content/uploads/2025/12/que-es-blackjack.jpg" alt="Que es Blackjack" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/que-es-blackjack.jpg 672w, https://apostar.com.ec/wp-content/uploads/2025/12/que-es-blackjack-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p>
1709<p>El Blackjack, también conocido como 21, es un juego de cartas que enfrenta al jugador contra el crupier. Nació en Francia en el siglo XVII como “Vingt et Un” (veintiuno) y evolucionó hasta convertirse en el juego de mesa más popular de los casinos modernos.</p>
1710<p>En Ecuador, el Blackjack online está disponible tanto en versión RNG (generador aleatorio) como con crupieres en vivo.</p>
1711<p>El objetivo del juego es simple: sumar 21 puntos o acercarse lo más posible sin pasarse, superando la mano del crupier. Si te pasas de 21, pierdes automáticamente sin importar qué tenga el crupier. Esta regla le da a la casa su ventaja principal.</p>
1712<h2>¿Cómo ganar en el Blackjack en un casino online?</h2>
1713<p>En esencia, ganas en este juego si:</p>
1714<ol>
1715<li>Tu mano suma más puntos que la del crupier, sin pasarte de 21.</li>
1716<li>El crupier se pasa de 21 y tu mano no.</li>
1717<li>Obtienes un “Blackjack” natural (una mano inicial de 21 con un As y una carta de valor 10).</li>
1718</ol>
1719<p>Ahora bien, ganar en Blackjack pasa por combinar tres elementos básicos: Conocer los valores de las cartas, dominar la estrategia básica y hacer una buena gestión de bankroll.</p>
1720<p>Cada mano tiene una decisión óptima según tu total y la carta visible del crupier. La ventaja de la casa en Blackjack varía drásticamente según tu forma de jugar:</p>
1721<ul>
1722<li>Sin estrategia, el casino tiene entre 2% y 3% de ventaja.</li>
1723<li>Jugando con estrategia básica, reduces esta ventaja hasta 0.44-0.5%. Esto significa que por cada $100 apostados, en lugar de perder $2-3 solo pierdes $0.50 a largo plazo, lo que marca una diferencia enorme en sesiones extendidas.</li>
1724</ul>
1725<p>Para ganar consistentemente debes evitar decisiones emocionales, además, seguir una estrategia básica no garantiza ganar cada mano, pero maximiza tus probabilidades a largo plazo.</p>
1726<h2>Valores de las cartas en el blackjack</h2>
1727<p>El sistema de puntuación del Blackjack es directo:</p>
1728<ul>
1729<li>Las cartas numéricas del <strong>2 al 10</strong> conservan su valor nominal.</li>
1730<li>Las figuras <strong>(J, Q, K)</strong> valen 10 puntos cada una.</li>
1731<li>El <strong>As</strong> es la carta más versátil: puede valer 1 u 11 puntos según te convenga.</li>
1732</ul>
1733<p>Esta flexibilidad del As crea dos tipos de manos:</p>
1734<ul>
1735<li>Una <em>“mano dura”</em> no tiene As o el As solo puede valer 1 (porque valer 11 te pasaría de 21). Por ejemplo, Rey-7 es una mano dura de 17.</li>
1736<li>O una <em>“mano blanda”</em> que incluye un As que vale 11. Por ejemplo, As-6 es un 17 blando porque puedes contar el As como 11. Si pides carta y te sale un 10, el As automáticamente pasa a valer 1 (17 → 27 → 17 duro) sin que te pases.</li>
1737</ul>
1738<p>Las manos blandas son valiosas porque te dan flexibilidad. Puedes arriesgar pidiendo carta sin miedo a pasarte en la primera petición. Esta característica estratég
1738ica cambia completamente cómo debes jugar estas manos.</p>
1739<h2>Aprende a jugar una mano de Blackjack: Guía de movimientos</h2>
1740<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/como-jugar-blackjack.webp 672w, https://apostar.com.ec/wp-content/uploads/2025/12/como-jugar-blackjack-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img decoding="async" class="aligncenter size-full wp-image-14241" src="https://apostar.com.ec/wp-content/uploads/2025/12/como-jugar-blackjack.jpg" alt="Cómo jugar blackjack" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/como-jugar-blackjack.jpg 672w, https://apostar.com.ec/wp-content/uploads/2025/12/como-jugar-blackjack-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p>
1741<p>Una mano de Blackjack sigue una secuencia clara:</p>
1742<ol>
1743<li>Primero realizas tu apuesta dentro de los límites de la mesa. En casinos online ecuatorianos, las apuestas mínimas suelen arrancar desde $1 en mesas regulares y $5-10 en mesas en vivo.</li>
1744<li>El crupier reparte dos cartas a cada jugador y dos para sí mismo. Las cartas de los jugadores se muestran boca arriba. El dealer revela solo una carta (la “carta descubierta”), manteniendo la otra boca abajo. Esta información asimétrica es clave para tus decisiones estratégicas.</li>
1745<li>Si recibes un As y una carta de valor 10 (10, J, Q o K), tienes Blackjack natural. Ganas automáticamente con pago de 3:2 (apuestas $10, ganas $15) a menos que el crupier también tenga Blackjack, resultando en empate. Si tu carta de
1745scubierta del dealer es un As o 10, puede revisar su carta oculta. Si tiene Blackjack, la mano termina inmediatamente.</li>
1746</ol>
1747<p>Ahora tomas decisiones basadas en tus cartas y la del crupier. Las opciones principales son:</p>
1748<ul>
1749<li>Pedir carta (Hit)</li>
1750<li>Plantarte (Stand)</li>
1751<li>Doblar apuesta (Double)</li>
1752<li>Dividir pares (Split)</li>
1753<li>Rendirse (Surrender, si está permitido)</li>
1754</ul>
1755<p>Después de que todos los jugadores completan sus manos, el crupier revela su carta oculta y juega según reglas fijas: debe pedir con 16 o menos y plantarse con 17 o más. Finalmente, se comparan las manos y se pagan las ganancias.</p>
1756<h3>Pedir (<em>Hit</em>) o Plantarse (<em>Stand</em>): La decisión clave en el Blackjack</h3>
1757<p>Decidir entre pedir o plantarse es el fundamento del Blackjack estratégico. Las reglas varían según tengas una mano dura o blanda y qué carta muestre el crupier.</p>
1758<p><strong>Para <em>manos duras</em>, la estrategia básica establece patrones claros:</strong></p>
1759<ul>
1760<li>Con 11 o menos siempre pides carta porque es imposible pasarte.</li>
1761<li>Con 12 a 16 tienes la “zona de peligro”: pides si el crupier muestra 7 o más (cartas fuertes), te plantas si muestra 2-6 (cartas débiles que probablemente lo harán pasarse).</li>
1762<li>Con 17 o más siempre te plantas, incluso si el crupier muestra As. El riesgo de pasarte supera el beneficio de mejorar.</li>
1763</ul>
1764<p><strong>Las <em>manos blandas</em> siguen reglas diferentes por su flexibilidad:</strong></p>
1765<ul>
1766<li>Siempre pides con 17 blando o menos porque no puedes pasarte en la primera carta. Con As-6 (17 blando) contra 7 del crupier, por ejemplo, debes pedir.</li>
1767<li>Con As-8 (19 blando) o As-9 (20 blando) te plantas siempre porque son manos muy fuertes.</li>
1768</ul>
1769<p><strong>La <em>carta del crupier</em> influye mucho en tus decisiones:</strong></p>
1770<ul>
1771<li>Las cartas 2-6 son débiles porque tienen alta probabilidad de que el dealer se pase.</li>
1772<li>Las cartas 7-As son fuertes porque es probable que el dealer llegue a 17-21.</li>
1773</ul>
1774<p>Esta diferencia explica por qué juegas más agresivo contra cartas débiles y más conservador contra cartas fuertes.</p>
1775<h3>Cómo funciona la opción de “Rendición” (<i>Surrender</i>)</h3>
1776<p>La rendición (<em>Surrender</em>) es una opción que no todos los <a href="https://apostar.com.ec/casino/" target="_blank" rel="noopener">casinos online</a> ofrecen. Te permite abandonar tu mano antes de jugarla, perdiendo solo la mitad de tu apuesta original. Parece una decisión negativa, pero es correcta en situaciones específicas donde tus probabilidades de ganar son extremadamente bajas.</p>
1777<p>Debes rendirte en dos escenarios principales:</p>
1778<ul>
1779<li>Primero, cuando tienes 16 duro contra As, 10 o 9 del crupier. Tu mano es débil y la del dealer probablemente será fuerte.</li>
1780<li>Segundo, cuando tienes 15 duro contra 10 del crupier. En estos casos, perder 50% de tu apuesta es mejor que arriesgarte a perder el 100% jugando la mano.</li>
1781</ul>
1782<p>La rendición puede ser “temprana” (antes de que el crupier revise su Blackjack, muy rara) o “tardía” (después de revisar, la más común). Verificar si tu casino online la ofrece antes de jugar te permite aprovechar esta herramienta estratégica que reduce aún más la ventaja de la casa.</p>
1783<h2>Mejores estrategias para ganar dinero real jugando Blackjack</h2>
1784<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/ganar-dinero-real-jugando-blackjack.webp 672w, https://apostar.com.ec/wp-content/uploads/2025/12/ganar-dinero-real-jugando-blackjack-300x194.webp 300w" sizes="(max-width: 672px) 100vw, 672px"><img decoding="async" class="aligncenter size-full wp-image-14242" src="https://apostar.com.ec/wp-content/uploads/2025/12/ganar-dinero-real-jugando-blackjack.jpg" alt="Ganar dinero real jugando blackjack" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/ganar-dinero-real-jugando-blackjack.jpg 672w, https://apostar.com.ec/wp-content/uploads/2025/12/ganar-dinero-real-jugando-blackjack-300x194.jpg 300w" sizes="(max-width: 672px) 100vw, 672px" /></picture></p>
1785<p>Ganar dinero real en Blackjack va más allá de conocer las reglas. Requiere disciplina estratég
1785ica, gestión de bankroll y entender las matemáticas del juego. La estrategia básica es tu fundamento obligatorio.</p>
1786<p>La gestión de bankroll determina cuánto tiempo sobrevives en el juego. <em>Una regla prudente es nunca apostar más del 5% de tu capital total en una sola mano</em>. Si tu bankroll es de $100, tus apuestas deberían ser máximo $5. Esto te protege de las rachas de pérdidas inevitables y te mantiene jugando lo suficiente para que las probabilidades trabajen a tu favor.</p>
1787<p>Evita las apuestas secundarias como “Insurance” (seguro). Cuando el crupier muestra un As, el casino ofrece seguro contra su posible Blackjack. Matemáticamente, es una apuesta perdedora a largo plazo porque solo paga 2:1 cuando las probabilidades reales son menores. Los profesionales nunca toman seguro a menos que estén contando cartas.</p>
1788<p>Aprovecha los bonos de casino con inteligencia. Muchos casinos ecuatorianos ofrecen bonos de bienvenida, pero revisa siempre los requisitos de apuesta. El Blackjack suele contribuir menos que las tragamonedas al rollover (10-20% vs. 100%), lo que significa que necesitas apostar más para liberar el bono.</p>
1789<h2>Herramienta esencial: ¿Qué es la tabla de Blackjack y cómo te ayuda a ganar?</h2>
1790<p>La tabla de estrategia básica de Blackjack es un gráfico que muestra la decisión óptima para cada combinación de tu mano y la carta del crupier. Esta tabla reduce la ventaja de la casa a su mínimo posible sin técnicas avanzadas como el conteo de cartas.</p>
1791<p>La tabla se organiza en tres secciones:</p>
1792<ul>
1793<li>La primera cubre manos duras (sin As o con As que solo vale 1).</li>
1794<li>La segunda trata manos blandas (con As valiendo 11).</li>
1795<li>La tercera sección maneja pares que puedes dividir.</li>
1796</ul>
1797<p>Las filas representan tu mano, las columnas muestran la carta descubierta del crupier, y cada celda indica la mejor acción: P (Pedir), Q (Quedarse/Plantarse), D (Doblar), S (Separar/Dividir) o R (Rendirse).</p>
1798<p>Usar la tabla en casinos online es completamente legal. Puedes tenerla abierta en otra ventana o en tu celular mientras juegas. A diferencia de los casinos físicos donde los crupieres pueden apresurarte, jugar online te da tiempo ilimitado para consultarla. Los jugadores experimentados memorizan los patrones principales mediante práctica repetida.</p>
1799<p>Las decisiones más contraintuitivas de la tabla suelen ser las más valiosas. Por ejemplo, doblar con 11 contra cualquier carta del crupier excepto As, o dividir 8-8 incluso contra un 10 del dealer. Estas jugadas maximizan tu valor esperado a largo plazo aunque parezcan arriesgadas a corto plazo.</p>
1800<h3>¿Cómo leer la tabla de Blackjack online?</h3>
1801<p>Leer la tabla de Blackjack requiere identificar tres elementos: tu mano total, la carta visible del crupier y el tipo de mano que tienes. Este proceso se vuelve automático con práctica:</p>
1802<ul>
1803<li><em>Primero determina si tu mano es dura, blanda o un par</em>. Si tienes 8-5, es una mano dura de 13. Si tienes As-6, es una mano blanda de 17. Si tienes 8-8, es un par que puedes dividir. Cada tipo de mano tiene su propia sección en la tabla.</li>
1804<li><em>Luego localiza tu mano en la columna izquierda de la sección correspondiente</em>. Busca la carta del crupier en la fila superior. La intersección te indica la acción recomendada. Por ejemplo, con 12 duro contra 3 del crupier, la tabla dice «Pedir». Con As-7 (18 blando) contra 9 del crupier, también dice «Pedir», aunque parezca contraintuitivo.</li>
1805</ul>
1806<p>Las abreviaturas en las tablas estándar son:</p>
1807<ul>
1808<li>H (Hit/Pedir)</li>
1809<li>S (Stand/Plantarse)</li>
1810<li>D (Double/Doblar)</li>
1811<li>Ds (Doblar si es posible, sino plantarse)</li>
1812<li>Dh (Doblar si es posible, sino pedir)</li>
1813<li>P (sPlit/Dividir), Rh (Rendirse si es posible, sino pedir)</li>
1814<li>Rs (Rendirse si es posible, sino plantarse).</li>
1815</ul>
1816<p>Familiarizarte con estas abreviaturas acelera tu lectura de la tabla.</p>
1817<h3>Cómo anticipar las jugadas del crupier en Blackjack</h3>
1818<p>Prever los movimientos del crupier es más simple que anticipar las acciones de otros jugadores porque el dealer sigue reglas fijas. En la mayoría de las variantes de Blackjack, el crupier debe pedir carta con 16 o menos y plantarse con 17 o más. Esta rigidez es tu ventaja estratég
1818ica.</p>
1819<p>La carta visible del crupier te da información valiosa sobre su probabilidad de pasarse:</p>
1820<ul>
1821<li>Las cartas 2-6 son «cartas débiles» porque obligan al dealer a pedir múltiples cartas, aumentando su riesgo de exceder 21. Un crupier mostrando 6 tiene aproximadamente 42% de probabilidad de pasarse. Por eso la estrategia básica te indica jugar más conservador contra estas cartas, dejando que el dealer se autodestruya.</li>
1822<li>Las cartas 7-As son «cartas fuertes» porque es probable que el crupier llegue a totales competitivos de 17-21. Un dealer mostrando 10 solo tiene 23% de probabilidad de pasarse. Contra cartas fuertes debes jugar agresivo, arriesgando más para alcanzar totales ganadores de 19-21.</li>
1823</ul>
1824<p>Un detalle crucial: algunos casinos online usan la regla «dealer must hit soft 17» (el crupier debe pedir con 17 blando). Esto aumenta ligeramente la ventaja de la casa porque le da al dealer más oportunidades de mejorar. Verificar esta regla antes de jugar afecta decisiones específicas de la estrategia básica, particularmente al doblar con 11.</p>
1825<h2>Contar cartas en el Blackjack online: ¿Es viable en el casino online?</h2>
1826<p><em>Contar cartas en Blackjack online es prácticamente imposible en la mayoría de los formatos.</em> Esta técnica avanzada, popularizada por películas como «21», funciona porque rastrea qué cartas ya salieron del mazo para predecir qué cartas quedan. Si quedan muchas cartas altas (10, J, Q, K, As), el jugador tiene ventaja. Si quedan muchas cartas bajas (2-6), la casa tiene ventaja.</p>
1827<p>En el Blackjack RNG (generador aleatorio de números) de casinos online, el mazo virtual se «baraja» después de cada mano. No importa qué cartas salieron en la mano anterior porque el software reinicia completamente el mazo. El conteo de cartas requiere que las cartas jugadas no vuelvan al mazo inmediatamente, condición que no existe en estos juegos.</p>
1828<p>En el Blackjack en vivo con crupieres reales la situación es diferente pero igualmente limitada. Los crupieres en estudios profesionales usan «continuous shuffle machines» (máquinas de barajado continuo) o barajan después de penetrar solo 50-60% del zapato (el conjunto de mazos). Esta penetración baja hace ineficaz el conteo porque nunca alcanzas situaciones de alta ventaja.</p>
1829<p>La conclusión práctica es clara: enfócate en dominar la estrategia básica perfectamente en lugar de intentar contar cartas online. La estrategia básica reduce la ventaja de la casa a 0.5% sin necesidad de técnicas avanzadas. Jugar con estrategia básica impecable es más rentable que contar cartas mal.</p>
1830<h2>Tipos de Blackjack online para jugar en Ecuador</h2>
1831<p><picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/tipos-de-blackjack.webp 672w, https://apostar.com.ec/wp-content/uploads/2025/12/tipos-de-blackjack-300x194.webp 300w" sizes="auto, (max-width: 672px) 100vw, 672px"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-14243" src="https://apostar.com.ec/wp-content/uploads/2025/12/tipos-de-blackjack.jpg" alt="Tipos de blackjack" width="672" height="435" srcset="https://apostar.com.ec/wp-content/uploads/2025/12/tipos-de-blackjack.jpg 672w, https://apostar.com.ec/wp-content/uploads/2025/12/tipos-de-blackjack-300x194.jpg 300w" sizes="auto, (max-width: 672px) 100vw, 672px" /></picture></p>
1832<p>Los casinos online en Ecuador ofrecen múltiples variantes de Blackjack, cada una con reglas específicas que afectan la estrategia y la ventaja de la casa. Conocer estas diferencias te permite elegir la variante más favorable:</p>
1833<ul>
1834<li><strong>Blackjack Europeo</strong> es la variante más común. El crupier recibe solo una carta inicial y no revisa por Blackjack hasta que los jugadores completan sus manos. Esto significa que si doblas o divides contra un As o 10 del dealer y él termina teniendo Blackjack, pierdes todas tus apuestas adicionales. Esta regla aumenta ligeramente la ventaja de la casa comparada con el Blackjack Americano.</li>
1835<li><strong>Blackjack Americano</strong> (también llamado Hole Card) entrega dos cartas al crupier desde el inicio. Si su carta visible es As o 10, revisa inmediatamente por Blackjack. Si lo tiene, la mano termina sin que los jugadores puedan doblar o dividir. Esta regla protege al jugador de perder apuestas adicionales contra Blackjack del dealer.</li>
1836<li><strong>Lightning Blackjack</strong> es una variante moderna con multiplicadores aleatorios de hasta 25x en ciertas manos ganad
1836oras. Agrega emoción pero viene con un costo: paga solo 1:1 en lugar de 3:2 por Blackjack natural, aumentando significativamente la ventaja de la casa. Apropiado para entretenimiento ocasional, no para juego estratégico a largo plazo.</li>
1837<li><strong>Blackjack Surrender</strong> permite la opción de rendición, reduciendo la ventaja de la casa en 0.1% si usas esta opción correctamente.</li>
1838<li><strong>Atlantic City Blackjack</strong> usa 8 mazos y permite doblar después de dividir.</li>
1839<li><strong>Spanish 21</strong> remueve todos los 10s del mazo pero ofrece reglas compensatorias favorables.</li>
1840</ul>
1841<p>Cada variante requiere ajustes menores en la estrategia básica.</p>
1842<h2>Blackjack online vs Blackjack en vivo: ¿Cuál es mejor?</h2>
1843<p>El Blackjack online (RNG) y el Blackjack en vivo son experiencias distintas con ventajas y desventajas específicas. Tu elección depende de tus prioridades: velocidad, interacción social, confianza en el sistema o presupuesto.</p>
1844<p>El <em>Blackjack RNG</em> usa generadores aleatorios de números para distribuir cartas instantáneamente. Es ideal para practicar estrategia básica porque juegas a tu ritmo, sin presión. Las apuestas mínimas son muy bajas (desde $1) y no hay tiempos de espera entre manos. Puedes jugar cientos de manos por hora, acumulando experiencia rápidamente. La desventaja es la ausencia de elemento humano y algunos jugadores desconfían de los algoritmos.</p>
1845<p>El <em>Blackjack en vivo</em> transmite desde estudios profesionales con crupieres reales repartiendo cartas físicas. Ofrece la autenticidad del casino físico desde tu celular. Ves cada carta saliendo del zapato, eliminando dudas sobre manipulación. Puedes interactuar con el crupier mediante chat. Los límites de mesa son más altos ($5-10 mínimo) y el ritmo es más lento porque esperan a todos los jugadores.</p>
1846<p>Para jugadores nuevos recomendamos empezar con RNG para aprender sin presión. Una vez domines la estrategia básica, migra al Blackjack en vivo para la experiencia completa. Si tu prioridad es maximizar volumen de manos y práctica, el RNG es superior. Si valoras la experiencia social y la transparencia visual, el en vivo es mejor.</p>
1847<h2>Apuesta al Blackjack en vivo</h2>
1848<p>El Blackjack en vivo ha revolucionado el juego online en Ecuador. Combina la comodidad de jugar desde casa con la autenticidad de un casino real. Los principales casinos online en Ecuador ofrecen múltiples mesas en vivo con crupieres profesionales transmitiendo 24/7 en alta definición.</p>
1849<h3>Transparencia total del juego</h3>
1850<p>La principal ventaja del Blackjack en vivo es la transparencia visual completa. Ves al crupier barajar, cortar el mazo y repartir cada carta desde un zapato físico. Las cámaras múltiples capturan cada ángulo, permitiéndote verificar que no hay manipulación. Esta transparencia genera confianza que los algoritmos RNG no pueden igualar.</p>
1851<p>Los estudios de transmisión usan tecnología OCR (reconocimiento óptico de caracteres) para escanear las cartas automáticamente. La tecnología detecta qué carta se repartió y actualiza la interfaz instantáneamente. Este sistema elimina errores humanos y acelera el juego sin sacrificar transparencia. Puedes pausar y revisar la historia de cada mano en detalle.</p>
1852<h3>Interacción social con crupieres profesionales</h3>
1853<p>El Blackjack en vivo recrea la atmósfera social del casino físico. Los crupieres profesionales, entrenados en Europa o Asia, conducen el juego con personalidad. Puedes chatear con ellos en español, felicitarlos por una buena mano o simplemente disfrutar del ambiente. Esta interacción humana reduce la sensación de aislamiento del juego online.</p>
1854<p>Muchas mesas en vivo ofrecen asientos limitados (7 jugadores), creando sensación de exclusividad. Las mesas VIP con límites altos ($100-5000 por mano) incluyen crupieres dedicados y ambiente premium. Para jugadores sociales que extrañan la experiencia del casino terrestre, el en vivo es insuperable.</p>
1855<h3>Múltiples opciones de mesas y límites</h3>
1856<p>Los casinos en vivo ofrecen decenas de mesas simultáneas con diferentes límites de apuesta. Encuentras mesas desde $5 hasta $10.000 por mano. Esta variedad te permite escalar tus apuestas según crece tu bankroll o bajar a límites cómodos después de una mala racha.</p>
1857<p>Las variantes especiales agregan entretenimiento. El Infinite Blackjack permite jugadores ilimitados en una sola mesa, todos recibiendo las mismas cartas iniciales pero tomando decisiones individuales. El Blackjack Party tiene dos crupieres animando el juego con música y energía festiva. El Speed Blackjack acelera el juego con tiempos de decisión reducidos (10 segundos vs 30 segundos).</p>
1858<h2>Mejores casinos online para jugar blackjack en Ecuador</h2>
1859<p>Seleccionar el casino online correcto para Blackjack en Ecuador requiere evaluar múltiples factores: métodos de pago accesibles, variedad de mesas, licencias internacionales y experiencia móvil.</p>
1860<p>Los siguientes operadores son conocidos por su buena reputación, licencias internacionales y ofertas robustas de juegos de Blackjack (RNG y en Vivo) para el mercado ecuatoriano:</p>
1861<h3>Bet365</h3>
1862<p><a href="https://apostar.com.ec/casas-de-apuestas/bet365/" target="_blank" rel="noopener">Bet365 </a>es el gigante global de las apuestas online, manteniendo una fuerte presencia en Ecuador gracias a su oferta de Blackjack de primer nivel. Ofrece a sus usuarios más de 50 variantes de Blackjack, abarcando juegos RNG y mesas en vivo con crupieres reales. Entre las modalidades más populares se encuentran el Blackjack Europeo, Americano y Atlantic City. Su plataforma móvil es uno de sus puntos fuertes, destacando por su impecable rendimiento y transmisiones en HD sin <i>lag</i>, lo que garantiza una experiencia de juego fluida y de alta calidad. Además, como ventaja adicional, permite a los jugadores disfrutar de <i>streaming</i> deportivo gratuito mientras están en las mesas.</p>
1863<h3>1xBet</h3>
1864<p data-path-to-node="1"><a href="https://apostar.com.ec/casas-de-apuestas/1xbet/" target="_blank" rel="noopener">1xBet</a>
1864 se destaca en el mercado ecuatoriano por ser el casino más versátil en lo que respecta a métodos de pago, ofreciendo más de 100 opciones, incluidas numerosas criptomonedas. Esta amplia gama de opciones resulta ideal para los jugadores en Ecuador, ya que les permite evadir los habituales bloqueos bancarios. En su sección de Blackjack, el operador ofrece una sólida selección de más de 40 mesas en vivo, respaldadas por proveedores líderes del sector como Evolution Gaming y Pragmatic Live. Esto asegura calidad y variedad en el juego en tiempo real. En cuanto a sus credenciales, 1xBet opera bajo la licencia de Curazao.</p>
1865<h3>Betano</h3>
1866<p data-path-to-node="1"><a href="https://apostar.com.ec/casas-de-apuestas/betano/" target="_blank" rel="noopener">Betano</a>, que ingresó al mercado ecuatoriano en 2021, se ha establecido rápidamente como una alternativa equilibrada que combina la calidad global con una fuerte adaptación local. El operador, propiedad de Kaizen Gaming y respaldado por una licencia de Malta, se distingue por su asociación con Pragmatic Play en su casino en vivo, ofreciendo más de 25 mesas de Blackjack que a menudo cuentan con la comodidad de crupieres hispanohablantes. Su plataforma es reconocida por ser intuitiva y moderna, proporcionando una experiencia de juego de alta calidad tanto en escritorio como en dispositivos móviles.</p>
1867		</div>
1868
1869		<aside class="toc-sidebar page-sidebar" role="complementary" aria-label="Barra lateral">
1870
1871	<!-- Últimos artículos -->
1872		<div class="sidebar-recent-posts">
1873		<h3 class="sidebar-recent-posts__title">Últimos artículos</h3>
1874		<ul class="sidebar-recent-posts__list">
1875							<li class="sidebar-recent-posts__item">
1876											<a href="https://apostar.com.ec/como-apostar-a-tarjetas/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1877							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/apostar-a-tarjetas-en-ecuador-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/05/apostar-a-tarjetas-en-ecuador-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1878										<div class="sidebar-recent-posts__body">
1879						<a href="https://apostar.com.ec/como-apostar-a-tarjetas/" class="sidebar-recent-posts__link">¿Cómo apostar en tarjetas amarillas y rojas en futbol?</a>
1880						<span class="sidebar-recent-posts__date">27/07/2026</span>
1881					</div>
1882				</li>
1883							<li class="sidebar-recent-posts__item">
1884											<a href="https://apostar.com.ec/polymarket-pronosticos-deportivos/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1885							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/07/polimarket-ecuador-1-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/07/polimarket-ecuador-1-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1886										<div class="sidebar-recent-posts__body">
1887						<a href="https://apostar.com.ec/polymarket-pronosticos-deportivos/" class="sidebar-recent-posts__link">Polymarket pronosticos deportivos</a>
1888						<span class="sidebar-recent-posts__date">13/07/2026</span>
1889					</div>
1890				</li>
1891							<li class="sidebar-recent-posts__item">
1892											<a href="https://apostar.com.ec/apuestas-de-goles/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1893							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/05/apuestas-de-goles-en-futbol-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/05/apuestas-de-goles-en-futbol-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1894										<div class="sidebar-recent-posts__body">
1895						<a href="https://apostar.com.ec/apuestas-de-goles/" class="sidebar-recent-posts__link">Apuestas de goles en fútbol</a>
1896						<span class="sidebar-recent-posts__date">13/07/2026</span>
1897					</div>
1898				</li>
1899							<li class="sidebar-recent-posts__item">
1900											<a href="https://apostar.com.ec/que-es-adi-predictstreet/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1901							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/07/Que-es-ADI-Predictstreet-Ecuador-1-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/07/Que-es-ADI-Predictstreet-Ecuador-1-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1902										<div class="sidebar-recent-posts__body">
1903						<a href="https://apostar.com.ec/que-es-adi-predictstreet/" class="sidebar-recent-posts__link">¿Que es ADI Predictstreet?</a>
1904						<span class="sidebar-recent-posts__date">02/07/2026</span>
1905					</div>
1906				</li>
1907							<li class="sidebar-recent-posts__item">
1908											<a href="https://apostar.com.ec/apuestas-porteria-invicta-liga-
1908pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1909							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-68-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-68-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1910										<div class="sidebar-recent-posts__body">
1911						<a href="https://apostar.com.ec/apuestas-porteria-invicta-liga-pro/" class="sidebar-recent-posts__link">Portería invicta en Liga Pro: mejores cuotas y estrategias en Ecuador</a>
1912						<span class="sidebar-recent-posts__date">30/06/2026</span>
1913					</div>
1914				</li>
1915							<li class="sidebar-recent-posts__item">
1916											<a href="https://apostar.com.ec/apuestas-medio-tiempo-liga-pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1917							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-69-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-69-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1918										<div class="sidebar-recent-posts__body">
1919						<a href="https://apostar.com.ec/apuestas-medio-tiempo-liga-pro/" class="sidebar-recent-posts__link">¿Cómo apostar a medio tiempo / final? Cuotas Liga Pro en Ecuador</a>
1920						<span class="sidebar-recent-posts__date">30/06/2026</span>
1921					</div>
1922				</li>
1923							<li class="sidebar-recent-posts__item">
1924											<a href="https://apostar.com.ec/apuestas-resultado-exacto-liga-pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1925							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-70-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-70-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1926										<div class="sidebar-recent-posts__body">
1927						<a href="https://apostar.com.ec/apuestas-resultado-exacto-liga-pro/" class="sidebar-recent-posts__link">Guía de apuestas de resultado exacto en Liga Pro — Ecuador</a>
1928						<span class="sidebar-recent-posts__date">30/06/2026</span>
1929					</div>
1930				</li>
1931							<li class="sidebar-recent-posts__item">
1932											<a href="https://apostar.com.ec/apuestas-doble-oportunidad-liga-pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1933							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-71-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-71-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1934										<div class="sidebar-recent-posts__body">
1935						<a href="https://apostar.com.ec/apuestas-doble-oportunidad-liga-pro/" class="sidebar-recent-posts__link">Cómo apostar a doble oportunidad en Liga Pro: guía y cuotas en Ecuador</a>
1936						<span class="sidebar-recent-posts__date">30/06/2026</span>
1937					</div>
1938				</li>
1939							<li class="sidebar-recent-posts__item">
1940											<a href="https://apostar.com.ec/apuestas-ambos-marcan-liga-pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1941							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-72-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-72-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1942										<div class="sidebar-recent-posts__body">
1943						<a href="https://apostar.com.ec/apuestas-ambos-marcan-liga-pro/" class="sidebar-recent-posts__link">Guía de apuestas de ambos marcan en Liga Pro — Ecuador</a>
1944						<span class="sidebar-recent-posts__date">30/06/2026</span>
1945					</div>
1946				</li>
1947							<li class="sidebar-recent-posts__item">
1948											<a href="https://apostar.com.ec/apuestas-over-under-liga-pro/" class="sidebar-recent-posts__thumb" tabindex="-1" aria-hidden="true">
1949							<picture><source type="image/webp" srcset="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-73-150x150.webp"><img width="60" height="60" src="https://apostar.com.ec/wp-content/uploads/2026/06/mundial-2026-73-150x150.jpg" class="attachment-60x60 size-60x60 wp-post-image" alt="" loading="lazy" decoding="async" /></picture>						</a>
1950										<div class="sidebar-recent-posts__body">
1951						<a href="https://apostar.com.ec/apuestas-over-under-liga-pro/" class="sidebar-recent-posts__link">
1951Apuestas a over/under goles en Liga Pro desde Ecuador</a>
1952						<span class="sidebar-recent-posts__date">30/06/2026</span>
1953					</div>
1954				</li>
1955					</ul>
1956	</div>
1957	
1958	<!-- Ranking -->
1959		<div class="ranking-widget">
1960		<h3 class="ranking-widget__title">Mejores Casas de Apuestas</h3>
1961		<div class="ranking-widget__list">
1962							<div class="ranking-widget-item ranking-widget-item--rank-1">
1963					<div class="ranking-widget-item__body">
1964						<a href="https://apostar.com.ec/casas-de-apuestas/betano/" class="ranking-widget-item__logo">
1965															<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>
1966						<div class="ranking-widget-item__actions">
1967							<a href="https://apostar.com.ec/ir/betanoranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
1968								REGÍSTRATE							</a>
1969						</div>
1970					</div>
1971								</div>
1972							<div class="ranking-widget-item ranking-widget-item--rank-2">
1973					<div class="ranking-widget-item__body">
1974						<a href="https://apostar.com.ec/casas-de-apuestas/bet365/" class="ranking-widget-item__logo">
1975															<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>
1976						<div class="ranking-widget-item__actions">
1977							<a href="https://apostar.com.ec/ir/bet365ranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
1978								REGÍSTRATE							</a>
1979						</div>
1980					</div>
1981								<div class="ranking-row__disclaimer">+18. Juega con responsabilidad. Aplican términos y condiciones.</div>
1982								</div>
1983							<div class="ranking-widget-item ranking-widget-item--rank-3">
1984					<div class="ranking-widget-item__body">
1985						<a href="https://apostar.com.ec/casas-de-apuestas/latribet/" class="ranking-widget-item__logo">
1986															<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>
1987						<div class="ranking-widget-item__actions">
1988							<a href="https://apostar.com.ec/ir/latriranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
1989								REGÍSTRATE							</a>
1990						</div>
1991					</div>
1992								</div>
1993							<div class="ranking-widget-item">
1994					<div class="ranking-widget-item__body">
1995						<a href="https://apostar.com.ec/casas-de-apuestas/1xbet/" class="ranking-widget-item__logo">
1996															<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>
1997						<div class="ranking-widget-item__actions">
1998							<a href="https://apostar.com.ec/ir/1xbetranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
1999								REGÍSTRATE							</a>
2000						</div>
2001					</div>
2002								<div class="ranking-row__disclaimer">Apuesta con responsabilidad. Apto unicamente para mayores de 18 años. Se aplican Términos &amp; Condiciones.</div>
2003								</div>
2004							<div class="ranking-widget-item">
2005					<div class="ranking-widget-item__body">
2006						<a href="https://apostar.com.ec/casas-de-apuestas/betwinner-ecuador-resena/" class="ranking-widget-item__logo">
2007															<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>
2008						<div class="ranking-widget-item__actions">
2009							<a href="https://apostar.com.ec/ir/betwinneranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2010								REGÍSTRATE							</a>
2011						</div>
2012					</div>
2013								<div class="ranking-row__disclaimer">+18  Juega con responsabilidad. Aplican términos y condiciones.</
2013div>
2014								</div>
2015							<div class="ranking-widget-item">
2016					<div class="ranking-widget-item__body">
2017						<a href="https://apostar.com.ec/casas-de-apuestas/betsson/" class="ranking-widget-item__logo">
2018															<img width="120" height="32" src="https://apostar.com.ec/wp-content/uploads/2025/06/Betsson.svg" class="attachment-guru-card size-guru-card wp-post-image" alt="Betsson" loading="lazy" />													</a>
2019						<div class="ranking-widget-item__actions">
2020							<a href="https://apostar.com.ec/ir/betssonranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2021								REGÍSTRATE							</a>
2022						</div>
2023					</div>
2024								<div class="ranking-row__disclaimer">+18  Juega con responsabilidad. Aplican términos y condiciones.</div>
2025								</div>
2026							<div class="ranking-widget-item">
2027					<div class="ranking-widget-item__body">
2028						<a href="https://apostar.com.ec/casas-de-apuestas/megapari/" class="ranking-widget-item__logo">
2029															<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>
2030						<div class="ranking-widget-item__actions">
2031							<a href="https://apostar.com.ec/ir/megapariranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2032								REGÍSTRATE							</a>
2033						</div>
2034					</div>
2035								</div>
2036							<div class="ranking-widget-item">
2037					<div class="ranking-widget-item__body">
2038						<a href="https://apostar.com.ec/casas-de-apuestas/spinbookie/" class="ranking-widget-item__logo">
2039															<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>
2040						<div class="ranking-widget-item__actions">
2041							<a href="https://apostar.com.ec/ir/spinbookieranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2042								REGÍSTRATE							</a>
2043						</div>
2044					</div>
2045								</div>
2046							<div class="ranking-widget-item">
2047					<div class="ranking-widget-item__body">
2048						<a href="https://apostar.com.ec/casas-de-apuestas/xlbet/" class="ranking-widget-item__logo">
2049															<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>
2050						<div class="ranking-widget-item__actions">
2051							<a href="https://apostar.com.ec/ir/xlbetranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2052								REGÍSTRATE							</a>
2053						</div>
2054					</div>
2055								</div>
2056							<div class="ranking-widget-item">
2057					<div class="ranking-widget-item__body">
2058						<a href="https://apostar.com.ec/casas-de-apuestas/1xslots/" class="ranking-widget-item__logo">
2059															<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>
2060						<div class="ranking-widget-item__actions">
2061							<a href="https://apostar.com.ec/ir/1xslotsranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2062								REGÍSTRATE							</a>
2063						</div>
2064					</div>
2065								</div>
2066							<div class="ranking-widget-item">
2067					<div class="ranking-widget-item__body">
2068						<a href="https://apostar.com.ec/casas-de-apuestas/betcris/" class="ranking-widget-item__logo">
2069															<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>
2070						<div class="ranking-widget-item__actions">
2071							<a href="https://apostar.com.ec/ir/betcrisranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2072								REGÍSTRATE							</a>
2073						</div>
2074					</div>
2075								</div>
2076							<div class="ranking-widget-item">
2077					<div class="ranking-widget-item__body">
2078						<a href="https://apostar.com.ec/casas-de-apuestas/betway/" class="ranking-widget-item__logo">
2079															<img width="140" height="40" src="https://apostar.com.ec/wp-content/uploads/2022/09/betway.svg" class="attachment-guru-card size-guru-card 
2079wp-post-image" alt="Betway" loading="lazy" />													</a>
2080						<div class="ranking-widget-item__actions">
2081							<a href="https://apostar.com.ec/ir/betwayranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2082								REGÍSTRATE							</a>
2083						</div>
2084					</div>
2085								</div>
2086							<div class="ranking-widget-item">
2087					<div class="ranking-widget-item__body">
2088						<a href="https://apostar.com.ec/casas-de-apuestas/ecuabet/" class="ranking-widget-item__logo">
2089															<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>
2090						<div class="ranking-widget-item__actions">
2091							<a href="#" role="button" data-guru-nolink="1" class="btn btn--dark btn--sm">
2092								REGÍSTRATE							</a>
2093						</div>
2094					</div>
2095								<div class="ranking-row__disclaimer">+18 Juega con responsabilidad. Aplican términos y condiciones.</div>
2096								</div>
2097							<div class="ranking-widget-item">
2098					<div class="ranking-widget-item__body">
2099						<a href="https://apostar.com.ec/casas-de-apuestas/coolbet/" class="ranking-widget-item__logo">
2100															<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>
2101						<div class="ranking-widget-item__actions">
2102							<a href="#" role="button" data-guru-nolink="1" class="btn btn--dark btn--sm">
2103								REGÍSTRATE							</a>
2104						</div>
2105					</div>
2106								</div>
2107							<div class="ranking-widget-item">
2108					<div class="ranking-widget-item__body">
2109						<a href="https://apostar.com.ec/casas-de-apuestas/starda/" class="ranking-widget-item__logo">
2110															<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>
2111						<div class="ranking-widget-item__actions">
2112							<a href="https://apostar.com.ec/ir/stardaranksportbono" target="_blank" rel="noopener noreferrer nofollow" class="btn btn--dark btn--sm">
2113								REGÍSTRATE							</a>
2114						</div>
2115					</div>
2116								<div class="ranking-row__disclaimer">+18  Juega con responsabilidad. Aplican términos y condiciones.</div>
2117								</div>
2118					</div>
2119	</div>
2120	
2121		<aside class="guru-sidebar-banner" aria-label="Casa destacada">
2122		<div class="guru-sidebar-banner__header">
2123			CASA DESTACADA		</div>
2124		<div class="guru-sidebar-banner__logo">
2125							<a href="https://apostar.com.ec/casas-de-apuestas/betano/"><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>
2126					</div>
2127				<ul class="guru-sidebar-banner__pros">
2128							<li>Código promocional EXCLUSIVO: APUESTASECUADOR</li>
2129							<li>Bono de bienvenida de $300</li>
2130							<li>Depósito mínimo $5 | Retiro mínimo $10</li>
2131					</ul>
2132						<div class="guru-sidebar-banner__bono">
2133			<span class="guru-sidebar-banner__bono-label">Bono hasta</span>
2134			<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">300</span></span>
2135		</div>
2136				<a href="https://apostar.com.ec/ir/betanoranksportbono" class="guru-sidebar-banner__cta" target="_blank" rel="noopener noreferrer nofollow">
2137			REGISTRARSE		</a>
2138		<a href="https://apostar.com.ec/casas-de-apuestas/betano/" class="guru-sidebar-banner__review">
2139			Leer reseña		</a>
2140			</aside>
2141	
2142</aside>
2143
2144	</div>
2145</div>
2146
2147</main><!-- #main-content -->
2148
2149<footer id="site-footer" class="site-footer no-badges" role="contentinfo">
2150	<div class="container">
2151		<div class="footer-top">
2152			<div class="footer-brand">
2153									<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>
2154			<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>
2155<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>
2156<li class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-ancestor current-menu-parent menu-item-14759"><a href="https://apostar.com.ec/casinos/">Casinos</a></li>
2157<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>
2158<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>
2159<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>
2160<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>
2161</ul>		</div>
2162
2163		
2164		<div class="footer-bottom">
2165						<div class="disclaimer">
2166				<span class="age-badge">18+</span>
2167				<p>Juega con responsabilidad. Solo para mayores de 18 años.</p>
2168			</div>
2169						<p class="copyright">
2170				&copy; 2026 apostar.com.ec. Todos los derechos reservados.			</p>
2171							<p class="footer-sitemap">
2172					<a href="https://apostar.com.ec/sitemap/" class="sitemap-link">Mapa del sitio</a>
2173				</p>
2174					</div>
2175	</div>
2176</footer>
2177
2178<!-- BEGIN: TAG CODE -->
2179<script src="https://tools.betforce.io/scripts/js/affbc/v.1.1/apostar.com.ec/b-base.min.js"></script>
vendor: 1 bytes, line 2179
2179
2180<script type="text/javascript">
2181    document.addEventListener('DOMContentLoaded', () =>
2182    {
2183        onComplete('banner-id-54545836',document.getElementById('banner-id-54545836').getAttribute('data-id'));
2184    });
2185</script>
2185
2186<div data-active="N" data-id="528" id="banner-id-54545836"></div>
2187<!-- END: TAG CODE -->
2187<script type="speculationrules">
2188{"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"}]}
2189</script>
2189
2190        
2190<script>
2191        (function(){
2192            var ajax = 'https://apostar.com.ec/wp-admin/admin-ajax.php';
2193            var nonce = 'fdfc2f0822';
2194            var ua = navigator.userAgent;
2195            var device = /iPhone|iPad|iPod/i.test(ua) ? 'ios'
2196                       : /Android/i.test(ua) ? 'android'
2197                       : 'desktop';
2198            function logEvent(type) {
2199                var fd = new FormData();
2200                fd.append('action', 'igl_connector_pwa_event');
2201                fd.append('security', nonce);
2202                fd.append('event_type', type);
2203                fd.append('device', device);
2204                fetch(ajax, { method: 'POST', body: fd, credentials: 'same-origin' }).catch(function(){});
2205            }
2206            window.addEventListener('appinstalled', function() { logEvent('install'); });
2207            if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) {
2208                logEvent('standalone_session');
2209            }
2210        })();
2211        </script>
2211
2212        	<div class="guru-nolink-modal" id="guru-nolink-modal" hidden>
2213		<div class="guru-nolink-modal__overlay" data-guru-nolink-close></div>
2214		<div class="guru-nolink-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="guru-nolink-modal-title">
2215			<button type="button" class="guru-nolink-modal__close" data-guru-nolink-close aria-label="Cerrar">&times;</button>
2216			<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>
2217						<div class="guru-nolink-modal__redirect" data-guru-redirect-url="https://apostar.com.ec/ir/betanoranksportbono" data-guru-redirect-seconds="5">
2218				<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>
2219				<div class="guru-nolink-modal__bar"><span class="guru-nolink-modal__bar-fill"></span></div>
2220			</div>
2221						<ul class="guru-nolink-modal__list">
2222								<li class="guru-nolink-modal__item">
2223					<span class="guru-nolink-modal__rank">#1</span>
2224					<a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/betano/" aria-label="Betano">
2225						<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>
2226					<a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/betanoranksportbono" target="_blank" rel="noopener noreferrer nofollow">
2227						REGISTRARSE					</a>
2228				</li>
2229								<li class="guru-nolink-modal__item">
2230					<span class="guru-nolink-modal__rank">#2</span>
2231					<a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/bet365/" aria-label="Bet365">
2232						<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>
2233					<a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/bet365ranksportbono" target="_blank" rel="noopener noreferrer nofollow">
2234						REGISTRARSE					</a>
2235				</li>
2236								<li class="guru-nolink-modal__item">
2237					<span class="guru-nolink-modal__rank">#3</span>
2238					<a class="guru-nolink-modal__logo" href="https://apostar.com.ec/casas-de-apuestas/latribet/" aria-label="LaTriBet">
2239						<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>
2240					<a class="guru-nolink-modal__cta" href="https://apostar.com.ec/ir/latriranksportbono" target="_blank" rel="noopener noreferrer nofollow">
2241						REGISTRARSE					</a>
2242				</li>
2243							</ul>
2244		</div>
2245	</div>
2246	
2246<script>
2247	(function(){
2248		var modal = document.getElementById('guru-nolink-modal');
2249		if (!modal) { return; }
2250		var dialog = modal.querySelector('.guru-nolink-modal__dialog');
2251		var lastFocus = null;
2252		function focusables(){
2253			if (!dialog) { return []; }
2254			return Array.prototype.slice.call(
2255				dialog.querySelectorAll('a[href], button:not([disabled])')
2256			).filter(function(el){ return el.offsetParent !== null; });
2257		}
2258		var redirect = modal.querySelector('[data-guru-redirect-url]');
2259		var timer = null;
2260		var redirectTimer = null;
2261		var didRedirect = false;
2262		function startCountdown(){
2263			if (!redirect) { return; }
2264			var url  = redirect.getAttribute('data-guru-redirect-url');
2265			var secs = parseInt(redirect.getAttribute('data-guru-redirect-seconds'), 10) || 0;
2266			if (!url || secs <= 0) { return; }
2267			var countEl = redirect.querySelector('.guru-nolink-modal__count');
2268			var fill    = redirect.querySelector('.guru-nolink-modal__bar-fill');
2269			didRedirect = false;
2270			// La navegación se dispara por un deadline absoluto, no por la suma de
2271			// ticks: así sigue funcionando aunque el navegador/optimizador limite
2272			// (throttle) los timers o la pestaña pierda foco un instante.
2273			var deadline = Date.now() + secs * 1000;
2274			function go(){
2275				if (didRedirect) { return; }
2276				didRedirect = true;
2277				if (timer) { clearInterval(timer); timer = null; }
2278				if (redirectTimer) { clearTimeout(redirectTimer); redirectTimer = null; }
2279				window.location.href = url;
2280			}
2281			if (countEl) { countEl.textContent = secs; }
2282			if (fill) {
2283				fill.style.transition = 'none';
2284				fill.style.width = '0%';
2285				void fill.offsetWidth; // reflow para reiniciar la animación
2286				fill.style.transition = 'width ' + secs + 's linear';
2287				fill.style.width = '100%';
2288			}
2289			// Camino principal: timeout único garantizado.
2290			redirectTimer = setTimeout(go, secs * 1000);
2291			// Solo refresca el número visible; no decide la redirección.
2292			timer = setInterval(function(){
2293				var remaining = Math.ceil((deadline - Date.now()) / 1000);
2294				if (remaining < 0) { remaining = 0; }
2295				if (countEl) { countEl.textContent = remaining; }
2296				if (remaining <= 0) { go(); }
2297			}, 250);
2298		}
2299		function stopCountdown(){
2300			didRedirect = true; // evita que un timeout pendiente navegue tras cerrar
2301			if (timer) { clearInterval(timer); timer = null; }
2302			if (redirectTimer) { clearTimeout(redirectTimer); redirectTimer = null; }
2303			if (redirect) {
2304				var fill = redirect.querySelector('.guru-nolink-modal__bar-fill');
2305				if (fill) { fill.style.transition = 'none'; fill.style.width = '0%'; }
2306			}
2307		}
2308		// Enfoca sin mover la página; mismo helper que en los popups.
2309		function focusNoScroll(el){
2310			if (!el || typeof el.focus !== 'function' || !document.contains(el)) { return; }
2311			var y = window.pageYOffset;
2312			try { el.focus({ preventScroll: true }); }
2313			catch (e) { el.focus(); }
2314			if (window.pageYOffset !== y) { jumpTo(y); }
2315		}
2316		// Salta sin animar: critical.css pone html{scroll-behavior:smooth}.
2317		function jumpTo(y){
2318			var html = document.documentElement;
2319			var prev = html.style.scrollBehavior;
2320			html.style.scrollBehavior = 'auto';
2321			window.scrollTo(window.pageXOffset, y);
2322			html.style.scrollBehavior = prev;
2323		}
2324		var lockY = 0;
2325		var scrollGuard = null;
2326		// overflow:hidden no detiene el scroll programático: un scroll suave en
2327		// vuelo (TOC, anclas) seguía deslizando la página por detrás del modal.
2328		// Mismo lock que en los popups; ver la nota larga en popup-modals.php.
2329		function lockScroll(){
2330			lockY = window.pageYOffset;
2331			// La clase va en <html> y en <body>: el viewport toma su overflow del
2332			// html (critical.css le pone overflow-x:clip), así que con el lock solo
2333			// en body la página seguía scrolleando detrás del modal.
2334			document.documentElement.classList.add('guru-nolink-open');
2335			document.body.classList.add('guru-nolink-open');
2336			jumpTo(lockY);
2337			scrollGuard = function(e){
2338				if (e && e.target && e.target !== document && e.target !== document.documentElement) { return; }
2339				if (window.pageYOffset !== lockY) { jumpTo(lockY); }
2340			};
2341			window.addEventListener('scroll', scrollGuard, { passive: true });
2342		}
2343		function unlockScroll(){
2344			if (scrollGuard) { window.removeEventListener('scroll', scrollGuard); scrollGuard = null; }
2345			document.documentElement.classList.remove('guru-nolink-open');
2346			document.body.classList.remove('guru-nolink-open');
2347		}
2348		function openModal(trigger){
2349			lastFocus = trigger || null;
2350			modal.hidden = false;
2351			lockScroll();
2352			focusNoScroll(modal.querySelector('.guru-nolink-modal__close'));
2353			startCountdown();
2354		}
2355		function closeModal(){
2356			stopCountdown();
2357			modal.hidden = true;
2358			unlockScroll();
2359			focusNoScroll(lastFocus);
2360		}
2361		document.addEventListener('click', function(e){
2362			var trigger = e.target.closest('[data-guru-nolink]');
2363			if (trigger) { e.preventDefault(); openModal(trigger); return; }
2364			if (e.target.closest('[data-guru-nolink-close]')) { e.preventDefault(); closeModal(); }
2365		});
2366		document.addEventListener('keydown', function(e){
2367			if (modal.hidden) { return; }
2368			if (e.key === 'Escape') { closeModal(); return; }
2369			// Focus trap: Tab/Shift+Tab ciclan dentro del diálogo (aria-modal ya
2370			// aísla a los lectores de pantalla; esto aísla al teclado).
2371			if (e.key === 'Tab') {
2372				var f = focusables();
2373				if (!f.length) { return; }
2374				var first = f[0], last = f[f.length - 1];
2375				if (!dialog || !dialog.contains(document.activeElement)) {
2376					e.preventDefault(); first.focus();
2377				} else if (e.shiftKey && document.activeElement === first) {
2378					e.preventDefault(); last.focus();
2379				} else if (!e.shiftKey && document.activeElement === last) {
2380					e.preventDefault(); first.focus();
2381				}
2382			}
2383		});
2384	})();
2385	</script>
2385
2386		
2386<script>
2387	// Helper de analytics de los popups: manda a GA4 (gtag) y al dataLayer.
2388	// Guarda por si GA4 está apagado. Se define antes de los popups para que los
2389	// scripts de la ruleta/raspadita lo puedan usar.
2390	window.guruPopupTrack = window.guruPopupTrack || function(name, params){
2391		params = params || {};
2392		try { if (typeof window.gtag === 'function') { window.gtag('event', name, params); } } catch (e) {}
2393		try { (window.dataLayer = window.dataLayer || []).push(Object.assign({ event: name }, params)); } catch (e) {}
2394	};
2395
2396	// Confeti compartido. La ruleta y la raspadita todavía llevan su propia copia
2397	// (código previo); migrarlas a este helper es un cambio aparte.
2398	window.guruPopupConfetti = window.guruPopupConfetti || function(root){
2399		try { if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) { return; } } catch (e) {}
2400		var box = (root && root.closest('.guru-popup')) || root;
2401		if (!box) { return; }
2402		var W = box.clientWidth, H = box.clientHeight;
2403		if (!W || !H) { return; }
2404		var canvas = document.createElement('canvas');
2405		canvas.className = 'guru-roulette__confetti';
2406		canvas.width = W; canvas.height = H;
2407		box.appendChild(canvas);
2408		var ctx = canvas.getContext('2d');
2409		if (!ctx) { canvas.remove(); return; }
2410		var colors = ['#ffd34e','#5eb1ff','#7ee0a1','#ff9e7a','#c7a3ff','#ef5da8','#4ade80'];
2411		var parts = [], originX = W / 2, originY = H * 0.34;
2412		for (var i = 0; i < 140; i++) {
2413			var ang = Math.PI * (0.15 + 0.7 * (i / 140)) * -1 - 0.15;
2414			var sp  = 6 + Math.random() * 7;
2415			parts.push({
2416				x: originX + (Math.random() - 0.5) * 40, y: originY,
2417				vx: Math.cos(ang) * sp * (Math.random() < 0.5 ? -1 : 1),
2418				vy: Math.sin(ang) * sp - Math.random() * 3,
2419				g: 0.18 + Math.random() * 0.12, size: 5 + Math.random() * 6,
2420				color: colors[i % colors.length], rot: Math.random() * 6.28,
2421				vr: (Math.random() - 0.5) * 0.4
2422			});
2423		}
2424		var start = null, DUR = 1800;
2425		function frame(t){
2426			if (start === null) { start = t; }
2427			var el = t - start;
2428			ctx.clearRect(0, 0, W, H);
2429			for (var i = 0; i < parts.length; i++) {
2430				var pp = parts[i];
2431				pp.x += pp.vx; pp.y += pp.vy; pp.vy += pp.g; pp.vx *= 0.995; pp.rot += pp.vr;
2432				ctx.save();
2433				ctx.translate(pp.x, pp.y);
2434				ctx.rotate(pp.rot);
2435				ctx.globalAlpha = Math.max(0, 1 - el / DUR);
2436				ctx.fillStyle = pp.color;
2437				ctx.fillRect(-pp.size / 2, -pp.size / 2, pp.size, pp.size * 0.6);
2438				ctx.restore();
2439			}
2440			if (el < DUR) { requestAnimationFrame(frame); } else { canvas.remove(); }
2441		}
2442		requestAnimationFrame(frame);
2443	};
2444	</script>
2444
2445			<div class="guru-popup" id="guru-popup-1" data-guru-popup="1" data-kind="roulette" data-max="1" data-delay="3000" hidden>
2446			<div class="guru-popup__overlay" data-guru-popup-close></div>
2447			<div class="guru-popup__dialog guru-popup__dialog--roulette" role="dialog" aria-modal="true" aria-labelledby="guru-popup-1-title">
2448				<button type="button" class="guru-popup__close" data-guru-popup-close aria-label="Cerrar">&times;</button>
2449
2450				
2451									<h2 class="guru-popup__title" id="guru-popup-1-title">¡Pilas pana! Gira la ruleta y llévate tu bono de una vez</h2>
2452				
2453									<p class="guru-popup__subtitle">Prueba tu suerte al toque y arranca con el pie derecho en la jugada</p>
2454				
2455				
2456				
2457					<div class="guru-roulette" id="guru-roulette" data-winner="LaTriBet">
2458		<div class="guru-roulette__stage" style="width:264px;height:264px">
2459			<span class="guru-roulette__pointer" aria-hidden="true"></span>
2460			<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)">
2461				<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>
2462									<span class="guru-roulette__logo" style="left:103px;top:17px;width:58px;height:58px;transform:rotate(90deg)">
2463													<img src="https://apostar.com.ec/wp-content/uploads/2022/08/latribet-2.svg" alt="LaTriBet" loading="lazy" decoding="async">
2464											</span>
2465									<span class="guru-roulette__logo" style="left:177.5px;top:60px;width:58px;height:58px;transform:rotate(330deg)">
2466													<img src="https://apostar.com.ec/wp-content/uploads/2023/05/SpinBookie.svg" alt="Spinbookie" loading="lazy" decoding="async">
2467											</span>
2468									<span class="guru-roulette__logo" style="left:177.5px;top:146px;width:58px;height:58px;transform:rotate(390deg)">
2469													<img src="https://apostar.com.ec/wp-content/uploads/2023/08/1XSlots-1.svg" alt="1xslots" loading="lazy" decoding="async">
2470											</span>
2471									<span class="guru-roulette__logo" style="left:103px;top:189px;width:58px;height:58px;transform:rotate(270deg)">
2472													<img src="https://apostar.com.ec/wp-content/uploads/2025/05/Megapari.svg" alt="Megapari" loading="lazy" decoding="async">
2473											</span>
2474									<span class="guru-roulette__logo" style="left:28.5px;top:146px;width:58px;height:58px;transform:rotate(330deg)">
2475													<img src="https://apostar.com.ec/wp-content/uploads/2024/11/logo2-1.svg" alt="Paripesa" loading="lazy" decoding="async">
2476											</span>
2477									<span class="guru-roulette__logo" style="left:28.5px;top:60px;width:58px;height:58px;transform:rotate(390deg)">
2478													<img src="https://apostar.com.ec/wp-content/uploads/2023/04/XLBet.svg" alt="XLBet" loading="lazy" decoding="async">
2479											</span>
2480							</div>
2481			<span class="guru-roulette__hub" aria-hidden="true">
2482									<img class="guru-roulette__hub-icon" src="https://apostar.com.ec/wp-content/uploads/2022/09/ecuador-apuestas.svg" alt="" loading="lazy" decoding="async">
2483							</span>
2484		</div>
2485
2486		<button type="button" class="guru-roulette__spin">GIRAR</button>
2487
2488		<div class="guru-roulette__result" hidden>
2489			<p class="guru-roulette__win">Te ganaste un bono de casino para <strong class="guru-roulette__winname">LaTriBet</strong></p>
2490							<a class="guru-roulette__cta guru-popup__cta" href="https://apostar.com.ec/ir/latribetroulette" target="_blank" rel="noopener noreferrer nofollow">OBTENER</a>
2491					</div>
2492	</div>
2493	
2493<script>
2494	(function(){
2495		var root = document.getElementById('guru-roulette');
2496		if (!root) { return; }
2497		var wheel  = root.querySelector('.guru-roulette__wheel');
2498		var spin   = root.querySelector('.guru-roulette__spin');
2499		var result = root.querySelector('.guru-roulette__result');
2500		var logos  = Array.prototype.slice.call(root.querySelectorAll('.guru-roulette__logo'));
2501		var REST   = -30;
2502		var N      = logos.length || 1;
2503		var SEG    = 360 / N;
2504		var done   = false;
2505		var rafId  = null;
2506
2507		function reduced(){
2508			return window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
2509		}
2510
2511		// Ángulo actual de la rueda (mod 360) leído del transform computado, así
2512		// funciona con Web Animations API o transición CSS.
2513		function wheelAngle(){
2514			var st = getComputedStyle(wheel).transform;
2515			if (!st || st === 'none') { return 0; }
2516			var m = st.match(/matrix\(([^)]+)\)/);
2517			if (!m) { return 0; }
2518			var v = m[1].split(',');
2519			return Math.atan2(parseFloat(v[1]), parseFloat(v[0])) * 180 / Math.PI;
2520		}
2521		function norm180(x){ x = ((x % 360) + 360) % 360; return x > 180 ? x - 360 : x; }
2522
2523		// Marca como activo (agrandado + color pleno) el logo que está pasando
2524		// bajo la flechita (arriba). El gajo i está centrado en i*SEG en el
2525		// espacio de la rueda; en pantalla aparece en i*SEG + R.
2526		function setActive(idx){
2527			for (var i = 0; i < logos.length; i++) { logos[i].classList.toggle('is-active', i === idx); }
2528		}
2529		function updateActive(){
2530			var R = wheelAngle();
2531			var best = -1, bestd = 1e9;
2532			for (var i = 0; i < N; i++) {
2533				var d = Math.abs(norm180(i * SEG + R));
2534				if (d < bestd) { bestd = d; best = i; }
2535			}
2536			setActive(best);
2537		}
2538		function track(){ updateActive(); rafId = requestAnimationFrame(track); }
2539		function stopTrack(){ if (rafId) { cancelAnimationFrame(rafId); rafId = null; } }
2540
2541		// Confeti vanilla sobre el popup (sin librerías). Se dibuja en un canvas
2542		// a pantalla del popup y se autodestruye al terminar.
2543		function confetti(){
2544			if (reduced()) { return; }
2545			var box = root.closest('.guru-popup') || root;
2546			var W = box.clientWidth, H = box.clientHeight;
2547			if (!W || !H) { return; }
2548			var canvas = document.createElement('canvas');
2549			canvas.className = 'guru-roulette__confetti';
2550			canvas.width = W; canvas.height = H;
2551			box.appendChild(canvas);
2552			var ctx = canvas.getContext('2d');
2553			if (!ctx) { canvas.remove(); return; }
2554			var colors = ['#ffd34e','#5eb1ff','#7ee0a1','#ff9e7a','#c7a3ff','#ef5da8','#4ade80'];
2555			var parts = [];
2556			var originX = W / 2, originY = H * 0.34;
2557			for (var i = 0; i < 140; i++) {
2558				var ang = Math.PI * (0.15 + 0.7 * (i / 140)) * -1 - 0.15; // hacia arriba, en abanico
2559				var sp  = 6 + Math.random() * 7;
2560				parts.push({
2561					x: originX + (Math.random() - 0.5) * 40,
2562					y: originY,
2563					vx: Math.cos(ang) * sp * (Math.random() < 0.5 ? -1 : 1),
2564					vy: Math.sin(ang) * sp - Math.random() * 3,
2565					g: 0.18 + Math.random() * 0.12,
2566					size: 5 + Math.random() * 6,
2567					color: colors[i % colors.length],
2568					rot: Math.random() * 6.28,
2569					vr: (Math.random() - 0.5) * 0.4
2570				});
2571			}
2572			var start = null, DUR = 1800;
2573			function frame(t){
2574				if (start === null) { start = t; }
2575				var el = t - start;
2576				ctx.clearRect(0, 0, W, H);
2577				for (var i = 0; i < parts.length; i++) {
2578					var p = parts[i];
2579					p.vy += p.g; p.x += p.vx; p.y += p.vy; p.rot += p.vr;
2580					ctx.save();
2581					ctx.globalAlpha = Math.max(0, 1 - el / DUR);
2582					ctx.translate(p.x, p.y);
2583					ctx.rotate(p.rot);
2584					ctx.fillStyle = p.color;
2585					ctx.fillRect(-p.size / 2, -p.size / 2, p.size, p.size * 0.55);
2586					ctx.restore();
2587				}
2588				if (el < DUR) { requestAnimationFrame(frame); }
2589				else { canvas.remove(); }
2590			}
2591			requestAnimationFrame(frame);
2592		}
2593
2594		var WINNER = root.getAttribute('data-winner') || '';
2595
2596		function reveal(){
2597			if (done) { return; }
2598			done = true;
2599			stopTrack();
2600			setActive(0); // el ganador (#1) queda arriba y destacado
2601			if (result) { result.hidden = false; }
2602			if (spin) { spin.disabled = true; spin.setAttribute('hidden', ''); }
2603			window.guruPopupTrack && window.guruPopupTrack('popup_roulette_result', { popup_slot: 1, casa: WINNER });
2604			confetti();
2605		}
2606
2607		function go(){
2608			if (!wheel || spin.disabled) { return; }
2609			spin.disabled = true;
2610			window.guruPopupTrack && window.guruPopupTrack('popup_roulette_spin', { popup_slot: 1 });
2611			track(); // resalta el logo que pasa por la flechita durante el giro
2612			// Objetivo múltiplo de 360° → el gajo 0 (centrado arriba) queda bajo
2613			// el puntero: siempre gana la #1. Sumamos varias vueltas desde el reposo.
2614			var turns  = reduced() ? 2 : 6;
2615			var target = 360 * turns; // 2160/720: múltiplo de 360 = gajo 0 arriba
2616			var dur    = reduced() ? 700 : 4200;
2617
2618			// Camino principal: Web Animations API (no depende de transition CSS).
2619			if (typeof wheel.animate === 'function') {
2620				var anim = wheel.animate(
2621					[ { transform: 'rotate(' + REST + 'deg)' }, { transform: 'rotate(' + target + 'deg)' } ],
2622					{ duration: dur, easing: 'cubic-bezier(.16,1,.3,1)', fill: 'forwards' }
2623				);
2624				var settled = false;
2625				var finish = function(){ if (settled) { return; } settled = true; wheel.style.transform = 'rotate(' + target + 'deg)'; reveal(); };
2626				anim.onfinish = finish;
2627				setTimeout(finish, dur + 250); // respaldo por si onfinish no dispara
2628				return;
2629			}
2630
2631			// Fallback: transición CSS.
2632			wheel.style.transition = 'transform ' + dur + 'ms cubic-bezier(.16,1,.3,1)';
2633			// Forzamos reflow para que el cambio de transform anime desde el reposo.
2634			void wheel.offsetWidth;
2635			wheel.style.transform = 'rotate(' + target + 'deg)';
2636			var fired = false;
2637			wheel.addEventListener('transitionend', function(){ fired = true; reveal(); }, { once: true });
2638			setTimeout(function(){ if (!fired) { reveal(); } }, dur + 400);
2639		}
2640
2641		spin.addEventListener('click', go);
2642
2643		// Click en el CTA de la ruleta (OBTENER).
2644		var rouletteCta = root.querySelector('.guru-roulette__cta');
2645		if (rouletteCta) {
2646			rouletteCta.addEventListener('click', function(){
2647				window.guruPopupTrack && window.guruPopupTrack('popup_roulette_cta', { popup_slot: 1, casa: WINNER, link_url: rouletteCta.getAttribute('href') || '' });
2648			});
2649		}
2650	})();
2651	</script>
2651
2652	
2653				
2654				
2655				
2656				
2657				
2658							</div>
2659		</div>
2660			
2660<script>
2661	(function(){
2662		var popups = Array.prototype.slice.call(document.querySelectorAll('[data-guru-popup]'));
2663		if (!popups.length) { return; }
2664
2665		// Modo prueba: en la URL de prueba el popup salta siempre (ignora el tope
2666		// diario y no persiste el contador), para poder probarlo cuantas veces sea.
2667		// Además, si el usuario está logueado, también salta siempre (para testear
2668		// refrescando la página sin gastar el cupo del día).
2669		var TEST = false;
2670
2671		function todayKey(){
2672			var d = new Date();
2673			return '' + d.getFullYear() + (d.getMonth() + 1) + d.getDate();
2674		}
2675		function storeKey(id){ return 'guru_popup_' + id + '_' + todayKey(); }
2676		function shownToday(id){
2677			try { return parseInt(localStorage.getItem(storeKey(id)), 10) || 0; }
2678			catch (e) { return 0; }
2679		}
2680		function bump(id){
2681			try { localStorage.setItem(storeKey(id), shownToday(id) + 1); }
2682			catch (e) {}
2683		}
2684
2685		var current = null;
2686		var lastFocus = null;
2687
2688		function focusables(dialog){
2689			if (!dialog) { return []; }
2690			return Array.prototype.slice.call(
2691				dialog.querySelectorAll('a[href], button:not([disabled])')
2692			).filter(function(el){ return el.offsetParent !== null; });
2693		}
2694		function modalMeta(modal){
2695			return { popup_slot: parseInt(modal.getAttribute('data-guru-popup'), 10) || 0, popup_kind: modal.getAttribute('data-kind') || 'plain' };
2696		}
2697		// Enfoca sin mover la página. Sin esto, al cerrar el popup el navegador
2698		// scrollea hasta donde esté el elemento que tenía el foco antes de abrirlo
2699		// (un link que el visitante tocó, el botón de aceptar cookies del final):
2700		// si ese elemento está abajo, la página salta al fondo.
2701		function focusNoScroll(el){
2702			if (!el || typeof el.focus !== 'function' || !document.contains(el)) { return; }
2703			var y = window.pageYOffset;
2704			try { el.focus({ preventScroll: true }); }
2705			catch (e) { el.focus(); }
2706			// Safari < 15.4 ignora preventScroll: si igual saltó, volvemos.
2707			if (window.pageYOffset !== y) { jumpTo(y); }
2708		}
2709		// Salta sin animar: critical.css pone html{scroll-behavior:smooth}, así que
2710		// un window.scrollTo pelado también se animaría.
2711		function jumpTo(y){
2712			var html = document.documentElement;
2713			var prev = html.style.scrollBehavior;
2714			html.style.scrollBehavior = 'auto';
2715			window.scrollTo(window.pageXOffset, y);
2716			html.style.scrollBehavior = prev;
2717		}
2718		var lockY = 0;
2719		var scrollGuard = null;
2720		// overflow:hidden corta la rueda y el touch, pero NO el scroll programático:
2721		// un scroll suave ya en vuelo cuando abre el popup seguía deslizando la
2722		// página hasta su destino por detrás. El TOC y las anclas usan
2723		// scrollIntoView smooth y con miles de píxeles Chrome tarda segundos: el
2724		// popup abre en medio de la animación y la página termina en el pie. El
2725		// salto instantáneo a la posición actual cancela esa animación; el guardia
2726		// la devuelve si algo más la mueve mientras el popup está abierto.
2727		function lockScroll(){
2728			lockY = window.pageYOffset;
2729			// La clase va en <html> y en <body>: el viewport toma su overflow del
2730			// html (critical.css le pone overflow-x:clip), así que con el lock solo
2731			// en body la página seguía scrolleando detrás del popup hasta el fondo.
2732			document.documentElement.classList.add('guru-popup-open');
2733			document.body.classList.add('guru-popup-open');
2734			jumpTo(lockY);
2735			scrollGuard = function(e){
2736				// El diálogo scrollea por dentro; acá solo miramos el documento.
2737				if (e && e.target && e.target !== document && e.target !== document.documentElement) { return; }
2738				if (window.pageYOffset !== lockY) { jumpTo(lockY); }
2739			};
2740			window.addEventListener('scroll', scrollGuard, { passive: true });
2741		}
2742		function unlockScroll(){
2743			if (scrollGuard) { window.removeEventListener('scroll', scrollGuard); scrollGuard = null; }
2744			document.documentElement.classList.remove('guru-popup-open');
2745			document.body.classList.remove('guru-popup-open');
2746		}
2747		// Creatividad de iframe: el `src` se pone recién acá. Un iframe con src
2748		// se descarga aunque esté oculto, y el popup vive en el footer desde la
2749		// carga: el banner externo pesaría en todas las páginas aunque nadie
2750		// llegue a verlo. Además se le da al iframe el tamaño real del creativo
2751		// y se lo escala para que entre en el diálogo — un iframe no achica lo
2752		// que trae adentro, así que en una caja más angosta se vería un recorte.
2753		function setupFrame(modal){
2754			var box = modal.querySelector('.guru-popup__frame');
2755			if (!box || box.dataset.guruFrameReady) { return; }
2756			var frame = box.querySelector('iframe');
2757			var pick  = window.matchMedia('(max-width: 599.98px)').matches ? 'mobile' : 'desktop';
2758			var src   = box.getAttribute('data-src-' + pick);
2759			// Sin src para este ancho la caja está oculta por CSS: no hay nada
2760			// que pedir ni que medir.
2761			if (!frame || !src) { return; }
2762			box.dataset.guruFrameReady = '1';
2763			var w = parseInt(box.getAttribute('data-w-' + pick), 10) || 0;
2764			var h = parseInt(box.getAttribute('data-h-' + pick), 10) || 0;
2765			function fit(){
2766				var avail = box.clientWidth;
2767				if (!avail || !w || !h) { return; }
2768				var s = Math.min(1, avail / w);
2769				frame.style.width = w + 'px';
2770				frame.style.height = h + 'px';
2771				frame.style.transform = s < 1 ? 'scale(' + s + ')' : '';
2772				box.style.height = Math.round(h * s) + 'px';
2773			}
2774			fit();
2775			window.addEventListener('resize', fit);
2776			frame.setAttribute('src', src);
2777		}
2778		function openModal(modal){
2779			current = modal;
2780			lastFocus = document.activeElement;
2781			modal.hidden = false;
2782			setupFrame(modal);
2783			lockScroll();
2784			var closeBtn = modal.querySelector('.guru-popup__close');
2785			focusNoScroll(closeBtn);
2786			window.guruPopupTrack && window.guruPopupTrack('popup_view', modalMeta(modal));
2787			// Aviso para widgets que necesitan (re)inicializarse ya visibles
2788			// (canvas, ruletas, raspaditas que miden ancho/alto al arrancar).
2789			try {
2790				modal.dispatchEvent(new CustomEvent('guru:popup:open', { bubbles: true, detail: { id: modal.getAttribute('data-guru-popup') } }));
2791			} catch (e) {}
2792		}
2793		function closeModal(){
2794			if (!current) { return; }
2795			window.guruPopupTrack && window.guruPopupTrack('popup_close', modalMeta(current));
2796			current.hidden = true;
2797			unlockScroll();
2798			focusNoScroll(lastFocus);
2799			current = null;
2800		}
2801
2802		document.addEventListener('click', function(e){
2803			if (!current) { return; }
2804			if (e.target.closest('[data-guru-popup-close]')) { e.preventDefault(); closeModal(); return; }
2805			// CTA de popups de texto: los juegos mandan su propio evento, así que
2806			// acá se saltean para no contar la misma conversión dos veces.
2807			// Creatividad clickeable del popup de imagen.
2808			var creative = e.target.closest('a.guru-popup__image');
2809			if (creative) {
2810				var mi = modalMeta(current);
2811				mi.link_url = creative.getAttribute('href') || '';
2812				window.guruPopupTrack && window.guruPopupTrack('popup_image_click', mi);
2813				return;
2814			}
2815			var cta = e.target.closest('.guru-popup__cta');
2816			if (cta && !cta.closest('.guru-roulette') && !cta.closest('.guru-scratch') && !cta.closest('.guru-slotmachine') && !cta.closest('.guru-fruits')) {
2817				var m = modalMeta(current);
2818				m.link_url = cta.getAttribute('href') || '';
2819				window.guruPopupTrack && window.guruPopupTrack('popup_cta', m);
2820			}
2821		});
2822		document.addEventListener('keydown', function(e){
2823			if (!current) { return; }
2824			if (e.key === 'Escape') { closeModal(); return; }
2825			if (e.key === 'Tab') {
2826				var dialog = current.querySelector('.guru-popup__dialog');
2827				var f = focusables(dialog);
2828				if (!f.length) { return; }
2829				var first = f[0], last = f[f.length - 1];
2830				if (!dialog || !dialog.contains(document.activeElement)) {
2831					e.preventDefault(); first.focus();
2832				} else if (e.shiftKey && document.activeElement === first) {
2833					e.preventDefault(); last.focus();
2834				} else if (!e.shiftKey && document.activeElement === last) {
2835					e.preventDefault(); first.focus();
2836				}
2837			}
2838		});
2839
2840		// Solo un popup por carga: el primero (en orden de slot) que todavía no
2841		// haya llegado a su tope de apariciones del día.
2842		var pick = null;
2843		for (var i = 0; i < popups.length; i++) {
2844			var id  = popups[i].getAttribute('data-guru-popup');
2845			var max = parseInt(popups[i].getAttribute('data-max'), 10) || 1;
2846			if (TEST || shownToday(id) < max) { pick = popups[i]; break; }
2847		}
2848		if (!pick) { return; }
2849
2850		var delay = parseInt(pick.getAttribute('data-delay'), 10) || 0;
2851		window.setTimeout(function(){
2852			if (!TEST) { bump(pick.getAttribute('data-guru-popup')); }
2853			openModal(pick);
2854		}, delay);
2855	})();
2856	</script>
2856
2857		<nav class="guru-appnav" aria-label="Navegación de la app">
2858		<button type="button" class="guru-appnav__btn" data-guru-appnav="back" aria-label="Atrás">
2859			<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>
2860		</button>
2861		<a class="guru-appnav__btn" href="https://apostar.com.ec/" data-guru-appnav="home" aria-label="Inicio">
2862			<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>
2863		</a>
2864					<button type="button" class="guru-appnav__btn" data-guru-appnav="reload" aria-label="Recargar">
2865				<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>
2866			</button>
2867						<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ú">
2868			<span class="hamburger"></span>
2869		</button>
2870	</nav>
2871	
2871<script>
2872	(function(){
2873		var nav = document.querySelector('.guru-appnav');
2874		if (!nav) { return; }
2875		var HOME = "https:\/\/apostar.com.ec\/";
2876		var back = nav.querySelector('[data-guru-appnav="back"]');
2877
2878		// history.length cuenta entradas, no la posición: en la página en la que
2879		// abrió la app vale 1 y atrás no tiene a dónde ir, así que el botón sale
2880		// apagado. Después de navegar y volver sigue valiendo 2 aunque estemos de
2881		// nuevo en el principio, y ahí history.back() no hace nada: de eso se
2882		// encarga el respaldo de abajo.
2883		function syncBack(){
2884			if (!back) { return; }
2885			if (window.history.length > 1) { back.removeAttribute('aria-disabled'); }
2886			else { back.setAttribute('aria-disabled', 'true'); }
2887		}
2888		syncBack();
2889		// Al volver desde el caché de atrás/adelante la página no se re-ejecuta.
2890		window.addEventListener('pageshow', syncBack);
2891
2892		// El menú lo sigue manejando el toggle del header (initMobileMenu en
2893		// main.js engancha un solo .menu-toggle): este botón le pasa el click y
2894		// espeja su aria-expanded, así la animación a X y el cierre por el botón
2895		// del panel quedan sincronizados sin duplicar la lógica.
2896		var headerToggle = document.querySelector('.header-top__left .menu-toggle') || document.querySelector('.menu-toggle');
2897		var menuBtn = nav.querySelector('[data-guru-appnav="menu"]');
2898		if (menuBtn) {
2899			if (!headerToggle) {
2900				menuBtn.remove();
2901				menuBtn = null;
2902			} else if (window.MutationObserver) {
2903				new MutationObserver(function(){
2904					var open = 'true' === headerToggle.getAttribute('aria-expanded');
2905					menuBtn.setAttribute('aria-expanded', String(open));
2906				}).observe(headerToggle, { attributes: true, attributeFilter: ['aria-expanded'] });
2907			}
2908		}
2909
2910		function goBack(){
2911			var from = window.location.href;
2912			// Si history.back() no llevó a ninguna parte, caemos al inicio en vez
2913			// de dejar un botón que no hace nada.
2914			var t = window.setTimeout(function(){
2915				if (window.location.href === from) { window.location.href = HOME; }
2916			}, 450);
2917			window.addEventListener('pagehide', function(){ window.clearTimeout(t); }, { once: true });
2918			window.history.back();
2919		}
2920
2921		nav.addEventListener('click', function(e){
2922			var el = e.target.closest('[data-guru-appnav]');
2923			if (!el || 'true' === el.getAttribute('aria-disabled')) { return; }
2924			var action = el.getAttribute('data-guru-appnav');
2925			if ('back' === action) { e.preventDefault(); goBack(); return; }
2926			if ('reload' === action) { e.preventDefault(); window.location.reload(); return; }
2927			if ('menu' === action) {
2928				e.preventDefault();
2929				// main.js cierra el menú con un handler de "click afuera" en
2930				// document, y este botón queda afuera del panel y del toggle: sin
2931				// cortar la propagación, el click abre el menú por el toggle y
2932				// después el mismo click lo vuelve a cerrar.
2933				e.stopPropagation();
2934				if (headerToggle) { headerToggle.click(); }
2935				return;
2936			}
2937			// "inicio" es un <a> de verdad: lo resuelve el navegador.
2938		});
2939	})();
2940	</script>
2940
2941	
2941<script id="guru-main-js-extra">
2942var GURU_AJAX = {"url":"https://apostar.com.ec/wp-admin/admin-ajax.php","nonce":"1b2c0a4cfc","i18n":{"toggleSubmenu":"Mostrar submen\u00fa"}};
2943//# sourceURL=guru-main-js-extra
2944</script>
vendor: 1 bytes, line 2944
2944
2945<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>
2945
2946	
2946<script id="guru-sn-inline">
2947	(function () {
2948		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"}};
2949		function bind(form) {
2950			if (form.getAttribute('data-guru-sn-bound')) { return; }
2951			form.setAttribute('data-guru-sn-bound', '1');
2952			var banner = form.closest ? form.closest('.guru-sn') : null;
2953			var input  = form.querySelector('input[type="email"]');
2954			var button = form.querySelector('button[type="submit"]');
2955			var msg    = banner ? banner.querySelector('[data-guru-sn-msg]') : null;
2956			var hp     = form.querySelector('input[name="guru_sn_website"]');
2957			function showMsg(text, ok) {
2958				if (!msg) { return; }
2959				msg.textContent = text;
2960				msg.className = 'guru-sn__message ' + (ok ? 'is-success' : 'is-error');
2961				msg.hidden = false;
2962			}
2963			form.addEventListener('submit', function (e) {
2964				e.preventDefault();
2965				var email = input ? input.value.trim() : '';
2966				if (!email || email.indexOf('@') < 1 || email.indexOf('.') < 0) {
2967					showMsg(CFG.i18n.invalid, false);
2968					if (input) { input.focus(); }
2969					return;
2970				}
2971				var btnText = button ? button.textContent : '';
2972				if (button) { button.disabled = true; button.textContent = CFG.i18n.sending; }
2973				var data = new URLSearchParams();
2974				data.append('action', CFG.action);
2975				data.append('email', email);
2976				data.append('guru_sn_website', hp ? hp.value : '');
2977				fetch(CFG.url, {
2978					method: 'POST',
2979					headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
2980					body: data.toString(),
2981					credentials: 'same-origin'
2982				}).then(function (r) {
2983					return r.json().catch(function () { return { success: r.ok }; });
2984				}).then(function (j) {
2985					if (j && j.success) {
2986						// Éxito: ocultar el botón, dejar el email visible pero
2987						// deshabilitado, y mostrar el mensaje en su lugar.
2988						if (button) { button.hidden = true; }
2989						if (input) { input.disabled = true; input.readOnly = true; }
2990						showMsg(CFG.i18n.success, true);
2991					} else {
2992						showMsg(CFG.i18n.error, false);
2993						if (button) { button.disabled = false; button.textContent = btnText; }
2994					}
2995				}).catch(function () {
2996					showMsg(CFG.i18n.error, false);
2997					if (button) { button.disabled = false; button.textContent = btnText; }
2998				});
2999			});
3000		}
3001		function init() {
3002			var forms = document.querySelectorAll('form[data-guru-sn]');
3003			for (var i = 0; i < forms.length; i++) { bind(forms[i]); }
3004		}
3005		if (document.readyState === 'loading') {
3006			document.addEventListener('DOMContentLoaded', init);
3007		} else {
3008			init();
3009		}
3010	})();
3011	</script>
3011
3012	</body>
3013</html>
3014
3015<!-- Cache served by breeze CACHE - Last modified: Tue, 29 Sep 2026 21:42:00 GMT -->
3016
3017<!-- plugin=object-cache-pro client=phpredis metric#hits=20355 metric#misses=1541 metric#hit-ratio=93.0 metric#bytes=3794048 metric#prefetches=0 metric#store-reads=1654 metric#store-writes=12 metric#store-hits=551 metric#store-misses=1536 metric#sql-queries=21 metric#ms-total=2503.09 metric#ms-cache=223.26 metric#ms-cache-avg=0.1341 metric#ms-cache-ratio=8.9 -->

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.