/*
 Theme Name:   OddsMaestro
 Theme URI:    https://oddsmaestro.com.br
 Description:  OddsMaestro child theme for Blocksy
 Author:       OddsMaestro
 Template:     blocksy
 Version:      1.0.0
 Text Domain:  oddsmaestro
*/

/* ═══════════════════════════════════════════════════════════════════════════
   GLOBAL PALETTE OVERRIDE
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Blocksy palette slots */
  --theme-palette-color-1: #f5a623;  /* accent / CTA orange    */
  --theme-palette-color-2: #d4891a;  /* accent hover           */
  --theme-palette-color-3: #c8d6e5;  /* body text              */
  --theme-palette-color-4: #ffffff;  /* headings               */
  --theme-palette-color-5: #253347;  /* borders                */
  --theme-palette-color-6: #1a2535;  /* card background        */
  --theme-palette-color-7: #131f2e;  /* section background     */
  --theme-palette-color-8: #0d1520;  /* site background        */

  /* Custom tokens */
  --om-accent:    #f5a623;
  --om-green:     #2ecc71;
  --om-red:       #e74c3c;
  --om-blue:      #3498db;
  --om-purple:    #9b59b6;
  --om-yellow:    #f39c12;
  --om-text:      #c8d6e5;
  --om-muted:     #7a8fa3;
  --om-bg:        #0d1520;
  --om-card:      #1a2535;
  --om-border:    #253347;
  --om-radius:    10px;
  --om-font:      -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Sport category colors */
  --sport-futebol:  #2ecc71;
  --sport-ufc:      #e74c3c;
  --sport-f1:       #3498db;
  --sport-tennis:   #9b59b6;
  --sport-esports:  #f39c12;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BASE / RESET
   ═══════════════════════════════════════════════════════════════════════════ */

body {
  background-color: var(--om-bg);
  color: var(--om-text);
  font-family: var(--om-font);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--om-accent); }
a:hover { color: var(--om-accent); opacity: .82; }

h1, h2, h3, h4, h5, h6 {
  color: #fff;
  line-height: 1.25;
}

/* ═══════════════════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════════════════ */

.site-header,
#masthead,
.ct-header {
  background: #0d1520 !important;
  border-bottom: 2px solid var(--om-border);
}

/* Logo text fallback */
.site-title a,
.ct-site-title a {
  color: #fff !important;
  font-weight: 800;
  font-size: 1.4rem;
  letter-spacing: -.02em;
}

.site-title a span { color: var(--om-accent); }

/* Primary navigation */
.ct-main-header-menu a,
.primary-menu a {
  color: var(--om-text) !important;
  font-size: .875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: color .15s;
}

.ct-main-header-menu a:hover,
.primary-menu a:hover,
.ct-main-header-menu .current-menu-item > a {
  color: var(--om-accent) !important;
}

/* Odds CTA button in header */
.header-odds-btn {
  display: inline-block;
  background: var(--om-accent);
  color: #000 !important;
  font-weight: 800;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 8px 18px;
  border-radius: 6px;
  text-decoration: none !important;
  transition: opacity .15s;
}

.header-odds-btn:hover { opacity: .88; color: #000 !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   SPORT CATEGORY NAVIGATION BAR
   ═══════════════════════════════════════════════════════════════════════════ */

.om-sport-nav {
  display: flex;
  gap: 4px;
  background: var(--om-card);
  border-bottom: 1px solid var(--om-border);
  padding: 0 20px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.om-sport-nav::-webkit-scrollbar { display: none; }

.om-sport-nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--om-muted) !important;
  text-decoration: none !important;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  transition: color .15s, border-color .15s;
}

.om-sport-nav a:hover,
.om-sport-nav a.active  { color: #fff !important; }

.om-sport-nav a[data-sport="futebol"]:hover,
.om-sport-nav a[data-sport="futebol"].active  { border-bottom-color: var(--sport-futebol); }
.om-sport-nav a[data-sport="ufc"]:hover,
.om-sport-nav a[data-sport="ufc"].active      { border-bottom-color: var(--sport-ufc); }
.om-sport-nav a[data-sport="f1"]:hover,
.om-sport-nav a[data-sport="f1"].active       { border-bottom-color: var(--sport-f1); }
.om-sport-nav a[data-sport="tennis"]:hover,
.om-sport-nav a[data-sport="tennis"].active   { border-bottom-color: var(--sport-tennis); }
.om-sport-nav a[data-sport="esports"]:hover,
.om-sport-nav a[data-sport="esports"].active  { border-bottom-color: var(--sport-esports); }

/* ═══════════════════════════════════════════════════════════════════════════
   CATEGORY CHIPS (on article cards + single posts)
   ═══════════════════════════════════════════════════════════════════════════ */

.cat-chip {
  display: inline-block;
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 3px 8px;
  border-radius: 4px;
  color: #fff !important;
  text-decoration: none !important;
  line-height: 1.4;
}

.cat-chip.cat-futebol  { background: var(--sport-futebol); }
.cat-chip.cat-ufc      { background: var(--sport-ufc); }
.cat-chip.cat-f1       { background: var(--sport-f1); }
.cat-chip.cat-tennis   { background: var(--sport-tennis); }
.cat-chip.cat-esports  { background: var(--sport-esports); }

/* Blocksy category label override */
.ct-post-card .entry-categories a,
.entry-categories a {
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  padding: 3px 8px;
  border-radius: 4px;
  color: #fff !important;
  text-decoration: none !important;
}

/* Apply sport colors to WP category classes */
.cat-futebol .entry-categories a,
.category-futebol .entry-categories a   { background: var(--sport-futebol) !important; }
.cat-ufc-mma .entry-categories a,
.category-ufc-mma .entry-categories a  { background: var(--sport-ufc) !important; }
.cat-formula-1 .entry-categories a,
.category-formula-1 .entry-categories a { background: var(--sport-f1) !important; }
.cat-tenis .entry-categories a,
.category-tenis .entry-categories a    { background: var(--sport-tennis) !important; }
.cat-esports .entry-categories a,
.category-esports .entry-categories a  { background: var(--sport-esports) !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   ARTICLE CARDS
   ═══════════════════════════════════════════════════════════════════════════ */

.ct-post-card,
article.type-post {
  background: var(--om-card) !important;
  border: 1px solid var(--om-border) !important;
  border-radius: var(--om-radius) !important;
  overflow: hidden;
  transition: border-color .2s, transform .2s;
}

.ct-post-card:hover {
  border-color: var(--om-accent) !important;
  transform: translateY(-2px);
}

.ct-post-card .ct-post-thumbnail-holder::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(13,21,32,.85) 100%);
  pointer-events: none;
}

.ct-post-card .ct-post-thumbnail-holder { position: relative; }

.entry-title a,
.ct-post-card .entry-title a {
  color: #fff !important;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none !important;
}

.entry-title a:hover,
.ct-post-card .entry-title a:hover { color: var(--om-accent) !important; }

.ct-post-card .entry-excerpt,
.entry-excerpt {
  color: var(--om-muted) !important;
  font-size: .875rem;
  line-height: 1.6;
}

.ct-post-card .ct-meta,
.entry-meta { color: var(--om-muted) !important; font-size: .75rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   HERO SECTION
   ═══════════════════════════════════════════════════════════════════════════ */

.om-hero {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  margin-bottom: 2rem;
}

.om-hero-main {
  grid-row: 1 / 3;
  position: relative;
  border-radius: var(--om-radius);
  overflow: hidden;
  min-height: 420px;
}

.om-hero-main img,
.om-hero-side img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.om-hero-main::after,
.om-hero-side::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13,21,32,.95) 0%, rgba(13,21,32,.3) 60%, transparent 100%);
}

.om-hero-side {
  position: relative;
  border-radius: var(--om-radius);
  overflow: hidden;
  min-height: 200px;
}

.om-hero-caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  z-index: 2;
  padding: 20px;
}

.om-hero-caption .cat-chip { margin-bottom: 8px; }

.om-hero-caption h2,
.om-hero-caption h3 {
  font-size: 1.4rem;
  font-weight: 800;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}

.om-hero-side .om-hero-caption h3 { font-size: 1rem; }

@media (max-width: 768px) {
  .om-hero {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .om-hero-main { grid-row: auto; min-height: 280px; }
  .om-hero-side { min-height: 160px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ODDS STRIP (homepage horizontal scrolling bar)
   ═══════════════════════════════════════════════════════════════════════════ */

.om-odds-strip {
  background: var(--om-card);
  border: 1px solid var(--om-border);
  border-radius: var(--om-radius);
  padding: 16px 20px;
  margin: 1.5rem 0;
}

.om-odds-strip-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.om-odds-strip-header h3 {
  font-size: .9rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--om-accent);
  margin: 0;
}

.om-odds-strip-header a {
  font-size: .75rem;
  color: var(--om-muted);
  text-decoration: none;
}

.om-odds-strip-header a:hover { color: var(--om-accent); }

/* ═══════════════════════════════════════════════════════════════════════════
   SECTION HEADINGS
   ═══════════════════════════════════════════════════════════════════════════ */

.om-section-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.1rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #fff;
  margin: 2rem 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--om-border);
}

.om-section-heading::before {
  content: '';
  display: block;
  width: 4px;
  height: 20px;
  background: var(--om-accent);
  border-radius: 2px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SINGLE POST
   ═══════════════════════════════════════════════════════════════════════════ */

.single-post .entry-header {
  margin-bottom: 1.5rem;
}

.single-post .entry-title {
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.2;
}

.single-post .entry-content {
  color: var(--om-text);
  font-size: 1rem;
  line-height: 1.8;
  max-width: 760px;
}

.single-post .entry-content p   { margin-bottom: 1.2rem; }
.single-post .entry-content h2  { font-size: 1.3rem; font-weight: 800; color: #fff; margin: 2rem 0 .75rem; padding-left: 12px; border-left: 4px solid var(--om-accent); }
.single-post .entry-content h3  { font-size: 1.1rem; font-weight: 700; color: #fff; margin: 1.5rem 0 .5rem; }

/* ═══════════════════════════════════════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════════════════════════════════════ */

.ct-sidebar .widget,
aside .widget {
  background: var(--om-card);
  border: 1px solid var(--om-border);
  border-radius: var(--om-radius);
  padding: 18px;
  margin-bottom: 16px;
}

.widget-title,
.ct-sidebar .widget-title {
  font-size: .85rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--om-accent);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--om-border);
}

/* ═══════════════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════════════ */

.site-footer,
#colophon,
.ct-footer {
  background: #080e16 !important;
  border-top: 2px solid var(--om-border);
  padding: 3rem 0 1.5rem;
  color: var(--om-muted);
}

.footer-widgets-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 2.5rem;
  margin-bottom: 2.5rem;
}

.footer-brand .footer-logo { font-size: 1.5rem; font-weight: 900; color: #fff; margin-bottom: .75rem; }
.footer-brand .footer-logo span { color: var(--om-accent); }
.footer-brand p { font-size: .82rem; line-height: 1.7; color: var(--om-muted); max-width: 280px; }

.footer-col-title {
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #fff;
  margin-bottom: 12px;
}

.footer-links {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.footer-links a {
  font-size: .82rem;
  color: var(--om-muted) !important;
  text-decoration: none !important;
  transition: color .15s;
}

.footer-links a:hover { color: var(--om-accent) !important; }

/* Disclaimer block */
.footer-disclaimer {
  background: #0a1220;
  border: 1px solid var(--om-border);
  border-radius: var(--om-radius);
  padding: 16px 20px;
  margin-bottom: 2rem;
}

.footer-disclaimer p {
  font-size: .72rem;
  line-height: 1.7;
  color: var(--om-muted);
  margin: 0 0 6px;
}

.footer-disclaimer p:last-child { margin: 0; }

.footer-disclaimer strong { color: #fff; }

/* Age restriction badge */
.footer-age-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  background: var(--om-red);
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
  border-radius: 50%;
  margin-right: 10px;
  flex-shrink: 0;
}

.footer-disclaimer-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

/* Bottom bar */
.footer-bottom {
  border-top: 1px solid var(--om-border);
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: .72rem;
  color: var(--om-muted);
}

.footer-bottom a { color: var(--om-muted); text-decoration: none; }
.footer-bottom a:hover { color: var(--om-accent); }

@media (max-width: 900px) {
  .footer-widgets-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .footer-widgets-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   BLOCKSY OVERRIDES
   ═══════════════════════════════════════════════════════════════════════════ */

/* Remove Blocksy's default white/light backgrounds */
.ct-container,
.site-main,
.ct-page-content-wrapper { background: transparent !important; }

/* Blocksy "read more" button → accent */
.ct-button,
.more-link,
.wp-block-button__link {
  background: var(--om-accent) !important;
  color: #000 !important;
  border-radius: 6px !important;
  font-weight: 700 !important;
}

/* Pagination */
.ct-pagination .page-numbers {
  background: var(--om-card) !important;
  color: var(--om-text) !important;
  border-color: var(--om-border) !important;
  border-radius: 6px !important;
}

.ct-pagination .page-numbers.current,
.ct-pagination .page-numbers:hover {
  background: var(--om-accent) !important;
  color: #000 !important;
}

/* Search box */
.ct-search-box input {
  background: var(--om-card) !important;
  border-color: var(--om-border) !important;
  color: var(--om-text) !important;
}
