/*
Theme Name: Dooballvip Theme
Theme URI: https://dooballvip.com
Author: AI Assistant
Author URI: https://dooballvip.com
Description: A modern, clean WordPress theme for a football news website, inspired by the structure of X News and colors of BBC Sport, designed for Dooballvip.com.
Version: 2.31.7
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: news, football, sports, yellow, black, modern
Text Domain: dooballvip
*/

/* --- Basic Reset --- */
body {
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #000000; /* Black background */
    color: #ffffff; /* White text */
}

a {
    color: #ffd700; /* Yellow for links */
    text-decoration: none;
}

a:hover {
    color: #ffffff;
}

/* --- Utility Classes --- */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

/* --- Top Navigation & Header --- */
.top-bar {
    background-color: #333333; /* Dark gray top bar */
    color: #ffd700; /* Yellow text on top bar */
    padding: 5px 0;
    font-size: 14px;
}

.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.top-bar ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.top-bar ul li {
    margin-right: 15px;
}

.header {
    background-color: #ffd700; /* Full yellow header like BBC Sport */
    padding: 10px 0;
    color: #000000;
}

.header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.site-title a {
    color: #000000; /* Black text for site title on yellow */
    font-size: 2em;
    font-weight: bold;
}

.main-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.main-navigation ul li a {
    color: #000000; /* Black text on yellow */
    font-weight: bold;
    padding: 10px 20px;
}

.main-navigation ul li a:hover {
    background-color: #000000;
    color: #ffd700; /* Yellow on black on hover */
}

.header-actions {
    display: flex;
    align-items: center;
}

.test-drive-button {
    background-color: #000000; /* Black button with yellow text */
    color: #ffd700;
    padding: 10px 15px;
    font-weight: bold;
    margin-right: 15px;
}

.social-icons {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
}

.social-icons li {
    margin-left: 10px;
}

.social-icons li a {
    color: #000000; /* Black social icons on yellow */
    font-size: 1.2em;
}

/* --- Hero Grid (structure like image_8.png, colors black & yellow) --- */
.hero-grid {
    background-color: #000000;
    padding: 30px 0;
}

.hero-grid .container {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: repeat(2, 1fr);
    grid-gap: 15px;
}

.hero-grid .large-post {
    grid-row: 1 / -1;
    grid-column: 1 / 2;
    position: relative;
    background-color: #ffd700;
}

.hero-grid .small-post {
    position: relative;
    background-color: #333333;
}

.hero-grid .large-post img,
.hero-grid .small-post img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.8; /* Darken for text readability */
}

.hero-grid .large-post .meta,
.hero-grid .small-post .meta {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 15px;
    color: #ffffff;
}

.hero-grid .category-tag {
    background-color: #ffd700; /* Yellow category tags with black text */
    color: #000000;
    padding: 5px 10px;
    font-size: 14px;
}

.hero-grid .post-title {
    margin: 10px 0;
    font-size: 1.5em;
    font-weight: bold;
}

/* --- Body Content --- */
.content-area {
    padding: 30px 0;
}

.main-content {
    background-color: #ffffff; /* Pure white content area like image_8.png */
    color: #000000;
    padding: 30px;
    margin-bottom: 30px;
}

.category-list-widget .category-box {
    background-color: #ffd700; /* Yellow category boxes with black text */
    color: #000000;
    text-align: center;
    padding: 20px;
}

/* --- Sidebar Widgets --- */
.sidebar-widgets {
    background-color: #ffffff;
    color: #000000;
    padding: 20px;
    margin-bottom: 30px;
}

.social-icons-widget .social-follow-button {
    background-color: #ffd700; /* Yellow social follow buttons with black text */
    color: #000000;
    display: block;
    padding: 15px;
    text-align: center;
}

/* --- Footer --- */
.footer {
    background-color: #ffd700; /* Yellow footer like BBC Sport header */
    color: #000000;
    padding: 20px 0;
}

/* --- WordPress Theme Functional Styles --- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }

.site-header { background:#ffd700; color:#000; }
.site-branding { display:flex; align-items:center; gap:15px; }
/* วางโลโก้โปร่งใสบนชิปพื้นดำ เพื่อให้สิงโตสีเหลืองเด่นบนแถบเมนูสีเหลือง */
.custom-logo-link { display:inline-block; line-height:0; background:#000; padding:6px 10px; border-radius:12px; }
.custom-logo-link img, img.custom-logo { max-height:64px; width:auto; display:block; }
.site-title { margin:0; line-height:1; }
.site-title a { font-size:2rem; color:#000; }
.site-description { margin:5px 0 0; font-size:.9rem; }

/* ซ่อนข้อความชื่อเว็บไว้สำหรับ screen reader / SEO (โลโก้มีชื่ออยู่แล้ว) */
.screen-reader-text { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.menu-toggle { display:none; border:0; background:#000; color:#ffd700; padding:10px 14px; font-weight:bold; cursor:pointer; }
.main-navigation .menu { margin:0; padding:0; list-style:none; display:flex; align-items:center; flex-wrap:wrap; }
.main-navigation .menu li { position:relative; }
.main-navigation .menu li a { display:block; color:#000; font-weight:700; padding:15px 14px; }
.main-navigation .menu li a:hover { background:#000; color:#ffd700; }
.main-navigation .current-menu-item > a { background:transparent; color:#000; } /* active ไม่ค้างสี ใช้ hover เท่านั้น */
.main-navigation .sub-menu { display:none; position:absolute; z-index:999; min-width:200px; background:#000; padding:0; list-style:none; }
.main-navigation li:hover > .sub-menu { display:block; }
.main-navigation .sub-menu a { color:#fff; }
.main-navigation .sub-menu a:hover { color:#ffd700; }

.site-content { background:#111; padding:30px 0; min-height:50vh; }
.content-grid { display:grid; grid-template-columns:minmax(0, 8fr) minmax(0, 4fr); gap:30px; align-items:start; } /* Main 67% + Sidebar 33% */
.entry-card { background:#fff; color:#111; margin-bottom:20px; overflow:hidden; }
.entry-card img { width:100%; aspect-ratio:16/9; height:auto; object-fit:cover; object-position:center; display:block; }
.entry-card-body { padding:20px; }
.entry-card h2, .entry-card h1 { margin-top:0; }
.entry-card h2 a, .entry-card h1 a { color:#111; }
.entry-card h2 a:hover { color:#b8860b; }
.entry-meta { font-size:.85rem; color:#777; margin-bottom:10px; }
.entry-meta a { color:#555; }
.entry-content { color:#222; }
.entry-content::after { content:""; display:block; clear:both; }
.entry-content a { color:#8a6500; text-decoration:underline; }

.post-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.post-grid .entry-card { margin:0; }
.post-grid .entry-card img { aspect-ratio:16/9; height:auto; }

.section-title { color:#ffd700; border-left:6px solid #ffd700; padding-left:12px; margin:0 0 20px; font-size:1.5rem; }
.news-section { margin-bottom:35px; }
.hero-grid .post-link { display:block; height:100%; color:#fff; position:relative; overflow:hidden; min-height:220px; }
.hero-grid .large-post .post-link { min-height:460px; }
.hero-grid .post-link:after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 30%, rgba(0,0,0,.85)); }
.hero-grid .meta { z-index:2; }
.hero-grid .post-title { color:#fff; position:relative; z-index:3; }
.category-tag { display:inline-block; font-weight:bold; }
.read-more { display:inline-block; background:#000; color:#ffd700; padding:9px 14px; font-weight:bold; }
.read-more:hover { background:#ffd700; color:#000; }

.widget { background:#fff; color:#111; padding:20px; margin-bottom:20px; }
.widget-title { border-bottom:3px solid #ffd700; padding-bottom:8px; margin-top:0; }
.widget ul { padding-left:20px; }
.widget a { color:#111; }
.widget a:hover { color:#8a6500; }

.single-post { background:#fff; color:#111; padding:30px; }
.single-post .entry-title { font-size:2.2rem; line-height:1.2; }
.single-post .featured-image { margin:20px 0; }
.single-post .featured-image img { width:100%; }
.navigation.pagination { background:#fff; padding:15px; }
.nav-links { display:flex; gap:8px; flex-wrap:wrap; }
.page-numbers { padding:8px 12px; background:#eee; color:#111; }
.page-numbers.current { background:#ffd700; font-weight:bold; }

.comment-list { padding-left:20px; }
.comment-respond, .comments-area { margin-top:30px; }
.comment-form input, .comment-form textarea, .search-form input[type="search"] {
    width:100%; padding:10px; border:1px solid #ccc; margin:5px 0 12px;
}
.comment-form input[type="submit"], .search-form input[type="submit"] {
    width:auto; background:#000; color:#ffd700; border:0; padding:10px 18px; cursor:pointer; font-weight:bold;
}

.site-footer { background:#ffd700; color:#000; padding:30px 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px; }
.footer-widget-area .widget { background:transparent; padding:0; margin:0; }
.footer-widget-area .widget-title { border-color:#000; }
.footer-bottom { border-top:1px solid rgba(0,0,0,.25); margin-top:20px; padding-top:15px; font-size:.9rem; }

.archive-header { background:#fff; color:#111; padding:25px; margin-bottom:20px; }
.not-found { background:#fff; color:#111; padding:30px; }

@media (max-width: 900px) {
    .content-grid { grid-template-columns:1fr; }
    .post-grid { grid-template-columns:repeat(2, 1fr); }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .hero-grid .container { grid-template-columns:1fr 1fr; }
    .hero-grid .large-post { grid-column:1 / -1; grid-row:auto; }
}
@media (max-width: 700px) {
    .top-bar .container, .header .container { gap:10px; flex-wrap:wrap; }
    .menu-toggle { display:block; }
    .main-navigation { width:100%; }
    .main-navigation .menu { display:none; width:100%; flex-direction:column; align-items:stretch; background:#ffd700; }
    .main-navigation.toggled .menu { display:flex; }
    .main-navigation .menu li a { padding:12px; }
    .main-navigation .sub-menu { position:static; display:block; background:#222; }
    .hero-grid .container { display:block; }
    .hero-grid .large-post, .hero-grid .small-post { margin-bottom:15px; }
    .hero-grid .large-post .post-link { min-height:320px; }
    .post-grid { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr; }
    .single-post { padding:20px; }
    .single-post .entry-title { font-size:1.7rem; }
}

/* =========================================================
   FEATURED POSTS GRID — ข่าวไฮไลท์หน้าแรก (1 ใหญ่ + 4 ย่อย)
   ========================================================= */
.featured-grid { background:#000; padding:30px 0; }

.featured-grid-inner {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;   /* คอลัมน์ซ้ายใหญ่ + 2 คอลัมน์ขวา */
    grid-template-rows:repeat(2, 1fr);   /* 2 แถว => ฝั่งขวาได้ 4 ช่อง (2x2) */
    gap:14px;
    min-height:520px;
}

.featured-item {
    position:relative;
    overflow:hidden;
    border-radius:6px;
    background:#1a1a1a;
}
.featured-main { grid-row:1 / span 2; grid-column:1; }  /* บทความใหญ่กินเต็ม 2 แถวทางซ้าย */
/* บทความย่อย 4 ชิ้นที่เหลือจะไหลลงคอลัมน์ 2-3 อัตโนมัติ (2x2) */

.featured-link { display:block; position:absolute; inset:0; color:#fff; }
.featured-thumb, .featured-thumb img { width:100%; height:100%; }
.featured-thumb img { object-fit:cover; display:block; transition:transform .4s ease; }
.featured-item:hover .featured-thumb img { transform:scale(1.06); }
.featured-noimg { display:block; width:100%; height:100%; background:linear-gradient(135deg,#3a3a3a,#111); }

.featured-link::after {
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,0) 75%);
}

.featured-overlay {
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    padding:16px 16px 18px;
}
.featured-badge {
    display:inline-block;
    background:#ffd700; color:#000;
    font-size:12px; font-weight:700;
    padding:4px 10px; border-radius:3px;
    margin-bottom:8px;
}
.featured-title { margin:0; color:#fff; font-weight:700; line-height:1.35; }
.featured-main .featured-title { font-size:1.6rem; }
.featured-sub  .featured-title { font-size:1rem; }
.featured-meta { display:block; margin-top:6px; color:#ccc; font-size:.8rem; }

/* จอกลาง: บทความใหญ่ขึ้นเต็มความกว้าง + ย่อยเรียง 2 คอลัมน์ */
@media (max-width: 900px) {
    .featured-grid-inner { grid-template-columns:1fr 1fr; grid-template-rows:auto; min-height:0; }
    .featured-main { grid-row:auto; grid-column:1 / -1; aspect-ratio:16/9; }
    .featured-sub  { aspect-ratio:4/3; }
    .featured-main .featured-title { font-size:1.4rem; }
}

/* มือถือ: เรียงทีละ 1 คอลัมน์ */
@media (max-width: 560px) {
    .featured-grid-inner { grid-template-columns:1fr; }
    .featured-main, .featured-sub { aspect-ratio:16/9; }
    .featured-main .featured-title { font-size:1.25rem; }
    .featured-sub  .featured-title { font-size:1.05rem; }
}

/* =========================================================
   HOMEPAGE v2.0 — Fixtures / Category Sections / Sidebar / Footer
   ========================================================= */

/* ---- Section head (ใช้ร่วมกัน) ---- */
.cat-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.cat-section-head .section-title { margin:0; }
.cat-viewall { color:#ffd700; font-weight:700; font-size:.9rem; white-space:nowrap; }
.cat-viewall:hover { color:#fff; }

/* ---- 2) CATEGORY GRID: โปรแกรมบอล ---- */
.fixtures-section { background:#0d0d0d; padding:28px 0; }
.fixtures-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; }
.fixture-card { background:#fff; color:#111; border-radius:8px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 2px 8px rgba(0,0,0,.35); }
.fixture-thumb { display:block; aspect-ratio:16/9; background:#222; }
.fixture-thumb img { width:100%; height:100%; object-fit:cover; }
.fixture-body { padding:12px 14px 16px; display:flex; flex-direction:column; gap:6px; }
.fixture-date { font-size:.78rem; color:#c99700; font-weight:700; }
.fixture-title { color:#111; font-weight:700; line-height:1.4; font-size:.98rem; }
.fixture-title:hover { color:#8a6500; }
.fixtures-empty { color:#ccc; background:#1a1a1a; padding:18px; border-radius:6px; }

/* ---- Main content area (ฝั่งซ้าย) ---- */
.main-content-area { min-width:0; }

/* ---- 3) CATEGORY POST SECTIONS: Featured + List ---- */
.cat-section { background:#fff; color:#111; border-radius:8px; padding:20px; margin-bottom:24px; }
.cat-section .section-title { color:#111; border-left-color:#ffd700; }
.cat-section .cat-viewall { color:#8a6500; }
.cat-section .cat-viewall:hover { color:#111; }
.cat-section-body { display:grid; grid-template-columns:1.15fr 1fr; gap:18px; align-items:start; }

.cat-feature { position:relative; border-radius:8px; overflow:hidden; min-height:280px; background:#222; }
.cat-feature-link { display:block; position:absolute; inset:0; color:#fff; }
.cat-feature-thumb, .cat-feature-thumb img { width:100%; height:100%; }
.cat-feature-thumb img { object-fit:cover; transition:transform .4s ease; }
.cat-feature:hover .cat-feature-thumb img { transform:scale(1.05); }
.cat-feature-link::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.9), rgba(0,0,0,.15) 60%, transparent); }
.cat-feature-overlay { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:16px; }
.cat-feature-title { margin:8px 0 0; color:#fff; font-size:1.25rem; line-height:1.35; font-weight:700; }

.cat-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.cat-list-item { display:flex; gap:12px; align-items:flex-start; }
.cat-list-thumb { flex:0 0 84px; width:84px; height:64px; border-radius:6px; overflow:hidden; background:#eee; }
.cat-list-thumb img { width:100%; height:100%; object-fit:cover; }
.cat-list-body { display:flex; flex-direction:column; gap:4px; }
.cat-list-title { color:#111; font-weight:700; line-height:1.4; font-size:.95rem; }
.cat-list-title:hover { color:#8a6500; }
.cat-list-meta { font-size:.78rem; color:#888; }

/* ---- SIDEBAR WIDGETS ---- */
/* 3.1 Social Counter */
.social-counter-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.social-counter { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:14px 8px; border-radius:8px; color:#fff; text-align:center; }
.social-counter .sc-icon { font-size:1.3rem; line-height:1; }
.social-counter .sc-count { font-weight:800; font-size:1.05rem; }
.social-counter .sc-label { font-size:.72rem; opacity:.9; }
.social-counter:hover { opacity:.92; color:#fff; }
.social-facebook { background:#1877f2; }
.social-twitter  { background:#000; }
.social-youtube  { background:#ff0000; }
.social-telegram { background:#229ed9; }

/* 3.2 Banner Ad */
.widget-ad { padding:0; background:transparent; }
.ad-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; height:250px; background:repeating-linear-gradient(45deg,#1c1c1c,#1c1c1c 12px,#232323 12px,#232323 24px); border:1px dashed #555; border-radius:8px; color:#aaa; font-weight:700; }
.ad-placeholder small { color:#777; font-weight:400; }

/* 3.3 Tabbed Posts */
.widget-tabbed { padding:0; overflow:hidden; }
.tab-nav { display:flex; }
.tab-btn { flex:1; border:0; background:#e9e9e9; color:#333; font-weight:700; padding:12px; cursor:pointer; font-family:inherit; font-size:.95rem; }
.tab-btn.is-active { background:#ffd700; color:#000; }
.tab-panel { display:none; padding:16px; }
.tab-panel.is-active { display:block; }
.tab-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.tab-item { display:flex; gap:10px; align-items:center; }
.tab-item-thumb { flex:0 0 56px; width:56px; height:44px; border-radius:5px; overflow:hidden; background:#eee; }
.tab-item-thumb img { width:100%; height:100%; object-fit:cover; }
.tab-item-title { color:#111; font-weight:600; font-size:.9rem; line-height:1.35; }
.tab-item-title:hover { color:#8a6500; }
.tab-empty { color:#888; font-size:.9rem; }

/* 3.4 Newsletter */
.widget-newsletter .newsletter-desc { font-size:.88rem; color:#444; margin:0 0 12px; }
.newsletter-form { display:flex; flex-direction:column; gap:8px; }
.newsletter-form input[type="email"] { padding:11px 12px; border:1px solid #ccc; border-radius:6px; width:100%; }
.newsletter-form button { background:#000; color:#ffd700; border:0; padding:11px; font-weight:700; border-radius:6px; cursor:pointer; }
.newsletter-form button:hover { background:#ffd700; color:#000; }

/* 3.5 Categories with count */
.cat-count-list { list-style:none; margin:0; padding:0; }
.cat-count-list li { display:flex; justify-content:space-between; align-items:center; padding:9px 0; border-bottom:1px solid #eee; }
.cat-count-list li:last-child { border-bottom:0; }
.cat-count-list a { color:#111; font-weight:600; }
.cat-count-list a:hover { color:#8a6500; }
.cat-count { background:#ffd700; color:#000; font-size:.78rem; font-weight:700; min-width:26px; text-align:center; padding:2px 8px; border-radius:20px; }

/* ---- FOOTER ---- */
.site-footer .footer-grid { grid-template-columns:2fr 1.2fr 1fr; align-items:start; }
.footer-brand { margin:0 0 8px; }
.footer-desc { margin:0 0 14px; }
.footer-title { border-bottom:2px solid rgba(0,0,0,.35); padding-bottom:6px; margin:0 0 12px; }
.footer-social { display:flex; flex-wrap:wrap; gap:8px; }
.footer-social-link { display:inline-flex; align-items:center; gap:6px; background:#000; color:#ffd700; padding:8px 12px; border-radius:6px; font-weight:700; font-size:.85rem; }
.footer-social-link:hover { background:#111; color:#fff; }
.footer-social-link .fs-icon { font-size:1rem; }
.contact-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.contact-list a { color:#000; text-decoration:underline; }
.footer-menu { list-style:none; margin:0; padding:0; }
.footer-menu li a { display:block; color:#000; font-weight:600; padding:5px 0; }
.footer-menu li a:hover { color:#fff; }

/* ---- RESPONSIVE ---- */
@media (max-width: 1024px) {
    .fixtures-grid { grid-template-columns:repeat(3, 1fr); }
}
@media (max-width: 900px) {
    .fixtures-grid { grid-template-columns:repeat(2, 1fr); }
    .cat-section-body { grid-template-columns:1fr; }
    .cat-feature { min-height:220px; aspect-ratio:16/9; }
    .site-footer .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
    .fixtures-grid { grid-template-columns:1fr 1fr; }
    .social-counter-grid { grid-template-columns:1fr 1fr; }
    .site-footer .footer-grid { grid-template-columns:1fr; }
}

/* ปรับกล่อง sidebar ให้โปร่งใส เพื่อให้แต่ละ widget เป็นการ์ดแยกกัน */
.content-grid .sidebar-widgets { background:transparent; padding:0; margin-bottom:0; }
.content-grid .sidebar-widgets .widget { border-radius:8px; }

/* =========================================================
   LIVE BOARD — ผลบอลสด (โทนสีเว็บ: เหลือง/ดำ/ขาว)
   ========================================================= */
.ss-live { --yc:#ffd700; --bk:#000; --wt:#fff; margin-bottom:26px; }
.ss-live .live-page { display:flex; flex-direction:column; gap:8px; font-family:inherit; }

/* Hero: พื้นดำ ขอบเหลือง */
.ss-live .live-hero { display:flex; justify-content:space-between; align-items:stretch; background:#000; border:1px solid #222; border-left:4px solid var(--yc); border-radius:6px; color:#fff; overflow:hidden; }
.ss-live .live-hero__left { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:12px 16px; }
.ss-live .live-hero__title { margin:0; font-size:20px; font-weight:800; letter-spacing:.5px; color:var(--yc); }
.ss-live .live-hero__sub { font-size:12px; color:#cfcfcf; }
.ss-live .live-dot, .ss-live .live-pulse-dot, .ss-live .live-mini-dot { display:inline-block; background:var(--yc); border-radius:50%; }
.ss-live .live-dot { width:9px; height:9px; box-shadow:0 0 0 0 rgba(255,215,0,.7); animation:ssPulse 1.4s infinite; }
.ss-live .live-pulse-dot { width:8px; height:8px; animation:ssPulse 1.4s infinite; }
.ss-live .live-mini-dot { width:7px; height:7px; }
@keyframes ssPulse { 0%{box-shadow:0 0 0 0 rgba(255,215,0,.7);} 70%{box-shadow:0 0 0 8px rgba(255,215,0,0);} 100%{box-shadow:0 0 0 0 rgba(255,215,0,0);} }
.ss-live .live-hero__stats { display:flex; background:rgba(255,215,0,.06); }
.ss-live .stat-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:72px; padding:8px 16px; border-left:1px solid rgba(255,215,0,.18); }
.ss-live .stat-cell__num { font-size:18px; font-weight:800; line-height:1; color:#fff; }
.ss-live .stat-cell--accent .stat-cell__num { color:var(--yc); }
.ss-live .stat-cell__label { font-size:11px; color:#bdbdbd; margin-top:2px; }

/* Controls / filter tabs */
.ss-live .live-controls { background:#0d0d0d; border:1px solid #222; border-radius:6px; padding:6px 8px; }
.ss-live .filter-tabs { display:flex; flex-wrap:wrap; gap:2px; }
.ss-live .filter-tab { display:inline-flex; align-items:center; gap:6px; background:transparent; border:0; border-radius:4px; color:#e8e8e8; cursor:pointer; font:inherit; font-size:13px; padding:6px 12px; }
.ss-live .filter-tab:hover { background:rgba(255,215,0,.12); color:#fff; }
.ss-live .filter-tab.is-active { background:var(--yc); color:#000; font-weight:700; }
.ss-live .filter-tab__count { background:rgba(255,255,255,.14); border-radius:3px; font-size:11px; font-weight:700; min-width:18px; text-align:center; padding:0 6px; }
.ss-live .filter-tab.is-active .filter-tab__count { background:rgba(0,0,0,.28); color:#fff; }

/* League block */
.ss-live .league-block { background:#111; border:1px solid #242424; border-radius:6px; overflow:hidden; }
.ss-live .league-header { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; background:var(--yc); border-bottom:1px solid #000; }
.ss-live .league-header__left { display:flex; align-items:center; gap:10px; }
.ss-live .league-bar { width:3px; height:16px; border-radius:1px; background:#000 !important; }
.ss-live .league-name { margin:0; font-size:14px; font-weight:800; color:#000; }
.ss-live .league-country { background:#000; border-radius:3px; color:var(--yc); font-size:11px; letter-spacing:1px; padding:1px 6px; }
.ss-live .league-count { color:#000; font-weight:600; font-size:12px; }

/* Match rows */
.ss-live .match-list { display:flex; flex-direction:column; }
.ss-live .match-row { display:grid; grid-template-columns:70px 1fr 86px 1fr; align-items:center; gap:8px; padding:9px 12px; border-bottom:1px solid #232323; color:#eee; }
.ss-live .match-row:last-child { border-bottom:0; }
.ss-live .match-row:hover { background:rgba(255,215,0,.06); }
.ss-live .match-status { display:flex; align-items:center; gap:6px; font-size:12px; }
.ss-live .match-minute { color:var(--yc); font-weight:800; }
.ss-live .match-kickoff { color:var(--yc); font-weight:700; font-size:13px; }
.ss-live .badge-ft { background:var(--yc); color:#000; border-radius:2px; font-size:11px; font-weight:800; padding:2px 8px; }
.ss-live .badge-postp { background:#444; color:#fff; border-radius:2px; font-size:11px; font-weight:700; padding:2px 8px; }
.ss-live .match-team { min-width:0; overflow:hidden; padding:0 6px; }
.ss-live .match-team--home { text-align:right; }
.ss-live .match-team--away { text-align:left; }
.ss-live .team-name { display:block; font-size:14px; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ss-live .is-finished .team-name { color:#9a9a9a; }
.ss-live .match-score { display:flex; align-items:center; justify-content:center; gap:8px; background:#000; border:1px solid #333; border-radius:4px; padding:4px 8px; }
.ss-live .is-live .match-score { border-color:var(--yc); background:rgba(255,215,0,.1); }
.ss-live .score-num { font-size:18px; font-weight:800; min-width:16px; text-align:center; color:#fff; }
.ss-live .is-live .score-num { color:var(--yc); }
.ss-live .score-sep { color:#888; font-weight:600; }
.ss-live .score-vs { color:#888; font-size:12px; font-weight:700; letter-spacing:1px; }

/* States / empty */
.ss-live .empty-text { background:#0d0d0d; border:1px solid #333; border-radius:6px; color:#ddd; font-size:13px; padding:24px; text-align:center; }
.ss-live .empty-text--error { color:var(--yc); border-color:rgba(255,215,0,.4); background:rgba(255,215,0,.06); }
.ss-live .empty-text small { color:#aaa; }
.ss-live .live-updated { color:#8a8a8a; font-size:11px; text-align:right; margin:2px 4px 0; }

@media (max-width: 768px) {
    .ss-live .live-hero { flex-direction:column; }
    .ss-live .live-hero__stats { border-top:1px solid rgba(255,215,0,.18); }
    .ss-live .stat-cell { flex:1; }
    .ss-live .match-row { grid-template-columns:56px 1fr 70px 1fr; gap:4px; padding:8px; }
    .ss-live .team-name { font-size:12px; }
    .ss-live .score-num { font-size:15px; }
}

/* โลโก้ทีม/ลีก + ธง (เมื่อใช้แหล่งข้อมูล API-Football) */
.ss-live .league-logo { width:20px; height:20px; object-fit:contain; background:#fff; border-radius:3px; padding:1px; }
.ss-live .league-flag { width:20px; height:14px; object-fit:cover; border-radius:2px; }
.ss-live .match-team { display:flex; align-items:center; gap:8px; }
.ss-live .match-team--home { justify-content:flex-end; }
.ss-live .match-team--away { justify-content:flex-start; }
.ss-live .team-logo { width:22px; height:22px; object-fit:contain; flex:0 0 auto; }
@media (max-width:768px){ .ss-live .team-logo{ width:18px; height:18px; } .ss-live .league-logo{ width:16px; height:16px; } }

/* =========================================================
   SCORE TICKER — แถบผลบอลล่าสุดวิ่งบนสุด (เหลือง/ดำ)
   ========================================================= */
/* ticker อยู่แถวเดียวกับเมนูบน (inline ในแถบ top-bar ตำแหน่งเดียวกับวันที่) */
.ss-ticker { display:flex; align-items:center; flex:1 1 auto; min-width:0; color:#eee; font-size:13px; overflow:hidden; }
.ss-ticker__title, .ss-ticker__more { display:flex; align-items:center; gap:6px; flex:0 0 auto; font-weight:800; white-space:nowrap; padding:3px 12px; text-decoration:none; border-radius:3px; }
.ss-ticker__title { background:#ffd700; color:#000; }
.ss-ticker__more { color:#ffd700; }
.ss-ticker__more:hover { color:#fff; }
/* จัดแถว top-bar ให้ ticker + เมนูบนอยู่บรรทัดเดียวกัน */
.top-bar .container { gap:12px; align-items:center; }
.top-bar .ss-ticker { min-height:26px; }
.tk-live-dot { width:7px; height:7px; border-radius:50%; background:#ff3b3b; display:inline-block; animation:tkBlink 1.2s infinite; }
.ss-ticker__viewport { flex:1; min-width:0; display:flex; align-items:center; overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent);
    mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent); }
.ss-ticker__track { display:inline-flex; align-items:center; white-space:nowrap; width:max-content; animation:tkScroll var(--tk-speed, 150s) linear infinite; }
.ss-ticker:hover .ss-ticker__track { animation-play-state:paused; }
@keyframes tkScroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes tkBlink { 0%,100%{opacity:1;} 50%{opacity:.35;} }
.tk-league { color:#ffd700; font-weight:700; padding:0 14px; border-left:1px solid #222; }
.tk-match { display:inline-flex; align-items:center; gap:6px; padding:0 12px; border-left:1px solid #1a1a1a; color:#fff; }
.tk-team { color:#eaeaea; }
.tk-score { background:#161616; border:1px solid #333; color:#ffd700; font-weight:800; border-radius:3px; padding:1px 6px; font-variant-numeric:tabular-nums; }
.tk-match.is-live .tk-score { border-color:#ff3b3b; color:#ff6b6b; }
.tk-dot { width:6px; height:6px; border-radius:50%; background:#ff3b3b; animation:tkBlink 1.2s infinite; }
@media (max-width:768px){
    .ss-ticker__more { display:none; }
    .ss-ticker__title { padding:0 10px; }
    .tk-team { max-width:120px; overflow:hidden; text-overflow:ellipsis; }
}

/* =========================================================
   โปรแกรมบอล / ตารางถ่ายทอดสด (ดึงจากกระทู้ SoccerSuck)
   ========================================================= */
.dbv-program { background:#0d0d0d; border:1px solid #242424; border-radius:8px; overflow:hidden; margin-bottom:24px; }
.dbv-program__head { display:flex; align-items:center; justify-content:space-between; gap:12px; background:#ffd700; padding:10px 16px; }
.dbv-program__title { margin:0; color:#000; font-size:1.15rem; font-weight:800; }
.dbv-program__src { flex:0 0 auto; color:#000; font-weight:700; font-size:.85rem; text-decoration:none; }
.dbv-program__src:hover { text-decoration:underline; }
.dbv-program__body { color:#e6e6e6; line-height:1.9; padding:18px 20px; font-size:15px; }
.dbv-program__body strong { font-weight:800; }
/* หัวข้อวันที่ (เดิมสีน้ำเงิน) -> ขาวตัวหนา, หัวลีก (เดิมสีน้ำตาล) -> เหลือง */
.dbv-program__body .prog-c-blue { color:#fff; display:inline-block; margin-top:6px; }
.dbv-program__body .prog-c-blue strong { border-bottom:2px solid #ffd700; padding-bottom:2px; }
.dbv-program__body .prog-c-brown { color:#ffd700; }
.dbv-program__body .prog-c-brown strong { font-size:1.02rem; }
.dbv-program__body .prog-c-red { color:#ff6b6b; }
.dbv-program__body .prog-c-green { color:#78e632; }
.dbv-program__empty { color:#ff9a9a; padding:20px; }
@media (max-width:768px){
    .dbv-program__body { font-size:14px; line-height:1.8; padding:14px 14px; }
    .dbv-program__head { flex-wrap:wrap; }
}

/* โปรแกรมบอลแบบตาราง เวลา/คู่แข่ง/ช่อง */
.dbv-program__body { padding:16px 18px; }
.dbv-program--compact { background:transparent; border:0; }
.dbv-program--compact .dbv-program__body { padding:0; }
.prog-day { color:#fff; font-size:1.02rem; font-weight:800; margin:16px 0 8px; padding-bottom:6px; border-bottom:2px solid #ffd700; }
.prog-day:first-child { margin-top:0; }
.prog-table-wrap { overflow-x:auto; margin-bottom:16px; border:1px solid #242424; border-radius:6px; }
.prog-table { width:100%; border-collapse:collapse; color:#e6e6e6; font-size:14px; }
.prog-table thead th { background:#1a1a1a; color:#ffd700; text-align:left; font-weight:800; padding:9px 12px; border-bottom:1px solid #333; white-space:nowrap; }
.prog-table td { padding:9px 12px; border-bottom:1px solid #202020; }
.prog-table tbody tr:last-child td { border-bottom:0; }
.prog-table tbody tr:hover td { background:rgba(255,215,0,.05); }
.prog-table .c-time { width:92px; white-space:nowrap; color:#ffd700; font-weight:800; font-variant-numeric:tabular-nums; }
.prog-table .c-ch { width:200px; color:#ff3b3b; font-weight:600; white-space:nowrap; }
.prog-table .c-match { color:#fff; }
.prog-vs { color:#8a8a8a; font-weight:400; margin:0 3px; font-size:.9em; }
.prog-table .prog-league td { background:#131313; color:#ffd700; font-weight:800; border-top:1px solid #333; }
@media (max-width:768px){
    .prog-table { font-size:13px; }
    .prog-table thead th, .prog-table td { padding:7px 8px; }
    .prog-table .c-time { width:64px; }
    .prog-table .c-ch { width:auto; white-space:normal; }
}

/* ช่องถ่ายทอด: สีแดง + ไอคอนดูบอล + ปุ่มดูต่อ */
.prog-table .c-ch .ch-name { color:#ff3b3b; }
.prog-table .c-ch .ch-ico { display:inline-block; vertical-align:-1px; margin-left:5px; font-size:1em; line-height:1; }
.prog-table .c-ch .ch-none { color:#666; }
.prog-more { text-align:center; margin:14px 0 4px; }
.prog-more a { display:inline-block; background:#ffd700; color:#000; font-weight:800; padding:10px 22px; border-radius:6px; }
.prog-more a:hover { background:#000; color:#ffd700; }

/* ปุ่มดูต่อ (โปรแกรม) มีไอคอน */
.prog-more .more-ico { margin-right:2px; }
.prog-more .more-arrow { font-weight:900; }

/* ผลบอลล่าสุด · พรีเมียร์ลีก (หน้าแรก) */
.pl-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:8px 16px; }
.pl-row { display:grid; grid-template-columns:58px minmax(0,1fr) 68px minmax(0,1fr); align-items:center; gap:8px; background:#111; border:1px solid #242424; border-radius:6px; padding:8px 10px; color:#eee; }
.pl-row.is-live { border-color:#ff3b3b; }
.pl-badge { font-size:11px; font-weight:800; background:#1a1a1a; color:#ffd700; border-radius:3px; padding:2px 6px; text-align:center; white-space:nowrap; }
.pl-badge--live { background:rgba(255,59,59,.16); color:#ff6b6b; }
.pl-home, .pl-away { color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pl-home { text-align:right; }
.pl-away { text-align:left; }
.pl-score { text-align:center; font-weight:800; color:#ffd700; background:#000; border:1px solid #333; border-radius:4px; padding:2px 4px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pl-row.is-live .pl-score { color:#ff6b6b; border-color:#ff3b3b; }
.pl-empty { color:#bbb; background:#111; border:1px solid #242424; border-radius:6px; padding:16px; }
@media (max-width:768px){ .pl-list { grid-template-columns:1fr; } }

/* ชิป "นัดล่าสุด" ในหัวข้อผลบอล */
.pl-chip { display:inline-block; background:#ffd700; color:#000; font-size:.72rem; font-weight:800; padding:2px 8px; border-radius:20px; vertical-align:middle; margin-left:6px; }

/* หน้าแรก: โปรแกรมบอล + ผลบอล จัด 2 คอลัมน์เคียงกัน */
/* หน้าแรก: โปรแกรมบอล (67% ซ้าย) + ผลบอล (33% ขวา) ตรงแนวบน สูงเท่ากัน */
.home-two-col { display:grid; grid-template-columns:minmax(0, 8fr) minmax(0, 4fr); gap:24px; align-items:stretch; }
.home-two-col .home-col { min-width:0; display:flex; flex-direction:column; }
.home-two-col .home-col--results .pl-list { grid-template-columns:1fr; } /* คอลัมน์แคบ -> ผลบอลเรียงเดี่ยว */
/* จำกัดความสูงตารางโปรแกรมฝั่งซ้าย ไม่ให้ยาวล้นจนดันคอลัมน์ขวาเสียทรง (เลื่อนดูได้) */
.home-two-col .home-col--program .dbv-program__body { max-height:560px; overflow-y:auto; }
.home-two-col .home-col--results .dbv-refresh { flex:1 1 auto; } /* ให้ผลบอลยืดเต็มความสูงคอลัมน์ */
.home-two-col .home-col--results .prog-more { margin-top:auto; }  /* ดันปุ่มดูต่อไปอยู่ล่างสุด */
@media (max-width:900px){
    .home-two-col { grid-template-columns:1fr; }
    .home-two-col .home-col { display:block; }
    .home-two-col .home-col--program .dbv-program__body { max-height:none; overflow:visible; } /* มือถือแสดงเต็ม */
}

/* =========================================================
 * HOMEPAGE REDESIGN (v2.30.0) — โครงตาม mockup โทนสีเดิม เหลือง/ดำ/ขาว
 * ========================================================= */
:root{
  --dbv-bg:#0d0f14; --dbv-card:#161a23; --dbv-card2:#1c212c;
  --dbv-line:rgba(255,255,255,.08); --dbv-text:#e9edf5; --dbv-mut:#9aa4b2;
  --dbv-yellow:#ffd700;
}
/* เฮดเดอร์ sticky (ยังเป็นสีเหลืองเดิม) */
.site-header{ position:sticky; top:0; z-index:100; box-shadow:0 2px 10px rgba(0,0,0,.35); }

.dbv-home{ background:var(--dbv-bg); padding:24px 0 40px; color:var(--dbv-text); }
.dbv-home .container{ max-width:1200px; }

.dbv-row{ display:grid; gap:24px; margin-bottom:24px; }
.dbv-row--hero,.dbv-row--body{ grid-template-columns:minmax(0,8fr) minmax(0,4fr); align-items:stretch; }
.dbv-row--lower{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.dbv-col{ min-width:0; display:flex; flex-direction:column; gap:24px; }

/* การ์ดพื้นฐาน (พื้นเข้ม ขอบบาง) */
.dbv-card{ background:var(--dbv-card); border:1px solid var(--dbv-line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
.dbv-card__head{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; border-bottom:1px solid var(--dbv-line); }
.dbv-card__title{ font-weight:800; font-size:1.02rem; color:#fff; display:flex; align-items:center; gap:8px; }
.dbv-card__title .dbv-ic{ color:var(--dbv-yellow); font-size:1.1rem; line-height:1; }
.dbv-card__body{ padding:14px 16px; }
.dbv-card--flush .dbv-card__body{ padding:8px 8px 12px; }
.dbv-viewall{ color:var(--dbv-yellow); font-weight:700; font-size:.9rem; white-space:nowrap; }
.dbv-viewall:hover{ color:#fff; }
.dbv-empty{ color:var(--dbv-mut); font-size:.92rem; padding:18px 8px; text-align:center; }

/* ---------- Hero (Featured banner) ---------- */
.dbv-hero{ position:relative; border-radius:14px; overflow:hidden; background:#000; min-height:430px; height:100%; border:1px solid var(--dbv-line); }
.dbv-hero__slide{ position:absolute; inset:0; display:block; opacity:0; transition:opacity .5s ease; color:#fff; }
.dbv-hero__slide.is-active{ opacity:1; z-index:1; }
.dbv-hero__img{ position:absolute; inset:0; }
.dbv-hero__img img{ width:100%; height:100%; object-fit:cover; }
.dbv-hero__noimg{ display:block; width:100%; height:100%; background:linear-gradient(135deg,#222,#000); }
.dbv-hero__overlay{ position:absolute; left:0; right:0; bottom:0; padding:28px 28px 40px; background:linear-gradient(to top,rgba(0,0,0,.92) 10%,rgba(0,0,0,.4) 60%,transparent); z-index:2; }
.dbv-badge{ display:inline-block; background:var(--dbv-yellow); color:#000; font-weight:800; font-size:.72rem; letter-spacing:.5px; text-transform:uppercase; padding:5px 12px; border-radius:6px; margin-bottom:12px; }
.dbv-hero__title{ margin:0; font-size:1.8rem; line-height:1.28; font-weight:800; color:#fff; text-shadow:0 2px 8px rgba(0,0,0,.6); }
.dbv-hero__dots{ position:absolute; left:28px; bottom:18px; display:flex; gap:8px; z-index:3; }
.dbv-dot{ width:26px; height:5px; border:0; border-radius:3px; background:rgba(255,255,255,.4); cursor:pointer; padding:0; }
.dbv-dot.is-active{ background:var(--dbv-yellow); }

/* ---------- ตารางดูบอลสดวันนี้ ---------- */
.dbv-live-sched{ height:100%; }
.dbv-sched__body{ padding:6px 0; overflow-y:auto; max-height:430px; }
.dbv-sched__row{ display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--dbv-line); }
.dbv-sched__row:last-child{ border-bottom:0; }
.dbv-sched__time{ text-align:center; }
.dbv-sched__time .t{ display:block; font-weight:800; color:#fff; font-size:.95rem; }
.dbv-live-pill{ display:inline-block; margin-top:3px; font-size:.6rem; font-weight:800; color:#000; background:var(--dbv-yellow); padding:1px 6px; border-radius:20px; letter-spacing:.3px; }
.dbv-sched__teams{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.dbv-sched__teams .tm{ display:flex; align-items:center; gap:7px; color:var(--dbv-text); font-size:.92rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dbv-sched__teams .tm img{ width:20px; height:20px; object-fit:contain; flex:0 0 20px; }
.dbv-sched__teams .tm-dot{ width:18px; height:18px; border-radius:50%; background:#333; flex:0 0 18px; display:inline-block; }
.dbv-sched__teams .vs{ font-size:.72rem; color:var(--dbv-mut); font-weight:700; padding-left:27px; }
.dbv-watch-btn{ background:var(--dbv-yellow); color:#000; font-weight:800; font-size:.8rem; padding:7px 14px; border-radius:8px; white-space:nowrap; }
.dbv-watch-btn:hover{ background:#fff; color:#000; }
.dbv-watch-btn.is-done{ background:transparent; color:var(--dbv-yellow); border:1px solid var(--dbv-yellow); }

/* ---------- ข่าวฟุตบอลล่าสุด (list) ---------- */
.dbv-newslist{ display:flex; flex-direction:column; }
.dbv-news__row{ display:grid; grid-template-columns:120px 1fr; gap:14px; padding:12px 10px; border-bottom:1px solid var(--dbv-line); align-items:center; }
.dbv-news__row:last-child{ border-bottom:0; }
.dbv-news__thumb{ width:120px; aspect-ratio:16/9; border-radius:8px; overflow:hidden; background:#222; flex:0 0 auto; }
.dbv-news__thumb img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.dbv-news__noimg{ display:block; width:100%; height:100%; background:linear-gradient(135deg,#2a2f3a,#161a23); }
.dbv-news__meta{ font-size:.76rem; color:var(--dbv-mut); margin-bottom:5px; }
.dbv-news__meta .sep{ margin:0 4px; }
.dbv-news__meta .cat{ color:var(--dbv-yellow); font-weight:700; }
.dbv-news__title{ margin:0; font-size:.98rem; line-height:1.4; font-weight:700; color:var(--dbv-text); }
.dbv-news__row:hover .dbv-news__title{ color:var(--dbv-yellow); }

/* ---------- ตารางคะแนน ---------- */
.dbv-standings{ width:100%; border-collapse:collapse; font-size:.86rem; }
.dbv-standings th{ color:var(--dbv-mut); font-weight:700; text-align:center; padding:6px 4px; border-bottom:1px solid var(--dbv-line); font-size:.76rem; }
.dbv-standings td{ text-align:center; padding:8px 4px; border-bottom:1px solid var(--dbv-line); color:var(--dbv-text); }
.dbv-standings tr:last-child td{ border-bottom:0; }
.dbv-standings .ta-l{ text-align:left; }
.dbv-standings .tm{ display:flex; align-items:center; gap:8px; font-weight:600; }
.dbv-standings .tm img{ width:20px; height:20px; object-fit:contain; }
.dbv-standings .rk{ color:var(--dbv-mut); font-weight:700; }
.dbv-standings .pts{ font-weight:800; color:var(--dbv-yellow); }
.dbv-standings tbody tr:first-child td{ background:rgba(255,215,0,.08); }
.dbv-standings tbody tr:first-child .rk{ color:var(--dbv-yellow); }

/* ---------- ดาวซัลโว ---------- */
.dbv-scorer{ display:flex; align-items:center; gap:14px; }
.dbv-scorer__photo{ width:56px; height:56px; border-radius:50%; overflow:hidden; background:#222; flex:0 0 56px; border:2px solid var(--dbv-yellow); }
.dbv-scorer__photo img{ width:100%; height:100%; object-fit:cover; }
.dbv-scorer__info{ display:flex; flex-direction:column; min-width:0; flex:1; }
.dbv-scorer__info .nm{ font-weight:800; color:#fff; font-size:1rem; }
.dbv-scorer__info .tm{ color:var(--dbv-mut); font-size:.82rem; }
.dbv-scorer__goals{ font-weight:900; color:var(--dbv-yellow); font-size:1.8rem; line-height:1; text-align:center; }
.dbv-scorer__goals small{ display:block; font-size:.6rem; color:var(--dbv-mut); font-weight:700; margin-top:2px; }

/* ---------- วิเคราะห์/ทีเด็ด ---------- */
.dbv-analysis{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.dbv-analysis__card{ background:var(--dbv-card2); border:1px solid var(--dbv-line); border-radius:10px; overflow:hidden; display:flex; flex-direction:column; }
.dbv-analysis__thumb{ aspect-ratio:1/1; background:#222; }
.dbv-analysis__thumb img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.dbv-analysis__title{ margin:0; padding:10px 10px 4px; font-size:.9rem; font-weight:700; color:var(--dbv-text); line-height:1.35; }
.dbv-analysis__excerpt{ padding:0 10px 12px; font-size:.78rem; color:var(--dbv-mut); }
.dbv-analysis__card:hover .dbv-analysis__title{ color:var(--dbv-yellow); }

/* ---------- ไฮไลต์ ---------- */
.dbv-hl{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.dbv-hl__card{ display:flex; flex-direction:column; }
.dbv-hl__thumb{ position:relative; aspect-ratio:16/9; border-radius:10px; overflow:hidden; background:#222; }
.dbv-hl__thumb img{ width:100%; height:100%; object-fit:cover; }
.dbv-hl__play{ position:absolute; inset:0; margin:auto; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.55); color:#fff; border-radius:50%; font-size:1rem; border:2px solid rgba(255,255,255,.85); }
.dbv-hl__card:hover .dbv-hl__play{ background:var(--dbv-yellow); color:#000; border-color:var(--dbv-yellow); }
.dbv-hl__title{ margin:8px 2px 0; font-size:.86rem; font-weight:700; color:var(--dbv-text); line-height:1.35; }
.dbv-hl__card:hover .dbv-hl__title{ color:var(--dbv-yellow); }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .dbv-row--hero,.dbv-row--body,.dbv-row--lower{ grid-template-columns:1fr; }
  .dbv-hero{ min-height:300px; }
  .dbv-hero__title{ font-size:1.35rem; }
  .dbv-sched__body{ max-height:360px; }
}
@media (max-width:600px){
  .dbv-analysis,.dbv-hl{ grid-template-columns:repeat(2,1fr); }
  .dbv-hero__overlay{ padding:20px 18px 30px; }
  .dbv-news__row{ grid-template-columns:96px 1fr; }
  .dbv-news__thumb{ width:96px; }
}

/* ---------- ฝังถ่ายทอดสด (iframe embed) v2.31.0 ---------- */
.dbv-embed{ position:relative; width:100%; }
.dbv-embed__frame{ width:100%; height:var(--dbv-embed-h,520px); border:0; border-radius:10px; background:#000; display:block; }
.dbv-embed__fallback{ margin-top:8px; font-size:.8rem; color:var(--dbv-mut,#9aa4b2); text-align:center; }
.dbv-embed__fallback a{ color:var(--dbv-yellow,#ffd700); font-weight:700; }
.dbv-embed-wrap{ margin-bottom:24px; }
@media (max-width:980px){ .dbv-embed__frame{ height:420px; } }

/* ---------- โปรแกรมบอลในการ์ดหน้าแรก: ตัดคอลัมน์ "ช่อง" ออก + เรียงเวลา/คู่แข่งให้สวย (v2.31.2) ---------- */
.dbv-live-sched .prog-table th.c-ch,
.dbv-live-sched .prog-table td.c-ch{ display:none; }
.dbv-live-sched .prog-table{ width:100%; }
.dbv-live-sched .prog-table .c-time{ width:64px; }
.dbv-live-sched .prog-table .c-match{ width:auto; white-space:normal; }
.dbv-live-sched .prog-table-wrap{ border:0; overflow:visible; }
.dbv-live-sched .prog-day{ margin-top:4px; }

/* ---------- โปรแกรมบอลหน้าแรก: auto-scroll ขึ้นเรื่อย ๆ (v2.31.4) ---------- */
.dbv-live-sched .dbv-sched__body.dbv-mq{ overflow:hidden; }
.dbv-mq__track{ will-change:transform; }
.dbv-mq__group{ } /* แต่ละชุดวางต่อกันแนวตั้ง เพื่อวนไม่มีรอยต่อ */
