/*
Theme Name: TheTVApp Tube
Theme URI: https://thetvapp.tube/
Author: TheTVApp Editorial Team
Description: Lightweight Gutenberg-first live TV and sports theme for TheTVApp.tube with editable content, icon buttons, FAQs, tables, interlinking and built-in SEO controls.
Version: 2.3.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: thetvapp-tube
License: GPL-2.0-or-later
*/

:root {
  --tva-bg: #ffffff;
  --tva-surface: #f7f8fa;
  --tva-border: #e6e8ec;
  --tva-text: #17181b;
  --tva-muted: #60646c;
  --tva-accent: #111827;
  --tva-accent-2: #2f6fed;
  --tva-radius: 14px;
  --tva-content-width: 1180px;
  --tva-reading-width: 920px;
  --tva-logo-height: 44px;
  --tva-h1: clamp(2rem, 4vw, 3.5rem);
  --tva-h2: clamp(1.55rem, 2.5vw, 2.2rem);
  --tva-h3: clamp(1.1rem, 1.7vw, 1.35rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--tva-bg);
  color: var(--tva-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--tva-accent-2); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { text-decoration-thickness: 2px; }
img { max-width: 100%; height: auto; }

.tva-container { width: min(calc(100% - 32px), var(--tva-content-width)); margin-inline: auto; }
.tva-reading { width: min(100%, var(--tva-reading-width)); margin-inline: auto; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--tva-border);
  backdrop-filter: blur(10px);
}
.admin-bar .site-header { top: 32px; }
.header-inner { min-height: 68px; display: flex; align-items: center; gap: 24px; }
.site-branding { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; min-width: 0; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { display: block; max-height: var(--tva-logo-height); max-width: 220px; width: auto; object-fit: contain; }
.site-title { margin: 0; font-size: 1.15rem; font-weight: 800; line-height: 1.1; }
.site-title a { color: var(--tva-text); text-decoration: none; }
.site-description { margin: 2px 0 0; color: var(--tva-muted); font-size: .78rem; line-height: 1.2; }
.primary-nav { margin-left: auto; }
.primary-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 6px; }
.primary-nav a { display: block; padding: 10px 12px; color: var(--tva-text); text-decoration: none; font-weight: 650; border-radius: 9px; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { background: var(--tva-surface); }
.menu-toggle { display: none; margin-left: auto; border: 1px solid var(--tva-border); background: #fff; border-radius: 10px; min-width: 44px; min-height: 44px; font-size: 1.25rem; cursor: pointer; }

.site-main { min-height: 65vh; }
.page-shell { padding: 40px 0 72px; }
.breadcrumbs { margin: 0 0 18px; color: var(--tva-muted); font-size: .88rem; }
.breadcrumbs a { color: inherit; }
.entry-header { width: min(100%, var(--tva-reading-width)); margin: 0 auto 18px; }
.entry-title { margin: 0; font-size: var(--tva-h1); line-height: 1.08; letter-spacing: -.035em; text-align: center; color: #111; }
.entry-content { width: min(100%, var(--tva-reading-width)); margin-inline: auto; }
.entry-content > * { margin-top: 0; margin-bottom: 1.35rem; }
.entry-content p, .entry-content li, .entry-content td, .entry-content blockquote { text-align: justify; }
.entry-content h2 { margin-top: 2.6rem; margin-bottom: .8rem; font-size: var(--tva-h2); line-height: 1.2; letter-spacing: -.02em; color: #111; }
.entry-content h3 { margin-top: 1.8rem; margin-bottom: .55rem; font-size: var(--tva-h3); line-height: 1.25; color: #111; }
.entry-content h4 { margin-top: 1.5rem; }
.entry-content ul, .entry-content ol { padding-left: 1.4rem; }
.entry-content table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content th, .entry-content td { padding: 12px 14px; border: 1px solid var(--tva-border); min-width: 150px; vertical-align: top; }
.entry-content th { background: var(--tva-surface); text-align: left; }
.entry-content blockquote { margin-left: 0; padding: 16px 18px; border-left: 4px solid var(--tva-accent-2); background: var(--tva-surface); }

/* Gutenberg groups/cards */
.wp-block-group.tva-card, .tva-card { border: 1px solid var(--tva-border); background: #fff; border-radius: var(--tva-radius); padding: 20px; box-shadow: 0 5px 18px rgba(17,24,39,.04); }
.wp-block-group.tva-soft { background: var(--tva-surface); border-radius: var(--tva-radius); padding: 22px; }
.wp-block-columns { gap: 18px; }
.wp-block-column > :first-child { margin-top: 0; }

/* Custom icon buttons */
.tva-icon-buttons {
  width: min(100%, var(--tva-reading-width));
  margin: 0 auto 28px;
  padding: 18px;
  background: var(--tva-surface);
  border: 1px solid var(--tva-border);
  border-radius: calc(var(--tva-radius) + 2px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.tva-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--tva-accent);
  color: #fff;
  text-decoration: none;
  font-weight: 750;
  line-height: 1.1;
  transition: transform .12s ease, opacity .12s ease;
}
.tva-action-button:hover { color: #fff; transform: translateY(-1px); opacity: .93; text-decoration: none; }
.tva-action-icon { width: 20px; height: 20px; display: inline-flex; flex: 0 0 20px; }
.tva-action-icon img { width: 20px; height: 20px; object-fit: contain; filter: brightness(0) invert(1); }

/* Sports cards built with core blocks */
.tva-sports-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 1rem 0 2rem; }
.tva-sport-card { border: 1px solid var(--tva-border); border-radius: var(--tva-radius); padding: 20px; background: #fff; box-shadow: 0 5px 18px rgba(17,24,39,.035); }
.tva-sport-card h3 { margin: 0 0 8px; }
.tva-sport-card p { margin: 0 0 14px; }
.tva-card-button { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 8px; background: #111827; color: #fff !important; text-decoration: none !important; font-weight: 750; }
.tva-card-button:hover { opacity: .9; }

/* FAQ */
.entry-content details { border: 1px solid var(--tva-border); border-radius: 10px; padding: 0 16px; margin-bottom: 10px; background: #fff; }
.entry-content summary { cursor: pointer; font-weight: 750; padding: 14px 0; }
.entry-content details p { margin: 0 0 14px; }

/* Footer */
.site-footer { background: #111318; color: #d9dce2; padding: 48px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 28px; }
.site-footer h2, .site-footer h3 { color: #fff; font-size: 1rem; margin-top: 0; }
.site-footer p { color: #c3c7cf; text-align: justify; }
.site-footer a { color: #eef1f6; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 8px 0; }
.footer-bottom { margin-top: 32px; padding-top: 20px; border-top: 1px solid #2a2e36; color: #aeb4bf; font-size: .9rem; }

/* Search / 404 */
.search-form { display: flex; gap: 8px; }
.search-field { flex: 1; min-width: 0; border: 1px solid var(--tva-border); border-radius: 9px; padding: 10px 12px; }
.search-submit { border: 0; border-radius: 9px; padding: 10px 16px; background: var(--tva-accent); color: #fff; font-weight: 700; }

@media (max-width: 900px) {
  .tva-sports-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .primary-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; background: #fff; border-bottom: 1px solid var(--tva-border); padding: 8px 16px 16px; }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { display: block; }
  .primary-nav li { margin: 2px 0; }
  .primary-nav a { padding: 11px 10px; }
}

@media (max-width: 620px) {
  .admin-bar .site-header { top: 46px; }
  .tva-container { width: min(calc(100% - 22px), var(--tva-content-width)); }
  .header-inner { min-height: 62px; gap: 12px; }
  .custom-logo { max-height: min(var(--tva-logo-height), 40px); max-width: 175px; }
  .site-description { display: none; }
  .page-shell { padding: 28px 0 56px; }
  .entry-title { font-size: clamp(1.8rem, 10vw, 2.55rem); }
  .entry-content h2 { margin-top: 2.2rem; }
  .tva-icon-buttons { padding: 12px; display: grid; grid-template-columns: 1fr; }
  .tva-action-button { width: 100%; }
  .tva-sports-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation: none !important; transition: none !important; }
}

/* Desktop submenu */
@media (min-width: 901px) {
  .primary-nav > ul { display: flex; align-items: center; gap: 6px; }
  .primary-nav li { position: relative; }
  .primary-nav .sub-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 60;
    min-width: 210px;
    display: none;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--tva-border);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(17,24,39,.12);
  }
  .primary-nav .sub-menu li { width: 100%; }
  .primary-nav .sub-menu a { white-space: nowrap; }
  .primary-nav li:hover > .sub-menu,
  .primary-nav li:focus-within > .sub-menu { display: block; }
}
@media (max-width: 900px) {
  .primary-nav .sub-menu { position: static; display: block; padding-left: 14px; border-left: 2px solid var(--tva-border); }
}
.tva-card-button-wrap .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 8px;
  background: #111827;
  color: #fff;
  text-decoration: none;
  font-weight: 750;
}


/* v2 content presentation */
.entry-content > h2 {
  position: relative;
  padding-bottom: .55rem;
}
.entry-content > h2::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: .55rem;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--tva-accent-2), #7c3aed);
}

.tva-feature-card {
  position: relative;
  margin: 22px 0;
  padding: 28px 26px 24px !important;
  border: 1px solid var(--tva-border);
  border-radius: 18px;
  background: linear-gradient(180deg,#fff 0%,#fbfcff 100%);
  box-shadow: 0 12px 34px rgba(17,24,39,.06);
  overflow: hidden;
}
.tva-feature-card::before {
  content: "";
  display: block;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 16px;
  background-color: #eef3ff;
  background-image: url("assets/icons/tv.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 28px 28px;
  box-shadow: inset 0 0 0 1px rgba(47,111,237,.12);
}
.tva-feature-card h3 { margin-top: 0 !important; text-align: center; font-size: 1.35rem; }
.tva-feature-sports-organized-by-league::before,
.tva-feature-event-based-sports-navigation::before,
.tva-feature-live-and-upcoming-sports-listings::before,
.tva-feature-easy-switching-between-sports::before { background-image:url("assets/icons/sports.svg"); }
.tva-feature-dedicated-live-tv-channel-directory::before,
.tva-feature-100-live-tv-channels-in-one-directory::before,
.tva-feature-easy-switching-between-channels::before { background-image:url("assets/icons/channels.svg"); }
.tva-feature-strong-selection-of-dedicated-sports-networks::before { background-image:url("assets/icons/football.svg"); }
.tva-feature-flexible-device-access::before,
.tva-feature-big-screen-viewing-options::before,
.tva-feature-full-screen-playback::before { background-image:url("assets/icons/smart-tv.svg"); }
.tva-feature-mobile-friendly-viewing::before { background-image:url("assets/icons/android.svg"); }
.tva-feature-casting-and-screen-mirroring-options::before { background-image:url("assets/icons/chromecast.svg"); }
.tva-feature-straightforward-troubleshooting::before { background-image:url("assets/icons/help.svg"); }
.tva-feature-movie-and-premium-entertainment-selection::before { background-image:url("assets/icons/movie.svg"); }
.tva-feature-browser-based-live-tv-access::before,
.tva-feature-no-mandatory-desktop-software-for-basic-web-access::before { background-image:url("assets/icons/tv.svg"); }

.tva-step-heading {
  position: relative;
  margin: 1.3rem 0 .45rem !important;
  padding: 14px 16px 14px 54px;
  border: 1px solid var(--tva-border);
  border-radius: 14px;
  background: var(--tva-surface);
}
.tva-step-heading::before {
  content: "✓";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--tva-accent);
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
}

.entry-content .wp-block-table.tva-table {
  display: block;
  border: 1px solid var(--tva-border);
  border-radius: 16px;
  overflow-x: auto;
  box-shadow: 0 8px 24px rgba(17,24,39,.045);
  background: #fff;
}
.entry-content .wp-block-table.tva-table table { margin: 0; display: table; width: 100%; }
.entry-content .wp-block-table.tva-table th {
  background: #111827;
  color: #fff;
  border-color: #263043;
  font-weight: 800;
}
.entry-content .wp-block-table.tva-table tbody tr:nth-child(even) td { background: #f8fafc; }
.entry-content .wp-block-table.tva-table td { border-color: #e8ebf0; }

.entry-content .tva-faq-item {
  margin: 12px 0;
  padding: 0 18px;
  border: 1px solid var(--tva-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(17,24,39,.035);
}
.entry-content .tva-faq-item summary {
  position: relative;
  padding: 17px 40px 17px 0;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.35;
  list-style: none;
}
.entry-content .tva-faq-item summary::-webkit-details-marker { display:none; }
.entry-content .tva-faq-item summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  display: grid;
  place-items:center;
  border-radius: 50%;
  background: var(--tva-surface);
  color: var(--tva-text);
  font-size: 1.2rem;
  line-height: 1;
}
.entry-content .tva-faq-item[open] summary::after { content:"–"; }
.entry-content .tva-faq-item > :not(summary) { margin-bottom: 16px; }

.entry-content > ul,
.entry-content > ol {
  border-radius: 14px;
}
.entry-content > ul li::marker,
.entry-content > ol li::marker { color: var(--tva-accent-2); font-weight: 800; }

@media (min-width: 760px) {
  .entry-content .tva-feature-card { padding: 30px 34px 26px !important; }
}

/* =========================================================
   v2.1 — site-wide modern presentation system
   Presentation only: approved editorial copy remains intact.
   ========================================================= */
:root {
  --tva-bg: #f7f9fc;
  --tva-surface: #f4f7fb;
  --tva-surface-strong: #edf3ff;
  --tva-border: #dfe5ee;
  --tva-border-strong: #cfd8e6;
  --tva-text: #172033;
  --tva-muted: #667085;
  --tva-accent: #111827;
  --tva-accent-2: #2563eb;
  --tva-accent-3: #7c3aed;
  --tva-radius: 16px;
  --tva-shadow-sm: 0 5px 18px rgba(15,23,42,.05);
  --tva-shadow-md: 0 14px 36px rgba(15,23,42,.075);
}

body {
  background:
    radial-gradient(circle at 8% 5%, rgba(37,99,235,.045), transparent 25rem),
    radial-gradient(circle at 94% 8%, rgba(124,58,237,.035), transparent 26rem),
    var(--tva-bg);
}

.site-header {
  border-bottom-color: rgba(207,216,230,.9);
  box-shadow: 0 6px 24px rgba(15,23,42,.045);
}
.primary-nav a {
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a {
  background: #eef3ff;
  color: #184fc1;
}

.page-shell { padding-top: 34px; }
.breadcrumbs {
  width: min(100%, var(--tva-reading-width));
  margin-inline: auto;
  padding: 9px 12px;
  border: 1px solid rgba(223,229,238,.9);
  border-radius: 12px;
  background: rgba(255,255,255,.7);
}
.entry-title {
  color: #0f172a;
  text-wrap: balance;
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
}
.entry-content {
  padding: 4px 0 12px;
}
.entry-content > p {
  color: #263247;
}
.entry-content strong { color: #111827; }

/* Refined heading hierarchy on every content page */
.entry-content > h2,
.entry-content .wp-block-group > h2 {
  position: relative;
  margin-top: 3rem;
  padding: 0 0 .75rem 18px;
  color: #0f172a;
  text-wrap: balance;
}
.entry-content > h2::before,
.entry-content .wp-block-group > h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: .14em;
  width: 5px;
  height: 1.15em;
  border-radius: 99px;
  background: linear-gradient(180deg, var(--tva-accent-2), var(--tva-accent-3));
  box-shadow: 0 0 0 4px rgba(37,99,235,.07);
}
.entry-content > h2::after,
.entry-content .wp-block-group > h2::after {
  width: 88px;
  height: 3px;
  margin-top: .7rem;
  background: linear-gradient(90deg, var(--tva-accent-2), var(--tva-accent-3), transparent);
}
.entry-content h3:not(.tva-feature-card h3) {
  position: relative;
  padding: 10px 14px;
  border-left: 3px solid #8fb3ff;
  border-radius: 0 10px 10px 0;
  background: linear-gradient(90deg, rgba(238,243,255,.78), rgba(255,255,255,0));
  color: #172033;
  text-wrap: balance;
}
.entry-content h4 {
  color: #25324a;
  font-weight: 800;
}

/* Modern list treatment across ALL article pages */
.entry-content ul.wp-block-list,
.entry-content ol.wp-block-list,
.entry-content > ul,
.entry-content > ol {
  margin: 1rem 0 1.65rem;
  padding: 0;
  display: grid;
  gap: 9px;
  list-style: none;
}
.entry-content ul.wp-block-list > li,
.entry-content > ul > li {
  position: relative;
  margin: 0;
  padding: 11px 14px 11px 44px;
  border: 1px solid #e1e7f0;
  border-radius: 12px;
  background: linear-gradient(180deg,#fff,#fbfdff);
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
  text-align: left;
}
.entry-content ul.wp-block-list > li::before,
.entry-content > ul > li::before {
  content: "✓";
  position: absolute;
  left: 13px;
  top: 12px;
  width: 21px;
  height: 21px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #eef4ff;
  color: #215bcf;
  font-size: .76rem;
  line-height: 1;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.12);
}
.entry-content ol.wp-block-list,
.entry-content > ol { counter-reset: tva-list; }
.entry-content ol.wp-block-list > li,
.entry-content > ol > li {
  counter-increment: tva-list;
  position: relative;
  margin: 0;
  padding: 12px 14px 12px 49px;
  border: 1px solid #e1e7f0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15,23,42,.035);
  text-align: left;
}
.entry-content ol.wp-block-list > li::before,
.entry-content > ol > li::before {
  content: counter(tva-list);
  position: absolute;
  left: 12px;
  top: 10px;
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg,var(--tva-accent-2),var(--tva-accent-3));
  color: #fff;
  font-size: .76rem;
  line-height: 1;
  font-weight: 900;
}
.entry-content li > ul,
.entry-content li > ol { margin-top: 10px; }

/* Pros & limitations: visually distinct, content unchanged */
.entry-content .tva-pros-cons-heading {
  margin-top: 3.2rem;
}
.entry-content .tva-pros-title,
.entry-content .tva-cons-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 1.35rem;
  padding: 14px 16px;
  border: 1px solid;
  border-radius: 14px;
  font-size: 1.2rem;
  background: #fff;
}
.entry-content .tva-pros-title {
  border-color: #b8e7cb;
  background: linear-gradient(90deg,#effcf4,#fff);
  color: #17643a;
}
.entry-content .tva-cons-title {
  border-color: #f1cfb6;
  background: linear-gradient(90deg,#fff7ed,#fff);
  color: #9a4b14;
}
.entry-content .tva-pros-title::before,
.entry-content .tva-cons-title::before {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
}
.entry-content .tva-pros-title::before { content:"✓"; background:#24945a; }
.entry-content .tva-cons-title::before { content:"!"; background:#d97706; }
.entry-content .tva-pros-card,
.entry-content .tva-cons-card {
  position: relative;
  margin: 10px 0 !important;
  padding: 15px 16px 15px 48px;
  border: 1px solid;
  border-radius: 13px;
  text-align: left !important;
  box-shadow: 0 4px 14px rgba(15,23,42,.035);
}
.entry-content .tva-pros-card { border-color:#ccebd8; background:#f7fdf9; }
.entry-content .tva-cons-card { border-color:#f2d9c7; background:#fffaf5; }
.entry-content .tva-pros-card::before,
.entry-content .tva-cons-card::before {
  position: absolute;
  left: 14px;
  top: 14px;
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}
.entry-content .tva-pros-card::before { content:"✓"; background:#29965c; }
.entry-content .tva-cons-card::before { content:"!"; background:#db7b18; }
.entry-content .tva-pros-card strong,
.entry-content .tva-cons-card strong { display:block; margin-bottom:2px; }

/* Feature cards */
.tva-feature-card {
  border-color: #dfe6f1;
  box-shadow: var(--tva-shadow-md);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tva-feature-card:hover {
  transform: translateY(-2px);
  border-color: #c9d7ef;
  box-shadow: 0 18px 44px rgba(15,23,42,.09);
}
.tva-feature-card::before {
  background-color: #f0f5ff;
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.14), 0 7px 18px rgba(37,99,235,.09);
}

/* Steps */
.tva-step-heading {
  border-color: #dce4f0;
  background: linear-gradient(90deg,#f4f7fb,#fff);
  box-shadow: var(--tva-shadow-sm);
}
.tva-step-heading::before {
  background: linear-gradient(135deg,var(--tva-accent-2),var(--tva-accent-3));
  box-shadow: 0 5px 12px rgba(37,99,235,.2);
}

/* Tables */
.entry-content .wp-block-table.tva-table,
.entry-content .wp-block-table {
  border-radius: 16px;
  border: 1px solid #dce3ee;
  box-shadow: var(--tva-shadow-sm);
  background: #fff;
}
.entry-content .wp-block-table th,
.entry-content table th {
  background: linear-gradient(135deg,#172033,#25324a);
  color: #fff;
  font-weight: 800;
}
.entry-content .wp-block-table tbody tr:nth-child(even) td,
.entry-content table tbody tr:nth-child(even) td { background:#f8fafc; }
.entry-content .wp-block-table tbody tr:hover td,
.entry-content table tbody tr:hover td { background:#f2f6ff; }

/* FAQs */
.entry-content .tva-faq-item,
.entry-content details {
  overflow: hidden;
  border-color: #dfe5ee;
  border-radius: 15px;
  box-shadow: 0 6px 20px rgba(15,23,42,.04);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.entry-content .tva-faq-item:hover,
.entry-content details:hover {
  border-color: #cbd8ed;
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
}
.entry-content .tva-faq-item[open],
.entry-content details[open] { border-color:#b9cae8; }
.entry-content .tva-faq-item summary,
.entry-content details summary {
  color: #172033;
}
.entry-content .tva-faq-item summary::after {
  background: #eef3ff;
  color: #2458bd;
}

/* Buttons */
.tva-icon-buttons {
  background: rgba(255,255,255,.82);
  border-color: #dbe3ef;
  box-shadow: var(--tva-shadow-sm);
}
.tva-action-button,
.tva-card-button,
.tva-card-button-wrap .wp-block-button__link {
  background: linear-gradient(135deg,#172033,#273a5d);
  box-shadow: 0 7px 18px rgba(15,23,42,.13);
}
.tva-action-button:hover,
.tva-card-button:hover,
.tva-card-button-wrap .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 11px 24px rgba(15,23,42,.17);
}

/* Text links inside editorial content */
.entry-content p a,
.entry-content li a,
.entry-content td a {
  font-weight: 650;
  text-decoration-color: rgba(37,99,235,.4);
}

@media (max-width: 620px) {
  .entry-content > h2,
  .entry-content .wp-block-group > h2 { padding-left: 14px; }
  .entry-content h3:not(.tva-feature-card h3) { padding: 9px 11px; }
  .entry-content ul.wp-block-list > li,
  .entry-content > ul > li { padding: 10px 11px 10px 40px; }
  .entry-content .tva-pros-card,
  .entry-content .tva-cons-card { padding-left: 44px; }
}

/* =========================================================
   v2.3.0 balanced white editorial system
   ========================================================= */
:root {
  --tva-bg: #ffffff;
  --tva-surface: #ffffff;
  --tva-surface-strong: #f8fafc;
  --tva-text: #101114;
  --tva-muted: #444a55;
  --tva-content-width: 1200px;
  --tva-reading-width: 1200px;
}

body {
  background: #ffffff !important;
  color: var(--tva-text);
}

/* One balanced 1200px grid: header, breadcrumb and editorial content align. */
.tva-container { width: min(calc(100% - 32px), var(--tva-content-width)); }
.entry-header,
.entry-content,
.tva-icon-buttons,
.breadcrumbs { width: 100%; max-width: var(--tva-reading-width); }

.entry-content,
.entry-content > p,
.entry-content p,
.entry-content li,
.entry-content td,
.entry-content blockquote,
.site-footer p {
  color: #101114;
}
.entry-content p,
.entry-content li,
.entry-content td,
.entry-content blockquote,
.site-footer p {
  text-align: justify !important;
  text-justify: inter-word;
}

/* Keep the white theme visibly white while preserving subtle hierarchy. */
.wp-block-group.tva-card,
.tva-card,
.tva-feature-card,
.entry-content details,
.entry-content .wp-block-table,
.tva-icon-buttons,
.breadcrumbs {
  background: #ffffff;
}

.site-footer {
  background: #ffffff;
  color: #101114;
  border-top: 1px solid #dfe5ee;
}
.site-footer h2,
.site-footer h3,
.site-footer p,
.site-footer a { color: #101114; }
.site-footer a { text-decoration-color: rgba(37,99,235,.38); }
.site-footer .footer-bottom {
  border-top-color: #dfe5ee;
  color: #525866;
}

/* Headings: crisp and modern on the white surface. */
.entry-title,
.entry-content h2,
.entry-content h3,
.entry-content h4 { color: #0b0d12; }
.entry-content > h2,
.entry-content .wp-block-group > h2 {
  border-bottom: 1px solid #e8edf4;
  padding-bottom: .78rem;
}
.entry-content h3:not(.tva-feature-card h3):not(.tva-step-heading):not(.tva-pros-title):not(.tva-cons-title) {
  background: linear-gradient(90deg,#f7f9fc,rgba(255,255,255,0));
  border-left-color: #6f9cff;
}

/* Protected step layout: generic H3 rules can no longer overlap the text. */
.entry-content h3.tva-step-heading,
.tva-step-heading {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 58px;
  margin: 1.35rem 0 .55rem !important;
  padding: 14px 18px 14px 64px !important;
  border: 1px solid #dce4ef !important;
  border-left: 1px solid #dce4ef !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 5px 16px rgba(15,23,42,.045);
  overflow: visible;
}
.entry-content h3.tva-step-heading::before,
.tva-step-heading::before {
  content: "→";
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #111827;
  color: #fff;
  font-size: .88rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: none;
}

/* Site-wide list cards. Content classes choose different symbols by intent. */
.entry-content ul.wp-block-list,
.entry-content ol.wp-block-list,
.entry-content > ul,
.entry-content > ol {
  gap: 10px;
}
.entry-content ul.wp-block-list > li,
.entry-content > ul > li {
  padding: 12px 15px 12px 47px;
  border-color: #e1e6ed;
  background: #ffffff;
  color: #101114;
  text-align: justify !important;
}
.entry-content ul.wp-block-list > li::before,
.entry-content > ul > li::before {
  content: "•";
  left: 14px;
  top: 12px;
  width: 23px;
  height: 23px;
  border-radius: 7px;
  background: #f1f5f9;
  color: #334155;
  box-shadow: inset 0 0 0 1px #e2e8f0;
}

/* Each content family has its own bullet icon + accent. */
.entry-content .tva-list-sports > li::before { content:"★"; background:#fff7ed; color:#c2410c; box-shadow:inset 0 0 0 1px #fed7aa; }
.entry-content .tva-list-channels > li::before { content:"▦"; background:#eff6ff; color:#1d4ed8; box-shadow:inset 0 0 0 1px #bfdbfe; }
.entry-content .tva-list-news > li::before { content:"◆"; background:#f0fdfa; color:#0f766e; box-shadow:inset 0 0 0 1px #99f6e4; }
.entry-content .tva-list-movie > li::before { content:"▶"; background:#faf5ff; color:#7e22ce; box-shadow:inset 0 0 0 1px #e9d5ff; }
.entry-content .tva-list-kids > li::before { content:"✦"; background:#fff7ed; color:#b45309; box-shadow:inset 0 0 0 1px #fde68a; }
.entry-content .tva-list-device > li::before { content:"▣"; background:#f0f9ff; color:#0369a1; box-shadow:inset 0 0 0 1px #bae6fd; }
.entry-content .tva-list-troubleshoot > li::before { content:"!"; background:#fff1f2; color:#be123c; box-shadow:inset 0 0 0 1px #fecdd3; }
.entry-content .tva-list-quality > li::before { content:"◆"; background:#ecfdf5; color:#047857; box-shadow:inset 0 0 0 1px #a7f3d0; }
.entry-content .tva-list-download > li::before { content:"↓"; background:#eef2ff; color:#4338ca; box-shadow:inset 0 0 0 1px #c7d2fe; }
.entry-content .tva-list-info > li::before { content:"•"; background:#f8fafc; color:#475569; box-shadow:inset 0 0 0 1px #e2e8f0; }
.entry-content .tva-list-explore > li::before { content:"→"; background:#eef4ff; color:#1d4ed8; box-shadow:inset 0 0 0 1px #bfdbfe; }

/* Explore TheTVApp: clearly actionable, not plain paragraphs. */
.entry-content .tva-list-explore {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}
.entry-content .tva-list-explore > li {
  min-height: 66px;
  display: block;
  border-color: #dbe5f4;
  box-shadow: 0 5px 16px rgba(15,23,42,.04);
}

/* Pros and Limitations are real bullet lists with distinct visual language. */
.entry-content .tva-pros-list,
.entry-content .tva-limitations-list {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
}
.entry-content .tva-pros-list > li,
.entry-content .tva-limitations-list > li {
  min-height: 72px;
  padding: 14px 16px 14px 50px;
  box-shadow: 0 5px 16px rgba(15,23,42,.035);
}
.entry-content .tva-pros-list > li {
  border-color: #bfe5ce;
  background: #fbfffc;
}
.entry-content .tva-pros-list > li::before {
  content:"✓";
  background:#e9f9ef;
  color:#18733f;
  box-shadow:inset 0 0 0 1px #bfe5ce;
}
.entry-content .tva-limitations-list > li {
  border-color:#f0d1b8;
  background:#fffdfa;
}
.entry-content .tva-limitations-list > li::before {
  content:"!";
  background:#fff2e8;
  color:#b45309;
  box-shadow:inset 0 0 0 1px #f0d1b8;
}
.entry-content .tva-pros-list strong,
.entry-content .tva-limitations-list strong {
  display:block;
  margin-bottom:2px;
  color:#0f172a;
}

/* Ordered lists keep readable numbered badges and never overlap text. */
.entry-content ol.wp-block-list > li,
.entry-content > ol > li {
  min-height: 48px;
  padding: 12px 15px 12px 54px;
  background:#fff;
  color:#101114;
  text-align: justify !important;
}
.entry-content ol.wp-block-list > li::before,
.entry-content > ol > li::before {
  left: 14px;
  top: 12px;
  width: 26px;
  height: 26px;
  background:#111827;
  box-shadow:none;
}

/* Tables remain strong but fit the white theme. */
.entry-content .wp-block-table th,
.entry-content table th {
  background:#111827;
  color:#fff;
}
.entry-content .wp-block-table tbody tr:nth-child(even) td,
.entry-content table tbody tr:nth-child(even) td { background:#fafafa; }
.entry-content .wp-block-table tbody tr:hover td,
.entry-content table tbody tr:hover td { background:#f5f7fa; }

@media (max-width: 760px) {
  .entry-content .tva-list-explore,
  .entry-content .tva-pros-list,
  .entry-content .tva-limitations-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .tva-container { width: min(calc(100% - 22px), var(--tva-content-width)); }
  .entry-content h3.tva-step-heading,
  .tva-step-heading { min-height:54px; padding:12px 14px 12px 58px !important; }
  .entry-content h3.tva-step-heading::before,
  .tva-step-heading::before { left:13px; width:29px; height:29px; }
  .entry-content ul.wp-block-list > li,
  .entry-content > ul > li { padding:11px 12px 11px 44px; }
}

/* v2.3 trust-page footer balance */
@media (min-width: 901px) {
  .site-footer .footer-grid {
    grid-template-columns: minmax(220px,1.35fr) minmax(130px,.75fr) minmax(170px,1fr) minmax(300px,1.55fr);
  }
  .site-footer .footer-company ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    column-gap: 18px;
    row-gap: 1px;
  }
  .site-footer .footer-company li { break-inside: avoid; }
}
@media (max-width: 900px) and (min-width: 621px) {
  .site-footer .footer-company ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    column-gap: 18px;
  }
}
