<!DOCTYPE html>
<html lang="vi" prefix="og: https://ogp.me/ns#" class="loading-site no-js">
<head>
	<meta charset="UTF-8" />
	<link rel="profile" href="https://gmpg.org/xfn/11" />
	<link rel="pingback" href="https://dep365.com/xmlrpc.php" />

	<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
	<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Tối ưu hóa công cụ tìm kiếm bởi Rank Math - https://rankmath.com/ -->
<title>GaVangTV | Trực tiếp bóng đá hôm nay - Link Gà Vàng TV HD</title>
<meta name="description" content="GavangTV phát bóng đá trực tuyến hôm nay, xem trực tiếp bóng đá Gà Vàng TV tốc độ cao, không quảng cáo ở các giải đấu hàng đầu cùng BLV chất lượng."/>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<link rel="canonical" href="https://dep365.com/" />
<meta property="og:locale" content="vi_VN" />
<meta property="og:type" content="website" />
<meta property="og:title" content="GaVangTV | Trực tiếp bóng đá hôm nay - Link Gà Vàng TV HD" />
<meta property="og:description" content="GavangTV phát bóng đá trực tuyến hôm nay, xem trực tiếp bóng đá Gà Vàng TV tốc độ cao, không quảng cáo ở các giải đấu hàng đầu cùng BLV chất lượng." />
<meta property="og:url" content="https://dep365.com/" />
<meta property="og:site_name" content="GaVangTV - Trực tiếp bóng đá HD - Xem Gà Vàng TV hôm nay" />
<meta property="og:updated_time" content="2025-11-22T17:58:43+00:00" />
<meta property="article:published_time" content="2025-08-02T09:35:55+00:00" />
<meta property="article:modified_time" content="2025-11-22T17:58:43+00:00" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="GaVangTV | Trực tiếp bóng đá hôm nay - Link Gà Vàng TV HD" />
<meta name="twitter:description" content="GavangTV phát bóng đá trực tuyến hôm nay, xem trực tiếp bóng đá Gà Vàng TV tốc độ cao, không quảng cáo ở các giải đấu hàng đầu cùng BLV chất lượng." />
<meta name="twitter:label1" content="Được viết bởi" />
<meta name="twitter:data1" content="Lã Vinh Linh" />
<meta name="twitter:label2" content="Thời gian để đọc" />
<meta name="twitter:data2" content="Chưa đến một phút" />
<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://dep365.com/#organization","name":"GaVangTV","logo":{"@type":"ImageObject","@id":"https://dep365.com/#logo","url":"https://gavangtv.fun/wp-content/uploads/2025/08/logo.png","contentUrl":"https://gavangtv.fun/wp-content/uploads/2025/08/logo.png","caption":"GaVangTV - Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 HD - Xem G\u00e0 V\u00e0ng TV h\u00f4m nay","inLanguage":"vi","width":"256","height":"256"}},{"@type":"WebSite","@id":"https://dep365.com/#website","url":"https://dep365.com","name":"GaVangTV - Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 HD - Xem G\u00e0 V\u00e0ng TV h\u00f4m nay","alternateName":"GavangTV \u2013 Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 mi\u1ec5n ph\u00ed","publisher":{"@id":"https://dep365.com/#organization"},"inLanguage":"vi","potentialAction":{"@type":"SearchAction","target":"https://dep365.com/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"WebPage","@id":"https://dep365.com/#webpage","url":"https://dep365.com/","name":"GaVangTV | Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 h\u00f4m nay - Link G\u00e0 V\u00e0ng TV HD","datePublished":"2025-08-02T09:35:55+00:00","dateModified":"2025-11-22T17:58:43+00:00","about":{"@id":"https://dep365.com/#organization"},"isPartOf":{"@id":"https://dep365.com/#website"},"inLanguage":"vi"},{"@type":"Person","@id":"https://dep365.com/author/admin/","name":"L\u00e3 Vinh Linh","url":"https://dep365.com/author/admin/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/fd1d5911d7ec26de9c7e01d6868d87efd423d333491905199d09934643df32c5?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/fd1d5911d7ec26de9c7e01d6868d87efd423d333491905199d09934643df32c5?s=96&amp;d=mm&amp;r=g","caption":"L\u00e3 Vinh Linh","inLanguage":"vi"},"worksFor":{"@id":"https://dep365.com/#organization"}},{"@type":"Article","headline":"GaVangTV | Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 h\u00f4m nay - Link G\u00e0 V\u00e0ng TV HD","keywords":"gavangtv","datePublished":"2025-08-02T09:35:55+00:00","dateModified":"2025-11-22T17:58:43+00:00","author":{"@id":"https://dep365.com/author/admin/","name":"L\u00e3 Vinh Linh"},"publisher":{"@id":"https://dep365.com/#organization"},"description":"GavangTV ph\u00e1t b\u00f3ng \u0111\u00e1 tr\u1ef1c tuy\u1ebfn h\u00f4m nay, xem tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 G\u00e0 V\u00e0ng TV t\u1ed1c \u0111\u1ed9 cao, kh\u00f4ng qu\u1ea3ng c\u00e1o \u1edf c\u00e1c gi\u1ea3i \u0111\u1ea5u h\u00e0ng \u0111\u1ea7u c\u00f9ng BLV ch\u1ea5t l\u01b0\u1ee3ng.","name":"GaVangTV | Tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 h\u00f4m nay - Link G\u00e0 V\u00e0ng TV HD","@id":"https://dep365.com/#richSnippet","isPartOf":{"@id":"https://dep365.com/#webpage"},"inLanguage":"vi","mainEntityOfPage":{"@id":"https://dep365.com/#webpage"}}]}</script>
<!-- /Plugin SEO WordPress Rank Math -->

<link rel='dns-prefetch' href='//cdn.dep365.com' />
<link rel='prefetch' href='https://cdn.dep365.com/wp-content/themes/flatsome/assets/js/flatsome.js?ver=e1ad26bd5672989785e1' />
<link rel='prefetch' href='https://cdn.dep365.com/wp-content/themes/flatsome/assets/js/chunk.slider.js?ver=3.19.12' />
<link rel='prefetch' href='https://cdn.dep365.com/wp-content/themes/flatsome/assets/js/chunk.popups.js?ver=3.19.12' />
<link rel='prefetch' href='https://cdn.dep365.com/wp-content/themes/flatsome/assets/js/chunk.tooltips.js?ver=3.19.12' />
<link rel="alternate" type="application/rss+xml" title="Dòng thông tin GaVangTV – Trực tiếp bóng đá HD – Xem Gà Vàng TV hôm nay &raquo;" href="https://dep365.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="GaVangTV – Trực tiếp bóng đá HD – Xem Gà Vàng TV hôm nay &raquo; Dòng bình luận" href="https://dep365.com/comments/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/cdn.dep365.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc26\u200b\ud83d\udd25")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css' type='text/css'>

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
</style>
<style id='wp-block-library-inline-css' type='text/css'>
:root{--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,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color)}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}: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)}.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)}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}#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{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap: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-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([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}}
</style>
<link rel='stylesheet' id='fls-styles-css' href='https://cdn.dep365.com/wp-content/plugins/football-live-stream/assets/css/style.css?ver=1.0.2' type='text/css' media='all' />
<link rel='stylesheet' id='flatsome-main-css' href='https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/flatsome.css?ver=3.19.12' type='text/css' media='all' />
<style id='flatsome-main-inline-css' type='text/css'>
@font-face {
				font-family: "fl-icons";
				font-display: block;
				src: url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.eot?v=3.19.12);
				src:
					url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.eot#iefix?v=3.19.12) format("embedded-opentype"),
					url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.woff2?v=3.19.12) format("woff2"),
					url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.ttf?v=3.19.12) format("truetype"),
					url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.woff?v=3.19.12) format("woff"),
					url(https://cdn.dep365.com/wp-content/themes/flatsome/assets/css/icons/fl-icons.svg?v=3.19.12#fl-icons) format("svg");
			}
</style>
<link rel='stylesheet' id='flatsome-style-css' href='https://cdn.dep365.com/wp-content/themes/flatsome/style.css?ver=3.19.12' type='text/css' media='all' />
<script type="text/javascript" src="https://cdn.dep365.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://cdn.dep365.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<link rel="https://api.w.org/" href="https://dep365.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://dep365.com/wp-json/wp/v2/pages/11" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://dep365.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.8.1" />
<link rel='shortlink' href='https://dep365.com/' />
<link rel="alternate" title="oNhúng (JSON)" type="application/json+oembed" href="https://dep365.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdep365.com%2F" />
<link rel="alternate" title="oNhúng (XML)" type="text/xml+oembed" href="https://dep365.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdep365.com%2F&#038;format=xml" />
    <style>
        @media (min-width: 1024px) {
            h1 {
                font-size: 1.5em !important;
            }
        }
        
        .match-teams-score {
            display: flex !important;
        }
        
        @media (max-width: 767px) {
            .xgplayer .xg-inner-controls {
                height: 60px !important;
            }
        }
        
        @media (min-width: 481px) and (max-width: 767px) {
            div#chat_messages {
                max-height: 60vh !important;
            }
        }
    </style>
    <style>
            .match-section {
                min-height: 4800px;
            }
            
            .match-card__status {
                position: absolute;
                top: 13%;
                left: 50%;
                transform: translate(-50%, -50%);
            }
            
            .match-card__stats-content {
                background: none !important;
                box-shadow: none !important
            }
            
            
            
            @media (max-width: 480px) {
                .team__logo {
                    width: 40px !important;
                    height: 40px !important;
                }
                .match-card__league {
                    max-width: 100px;
                }
                
                .match-card__time {
                    max-width: 100px;
                }
                
                .match-card__status {
                    max-width: 120px;
                    order: 1 !important;
                    font-size: 12px
                }
                
                .streaming {
                    padding: 4px;
                }
                
                .btn-view-truc-tiep {
                    padding: 8px 4px !important;
                    font-size: 12px;
                }
                .match-card__stats-content {
                    display: block !important;
                }
                
                .match-card__stats {
                    display: block !important
                }
            }
            
            @media (min-width: 768px) and (max-width: 1024px) {
                .match-card__status {
                    position: absolute;
                    top: 13%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                }
                
                .match-card__league {
                    max-width: 110px;
                }
            }
        </style><link rel="icon" href="https://cdn.dep365.com/wp-content/uploads/2025/08/cropped-logo-32x32.png" sizes="32x32" />
<link rel="icon" href="https://cdn.dep365.com/wp-content/uploads/2025/08/cropped-logo-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://cdn.dep365.com/wp-content/uploads/2025/08/cropped-logo-180x180.png" />
<meta name="msapplication-TileImage" content="https://cdn.dep365.com/wp-content/uploads/2025/08/cropped-logo-270x270.png" />
<style id="custom-css" type="text/css">:root {--primary-color: #446084;--fs-color-primary: #446084;--fs-color-secondary: #d26e4b;--fs-color-success: #7a9c59;--fs-color-alert: #b20000;--fs-experimental-link-color: #334862;--fs-experimental-link-color-hover: #111;}.tooltipster-base {--tooltip-color: #fff;--tooltip-bg-color: #000;}.off-canvas-right .mfp-content, .off-canvas-left .mfp-content {--drawer-width: 300px;}.header-main{height: 60px}#logo img{max-height: 60px}#logo{width:700px;}.header-bottom{min-height: 55px}.header-top{min-height: 30px}.transparent .header-main{height: 90px}.transparent #logo img{max-height: 90px}.has-transparent + .page-title:first-of-type,.has-transparent + #main > .page-title,.has-transparent + #main > div > .page-title,.has-transparent + #main .page-header-wrapper:first-of-type .page-title{padding-top: 90px;}.header.show-on-scroll,.stuck .header-main{height:70px!important}.stuck #logo img{max-height: 70px!important}.header-bg-color {background-color: rgba(0,0,0,0.9)}.header-bottom {background-color: #f1f1f1}.header-main .nav > li > a{line-height: 16px }@media (max-width: 549px) {.header-main{height: 70px}#logo img{max-height: 70px}}body{font-family: Lato, sans-serif;}body {font-weight: 400;font-style: normal;}.nav > li > a {font-family: Lato, sans-serif;}.mobile-sidebar-levels-2 .nav > li > ul > li > a {font-family: Lato, sans-serif;}.nav > li > a,.mobile-sidebar-levels-2 .nav > li > ul > li > a {font-weight: 700;font-style: normal;}h1,h2,h3,h4,h5,h6,.heading-font, .off-canvas-center .nav-sidebar.nav-vertical > li > a{font-family: Lato, sans-serif;}h1,h2,h3,h4,h5,h6,.heading-font,.banner h1,.banner h2 {font-weight: 700;font-style: normal;}.alt-font{font-family: "Dancing Script", sans-serif;}.alt-font {font-weight: 400!important;font-style: normal!important;}.header:not(.transparent) .header-nav-main.nav > li > a {color: #ffffff;}.header:not(.transparent) .header-nav-main.nav > li > a:hover,.header:not(.transparent) .header-nav-main.nav > li.active > a,.header:not(.transparent) .header-nav-main.nav > li.current > a,.header:not(.transparent) .header-nav-main.nav > li > a.active,.header:not(.transparent) .header-nav-main.nav > li > a.current{color: #81d742;}.header-nav-main.nav-line-bottom > li > a:before,.header-nav-main.nav-line-grow > li > a:before,.header-nav-main.nav-line > li > a:before,.header-nav-main.nav-box > li > a:hover,.header-nav-main.nav-box > li.active > a,.header-nav-main.nav-pills > li > a:hover,.header-nav-main.nav-pills > li.active > a{color:#FFF!important;background-color: #81d742;}.nav-vertical-fly-out > li + li {border-top-width: 1px; border-top-style: solid;}.label-new.menu-item > a:after{content:"Mới";}.label-hot.menu-item > a:after{content:"Nổi bật";}.label-sale.menu-item > a:after{content:"Giảm giá";}.label-popular.menu-item > a:after{content:"Phổ biến";}</style>		<style type="text/css" id="wp-custom-css">
			/* Đảm bảo menu chính hiển thị hàng ngang */
.header-nav-main.nav {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  white-space: nowrap;
}

/* Các mục menu căn lề ngang đều nhau */
.header-nav-main.nav > li {
  margin: 0 5px;
  list-style: none;
}

/* Style cho liên kết menu */
.header-nav-main.nav > li > a {
  display: inline-block;
  padding: 12px 26px;
  color: #fff !important;
  font-weight: bold;
  text-transform: uppercase;
  transition: all 0.3s ease;
  background: transparent;
  border-radius: 2px;
}

/* Hover + Active với hiệu ứng gradient */
.header-nav-main.nav > li:hover > a,
.header-nav-main.nav > li.current-menu-item > a,
.header-nav-main.nav > li.current_page_item > a {
  background: linear-gradient(to bottom, #68c700 0%, #0f2d07 100%);
  color: #fff !important;
}

/* Ngăn Flatsome thêm dấu gạch dưới hoặc hiệu ứng mặc định */
.header-nav-main.nav > li > a:before {
  display: none !important;
}

.custom-footer {
  background-color: #1a1a1a;
  color: #fff;
  text-align: center;
  padding: 40px 20px 20px;
  font-family: Arial, sans-serif;
}

/* Footer */
.footer-description {
  max-width: 1200px;
  margin: 0 auto 20px;
  font-size: 16px;
  line-height: 1.6;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin: 20px auto;
  padding: 0;
  list-style: none;
  font-weight: bold;
}

.footer-links a {
  color: #fff;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 15px;
}

.footer-links a:hover {
  text-decoration: underline;
}

.footer-contact {
  margin-top: 20px;
  font-size: 15px;
  line-height: 1.6;
}

.footer-contact a {
  color: #fff;
  text-decoration: underline;
}

.footer-social {
  margin: 20px 0;
}

.footer-social a {
  display: inline-block;
  margin: 0 10px;
}

.footer-social img {
  width: 30px;
  height: 30px;
  vertical-align: middle;
  border-radius: 6px;
  transition: transform 0.2s ease;
}

.footer-social img:hover {
  transform: scale(1.1);
}

.footer-copyright {
  font-size: 14px;
  color: #ccc;
  margin-top: 10px;
}
.footer-logo-wrapper {
  text-align: center;
  margin-bottom: 20px;
}

.footer-logo {
  max-height: 60px;
  width: auto;
  display: inline-block;
}

/* Đổi nền toàn bộ vùng nội dung chính thành đen */
.content-area,
.page-wrapper {
  background-color: #000 !important;
  color: #fff !important;
}

.content {
  overflow-y: auto;           /* cho phép cuộn dọc khi nội dung dài */
  resize: horizontal;         /* cho phép thay đổi kích thước ngang khung */
  min-width: 300px;           /* giới hạn nhỏ nhất khi resize */
  max-width: 1000px;          /* giới hạn lớn nhất khi resize */
  height: 100vh;              /* chiều cao tối đa theo khung hiển thị */
  box-sizing: border-box;     /* tính padding vào kích thước tổng */
}

/* Tùy chọn: tùy chỉnh scrollbar cho đẹp hơn (chrome, edge) */
.content::-webkit-scrollbar {
  width: 8px;
}
.content::-webkit-scrollbar-thumb {
  background: #3fcf32;        /* màu xanh lá cho thanh cuộn */
  border-radius: 10px;
}

.content h2 {
  color: #3fcf32 !important;
}

.blog-wrapper.blog-archive.page-wrapper a {
  color: #3fcf32 !important; /* Màu xanh lá */
  text-decoration: none; /* Bỏ gạch chân nếu không muốn */
}

.blog-wrapper.blog-archive.page-wrapper a:hover {
  color: #FFFFFF !important; /* Màu xanh đậm hơn khi hover */
}

/* h1, strong, a trong .large-9.col màu xanh */
.large-9.col h1,
.large-9.col strong,
.large-9.col a {
  color: #3fcf32 !important;
}

/* a trong .post-sidebar.large-3.col màu xanh */
.post-sidebar.large-3.col a {
  color: #3fcf32 !important;
  text-decoration: none;
  transition: color 0.3s ease;
}

/* a trong .post-sidebar.large-3.col khi hover chuyển sang trắng */
.post-sidebar.large-3.col a:hover {
  color: #ffffff !important;
}

/* Thẻ a, span home live */
.match-card__stats-content a {
    color: #fff !important; /* chữ trắng */
    text-decoration: none;
}
.match-card__stats-content a:hover {
    color: #FFD700 !important; /* vàng khi hover */
}

/* Thẻ span trong btn btn--primary */
.btn.btn--primary span {
    color: #fff !important; /* chữ trắng */
}
.btn.btn--primary:hover span {
    color: #FFD700 !important; /* vàng khi hover */
}

/* CSS detail live */
.heading-watch h2,
.heading-watch span,
.team-info h2,
.team-info h3,
.analytics-header h2 {
    color: #fff !important;
}
h2.heading-watch {
    color: #fff !important;
}
a#get_thongke,
a#get_phantich {
    color: #3fcf32;
}
.tabs-nav a {
    color: #3fcf32;
    text-decoration: none;
}
.tab-pane.active h2,
.tab-pane.active h3 {
    color: #3fcf32;
}
.tab-pane.active p {
		color: #fff;
}
.tab-pane.active a {
		color: #fec917;
}
.marquee,
.message-level {
  color: white;
}

/* UI Desktop */
@media (min-width: 769px) {
  #logo img.header-logo-dark {
    display: block;
    position: relative;
    left: -85px;        /* đẩy logo lệch trái */
    max-width: 150%;    /* chỉnh kích thước desktop */
    height: auto;
  }
}

/* Mobile UI */
@media (max-width: 768px) {
  #masthead .header-inner {
    justify-content: center !important;
  }

  #logo {
    text-align: center;
    flex: 0 0 auto;
    position: relative; /* để có thể chỉnh tay bằng top/left */
  }

  #logo img {
    display: block;
    margin: 0 auto;
    max-width: 150%;
    height: auto;

    /* 👇 chỉnh tay logo */
    position: relative;
    top: 0px;     /* đẩy xuống 5px */
    left: -20px;   /* đẩy sang phải 10px */
    /* có thể dùng số âm để ngược chiều: top: -5px; left: -10px; */
  }
}
.mobile-nav .icon-menu {
    position: relative;
    top: 0px;   /* đẩy xuống 10px */
    /* left: 5px;  nếu muốn dịch ngang */
  }		</style>
		<style id="kirki-inline-styles">/* latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/lato/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/lato/S6uyw4BMUTPHjx4wXg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/lato/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/lato/S6u9w4BMUTPHh6UVSwiPGQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}/* vietnamese */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/dancing-script/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Rep8ltA.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/dancing-script/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3ROp8ltA.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/www/sites/tolomarton.com/wp-content/fonts/dancing-script/If2cXTr6YS-zF4S-kcSWSVi_sxjsohD9F50Ruu7BMSo3Sup8.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}</style>	
<!-- Google tag (tổng) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8GXMSME5N"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-V8GXMSME5N');
</script>


<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-24BR7D28X7"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'G-24BR7D28X7');
</script>

<script src="//s1.what-on.com/widget/service-v2.js?key=V0U86O" async="async"></script>


</head>

<body class="home wp-singular page-template-default page page-id-11 wp-theme-flatsome lightbox nav-dropdown-has-arrow nav-dropdown-has-shadow nav-dropdown-has-border">


<a class="skip-link screen-reader-text" href="#main">Bỏ qua nội dung</a>

<div id="wrapper">

	
	<header id="header" class="header has-sticky sticky-jump">
		<div class="header-wrapper">
			<div id="masthead" class="header-main nav-dark">
      <div class="header-inner flex-row container logo-left medium-logo-center" role="navigation">

          <!-- Logo -->
          <div id="logo" class="flex-col logo">
            
<!-- Header logo -->
<a href="https://dep365.com/" title="GaVangTV – Trực tiếp bóng đá HD – Xem Gà Vàng TV hôm nay - GaVangTV phát trực tiếp bóng đá HD" rel="home">
		<img width="500" height="99" src="https://cdn.dep365.com/wp-content/uploads/2025/08/logo_gavangtv.png" class="header_logo header-logo" alt="GaVangTV – Trực tiếp bóng đá HD – Xem Gà Vàng TV hôm nay"/><img  width="500" height="99" src="https://cdn.dep365.com/wp-content/uploads/2025/08/logo_gavangtv.png" class="header-logo-dark" alt="GaVangTV – Trực tiếp bóng đá HD – Xem Gà Vàng TV hôm nay"/></a>
          </div>

          <!-- Mobile Left Elements -->
          <div class="flex-col show-for-medium flex-left">
            <ul class="mobile-nav nav nav-left ">
              <li class="nav-icon has-icon">
  		<a href="#" data-open="#main-menu" data-pos="left" data-bg="main-menu-overlay" data-color="" class="is-small" aria-label="Menu" aria-controls="main-menu" aria-expanded="false">

		  <i class="icon-menu" ></i>
		  		</a>
	</li>
            </ul>
          </div>

          <!-- Left Elements -->
          <div class="flex-col hide-for-medium flex-left
            flex-grow">
            <ul class="header-nav header-nav-main nav nav-left  nav-line-grow nav-spacing-medium nav-uppercase" >
              <li id="menu-item-23" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-11 current_page_item menu-item-23 active menu-item-design-default"><a href="https://dep365.com/" aria-current="page" class="nav-top-link">GavangTV</a></li>
<li id="menu-item-26" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26 menu-item-design-default"><a href="https://dep365.com/lich-thi-dau/" class="nav-top-link">Lịch thi đấu</a></li>
<li id="menu-item-24" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24 menu-item-design-default"><a href="https://dep365.com/bang-xep-hang/" class="nav-top-link">Bảng xếp hạng</a></li>
<li id="menu-item-27" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27 menu-item-design-default"><a href="https://dep365.com/ket-qua-bong-da/" class="nav-top-link">Kết quả bóng đá</a></li>
<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28 menu-item-design-default"><a href="https://dep365.com/tin-bong-da/" class="nav-top-link">Tin bóng đá</a></li>
<li id="menu-item-25" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25 menu-item-design-default"><a href="https://dep365.com/nhan-dinh/" class="nav-top-link">Nhận định</a></li>
            </ul>
          </div>

          <!-- Right Elements -->
          <div class="flex-col hide-for-medium flex-right">
            <ul class="header-nav header-nav-main nav nav-right  nav-line-grow nav-spacing-medium nav-uppercase">
                          </ul>
          </div>

          <!-- Mobile Right Elements -->
          <div class="flex-col show-for-medium flex-right">
            <ul class="mobile-nav nav nav-right ">
                          </ul>
          </div>

      </div>

            <div class="container"><div class="top-divider full-width"></div></div>
      </div>

<div class="header-bg-container fill"><div class="header-bg-image fill"></div><div class="header-bg-color fill"></div></div>		</div>
	</header>

	
	<main id="main" class="">
<div id="content" class="content-area page-wrapper" role="main">
	<div class="row row-main">
		<div class="large-12 col">
			<div class="col-inner">

				
									
						


<section class="hero"></section>

<div class="container section-title-container" ><h1 class="section-title section-title-center"><b></b><span class="section-title-main" style="color:rgb(63, 207, 40);">GaVangTV | Trực tiếp bóng đá hôm nay - Link Gà Vàng TV HD</span><b></b></h1></div>



    <section class="sports-filter">
        <div class="container">
            <div class="sports-filter__inner" style="display: none">
                <div class="livescore-switch">
                <label class="switch">
                  <input type="checkbox" id="livescoreToggle">
                  <span class="slider"></span>
                </label>
                <span class="livescore-label">Livescore</span>
              </div>
            </div>
             <!-- Divider -->
                <div class="sports-filter__divider"></div>
                <!-- Group 2: Match Filters -->
                <div class="sports-filter__group match-filters">
                    <button class="sports-filter__button_child active" data-filter="child_all">
                        <div class="sports-filter__button-icon">
                            <img decoding="async" src="https://cdn.dep365.com/wp-content/plugins/football-live-stream/assets/images/icons/all.png" alt="All" />
                        </div>
                        <div class="sports-filter__button-text">Tất cả</div>
                        <div class="sports-filter__button-count" id="count-all-type"></div>
                    </button>
                    <button class="sports-filter__button_child live" data-filter="live">
                        <div class="sports-filter__button-icon">
                            <img decoding="async" src="https://cdn.dep365.com/wp-content/plugins/football-live-stream/assets/images/icons/live.png" alt="Live" />
                        </div>
                        <div class="sports-filter__button-text">Đang Live</div>
                        <div class="sports-filter__button-count" id="count-live"></div>
                    </button>
                </div>
        </div>
    </section>
    <!-- Featured Matches -->
    <section class="featured-matches">
        <div class="container">
            <div class="match-section">
                <div id="match-list" class="matches"></div>
            </div>
        </div>
    </section>
    



<!DOCTYPE html>
<html lang="vi">
<head>
  <meta charset="UTF-8">
  <title>GaVangTV</title>
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&#038;display=swap" rel="stylesheet">
  <style>
    body {
      margin: 0;
      font-family: 'Roboto', sans-serif;
      background-color: #000;
      color: #fff;
      scroll-behavior: smooth; /* hiệu ứng cuộn mượt */
    }
    .container-x {
      display: flex;
      max-width: 1200px;
      margin: 0 auto;
      background-color: #111;
      border-radius: 20px;
      overflow: hidden;
margin-top: 40px
    }
    .sidebar {
      width: 30%;
      background-color: #1a1a1a;
      padding: 20px;
    }
    .sidebar h2 {
      color: #fff;
      font-size: 20px;
      border-left: 4px solid #3dc72e;
      padding-left: 10px;
      margin-bottom: 20px;
    }
    .sidebar ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    .sidebar ul li {
      padding: 10px 0;
      border-bottom: 1px solid #333;
      color: #ccc;
      font-size: 14px;
    }
    .sidebar ul li:first-child {
      color: #3dc72e;
    }
    /* Link trong sidebar */
    .sidebar ul li a {
      color: #fff;
      text-decoration: none;
      display: block;
      transition: color 0.3s ease, background 0.3s ease;
    }
    .sidebar ul li a:hover {
      color: #3dc72e; /* xanh */
      padding-left: 5px; /* đẩy nhẹ sang phải */
    }
    .content {
      width: 70%;
      padding: 20px 30px;
    }
    .content h2 {
      font-size: 24px;
      color: #fff;
      margin-top: 0;
    }
    .content h3 {
      color: #FFD700;
      font-size: 20px;
    }
    .content p {
      color: #eee;
      font-size: 15px;
      line-height: 1.6;
    }
    .img-box {
      margin-top: 20px;
      text-align: center;
      background-color: #1a1a1a;
      padding: 15px;
      border: 2px solid #3dc72e;
      border-radius: 10px;
    }
    .img-box img {
      max-width: 100%;
      border-radius: 10px;
    }
    .img-box span {
      display: block;
      margin-top: 10px;
      font-size: 13px;
      color: #888;
    }
    /* Responsive cho mobile */
    @media (max-width: 768px) {
      .container-x {
        flex-direction: column;
        border-radius: 0;
      }
      .header-logo-dark {
        margin-left: auto;
        margin-right: auto;
        display: block;
      }
      .sidebar {
        width: 100%;
        padding: 15px;
        order: 1;
      }
      .content {
        width: 100%;
        padding: 15px;
        order: 2;
      }
      .sidebar h2 {
        font-size: 18px;
        margin-bottom: 15px;
      }
      .sidebar ul li {
        font-size: 13px;
        padding: 8px 0;
      }
      .content h2 {
        font-size: 20px;
      }
      .content h3 {
        font-size: 18px;
      }
      .content p {
        font-size: 14px;
        line-height: 1.5;
      }
      .img-box {
        padding: 10px;
      }
      .img-box span {
        font-size: 12px;
      }
    }
    @media (max-width: 480px) {
      .sidebar h2 {
        font-size: 16px;
      }
      .content h2 {
        font-size: 18px;
      }
      .content h3 {
        font-size: 16px;
      }
      .content p {
        font-size: 13px;
      }
    }
  </style>
</head>
<body>
  <div class="container-x">
    <!-- SIDEBAR: MỤC LỤC MỚI -->
    <div class="sidebar">
      <h2>MỤC LỤC</h2>
      <ul>
        <li><a href="#gavangtv-la-gi">GaVangTV là gì? Nền tảng xem bóng đá trực tiếp chất lượng cao</a></li>
        <li><a href="#vi-sao-gavangtv">Vì sao GaVangTV được người hâm mộ bóng đá lựa chọn?</a></li>
        <li><a href="#chuyen-muc-gavangtv">Những chuyên mục hữu ích cho fan bóng đá trên GaVangTV</a></li>
        <li><a href="#giai-dau-gavangtv">Các giải đấu bóng đá được trực tiếp trên GaVangTV</a></li>
        <li><a href="#khac-biet-gavangtv">Xem bóng đá trên GaVangTV có gì khác biệt?</a></li>
        <li><a href="#huong-dan-xem">Hướng dẫn xem bóng đá trực tiếp trên GaVangTV</a></li>
        <li><a href="#faq-gavangtv">Câu hỏi thường gặp khi xem bóng đá trên GaVangTV (FAQ)</a></li>
        <li><a href="#ket-luan-gavangtv">Kết luận</a></li>
      </ul>
    </div>
    <!-- CONTENT: NỘI DUNG GAVANGTV NEW -->
    <div class="content">
      <!-- Intro -->
      <a href="/"><strong>GaVangTV</strong></a> là nền tảng <strong>xem bóng đá trực tiếp</strong> chất lượng cao, được tối ưu dành riêng cho người hâm mộ Việt Nam với mục tiêu mang đến trải nghiệm <strong>mượt mà – nhanh – ổn định – hoàn toàn miễn phí</strong>.

Tại GaVangTV, người xem có thể theo dõi trọn vẹn mọi trận cầu lớn nhỏ trong nước và quốc tế, từ <strong>Premier League, La Liga, Champions League</strong>, cho đến <strong>AFF Cup, Asian Cup</strong> hay các trận giao hữu quốc tế. Tất cả đều được phát sóng theo chuẩn <strong>Full HD</strong>, tốc độ tải nhanh và hạn chế tối đa giật lag, ngay cả khi anh em đang dùng mạng 3G/4G.
<h2 class="wp-block-heading">GaVangTV là gì? Nền tảng xem bóng đá trực tiếp chất lượng cao</h2>
<strong>GaVangTV </strong>(hay còn gọi là <a href="/"><strong>Gà Vàng TV</strong></a> hoặc <a href="/"><strong>Gavang TV</strong></a>) là một trong những nền tảng <strong>xem bóng đá trực tuyến</strong> uy tín tại Việt Nam, được xây dựng với mục tiêu mang đến cho người hâm mộ trải nghiệm xem bóng đá nhanh, ổn định và hoàn toàn miễn phí. Dù sử dụng tên gọi <strong>GaVang</strong>, <strong>Gà Vàng TV</strong> hay <strong>GavangTV</strong>, website đều hướng đến cùng một giá trị cốt lõi: cung cấp đường truyền chất lượng cao và nội dung bóng đá đầy đủ nhất cho người xem.

Điểm mạnh lớn nhất của GaVangTV nằm ở hệ thống streaming được tối ưu cho tốc độ, giúp hạn chế tối đa tình trạng lag, đứng hình hay mất link giữa trận – vấn đề mà nhiều nền tảng coi thường trải nghiệm người dùng thường gặp phải. Tất cả các trận đấu lớn nhỏ, từ giải VĐQG, cúp châu Âu cho đến những giải đấu cấp đội tuyển, đều được GaVangTV phát sóng với độ ổn định cao và giao diện thân thiện, dễ sử dụng.

<figure style="width: 800px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" src="/wp-content/uploads/2025/08/su-menh-gavangtv.jpg" alt="Sứ mệnh GaVangTV" width="800" height="400" /><figcaption class="wp-caption-text">Sứ mệnh GaVangTV</figcaption></figure>

Bằng cách liên tục cập nhật link xem mới, hỗ trợ server dự phòng và duy trì hoạt động 24/7, GaVangTV trở thành nơi người hâm mộ có thể yên tâm theo dõi mọi trận cầu mình yêu thích mà không cần lo lắng về chất lượng hay sự gián đoạn.
<h2 class="wp-block-heading">Vì sao GaVangTV được người hâm mộ bóng đá lựa chọn?</h2>
GaVangTV ngày càng được nhiều người hâm mộ lựa chọn không chỉ vì miễn phí, mà còn nhờ chất lượng vượt trội so với nhiều nền tảng <strong>trực tiếp bóng đá</strong> hiện nay. Với phương châm “ổn định – chất lượng – an toàn”, GaVangTV xây dựng một hệ thống tối ưu toàn diện để đảm bảo mỗi trận cầu đều được truyền tải mượt mà nhất.
<h3 class="wp-block-heading">Chất lượng Full HD – Không giật lag ngay cả giờ cao điểm</h3>
GaVangTV nổi bật nhờ khả năng mang đến chất lượng truyền phát hình ảnh ổn định trong mọi hoàn cảnh, kể cả ở những thời điểm có lượng người xem tăng đột biến như các trận “Super Sunday”, El Clasico, derby thành Manchester hay các trận đấu vòng knock-out C1. Thay vì chỉ dựa vào một server duy nhất như nhiều website xem bóng đá khác, GaVangTV xây dựng một hệ thống <strong>server đa tầng – tự động tối ưu đường truyền – phân phối tải thông minh</strong> giúp các trận đấu luôn mượt mà.

Hệ thống streaming được triển khai theo cơ chế <strong>Smart Routing</strong>, tự động phát hiện tuyến truyền tốt nhất dựa trên vị trí địa lý và tốc độ mạng của người xem. Nhờ vậy, trải nghiệm xem của người dùng luôn trơn tru, bất kể đang sử dụng:
<ul class="wp-block-list">
 	<li>Wi-Fi trung bình</li>
 	<li>Mạng 3G/4G/5G</li>
 	<li>Kết nối quốc tế yếu hoặc nhiều người cùng dùng chung router</li>
</ul>
<strong>Lợi ích nổi bật:</strong>
<ul class="wp-block-list">
 	<li>✔️ Hạn chế giật lag tối đa trong 90 phút thi đấu</li>
 	<li>✔️ Tải video và vào trận chỉ trong <strong>1–2 giây</strong></li>
 	<li>✔️ Hỗ trợ đa chất lượng: <strong>480p – 720p – Full HD</strong></li>
 	<li>✔️ Cân bằng tự động theo tốc độ mạng để không bị “xoay vòng” khó chịu</li>
 	<li>✔️ Trải nghiệm ổn định trên mọi thiết bị: Mobile / Tablet / PC / TV Box</li>
</ul>
Nhờ những tối ưu này, GaVangTV mang đến chất lượng hình ảnh sắc nét, chuyển động mượt mà và âm thanh chuẩn, giúp người xem có cảm giác như đang theo dõi trực tiếp trên TV truyền thống.
<h3 class="wp-block-heading">Link dự phòng liên tục cập nhật – Không lo mất kết nối</h3>
Một trong những điểm khiến cuộc vui “đứt gánh giữa đường” khi xem bóng đá online chính là <strong>mất link</strong>. GaVangTV xử lý triệt để vấn đề này bằng cách chuẩn bị <strong>2–5 link dự phòng cho mỗi trận đấu</strong>, được đồng bộ theo thời gian thực.

Trong trường hợp link chính gặp lỗi hoặc server bị quá tải, người xem chỉ cần nhấn chuyển server và lập tức tiếp tục xem trận đấu mà <strong>không bị gián đoạn</strong>.

<strong>GaVangTV đảm bảo:</strong>
<ul class="wp-block-list">
 	<li>✔️ Luôn có backup link hoạt động</li>
 	<li>✔️ Chuyển link trong 0,5 giây – không load lại trang</li>
 	<li>✔️ Bot kiểm tra link tự động 24/7</li>
 	<li>✔️ Thay thế link lỗi ngay lập tức khi phát hiện</li>
</ul>
<strong>Ưu điểm vượt trội so với nhiều website khác:</strong>
<ul class="wp-block-list">
 	<li>Không để người xem bị mất trận trong các phút nhạy cảm</li>
 	<li>Không cần tải app hoặc extension để chuyển server</li>
 	<li>Hoạt động mượt ngay cả khi lượng người xem tăng đột biến</li>
</ul>
GaVangTV hiểu rằng mỗi phút trên sân đều quan trọng, vì vậy hệ thống backup link được xây dựng như một lớp bảo vệ chắc chắn để người xem không bỏ lỡ bàn thắng hay tình huống nguy hiểm nào.
<h3 class="wp-block-heading">Hạn chế quảng cáo – Không popup độc hại</h3>
Một trong những ưu điểm quan trọng làm nên sự khác biệt của <strong>Gà Vàng TV (GaVangTV)</strong> chính là chính sách quảng cáo “tối giản – minh bạch – an toàn”.

Trong khi nhiều website xem bóng đá hiện nay lạm dụng:
<ul class="wp-block-list">
 	<li>Popup nhảy lên liên tục</li>
 	<li>Quảng cáo che màn hình</li>
 	<li>Link bẩn chuyển hướng đến trang cờ bạc</li>
 	<li>Banner quá lớn gây lag</li>
</ul>
Thì GaVangTV đi theo hướng ngược lại: <strong>tôn trọng người xem</strong>.

<strong>Chính sách hiển thị quảng cáo của GaVangTV:</strong>
<ul class="wp-block-list">
 	<li>✔️ Không popup ẩn</li>
 	<li>✔️ Không quảng cáo che video</li>
 	<li>✔️ Không redirect sang trang kém an toàn</li>
 	<li>✔️ Chỉ sử dụng banner nhẹ, cố định, không gây khó chịu</li>
 	<li>✔️ Tối ưu kích thước để không ảnh hưởng tốc độ tải trang</li>
</ul>
Việc tối ưu quảng cáo ở mức tối thiểu giúp:
<ul class="wp-block-list">
 	<li>Tăng thời gian người dùng ở lại website</li>
 	<li>Video load nhanh hơn</li>
 	<li>Không làm trải nghiệm bị ngắt quãng</li>
 	<li>Giao diện sạch, thân thiện với người dùng thuộc mọi độ tuổi</li>
</ul>
Đây là lý do GaVangTV được cộng đồng người xem đánh giá cao về độ “sạch” và chuyên nghiệp.
<h3 class="wp-block-heading">Xem bóng đá miễn phí 100% – Không cần tài khoản</h3>
GaVangTV theo đuổi mô hình <strong>hoàn toàn miễn phí</strong>, không thu bất kỳ khoản phí nào dù nhỏ nhất. Để xem bóng đá:
<ul class="wp-block-list">
 	<li>Không phải đăng ký tài khoản</li>
 	<li>Không yêu cầu email</li>
 	<li>Không xin quyền truy cập dữ liệu cá nhân</li>
 	<li>Không bắt buộc nạp VIP hay mua gói premium</li>
</ul>
<strong>Cách xem rất đơn giản:</strong>
<ol class="wp-block-list">
 	<li>Truy cập GaVangTV</li>
 	<li>Chọn trận muốn xem</li>
 	<li>Nhấn phát và thưởng thức</li>
</ol>
Toàn bộ nội dung, bao gồm:
<ul class="wp-block-list">
 	<li>Trực tiếp bóng đá</li>
 	<li>Lịch thi đấu</li>
 	<li>Kết quả</li>
 	<li>Bảng xếp hạng</li>
 	<li>Thông tin trận đấu</li>
</ul>
… đều <strong>miễn phí 100%</strong> và mở cho tất cả người dùng.

Chính sự minh bạch này giúp GaVangTV trở thành điểm đến đáng tin cậy với hàng trăm nghìn người xem mỗi ngày.
<h3 class="wp-block-heading">Tốc độ tải trang nhanh – Tối ưu Core Web Vitals</h3>
Không chỉ tập trung vào streaming, GaVangTV còn tối ưu toàn diện tốc độ tải trang để đảm bảo người dùng truy cập nhanh, kể cả khi đang dùng mạng yếu.

Website được tối ưu đúng chuẩn Google Core Web Vitals:
<ul class="wp-block-list">
 	<li><strong>LCP (Largest Contentful Paint)</strong>: &lt; <strong>1.5s</strong></li>
 	<li><strong>CLS (Cumulative Layout Shift)</strong>: ổn định, không nhảy layout</li>
 	<li><strong>FID/INP</strong>: phản hồi nhanh, thao tác mượt</li>
 	<li><strong>Hình ảnh WebP</strong> tối ưu 40–60% dung lượng</li>
 	<li><strong>Script và CSS</strong> được nén gọn, tải song song, không chặn render</li>
</ul>
<strong>Lợi ích thực tế:</strong>
<ul class="wp-block-list">
 	<li>✔️ Truy cập web nhanh ngay khi mở</li>
 	<li>✔️ Video hiển thị tức thì</li>
 	<li>✔️ Không giật lag khi cuộn trang</li>
 	<li>✔️ Tương thích mọi cấu hình điện thoại</li>
 	<li>✔️ Đặc biệt hiệu quả với người xem dùng 3G/4G</li>
</ul>
Hệ thống cache – CDN giúp GaVangTV luôn duy trì hiệu suất vượt trội.
<h3 class="wp-block-heading">Hoạt động ổn định 24/7 – Cập nhật dữ liệu liên tục</h3>
Đằng sau GaVangTV là đội ngũ kỹ thuật theo dõi hệ thống liên tục để đảm bảo website hoạt động ổn định mọi thời điểm. Tất cả đều được vận hành với tinh thần “không để người xem bỏ lỡ trận nào”.

<strong>Hoạt động kỹ thuật bao gồm:</strong>
<ul class="wp-block-list">
 	<li>✔️ Theo dõi uptime 24/7</li>
 	<li>✔️ Kiểm tra tải server liên tục</li>
 	<li>✔️ Tối ưu băng thông trong giờ cao điểm</li>
 	<li>✔️ Fix link lỗi ngay khi phát hiện</li>
 	<li>✔️ Cập nhật lịch thi đấu hằng ngày</li>
 	<li>✔️ Chuẩn bị trước link trận HOT</li>
</ul>
Nhờ hệ thống hoạt động chủ động, GaVangTV luôn đảm bảo:
<ul class="wp-block-list">
 	<li>Trận nào cũng có link</li>
 	<li>Chất lượng ổn định từ đầu tới cuối</li>
 	<li>Không bị overload ở các trận đinh</li>
</ul>
Sự chuyên nghiệp trong vận hành giúp GaVangTV trở thành lựa chọn uy tín cho những người xem bóng đá thường xuyên.

<figure style="width: 800px" class="wp-caption aligncenter"><img decoding="async" src="https://cdn.faunbrook.com/wp-content/uploads/2025/08/gavangtv-so-sanh-voi-nhung-nen-tang-khac.jpg" alt="So sánh GaVangTV với các nền tảng khác" width="800" height="400" /><figcaption class="wp-caption-text">So sánh GaVangTV với các nền tảng khác</figcaption></figure>
<h2 class="wp-block-heading">Những chuyên mục hữu ích cho fan bóng đá trên GaVangTV</h2>
GaVangTV không chỉ là nơi <strong>xem bóng đá trực tiếp</strong> chất lượng cao mà còn là một trung tâm thông tin bóng đá toàn diện dành cho người hâm mộ. Website được xây dựng theo định hướng trở thành “<strong>hệ sinh thái bóng đá trực tuyến</strong>”, nơi người dùng có thể tìm thấy đầy đủ lịch thi đấu, bảng xếp hạng, kết quả, tin tức và nhận định chuyên sâu — tất cả đều được cập nhật liên tục theo thời gian thực.

Mỗi chuyên mục dưới đây đều được tối ưu để hỗ trợ người xem trước, trong và sau mỗi trận đấu, biến GaVangTV thành điểm đến toàn diện cho mọi nhu cầu về bóng đá.
<h3 class="wp-block-heading">Lịch thi đấu – Cập nhật 24/7, đầy đủ mọi giải đấu</h3>
GaVangTV cung cấp chuyên mục <a href="/lich-thi-dau"><strong>Lịch thi đấu</strong></a> với tốc độ cập nhật nhanh, chính xác và bao phủ đầy đủ từ giải lớn đến giải nhỏ.

Dù anh em quan tâm đến các giải hàng đầu châu Âu như:
<ul class="wp-block-list">
 	<li>Premier League</li>
 	<li>La Liga</li>
 	<li>Serie A</li>
 	<li>Bundesliga</li>
 	<li>Ligue 1</li>
 	<li>Champions League – Europa League</li>
</ul>
hay các giải đấu quốc tế như:
<ul class="wp-block-list">
 	<li>World Cup</li>
 	<li>Euro</li>
 	<li>Copa America</li>
 	<li>Asian Cup</li>
 	<li>AFF Cup</li>
 	<li>V-League</li>
</ul>
…tất cả đều được hiển thị rõ ràng theo ngày, theo tuần và theo từng giải đấu.

<strong>Tính năng nổi bật trong mục Lịch thi đấu:</strong>
<ul class="wp-block-list">
 	<li>✔️ Tự động cập nhật giờ thi đấu theo múi giờ Việt Nam</li>
 	<li>✔️ Phân loại trận đấu theo giải, theo vòng, theo ngày</li>
 	<li>✔️ Gắn nhãn “HOT” cho các trận đáng chú ý</li>
 	<li>✔️ Cho phép người xem nhấn vào từng trận để mở link trực tiếp</li>
 	<li>✔️ Hiển thị đội hình, thống kê, phong độ (nếu có API tích hợp)</li>
</ul>
Với lịch thi đấu rõ ràng và đầy đủ, GaVangTV giúp người xem không bao giờ bỏ lỡ bất kỳ trận cầu hấp dẫn nào.
<h3 class="wp-block-heading">Bảng xếp hạng – Theo dõi diễn biến cuộc đua vô địch</h3>
Đối với người hâm mộ bóng đá, bảng xếp hạng luôn là yếu tố quan trọng để theo dõi sức mạnh đội bóng, cuộc đua top 4, top 6 hoặc trụ hạng. GaVangTV sở hữu chuyên mục <a href="/bang-xep-hang"><strong>Bảng xếp hạng</strong></a> cập nhật theo từng vòng đấu, được đồng bộ trực tiếp từ hệ thống dữ liệu toàn cầu.

<strong>Thông tin hiển thị trong mục Bảng xếp hạng:</strong>
<ul class="wp-block-list">
 	<li>✔️ Thứ hạng từng đội bóng</li>
 	<li>✔️ Số trận đã đá</li>
 	<li>✔️ Số điểm hiện tại</li>
 	<li>✔️ Hiệu số bàn thắng bại</li>
 	<li>✔️ Số bàn thắng – bàn thua</li>
 	<li>✔️ Phong độ 5 trận gần nhất (W/D/L)</li>
 	<li>✔️ Màu sắc phân vùng: vô địch – top 4 – suất C1/C2 – xuống hạng</li>
</ul>
<strong>Các giải lớn được cập nhật BXH đầy đủ:</strong>
<ul class="wp-block-list">
 	<li>Premier League</li>
 	<li>La Liga</li>
 	<li>Serie A</li>
 	<li>Bundesliga</li>
 	<li>Ligue 1</li>
 	<li>Champions League (giai đoạn vòng bảng)</li>
 	<li>V-League</li>
 	<li>Các giải quốc tế (khi có bảng điểm)</li>
</ul>
Nhờ sự trực quan của bảng xếp hạng, người xem GaVangTV dễ dàng nắm bắt tình hình đội bóng yêu thích chỉ trong vài giây.
<h3 class="wp-block-heading">Kết quả bóng đá – Tổng hợp nhanh, chuẩn xác từng phút</h3>
Kết quả bóng đá là chuyên mục được fan quan tâm nhiều nhất sau mỗi vòng đấu. GaVangTV cung cấp mục <a href="/ket-qua-bong-da"><strong>Kết quả bóng đá</strong></a> với dữ liệu cập nhật cực nhanh và chính xác tuyệt đối.

<strong>Thông tin được cung cấp trong mục Kết quả:</strong>
<ul class="wp-block-list">
 	<li>✔️ Tỷ số chung cuộc</li>
 	<li>✔️ Tỷ số từng hiệp đấu</li>
 	<li>✔️ Người ghi bàn – phút ghi bàn</li>
 	<li>✔️ Thẻ vàng – thẻ đỏ</li>
 	<li>✔️ Penalty (nếu có)</li>
 	<li>✔️ Số cú sút – kiểm soát bóng – phạt góc (khi API hỗ trợ)</li>
 	<li>✔️ Highlight sau trận (nếu website có tích hợp)</li>
</ul>
Ngoài ra, GaVangTV còn hiển thị:
<ul class="wp-block-list">
 	<li>Kết quả theo giải đấu</li>
 	<li>Kết quả theo ngày</li>
 	<li>Kết quả của các trận HOT</li>
</ul>
Chuyên mục này giúp anh em vừa xem trực tiếp bóng đá vừa dễ dàng kiểm tra lại các trận đã diễn ra trong ngày.
<h3 class="wp-block-heading">Nhận định trước trận – Thông tin chuyên sâu cho fan bóng đá</h3>
<a href="/nhan-dinh"><strong>Nhận định</strong></a> trước trận là chuyên mục dành riêng cho những người muốn hiểu sâu hơn về diễn biến trận đấu trước khi bóng lăn.

Tại GaVangTV, chuyên mục này mang đến góc nhìn khách quan và dữ liệu chính xác để người xem có thêm thông tin trước giờ bóng lăn.

<strong>Nội dung nhận định bao gồm:</strong>
<ul class="wp-block-list">
 	<li>✔️ Phân tích phong độ 5 trận gần nhất</li>
 	<li>✔️ Lịch sử đối đầu giữa hai đội</li>
 	<li>✔️ Đội hình dự kiến – lực lượng vắng mặt</li>
 	<li>✔️ Tình thế của hai đội trên bảng xếp hạng</li>
 	<li>✔️ Phong cách chơi – chiến thuật thường sử dụng</li>
 	<li>✔️ Xu hướng ghi bàn – phòng ngự</li>
 	<li>✔️ Dự đoán kết quả (mang tính tham khảo)</li>
</ul>
<strong>Giá trị của mục Nhận định đối với người xem:</strong>
<ul class="wp-block-list">
 	<li>Hiểu kỹ về trận trước khi xem</li>
 	<li>Nắm bắt yếu tố chuyên môn</li>
 	<li>Theo dõi trận đấu hấp dẫn hơn</li>
 	<li>Hỗ trợ người chơi kèo có thêm thông tin (mức độ tham khảo)</li>
</ul>
GaVangTV định hướng xây dựng mục nhận định theo phong cách <strong>ngắn – đủ ý – có số liệu – chính xác</strong> giúp người xem không bị “ngợp” bởi quá nhiều thông tin.
<h3 class="wp-block-heading">Tin tức bóng đá – Bắt nhịp với chuyển động sân cỏ toàn cầu</h3>
Nếu anh em muốn cập nhật những diễn biến mới nhất của thế giới bóng đá mà không cần truy cập nhiều trang khác nhau, chuyên mục <a href="/tin-bong-da"><strong>Tin tức bóng đá</strong></a> của GaVangTV chính là lựa chọn lý tưởng.

Chuyên mục này cung cấp:
<ul class="wp-block-list">
 	<li>✔️ Tin chuyển nhượng</li>
 	<li>✔️ Tin đội tuyển quốc gia</li>
 	<li>✔️ Tin hậu trường – đời sống cầu thủ</li>
 	<li>✔️ Tin chiến thuật – phân tích chuyên môn</li>
 	<li>✔️ Tin chấn thương – tình hình lực lượng</li>
 	<li>✔️ Tin nóng từ các giải bóng đá hàng đầu thế giới</li>
</ul>
Nội dung được sàng lọc để đảm bảo tính chính xác, ngắn gọn, phù hợp cho người xem muốn cập nhật nhanh mà không mất quá nhiều thời gian.

<strong>Ưu điểm của mục Tin tức trên GaVangTV:</strong>
<ul class="wp-block-list">
 	<li>Nội dung ngắn, đi thẳng vấn đề</li>
 	<li>Không giật tít câu view</li>
 	<li>Tốc độ cập nhật nhanh</li>
 	<li>Bài viết dễ đọc trên cả mobile</li>
</ul>
Nhờ việc đa dạng hóa chuyên mục, GaVangTV trở thành nguồn thông tin hữu ích cho mọi fan bóng đá từ cơ bản đến chuyên sâu.

<figure style="width: 800px" class="wp-caption aligncenter"><img decoding="async" src="https://cdn.faunbrook.com/wp-content/uploads/2025/08/tin-tuc-gavangtv.jpg" alt="GaVangTV cung cấp nhiều chuyên mục" width="800" height="400" /><figcaption class="wp-caption-text">GaVangTV cung cấp nhiều chuyên mục</figcaption></figure>
<h2 class="wp-block-heading">Các giải đấu bóng đá được trực tiếp trên GaVangTV</h2>
GaVangTV tự hào là nền tảng <strong>trực tiếp bóng đá</strong> sở hữu độ bao phủ rộng nhất hiện nay, mang đến hàng trăm trận đấu mỗi tuần từ các giải đấu quốc nội, châu lục đến quốc tế. Hệ thống cập nhật lịch thi đấu và link xem theo thời gian thực, giúp người hâm mộ theo dõi mọi giải bóng đá yêu thích chỉ qua một nền tảng duy nhất.

Dưới đây là những giải đấu nổi bật được GaVangTV trực tiếp bóng đá với chất lượng Full HD và tốc độ ổn định.
<h3 class="wp-block-heading">Premier League – Ngoại Hạng Anh</h3>
Ngoại hạng Anh là giải đấu được xem nhiều nhất tại Việt Nam và cũng là nội dung trọng tâm trên GaVangTV. Với sự góp mặt của các CLB hàng đầu như Manchester United, Liverpool, Manchester City, Chelsea hay Arsenal, EPL luôn mang lại những trận cầu hấp dẫn, tốc độ và kịch tính.

<strong>GaVangTV cung cấp:</strong>
<ul class="wp-block-list">
 	<li>✔️ Link trực tiếp tất cả 380 trận mỗi mùa</li>
 	<li>✔️ Chất lượng Full HD – tốc độ tải nhanh</li>
 	<li>✔️ Hiển thị lịch thi đấu, kết quả, bảng xếp hạng</li>
 	<li>✔️ Phân tích phong độ và nhận định trước trận</li>
 	<li>✔️ Nhiều link dự phòng để người xem không bỏ lỡ phút giây nào</li>
</ul>
Với cộng đồng fan EPL đông đảo, GaVangTV luôn đảm bảo mang đến trải nghiệm xem tối ưu nhất.
<h3 class="wp-block-heading">UEFA Champions League – Cúp C1 châu Âu</h3>
Champions League là sân chơi đỉnh cao nơi quy tụ những CLB xuất sắc nhất châu Âu. GaVangTV phát sóng đầy đủ từ vòng bảng, vòng 16 đội, tứ kết, bán kết đến chung kết.

<strong>Nội dung nổi bật tại mục C1 trên GaVangTV:</strong>
<ul class="wp-block-list">
 	<li>✔️ Trực tiếp bóng đá đêm muộn không giật lag</li>
 	<li>✔️ Hỗ trợ xem lại highlight sau trận (nếu có)</li>
 	<li>✔️ Thống kê chuyên sâu: đội hình, thẻ, bàn thắng, số liệu trận đấu</li>
 	<li>✔️ Bình luận tiếng Việt hoặc tiếng Anh tùy trận</li>
</ul>
Nhờ tốc độ đường truyền ổn định, GaVangTV giúp người xem tận hưởng trọn vẹn không khí Champions League – giải đấu danh giá nhất cấp CLB.

<figure style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="https://cdn.faunbrook.com/wp-content/uploads/2025/08/gavangtv-phat-song-cup-c1.jpg" alt="GaVangTV trực tiếp Cúp C1 Châu Âu" width="800" height="400" /><figcaption class="wp-caption-text">GaVangTV trực tiếp Cúp C1 Châu Âu</figcaption></figure>
<h3 class="wp-block-heading">La Liga – Giải vô địch quốc gia Tây Ban Nha</h3>
La Liga luôn thu hút người xem nhờ những màn trình diễn kỹ thuật của Barcelona, Real Madrid hay Atletico Madrid. GaVangTV trực tiếp toàn bộ các trận đấu của giải này với chất lượng hình ảnh sắc nét.

<strong>GaVangTV mang đến:</strong>
<ul class="wp-block-list">
 	<li>✔️ Lịch thi đấu và tỷ số cập nhật theo thời gian thực</li>
 	<li>✔️ Link xem bóng đá ổn định, rõ nét</li>
 	<li>✔️ Bài viết dự đoán, phân tích chuyên sâu cho các trận kinh điển</li>
</ul>
Với lượng fan Real – Barca đông đảo, chuyên mục La Liga trên GaVangTV luôn sở hữu lượng truy cập cực lớn.
<h3 class="wp-block-heading">Serie A – Giải bóng đá Ý</h3>
Serie A được biết đến với tính chiến thuật cao, tốc độ vừa phải nhưng giàu tính kỷ luật. GaVangTV cập nhật đầy đủ các vòng đấu của Juventus, AC Milan, Inter Milan, AS Roma…

<strong>Người xem nhận được:</strong>
<ul class="wp-block-list">
 	<li>✔️ Trực tiếp chất lượng Full HD</li>
 	<li>✔️ Nhiều server backup</li>
 	<li>✔️ Bảng xếp hạng – tình hình cạnh tranh Scudetto</li>
</ul>
Sự trở lại mạnh mẽ của bóng đá Ý trong những mùa gần đây giúp Serie A luôn được theo dõi đều đặn trên GaVangTV.
<h3 class="wp-block-heading">Bundesliga – Giải vô địch quốc gia Đức</h3>
Giải Bundesliga đem đến những trận đấu tốc độ cao và nhiều bàn thắng – rất hợp “gu” xem bóng đá của người Việt.

<strong>Tại GaVangTV:</strong>
<ul class="wp-block-list">
 	<li>✔️ Có đầy đủ trận đấu của Bayern, Dortmund, RB Leipzig…</li>
 	<li>✔️ Link xem ổn định vào cuối tuần</li>
 	<li>✔️ Thông tin đội hình – phong độ – thống kê được cập nhật liên tục</li>
</ul>
Đặc biệt, các trận đá sớm của Đức được nhiều người xem vì thuận tiện giờ giấc.
<h3 class="wp-block-heading">Ligue 1 – Giải vô địch quốc gia Pháp</h3>
Tuy không nổi tiếng bằng EPL hay La Liga, nhưng Ligue 1 vẫn rất được quan tâm nhờ sự xuất hiện của PSG và các tài năng trẻ.

GaVangTV trực tiếp:
<ul class="wp-block-list">
 	<li>✔️ Trận đấu của PSG, Marseille, Monaco, Lyon…</li>
 	<li>✔️ Giải đấu diễn ra vào khung giờ đẹp cho người Việt</li>
 	<li>✔️ Chất lượng hình ảnh cao, thích hợp xem trên TV lớn</li>
</ul>
<h3 class="wp-block-heading">Europa League – UEFA Europa League</h3>
Đây là giải đấu thứ hai của UEFA nhưng có tính cạnh tranh khốc liệt. Nhiều đội bóng lớn như Liverpool, Chelsea, Arsenal, Roma, Sevilla từng góp mặt.

<strong>GaVangTV hỗ trợ:</strong>
<ul class="wp-block-list">
 	<li>✔️ Link xem bóng đá đêm muộn</li>
 	<li>✔️ Dữ liệu đối đầu và nhận định trận đấu</li>
 	<li>✔️ Hiển thị bảng xếp hạng vòng bảng C2</li>
</ul>
<h3 class="wp-block-heading"><strong>Euro, World Cup – Những giải đấu lớn nhất hành tinh</strong></h3>
Các giải đấu cấp đội tuyển luôn có lượng người xem khổng lồ. GaVangTV trực tiếp toàn bộ các trận của:
<ul class="wp-block-list">
 	<li>Euro</li>
 	<li>World Cup</li>
 	<li>Vòng loại World Cup khu vực châu Á</li>
 	<li>Nations League</li>
</ul>
<strong>Trải nghiệm xem:</strong>
<ul class="wp-block-list">
 	<li>✔️ Full HD trên mọi thiết bị</li>
 	<li>✔️ Lịch khai mạc – vòng bảng – vòng knock-out</li>
 	<li>✔️ Nhiều link dự phòng đảm bảo không nghẽn</li>
 	<li>✔️ Tốc độ tải nhanh dù lượng truy cập tăng đột biến</li>
</ul>
<h3 class="wp-block-heading"><strong>AFF Cup, Asian Cup, SEA Games, V-League</strong></h3>
GaVangTV đặc biệt chú trọng các giải đấu có tuyển Việt Nam góp mặt, giúp người xem theo dõi đội tuyển quốc gia một cách dễ dàng.

<strong>Bao gồm:</strong>
<ul class="wp-block-list">
 	<li>AFF Cup</li>
 	<li>Asian Cup</li>
 	<li>SEA Games</li>
 	<li>V-League</li>
 	<li>Các giải U23, U19, U17 theo từng khu vực</li>
</ul>
<strong>Ưu điểm:</strong>
<ul class="wp-block-list">
 	<li>✔️ Streaming mượt</li>
 	<li>✔️ Thống kê trực quan</li>
 	<li>✔️ Có sẵn highlight sau trận (nếu có)</li>
 	<li>✔️ Giờ thi đấu phù hợp cho người dùng Việt</li>
</ul>
<figure style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="https://cdn.faunbrook.com/wp-content/uploads/2025/08/cung-cap-da-dang-tran-dau-gavangtv.jpg" alt="GaVangTV trực tiếp đa dạng trận đấu" width="800" height="400" /><figcaption class="wp-caption-text">GaVangTV trực tiếp đa dạng trận đấu</figcaption></figure>
<h2 class="wp-block-heading"><strong>Câu hỏi thường gặp khi xem bóng đá trên GaVangTV (FAQ)</strong></h2>
Phần <strong>FAQ</strong> giúp giải đáp những thắc mắc phổ biến của người xem khi truy cập GaVangTV. Dưới đây là những câu hỏi được nhiều người quan tâm nhất.
<h3 class="wp-block-heading"><strong>Vì sao GaVangTV có thể ổn định ngay cả khi lượng người xem tăng đột biến?</strong></h3>
GaVangTV sử dụng hệ thống <strong>server đa tầng (multi-layer streaming)</strong>, phân tải theo thời gian thực, giúp website luôn ổn định trong mọi tình huống, kể cả vào giờ cao điểm như các trận chung kết C1, derby Premier League hay trận có đội tuyển Việt Nam thi đấu.

<strong>Cơ chế hoạt động:</strong>
<ul class="wp-block-list">
 	<li>✔️ <strong>Load Balancer tự động</strong> phân phối người xem sang nhiều server khác nhau</li>
 	<li>✔️ <strong>CDN toàn cầu</strong> giúp giảm tải đường truyền quốc tế</li>
 	<li>✔️ <strong>Smart Routing</strong> chọn tuyến mạng nhanh nhất tùy theo vị trí người xem</li>
 	<li>✔️ <strong>Nhiều server dự phòng</strong> để thay thế ngay khi một server gặp sự cố</li>
 	<li>✔️ <strong>Theo dõi băng thông 24/7</strong> để mở rộng tài nguyên khi lượng người xem tăng</li>
</ul>
Nhờ đó, GaVangTV giảm thiểu tối đa tình trạng lag, đứng hình, nghẽn server — điều mà nhiều website xem bóng đá hiện nay không thể đảm bảo.
<h3 class="wp-block-heading"><strong>Xem bóng đá trên GaVangTV có thực sự an toàn không?</strong></h3>
Đa số các website xem bóng đá miễn phí đều có popup hoặc quảng cáo dẫn đến nội dung không an toàn.

GaVangTV đi theo hướng hoàn toàn khác: <strong>ưu tiên trải nghiệm sạch và bảo mật</strong>.

<strong>Cách GaVangTV bảo vệ người dùng:</strong>
<ul class="wp-block-list">
 	<li>✔️ Không sử dụng quảng cáo pop-up hay pop-under</li>
 	<li>✔️ Không redirect sang trang thứ ba</li>
 	<li>✔️ Không tích hợp script ẩn hoặc mã độc</li>
 	<li>✔️ Kiểm duyệt toàn bộ banner trước khi hiển thị</li>
 	<li>✔️ Không thu thập bất kỳ dữ liệu cá nhân nào</li>
 	<li>✔️ Không yêu cầu tải ứng dụng hoặc plugin phụ</li>
</ul>
Điều này giúp người xem yên tâm truy cập GaVangTV mà không lo rủi ro bảo mật hay lừa đảo.
<h3 class="wp-block-heading"><strong>Tại sao một số trận bóng không có link xem ngay và khi nào GaVangTV sẽ cập nhật?</strong></h3>
Có 3 lý do chính khiến một trận chưa xuất hiện link xem trực tiếp:

<strong>(1) Trận chưa bắt đầu hoặc chưa tới giờ mở link</strong>
<ul class="wp-block-list">
 	<li>GaVangTV chỉ hiển thị link <strong>trước 10–15 phút</strong> để đảm bảo chất lượng stream ổn định.</li>
</ul>
<strong>(2) Trận thuộc giải ít phổ biến</strong>
<ul class="wp-block-list">
 	<li>Một số giải đấu nhỏ sẽ có thời gian cập nhật chậm hơn vì nguồn stream hạn chế.</li>
</ul>
<strong>(3) Hệ thống đang bảo trì hoặc cập nhật server</strong>
<ul class="wp-block-list">
 	<li>Trường hợp hiếm, link sẽ được cập nhật lại trong vòng thời gian ngắn.</li>
</ul>
<strong>Người xem có thể kiểm tra lại ở mục Lịch thi đấu</strong> — đây luôn là nơi chứa thông tin chính xác nhất.

<figure style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="https://cdn.faunbrook.com/wp-content/uploads/2025/08/gavangtv-cach-chon-tran-dau.jpg" alt="Cách chọn trận đấu trên GaVangTV" width="800" height="400" /><figcaption class="wp-caption-text">Cách chọn trận đấu trên GaVangTV</figcaption></figure>
<h3 class="wp-block-heading"><strong>Vì sao GaVangTV không có ứng dụng riêng mà chỉ chạy trên web?</strong></h3>
GaVangTV ưu tiên phát triển <strong>web app tối ưu hóa</strong>, thay vì buộc người dùng tải ứng dụng, vì các lý do:
<ul class="wp-block-list">
 	<li>✔️ App chiếm bộ nhớ điện thoại</li>
 	<li>✔️ Có thể yêu cầu quyền truy cập nhạy cảm (camera, danh bạ, lưu trữ…)</li>
 	<li>✔️ App dễ bị hạn chế hoặc báo cáo trên các kho ứng dụng</li>
 	<li>✔️ Web chạy trên mọi thiết bị: Mobile, Tablet, Smart TV, TV Box</li>
 	<li>✔️ Cập nhật nhanh, không cần chờ duyệt phiên bản mới</li>
 	<li>✔️ Tránh rủi ro bảo mật từ file APK ngoài</li>
</ul>
Web của GaVangTV được tối ưu mạnh, load nhanh như ứng dụng nhưng <strong>an toàn hơn nhiều</strong>, phù hợp cho tất cả người dùng.
<h3 class="wp-block-heading">Khi GaVangTV lag hoặc mất tiếng, người xem cần làm gì để khắc phục ngay?</h3>
Lag, mất tiếng hoặc đen màn hình có thể xuất phát từ 3 nhóm nguyên nhân: mạng yếu, server quá tải hoặc lỗi tạm thời.

<strong>Cách khắc phục hiệu quả nhất:</strong>
<h4 class="wp-block-heading">1) Đổi server (server 2/3/backup)</h4>
– Đây là cách nhanh nhất, hiệu quả nhất.
– GaVangTV luôn có 2–5 link dự phòng cho mỗi trận.
<h4 class="wp-block-heading">2) Giảm chất lượng xuống 720p hoặc 480p</h4>
– Rất phù hợp khi dùng Wi-Fi yếu hoặc 4G.
<h4 class="wp-block-heading">3) Reload nhẹ (F5 hoặc chạm nút tải lại)</h4>
– Hệ thống sẽ tự chọn lại server tốt nhất.
<h4 class="wp-block-heading">4) Nhấn nút “Báo lỗi link”</h4>
– Đội kỹ thuật sẽ fix lỗi trong <strong>1–2 phút</strong>.
<h4 class="wp-block-heading">5) Kiểm tra lại thiết bị</h4>
– Đóng app khác, tắt VPN, hoặc đổi sang mạng 4G/5G.

GaVangTV thiết kế để <strong>khắc phục sự cố cực nhanh</strong> nhằm đảm bảo người xem không bị bỏ lỡ khoảnh khắc quan trọng.
<h2 class="wp-block-heading">Kết luận</h2>
GaVangTV không chỉ là một website <strong>trực tiếp bóng đá</strong> miễn phí, mà còn là một hệ sinh thái bóng đá toàn diện dành cho người hâm mộ tại Việt Nam. Với tốc độ nhanh, chất lượng Full HD ổn định, server đa tầng tối ưu, giao diện thân thiện và hoàn toàn không yêu cầu đăng ký, GaVangTV mang đến một trải nghiệm xem bóng đá mượt mà, liền mạch và an toàn bậc nhất.

Nền tảng này còn cung cấp hàng loạt tiện ích hữu ích như: lịch thi đấu, bảng xếp hạng, kết quả bóng đá, nhận định trước trận và tin tức mới nhất. Tất cả được đồng bộ theo thời gian thực, giúp người xem theo dõi bóng đá trước – trong – sau trận một cách đầy đủ, thuận tiện mà không cần truy cập nhiều trang khác nhau.

GaVangTV lựa chọn con đường tôn trọng người dùng: <strong>không popup, không redirect, không thu thập dữ liệu</strong>, và chỉ tập trung vào chất lượng trận đấu. Chính điều đó giúp website xây dựng được sự uy tín và trở thành điểm đến tin cậy cho hàng trăm nghìn fan bóng đá mỗi ngày.

Dù bạn là người yêu thích Premier League, La Liga, Champions League hay các giải đấu có đội tuyển Việt Nam thi đấu, GaVangTV luôn sẵn sàng mang đến cho bạn những giây phút bóng đá trọn vẹn nhất, ở bất kỳ thời điểm nào và trên bất kỳ thiết bị nào.
    </div>
  </div>
</body>
</html>

<div class="row"  id="row-2036710855">


	<div id="col-1818501318" class="col small-12 large-12"  >
				<div class="col-inner"  >
			
			


		</div>
					</div>

	

</div>



<p></p>

					
												</div>
		</div>
	</div>
</div>




</main>

<footer id="footer" class="footer-wrapper">
    
<div id="V0U86O" style="text-align:center"></div>

	<footer class="custom-footer">
  <div class="footer-logo-wrapper">
    <img src="https://gavangtv.fun/wp-content/uploads/2025/08/logo_gavangtv.png" alt="Gà Vàng TV Logo" class="footer-logo">
  </div>
<footer class="custom-footer">
  <div class="footer-container">
    <p class="footer-description">
      Đồng hành cùng Gavang TV kênh phát sóng trực tiếp bóng đá hôm nay với đường truyền full HD tốc độ cao và bình luận hấp dẫn. 
      Cập nhật link xem bóng đá trực tuyến gavang.tv phát sóng tất cả các giải đấu đang được quan tâm hiện nay. Ngoài tên gọi Gà vàng TV, 
      bạn có thể biết đến chúng tôi là Gavang TV tructiepbongda cập nhật lịch thi đấu đầy đủ, tin bóng đá mới, video highlight, bảng xếp hạng, 
      kết quả, kiến thức bóng đá... tất cả thông tin về môn thể thao vua sẽ được tổng hợp từ Gavang. Truy cập website để có những giây phút 
      cùng Gà vàng Xem Bóng Đá trực tuyến.
    </p>

    <ul class="footer-links">
      <li><a href="/chinh-sach-bao-mat">CHÍNH SÁCH BẢO MẬT</a></li>
      <li><a href="/dieu-khoan-su-dung">ĐIỀU KHOẢN SỬ DỤNG</a></li>
      <li><a href="/chinh-sach-ban-quyen">CHÍNH SÁCH BẢN QUYỀN</a></li>
      <li><a href="/mien-tru-trach-nhiem">MIỄN TRỪ TRÁCH NHIỆM</a></li>
      <li><a href="/thong-tin-lien-he">THÔNG TIN LIÊN HỆ</a></li>
    </ul>

    <div class="footer-contact">
      <p>Địa chỉ: 418 Đường Hoàng Diệu, Phường 12, Quận 4, Thành phố Hồ Chí Minh, Việt Nam</p>
      <p>Email: <a href="/cdn-cgi/l/email-protection#5d3a3c2b3c333a3f32333a393c1d3a303c3431733e3230"><span class="__cf_email__" data-cfemail="2f484e594e41484d4041484b4e6f48424e4643014c4042">[email&#160;protected]</span></a></p>
      <p>#GaVangTV #Gavang #tructiepbongda #xembongda #bongdatructuyen</p>
      <p>Open - Closed: 24h every day.</p>
    </div>

    <div class="footer-social">
      <a href="#"><img src="https://cdn-icons-png.flaticon.com/512/2111/2111646.png" alt="Telegram"></a>
      <a href="#"><img src="https://cdn-icons-png.flaticon.com/512/733/733547.png" alt="Facebook"></a>
    </div>
    <a href="//www.dmca.com/Protection/Status.aspx?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b" title="DMCA.com Protection Status" class="dmca-badge"> <img src ="https://images.dmca.com/Badges/_dmca_premi_badge_4.png?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b"  alt="DMCA.com Protection Status" /></a>  <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script>
  </div>
</footer>
<!-- FOOTER 1 -->

<!-- FOOTER 2 -->



<div class="absolute-footer dark medium-text-center text-center">
  <div class="container clearfix">

    
    <div class="footer-primary pull-left">
            <div class="copyright-footer">
        Copyright 2026 © <strong>GaVangTV</strong>      </div>
          </div>
  </div>
</div>

<a href="#top" class="back-to-top button icon invert plain fixed bottom z-1 is-outline hide-for-medium circle" id="top-link" aria-label="Lên đầu trang"><i class="icon-angle-up" ></i></a>

</footer>

</div>

<div id="main-menu" class="mobile-sidebar no-scrollbar mfp-hide">

	
	<div class="sidebar-menu no-scrollbar ">

		
					<ul class="nav nav-sidebar nav-vertical nav-uppercase" data-tab="1">
				<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-11 current_page_item menu-item-23"><a href="https://dep365.com/" aria-current="page">GavangTV</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26"><a href="https://dep365.com/lich-thi-dau/">Lịch thi đấu</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24"><a href="https://dep365.com/bang-xep-hang/">Bảng xếp hạng</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27"><a href="https://dep365.com/ket-qua-bong-da/">Kết quả bóng đá</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28"><a href="https://dep365.com/tin-bong-da/">Tin bóng đá</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25"><a href="https://dep365.com/nhan-dinh/">Nhận định</a></li>
			</ul>
		
		
	</div>

	
</div>
<script type="speculationrules">
{"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\/flatsome\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
        <script src="https://dep365.com/js/websocket-client.js"></script>
        <style>
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        .loading-spinner {
            animation: spin 1s linear infinite;
        }
        #match-list {
            position: relative;
        }
        #match-list > div[style*="display: flex"] {
            width: 100% !important;
            max-width: 100% !important;
        }
        </style>
        <script>
        // Tối ưu: Cache DOM selectors để tránh query lại
        const filterCountCache = {
            countAllType: null,
            countAll: null,
            countElements: {},
            noBlvElement: null,
            liveElement: null,
            hotElement: null,
            todayElement: null,
            tomorrowElement: null,
            initialized: false
        };

        function initFilterCountCache() {
            if (filterCountCache.initialized) return;
            
            filterCountCache.countAllType = document.getElementById('count-all-type');
            filterCountCache.countAll = document.getElementById('count-all');
            filterCountCache.noBlvElement = document.getElementById('noblv-live');
            filterCountCache.liveElement = document.getElementById('count-live');
            filterCountCache.hotElement = document.getElementById('count-hot');
            filterCountCache.todayElement = document.getElementById('count-today');
            filterCountCache.tomorrowElement = document.getElementById('count-tomorrow');
            
            ['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
                filterCountCache.countElements[sport] = document.getElementById(`count-${sport}`);
            });
            
            filterCountCache.initialized = true;
        }

        // Hàm đếm số lượng trận đấu theo bộ lọc - Tối ưu với cached selectors
        function updateFilterCounts(visibleMatchCards, allMatchCards) {
            initFilterCountCache();
            
            if (filterCountCache.countAllType) {
                filterCountCache.countAllType.textContent = allMatchCards.length;
            }

            if (filterCountCache.countAll) {
                filterCountCache.countAll.textContent = visibleMatchCards.length;
            }

            ['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
                const countElement = filterCountCache.countElements[sport];
                if (countElement) {
                    const count = Array.from(allMatchCards).filter(card => card.dataset.sport === sport).length;
                    countElement.textContent = count;
                }
            });

            if (filterCountCache.noBlvElement) {
                const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                filterCountCache.noBlvElement.textContent = noBlvCount;
            }

            if (filterCountCache.liveElement) {
                const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                const liveCount = Array.from(visibleMatchCards).filter(card => card.dataset.live === 'true').length - noBlvCount;
                filterCountCache.liveElement.textContent = liveCount;
            }

            if (filterCountCache.hotElement) {
                const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                const hotCount = Array.from(visibleMatchCards).filter(card => card.dataset.hot === 'true').length - noBlvCount;
                filterCountCache.hotElement.textContent = hotCount;
            }

            const today = new Date().toISOString().split('T')[0];
            const tomorrow = new Date(Date.now() + 86400000).toISOString().split('T')[0];

            if (filterCountCache.todayElement) {
                const todayCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === today).length;
                filterCountCache.todayElement.textContent = todayCount;
            }

            if (filterCountCache.tomorrowElement) {
                const tomorrowCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === tomorrow).length;
                filterCountCache.tomorrowElement.textContent = tomorrowCount;
            }
        }

        // Hàm chuyển đổi ID môn thể thao thành tên
        function sportName(sportId) {
            const sports = {
                1: 'football',
                2: 'basketball',
            };
            return sports[sportId] || 'unknown';
        }

        // Hàm xử lý timestamp
        function fixtime(timestamp) {
            return isNaN(timestamp) ? new Date(timestamp).getTime() : timestamp;
        }

        // Hàm định dạng ngày giờ
        function formatDate(timestamp, format) {
            const date = new Date(timestamp * 1000);
            const day = String(date.getDate()).padStart(2, '0');
            const month = String(date.getMonth() + 1).padStart(2, '0');
            const year = date.getFullYear();
            const hours = String(date.getHours()).padStart(2, '0');
            const minutes = String(date.getMinutes()).padStart(2, '0');
            if (format === 'd/m') return `${day}/${month}`;
            if (format === 'Y-m-d') return `${year}-${month}-${day}`;
            if (format === 'H:i') return `${hours}:${minutes}`;
            return date;
        }

        // Hàm lấy domain API random để tránh Cloudflare rate limit
        function getApiDomain() {
            const domains = [
                'api1.colatv88xd.cc',
    'api2.colatv88xd.cc',
    'api3.colatv88xd.cc',
    'api4.colatv88xd.cc',
    'api5.colatv88xd.cc',
    'api6.colatv88xd.cc',
    'api7.colatv88xd.cc',
    'api8.colatv88xd.cc',
    'api9.colatv88xd.cc',
    'api10.colatv88xd.cc',
    'api11.colatv88xd.cc',
    'api12.colatv88xd.cc',
    'api13.colatv88xd.cc',
    'api14.colatv88xd.cc',
    'api15.colatv88xd.cc',
    'api16.colatv88xd.cc',
    'api17.colatv88xd.cc',
    'api18.colatv88xd.cc',
    'api19.colatv88xd.cc',
    'api20.colatv88xd.cc'
            ];
            
            // Random chọn một domain
            const index = Math.floor(Math.random() * domains.length);
            const selected = domains[index];
            
            return 'https://' + selected;
        }

        // Hàm lấy domain API random cho video-home (pinned-home)
        function getVideoHomeApiDomain() {
            const domains = [
                'api1.colatv88xd.cc',
    'api2.colatv88xd.cc',
    'api3.colatv88xd.cc',
    'api4.colatv88xd.cc',
    'api5.colatv88xd.cc',
    'api6.colatv88xd.cc',
    'api7.colatv88xd.cc',
    'api8.colatv88xd.cc',
    'api9.colatv88xd.cc',
    'api10.colatv88xd.cc',
    'api11.colatv88xd.cc',
    'api12.colatv88xd.cc',
    'api13.colatv88xd.cc',
    'api14.colatv88xd.cc',
    'api15.colatv88xd.cc',
    'api16.colatv88xd.cc',
    'api17.colatv88xd.cc',
    'api18.colatv88xd.cc',
    'api19.colatv88xd.cc',
    'api20.colatv88xd.cc'
            ];
            
            // Random chọn một domain
            const index = Math.floor(Math.random() * domains.length);
            const selected = domains[index];
            
            return 'https://' + selected;
        }

        // Hàm hiển thị loading
        function showLoading() {
            const matchList = getMatchList();
            if (!matchList) return;
            
            // Hiển thị trực tiếp trong match-list, thay thế toàn bộ nội dung
            matchList.innerHTML = `
                <div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center; box-sizing: border-box;">
                    <div class="loading-spinner" style="display: block; width: 50px; height: 50px; border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto;"></div>
                    <p style="margin-top: 20px; color: #666; font-size: 16px; text-align: center; width: 100%;">Đang tải dữ liệu...</p>
                </div>
            `;
        }

        // Hàm hiển thị lỗi với các button đề xuất
        function showErrorWithSuggestions() {
            const matchList = getMatchList();
            if (!matchList) return;
            
            const suggestionLinks = [
                { name: 'iotditr.com', url: 'https://iotditr.com' },
                { name: 'cntsiend.com', url: 'https://cntsiend.com' },
                { name: 'euwygrb.com', url: 'https://euwygrb.com' },
                { name: 'ppoemlg.com', url: 'https://ppoemlg.com' },
                { name: 'eyhtldu.com', url: 'https://eyhtldu.com' }
            ];
            
            const buttonsHtml = suggestionLinks.map(link => 
                `<a href="${link.url}" target="_blank" rel="nofollow" style="display: inline-block; margin: 8px; padding: 12px 24px; background-color: #3498db; color: white; text-decoration: none; border-radius: 5px; font-weight: bold; transition: background-color 0.3s; cursor: pointer;">${link.name}</a>`
            ).join('');
            
            // Hiển thị trực tiếp trong match-list, thay thế toàn bộ nội dung
            matchList.innerHTML = `
                <div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center;">
                    <div style="margin-bottom: 20px;">
                        <svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#e74c3c" stroke-width="2" style="margin: 0 auto; display: block;">
                            <circle cx="12" cy="12" r="10"></circle>
                            <line x1="12" y1="8" x2="12" y2="12"></line>
                            <line x1="12" y1="16" x2="12.01" y2="16"></line>
                        </svg>
                    </div>
                    <h3 style="color: #e74c3c; margin-bottom: 15px; font-size: 24px; font-weight: bold;">Hệ thống gặp sự cố</h3>
                    <p style="color: #666; margin-bottom: 30px; font-size: 16px; max-width: 500px;">Bạn có thể chọn kênh khác:</p>
                    <div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; max-width: 800px;">
                        ${buttonsHtml}
                    </div>
                </div>
            `;
        }

        // Hàm fetch với timeout
        function fetchWithTimeout(url, timeout = 10000) {
            return Promise.race([
                fetch(url),
                new Promise((_, reject) => 
                    setTimeout(() => reject(new Error('Request timeout')), timeout)
                )
            ]);
        }

        // Hàm lấy dữ liệu trận đấu từ API và render
        async function refreshMatches() {
            const matchList = getMatchList();
            if (!matchList) {
                console.error('Không tìm thấy phần tử match-list');
                return;
            }

            // Hiển thị loading
            showLoading();

            try {
                const apiBase = getApiDomain();
                const response = await fetchWithTimeout(apiBase + '/api/matches?t=' + new Date().getTime(), 10000);
                
                if (!response.ok) {
                    throw new Error('Lỗi khi lấy dữ liệu API: ' + response.status);
                }
                
                const datas = await response.json();
        
                if (!datas.data || typeof datas.data !== 'object') {
                    throw new Error('Cấu trúc dữ liệu API không hợp lệ');
                }
        
                const newMatches = [];
                const matchesByGroup = {}; // Nhóm matches theo competitionName
        
                for (const [key, data] of Object.entries(datas.data)) {
                    // Bảo vệ nếu anchorAppointmentVoList không phải array
                    const anchorList = Array.isArray(data.anchorAppointmentVoList) ? data.anchorAppointmentVoList : [];
                    //if (!anchorList.length) continue;
        
                    // Bỏ các trận "Live streaming"
                    if (anchorList[0]?.nickName === 'Live streaming') continue;
        
                    // Bảo vệ tỉ số
                    const homeScoreArr = Array.isArray(data.homeScore) ? data.homeScore : [];
                    const awayScoreArr = Array.isArray(data.awayScore) ? data.awayScore : [];
                    const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
                    const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
        
                    // Nếu match có house_id khác null, thêm ?houseId=... vào slug
                    let slug = key;
                    if (data.house_id && data.house_id !== null) {
                        slug = `${key}?houseId=${data.house_id}`;
                    }
        
                    const competitionName = data.competitionName || 'NBA';
                    const matchData = {
                        id: 2,
                        slug: slug,
                        sport: sportName(data.sportId),
                        live: data.matchStatus === 2,
                        hot: true,
                        blv: anchorList[0]?.nickName !== 'Live streaming',
                        date: formatDate(fixtime(data.matchTime), 'd/m'),
                        datesearch: formatDate(fixtime(data.matchTime), 'Y-m-d'),
                        hour: formatDate(fixtime(data.matchTime), 'H:i'),
                        competitionName: competitionName,
                        teams: [
                            data.homeTeamName || 'Team C',
                            data.awayTeamName || 'Team D'
                        ],
                        score: `${homeScore}:${awayScore}`,
                        videoUrl: data.videoUrl || 'https://live2.example.com',
                        animationUrl: data.animationUrl || 'https://animation.example.com',
                        data: data
                    };
        
                    newMatches.push(matchData);
        
                    // Nhóm matches theo competitionName
                    if (!matchesByGroup[competitionName]) {
                        matchesByGroup[competitionName] = [];
                    }
                    matchesByGroup[competitionName].push(matchData);
                }
        
                // Gọi hàm render với danh sách trận đấu mới
                renderAllMatches(newMatches);
                filterMatches('parent', newMatches);
            } catch (error) {
                console.error('Lỗi khi làm mới trận đấu:', error);
                // Hiển thị lỗi với các button đề xuất
                showErrorWithSuggestions();
            }
        }

                // Hàm tạo HTML cho một trận đấu
        function createMatchCard(match) {
            // Bảo vệ anchorAppointmentVoList
            const anchorList = Array.isArray(match.data.anchorAppointmentVoList)
                ? match.data.anchorAppointmentVoList
                : [];
        
            // Xử lý slug: nếu slug đã có ?houseId=, giữ nguyên; nếu chưa có, thêm ?houseId= hoặc &houseId=
            const baseSlug = match.slug.includes('?') ? match.slug.split('?')[0] : match.slug;
            const existingParams = match.slug.includes('?') ? match.slug.split('?')[1] : '';
            
            const nicknames = anchorList.map(item => {
                // Nếu slug đã có houseId từ match.data.house_id, dùng slug gốc
                // Nếu không, thêm houseId của anchor này
                if (match.slug.includes('?houseId=')) {
                    return `<a href="https://dep365.com/truc-tiep/${match.slug}" rel="nofollow">${item.nickName}</a>`;
                } else {
                    const separator = match.slug.includes('?') ? '&' : '?';
                    return `<a href="https://dep365.com/truc-tiep/${baseSlug}${separator}houseId=${item.houseId}" rel="nofollow">${item.nickName}</a>`;
                }
            });
        
            const nicknameString = nicknames.join(' | ');
        
            // Bảo vệ tỉ số (dùng lại match.score nếu muốn)
            const homeScoreArr = Array.isArray(match.data.homeScore) ? match.data.homeScore : [];
            const awayScoreArr = Array.isArray(match.data.awayScore) ? match.data.awayScore : [];
            const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
            const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
        
            return `
                <div class="match-card" data-id="${match.id}" data-sport="${match.sport}" data-live="${match.live}" data-blv="${match.blv}" data-hot="${match.hot}" data-date="${match.datesearch}">
                    <div class="match-card__body">
                        <a href="https://dep365.com/truc-tiep/${match.slug}" class="link-match" rel="nofollow"></a>
                        <div class="match-card__header">
                            <div class="match-card__league">
                                <span>${match.data.competitionName}</span>
                            </div>
                            <div class="match-card__status">
                                ${
                                    match.data.matchStatus == 1
                                        ? '<div class="match-card__status text-warning text-uppercase">CHƯA BẮT ĐẦU</div>'
                                        : match.data.matchStatus == 2
                                        ? '<div class="match-card__status streaming">ĐANG TRỰC TIẾP</div>'
                                        : match.data.matchStatus == 3
                                        ? '<span class="btn btn--warning text-uppercase">Tạm ngừng phát sóng</span>'
                                        : match.data.matchStatus == 4
                                        ? '<span class="btn btn--danger text-uppercase">Cấm phát sóng vĩnh viễn</span>'
                                        : '<span class="btn btn--secondary text-uppercase">Không xác định</span>'
                                }
                            </div>
                            <div class="match-card__time"><span class="match-time">${match.hour} - ${match.date}</span></div>
                        </div>
                        <div class="match-card__teams">
                            <div class="team home">
                                <img src="${match.data.homeTeamLogo}" alt="${match.data.homeTeamName}" class="team__logo">
                                <span class="team__name">${match.data.homeTeamName}</span>
                            </div>
                            <div class="match-card__score">${homeScore} - ${awayScore}</div>
                            <div class="team">
                                <img src="${match.data.awayTeamLogo}" alt="${match.data.awayTeamName}" class="team__logo">
                                <span class="team__name">${match.data.awayTeamName}</span>
                            </div>
                        </div>
                        <div class="match-card__info">
                            <div class="match-card__stats">
                                <div class="match-card__stats-content">
                                    ${nicknameString}
                                </div>
                            </div>
                            <div class="match-card__odds">
                                <a href="https://dep365.com/truc-tiep/${match.slug}" class="btn btn--primary" rel="nofollow">
                                    <span>XEM NGAY</span>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
            `;
        }

        // Khởi tạo bộ lọc
        let currentFilters = {
            sport: 'all',
            live: false,
            blv: false,
            hot: false,
            commentator: false,
            date: 'all',
            league: 'all'
        };

        // Tối ưu: Preload video metadata để tăng tốc độ load khi click vào match
        const videoPreloadCache = new Map(); // Cache preloaded videos
        function preloadVideoMetadata(videoUrl) {
            if (!videoUrl || videoPreloadCache.has(videoUrl)) {
                return; // Đã preload rồi
            }

            // Mark as preloading
            videoPreloadCache.set(videoUrl, { status: 'loading', timestamp: Date.now() });

            // Preload bằng cách tạo video element và load metadata
            const video = document.createElement('video');
            video.preload = 'metadata'; // Chỉ load metadata, không load toàn bộ video
            video.muted = true;
            video.playsInline = true;
            video.style.display = 'none';
            
            video.addEventListener('loadedmetadata', function() {
                videoPreloadCache.set(videoUrl, { status: 'loaded', timestamp: Date.now() });
                document.body.removeChild(video);
            });

            video.addEventListener('error', function() {
                videoPreloadCache.set(videoUrl, { status: 'error', timestamp: Date.now() });
                if (document.body.contains(video)) {
                    document.body.removeChild(video);
                }
            });

            video.src = videoUrl;
            document.body.appendChild(video);

            // Cleanup cache sau 5 phút
            setTimeout(() => {
                videoPreloadCache.delete(videoUrl);
            }, 5 * 60 * 1000);
        }

        // Tối ưu: Cache match-list selector
        let matchListCache = null;
        function getMatchList() {
            if (!matchListCache) {
                matchListCache = document.getElementById('match-list');
            }
            return matchListCache;
        }

        // Hàm render toàn bộ trận đấu
        function renderAllMatches(matches) {
            const matchList = getMatchList();
            if (!matchList) {
                console.error('Không tìm thấy phần tử match-list');
                return;
            }

            // Xóa danh sách cũ
            matchList.innerHTML = '';

            // Render danh sách mới
            matches.forEach(match => {
                const cardHTML = createMatchCard(match);
                const tempDiv = document.createElement('div');
                tempDiv.innerHTML = cardHTML.trim();
                const cardElement = tempDiv.firstChild;

                // Ẩn các trận không có bình luận viên
                /*if (cardElement.getAttribute('data-blv') === 'false') {
                    cardElement.classList.add('d-none');
                }*/

                // Tối ưu: Preload video metadata khi hover vào match card
                if (match.data && match.data.videoUrl) {
                    let preloadTimeout = null;
                    cardElement.addEventListener('mouseenter', function() {
                        // Debounce: chỉ preload sau 500ms hover
                        preloadTimeout = setTimeout(() => {
                            preloadVideoMetadata(match.data.videoUrl);
                        }, 500);
                    });
                    cardElement.addEventListener('mouseleave', function() {
                        if (preloadTimeout) {
                            clearTimeout(preloadTimeout);
                            preloadTimeout = null;
                        }
                    });
                }

                matchList.appendChild(cardElement);
            });

            // Cập nhật bộ đếm
            const visibleMatches = document.querySelectorAll('.match-card:not(.d-none)');
            updateFilterCounts(visibleMatches, document.querySelectorAll('.match-card'));
        }

        // Hàm lọc trận đấu
        function filterMatches(type, matches) {
            const allCards = document.querySelectorAll('.match-card');

            // Lọc theo môn thể thao
            const sportFiltered = Array.from(allCards).filter(card => {
                const sport = card.dataset.sport;
                return currentFilters.sport === 'all' || sport === currentFilters.sport;
            });

            let finalFiltered = sportFiltered;

            // Áp dụng các bộ lọc khác
            if (currentFilters.live) {
                finalFiltered = finalFiltered.filter(card => card.dataset.live === 'true' && card.dataset.blv === 'true');
            } else if (currentFilters.blv) {
                finalFiltered = finalFiltered.filter(card => card.dataset.blv === 'false');
            } else if (currentFilters.hot) {
                finalFiltered = finalFiltered.filter(card => card.dataset.hot === 'true' && card.dataset.blv === 'true');
            } else if (currentFilters.date !== 'all') {
                finalFiltered = finalFiltered.filter(card => card.dataset.date === currentFilters.date && card.dataset.blv === 'true');
            }

            // Hiển thị/ẩn các thẻ
            allCards.forEach(card => {
                card.classList.toggle('d-none', !finalFiltered.includes(card));
            });

            // Cập nhật bộ đếm
            if (type === 'parent') {
                updateFilterCounts(sportFiltered, allCards);
            } else {
                updateFilterCounts(finalFiltered, allCards);
            }
        }

        // Gắn sự kiện cho nút lọc môn thể thao
        document.querySelectorAll('.sports-filter__button[data-sport]').forEach(button => {
            button.addEventListener('click', () => {
                currentFilters.sport = button.getAttribute('data-sport');
                filterMatches('parent');
            });
        });

        // Gắn sự kiện cho nút lọc con
        document.querySelectorAll('.sports-filter__button_child').forEach(btn => {
            btn.addEventListener('click', function () {
                const filterType = this.getAttribute('data-filter');
                const value = this.getAttribute('data-value');

                if (filterType === 'date') {
                    currentFilters.date = value;
                    currentFilters.live = false;
                    currentFilters.hot = false;
                    currentFilters.blv = false;
                } else if (filterType === 'live') {
                    currentFilters.live = true;
                    currentFilters.date = 'all';
                    currentFilters.hot = false;
                    currentFilters.blv = false;
                } else if (filterType === 'hot') {
                    currentFilters.hot = true;
                    currentFilters.date = 'all';
                    currentFilters.live = false;
                    currentFilters.blv = false;
                } else if (filterType === 'child_all') {
                    currentFilters.live = false;
                    currentFilters.hot = false;
                    currentFilters.blv = false;
                    currentFilters.date = 'all';
                }

                document.querySelectorAll('.sports-filter__button_child').forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                
                filterMatches('child');
            });
        });

        // Gắn sự kiện cho toggle livescore
        const liveToggle = document.getElementById('livescoreToggle');
        if (liveToggle) {
            liveToggle.addEventListener('change', () => {
                currentFilters.live = liveToggle.checked;
                filterMatches('parent');
            });
        }

        // ===== WEBSOCKET INTEGRATION =====
        let wsClient = null;
        let matchesWebSocketConnected = false;
        let fallbackPollingInterval = null;

        // Function để transform WebSocket data format
        function transformWebSocketMatches(data) {
            const newMatches = [];
            
            for (const [key, matchData] of Object.entries(data)) {
                // Logic tương tự như trong refreshMatches()
                const anchorList = Array.isArray(matchData.anchorAppointmentVoList) 
                    ? matchData.anchorAppointmentVoList 
                    : [];
                
                if (anchorList[0]?.nickName === 'Live streaming') continue;
                
                const homeScoreArr = Array.isArray(matchData.homeScore) ? matchData.homeScore : [];
                const awayScoreArr = Array.isArray(matchData.awayScore) ? matchData.awayScore : [];
                const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
                const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
                
                let slug = key;
                if (matchData.house_id && matchData.house_id !== null) {
                    slug = `${key}?houseId=${matchData.house_id}`;
                }
                
                const competitionName = matchData.competitionName || 'NBA';
                const matchDataObj = {
                    id: 2,
                    slug: slug,
                    sport: sportName(matchData.sportId),
                    live: matchData.matchStatus === 2,
                    hot: true,
                    blv: anchorList[0]?.nickName !== 'Live streaming',
                    date: formatDate(fixtime(matchData.matchTime), 'd/m'),
                    datesearch: formatDate(fixtime(matchData.matchTime), 'Y-m-d'),
                    hour: formatDate(fixtime(matchData.matchTime), 'H:i'),
                    competitionName: competitionName,
                    teams: [
                        matchData.homeTeamName || 'Team C',
                        matchData.awayTeamName || 'Team D'
                    ],
                    score: `${homeScore}:${awayScore}`,
                    videoUrl: matchData.videoUrl || 'https://live2.example.com',
                    animationUrl: matchData.animationUrl || 'https://animation.example.com',
                    data: matchData
                };
                
                newMatches.push(matchDataObj);
            }
            
            return newMatches;
        }

        // Function để init WebSocket
        function initMatchesWebSocket() {
            // WebSocket URL - có thể config từ PHP hoặc hardcode
            // Nếu có server-socket service, dùng URL đó
            // Format: wss://server.colatv88xb.cc hoặc ws://localhost:3320
            const wsUrl = 'wss://server.colatv88xb.cc/ws'; // Thay bằng URL thực tế của bạn
            
            // Check nếu RealtimeWebSocketClient đã được load
            if (typeof RealtimeWebSocketClient === 'undefined') {
                console.warn('[Homepage] RealtimeWebSocketClient not loaded, falling back to polling');
                startFallbackPolling();
                return;
            }
            
            wsClient = new RealtimeWebSocketClient(wsUrl);
            
            // Subscribe to matches updates
            wsClient.subscribe('matches:updated', (data) => {
                console.log('[Homepage] Received matches update from WebSocket');
                
                if (data.code === '0000' && data.data) {
                    // Transform data để tương thích với renderAllMatches()
                    const transformedMatches = transformWebSocketMatches(data.data);
                    renderAllMatches(transformedMatches);
                    filterMatches('parent', transformedMatches);
                } else if (data.data && typeof data.data === 'object') {
                    // Nếu data trực tiếp là object (không có code)
                    const transformedMatches = transformWebSocketMatches(data.data);
                    renderAllMatches(transformedMatches);
                    filterMatches('parent', transformedMatches);
                }
            });
            
            // Handle connection events
            wsClient.subscribe('connected', () => {
                console.log('[Homepage] WebSocket connected');
                matchesWebSocketConnected = true;
                // Stop fallback polling nếu đang chạy
                if (fallbackPollingInterval) {
                    clearInterval(fallbackPollingInterval);
                    fallbackPollingInterval = null;
                }
            });
            
            wsClient.subscribe('disconnected', () => {
                console.log('[Homepage] WebSocket disconnected, falling back to polling');
                matchesWebSocketConnected = false;
                startFallbackPolling();
            });
            
            wsClient.subscribe('error', (error) => {
                console.error('[Homepage] WebSocket error:', error);
                matchesWebSocketConnected = false;
                startFallbackPolling();
            });
            
            wsClient.connect();
        }

        // Fallback polling nếu WebSocket fail
        function startFallbackPolling() {
            if (fallbackPollingInterval) return; // Already running
            
            console.log('[Homepage] Starting fallback polling');
            fallbackPollingInterval = setInterval(() => {
                if (!matchesWebSocketConnected) {
                    refreshMatches(); // Use existing function
                } else {
                    // WebSocket reconnected, stop polling
                    clearInterval(fallbackPollingInterval);
                    fallbackPollingInterval = null;
                }
            }, 120000); // 2 minutes như cũ
        }

        // Initial load - dùng API để có data ngay
        refreshMatches();

        // Thử WebSocket trước, fallback to polling nếu fail
        // Delay một chút để đảm bảo RealtimeWebSocketClient đã được load
        setTimeout(() => {
            initMatchesWebSocket();
        }, 500);

        // Cleanup khi page unload
        window.addEventListener('beforeunload', () => {
            if (wsClient) {
                wsClient.disconnect();
            }
            if (fallbackPollingInterval) {
                clearInterval(fallbackPollingInterval);
            }
        });
        </script>
                <style>
        
                                    @media (min-width: 481px) and (max-width: 767px) {
                                        .match-card__status {
                                            max-width: 120px;
                                            font-size: 12px;
                                        }
                                    }
                                    
                                    @media (min-width: 576px) and (max-width: 767px) {
                                        .match-card__league {
                                            max-width: 100px;
                                        }
                                    }
                                    
                                    @media (min-width: 481px) and (max-width: 575px) {
                                        .match-card__header {
                                            flex-direction: row !important;
                                        }
                                        
                                        .match-card__time {
                                            max-width: 100px !important;
                                        }
                                    }
                                    
                                    .top-live-box {
                                        width: 100%;
                                        height: auto;
                                        display: flex;
                                        gap: 8px;
                                    }
                                    .top-live-box .left {
                                        width: 100%;
                                        min-height: 564px;
                                        background-color: #000;
                                        border-radius: 4px;
                                        overflow: hidden;
                                    }
                                    .top-live-box .live-list {
                                        width: 240px;
                                        flex-shrink: 0;
                                    }
                                    .top-live-box .live-list .live-item {
                                        width: 100%;
                                        height: 144px;
                                        margin-bottom: 6px;
                                        cursor: pointer;
                                        border-radius: 4px;
                                        transition: all .1s ease-in-out;
                                        overflow: hidden;
                                        border: 2px solid transparent;
                                        position: relative;
                                    }
                                    .top-live-box .live-list .live-item .anchor-item {
                                        width: 100%;
                                        height: 100%;
                                    }
                                    .el-image img {
                                        display: block;
                                        width: 100%;
                                        height: 100%;
                                        object-fit: cover;
                                    }
                                    .btn-view-truc-tiep {
                                        position: absolute;
                                        top: 70%;
                                        left: 50%;
                                        transform: translate(-50%, -50%);
                                        z-index: 5;
                                        background: #f2152d;
                                        padding: 20px;
                                        border-radius: 30px;
                                        cursor: pointer;
                                        text-align: center;
                                    }
                                    .btn-view-truc-tiep:hover {
                                        opacity: 0.8;
                                    }
                                    .video-player {
                                        position: relative;
                                    }
                                    .top-live-box .live-list .live-item.active{
                                        border: 2px solid #ff0202;
                                    }
                                    
                                    .overlay-click {
                                          position: absolute;
                                          top: 0;
                                          left: 0;
                                          width: 100%;
                                          height: 100%;
                                          z-index: 10;
                                          display: block;
                                                    }
                                    /* Responsive */
    @media screen and (max-width: 1024px) {
        .top-live-box {
            flex-direction: column;
        }

        .top-live-box .left {
            width: 100%;
            min-height: 400px;
        }

        .top-live-box .live-list {
            display: flex;
            width: 100%;
            flex-direction: row;
            flex-wrap: wrap;
            justify-content: center;
            gap: 6px;
            margin-top: 12px;
        }

        .top-live-box .live-list .live-item {
            width: calc(50% - 6px);
            height: 120px;
        }
    }

    @media screen and (max-width: 768px) {
        .top-live-box .left {
            min-height: unset;
        }

        .btn-view-truc-tiep {
            padding: 10px 10px;
            font-size: 12px;
        }

        .top-live-box .live-list .live-item {
            width: calc(50% - 3px);
            height: 100px;
        }
    }

    @media screen and (max-width: 480px) {
        .top-live-box .live-list .live-item {
           width: calc(50% - 3px);
           height: 100px;
        }

        .btn-view-truc-tiep {
            padding: 8px 14px;
            font-size: 13px;
        }
        
        .match-card__body {
            gap: 0.6rem;
        }
    }
                                </style>
                                <script src="//unpkg.byted-static.com/xgplayer/3.0.0-next.1/dist/index.min.js"></script>
                                <script src="//unpkg.com/xgplayer-hls@3.0.0-next.1/dist/index.min.js"></script>
                                <link rel="stylesheet" href="//unpkg.byted-static.com/xgplayer/3.0.0-alpha.100/dist/xgplayer.min.css" />
       <script type="text/javascript">
// Hàm lấy domain API random cho video-home (pinned-home)
function getVideoHomeApiDomain() {
    const domains = [
        'api1.colatv88xd.cc',
        'api2.colatv88xd.cc',
        'api3.colatv88xd.cc',
        'api4.colatv88xd.cc',
        'api5.colatv88xd.cc',
        'api6.colatv88xd.cc',
        'api7.colatv88xd.cc',
        'api8.colatv88xd.cc',
        'api9.colatv88xd.cc',
        'api10.colatv88xd.cc'
    ];
    
    // Random chọn một domain
    const index = Math.floor(Math.random() * domains.length);
    const selected = domains[index];
    
    return 'https://' + selected;
}

document.addEventListener('DOMContentLoaded', function () {
    const apiBase = getVideoHomeApiDomain();
    fetch('https://video-home.colatv88xd.cc/api/pinned-home?t=' + new Date().getTime())
        .then(response => response.json())
        .then(data => {
            const matches = data.pinnedMatches;
            if (!matches || matches.length < 1) {
                console.error('Not enough pinned matches in API response.');
                return;
            }

            const anchors = matches.slice(0, 4).map((match, index) => ({
                streamUrl: match.playStreamAddress2,
                image: match.houseImage,
                name: match.nickName,
                slug: match.slugKey+'?houseId='+match.houseId
            }));

            const streamUrl = anchors[0].streamUrl;

            const liveBoxHtml = `
                <div class="top-live-box container">
                    <div class="left">
                        <div class="video-container">
                            <div class="video-player">
                                <div id="mse" style="width: 100%;"></div>
                                <a href="/truc-tiep/${anchors[0].slug}" class="overlay-click" id="btn-view-link" rel="nofollow"></a>
                                <span class="btn-view-truc-tiep" rel="nofollow">Vào phòng live đang phát sóng</span>
                            </div>
                        </div>
                    </div>
                    <div class="live-list">
                        ${anchors.map((anchor, index) => `
                            <div class="live-item ${index === 0 ? 'active' : ''} live-living-item" data-index="${index}">
                                <div class="anchor-item">
                                    <div class="placeholder img">
                                        <img src="${anchor.image}" alt="${anchor.name}" style="object-fit: cover;">
                                    </div>
                                </div>
                            </div>
                        `).join('')}
                    </div>
                </div>
            `;

            const heroSection = document.querySelector('section.hero');
            if (heroSection) {
                heroSection.insertAdjacentHTML('afterend', liveBoxHtml);

                new Player({
                    plugins: [window.HlsPlayer],
                    id: "mse",
                    ignores: ["time", "progress"],
                    autoplayMuted: true,
                    autoplay: true,
                    playsinline: true,
                    isLive: true,
                    fluid: true,
                    pip: true,
                    muted: true,
                    url: streamUrl
                });

                const liveItems = document.querySelectorAll('.live-item');
                const viewLink = document.getElementById('btn-view-link');

                liveItems.forEach(item => {
                    item.addEventListener('click', () => {
                        const index = parseInt(item.getAttribute('data-index'));
                        liveItems.forEach(i => i.classList.remove('active'));
                        item.classList.add('active');

                        new Player({
                            plugins: [window.HlsPlayer],
                            id: "mse",
                            ignores: ["time", "progress"],
                            autoplayMuted: true,
                            autoplay: true,
                            playsinline: true,
                            isLive: true,
                            fluid: true,
                            pip: true,
                            muted: true,
                            url: anchors[index].streamUrl
                        });

                        viewLink.href = '/truc-tiep/' + anchors[index].slug;
                    });
                });

            } else {
                console.error('Hero section not found.');
            }
        })
        .catch(error => {
            console.error('Error fetching API data:', error);
        });
});
</script>

            <style>
        .aligncenter {
            margin: 0 auto;
           
        }
        .wp-caption {
            max-width: 100%;
        }
       
        footer .container{
            grid-template-columns: 1fr;
        }
    </style>
    <script>
    const mini = document.querySelector('.video-player.is-floating.floating-draggable');
const margin = 8; // cách mép

function clampFloatingVideo() {
    if (!mini) return;

    const rect = mini.getBoundingClientRect();

    let x = rect.left;
    let y = rect.top;

    const vw  = window.innerWidth;
    const vh  = window.innerHeight;

    const minX = margin;
    const minY = margin;           // nếu muốn chừa notch: + safeTop
    const maxX = vw - rect.width  - margin;
    const maxY = vh - rect.height - margin;

    if (x < minX) x = minX;
    if (x > maxX) x = maxX;
    if (y < minY) y = minY;
    if (y > maxY) y = maxY;

    mini.style.left = x + 'px';
    mini.style.top  = y + 'px';
}

// chạy lại mỗi khi viewport thay đổi
window.addEventListener('scroll', clampFloatingVideo);
window.addEventListener('resize', clampFloatingVideo);
window.addEventListener('orientationchange', clampFloatingVideo);

// iOS Safari thanh URL co giãn → nên dùng thêm:
if (window.visualViewport) {
    visualViewport.addEventListener('resize', clampFloatingVideo);
    visualViewport.addEventListener('scroll', clampFloatingVideo);
}
</script>
<style id='wp-block-paragraph-inline-css' type='text/css'>
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
</style>
<style id='global-styles-inline-css' type='text/css'>
: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--color--primary: #446084;--wp--preset--color--secondary: #d26e4b;--wp--preset--color--success: #7a9c59;--wp--preset--color--alert: #b20000;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 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,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 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 rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}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;}a:where(:not(.wp-element-button)){text-decoration: none;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.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-primary-color{color: var(--wp--preset--color--primary) !important;}.has-secondary-color{color: var(--wp--preset--color--secondary) !important;}.has-success-color{color: var(--wp--preset--color--success) !important;}.has-alert-color{color: var(--wp--preset--color--alert) !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-primary-background-color{background-color: var(--wp--preset--color--primary) !important;}.has-secondary-background-color{background-color: var(--wp--preset--color--secondary) !important;}.has-success-background-color{background-color: var(--wp--preset--color--success) !important;}.has-alert-background-color{background-color: var(--wp--preset--color--alert) !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-primary-border-color{border-color: var(--wp--preset--color--primary) !important;}.has-secondary-border-color{border-color: var(--wp--preset--color--secondary) !important;}.has-success-border-color{border-color: var(--wp--preset--color--success) !important;}.has-alert-border-color{border-color: var(--wp--preset--color--alert) !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;}.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;}
</style>
<script type="text/javascript" id="fls-main-script-js-extra">
/* <![CDATA[ */
var fls_vars = {"site_url":"https:\/\/dep365.com\/","matches":[]};
/* ]]> */
</script>
<script type="text/javascript" src="https://cdn.dep365.com/wp-content/plugins/football-live-stream/assets/js/main.js?ver=1.0.2" id="fls-main-script-js"></script>
<script type="text/javascript" src="https://cdn.dep365.com/wp-content/themes/flatsome/inc/extensions/flatsome-live-search/flatsome-live-search.js?ver=3.19.12" id="flatsome-live-search-js"></script>
<script type="text/javascript" src="https://cdn.dep365.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script>
<script type="text/javascript" id="flatsome-js-js-extra">
/* <![CDATA[ */
var flatsomeVars = {"theme":{"version":"3.19.12"},"ajaxurl":"https:\/\/dep365.com\/wp-admin\/admin-ajax.php","rtl":"","sticky_height":"70","stickyHeaderHeight":"0","scrollPaddingTop":"0","assets_url":"https:\/\/cdn.dep365.com\/wp-content\/themes\/flatsome\/assets\/","lightbox":{"close_markup":"<button title=\"%title%\" type=\"button\" class=\"mfp-close\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line><\/svg><\/button>","close_btn_inside":false},"user":{"can_edit_pages":false},"i18n":{"mainMenu":"Menu ch\u00ednh","toggleButton":"Chuy\u1ec3n \u0111\u1ed5i"},"options":{"cookie_notice_version":"1","swatches_layout":false,"swatches_disable_deselect":false,"swatches_box_select_event":false,"swatches_box_behavior_selected":false,"swatches_box_update_urls":"1","swatches_box_reset":false,"swatches_box_reset_limited":false,"swatches_box_reset_extent":false,"swatches_box_reset_time":300,"search_result_latency":"0"}};
/* ]]> */
</script>
<script type="text/javascript" src="https://cdn.dep365.com/wp-content/themes/flatsome/assets/js/flatsome.js?ver=e1ad26bd5672989785e1" id="flatsome-js-js"></script>
<script>
// === Catfish Banner Global: lấy từ API /api/catfish-banners (giống React CatfishBanners.jsx) ===
(function() {
  var apiUrl = 'https://api.colatv88xb.cc/api/catfish-banners';
  fetch(apiUrl)
    .then(function(res) { return res.ok ? res.json() : null; })
    .then(function(data) {
      if (!data || !data.success || !data.data || !data.data.length) return;
      
      // === Video catfish overlay (nếu có trong trang watch) ===
      var catfishLink = data.data[0].link_url || '';
      if (catfishLink) {
        var overlayTop = document.querySelector('.video-catfish-overlay-top');
        var overlayBottom = document.querySelector('.video-catfish-overlay');
        if (overlayTop) {
          overlayTop.href = catfishLink;
          overlayTop.style.display = 'block';
        }
        if (overlayBottom) {
          overlayBottom.href = catfishLink;
          overlayBottom.style.display = 'block';
        }
      }
      
      // === Tạo container catfish-banner-global (fixed bottom, giống React) ===
      var wrapper = document.createElement('div');
      wrapper.className = 'catfish-banner-global';
      wrapper.style.cssText = 'position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;pointer-events:none;width:50%;margin:0 auto;';
      
      // Nút đóng
      var closeBtn = document.createElement('button');
      closeBtn.className = 'catfish-banner-close';
      closeBtn.innerHTML = '✕';
      closeBtn.setAttribute('aria-label', 'Đóng quảng cáo');
      closeBtn.style.cssText = 'position:absolute;top:-24px;right:4px;width:24px;height:24px;background:rgba(0,0,0,0.7);color:#fff;border:none;border-radius:50%;font-size:14px;line-height:24px;text-align:center;cursor:pointer;pointer-events:auto;z-index:10000;padding:0;';
      closeBtn.addEventListener('click', function() { wrapper.remove(); });
      wrapper.appendChild(closeBtn);
      
      // Render banners
      data.data.forEach(function(banner) {
        var a = document.createElement('a');
        a.className = 'catfish-banner-global-item';
        a.href = banner.link_url || '#';
        a.target = '_blank';
        a.rel = 'nofollow noopener noreferrer';
        a.style.cssText = 'display:block;width:100%;pointer-events:auto;line-height:0;cursor:pointer;';
        var img = document.createElement('img');
        img.src = banner.image_url;
        img.alt = banner.name || 'Banner';
        img.style.cssText = 'width:100%;height:auto;display:block;object-fit:contain;';
        a.appendChild(img);
        wrapper.appendChild(a);
      });
      
      document.body.appendChild(wrapper);
      
      // Mobile: full width
      var mq = window.matchMedia('(max-width: 768px)');
      function applyMobile(e) { wrapper.style.width = e.matches ? '100%' : '50%'; }
      applyMobile(mq);
      mq.addListener(applyMobile);
    })
    .catch(function(e) { console.warn('Catfish banner load failed:', e); });
})();
</script>
<script>
// === FIX: Chặn smooth-scroll handlers can thiệp vào catfish overlay ===
(function() {
  document.addEventListener('click', function(e) {
    var overlay = e.target.closest('.video-catfish-overlay, .video-catfish-overlay-top');
    if (!overlay) return;
    var href = overlay.getAttribute('href');
    if (href && href !== '#' && !href.startsWith('#')) {
      e.stopImmediatePropagation();
    }
  }, true);
})();
</script>

<!--<div class="footer-textlink">
<p>link <a href="https://sosmap.net/" rel="dofollow" title="trực tiếp bóng đá xoilac">trực tiếp bóng đá xoilac</a> hd</p>
<p><a href="https://colatv.io/" rel="dofollow" title="trực tiếp bóng đá colatv">trực tiếp bóng đá</a> colatv</p>
</div>

<style>
    .footer-textlink {
        display: flex;
    gap: 10px;
    }
</style>-->

</body>
</html>
