/* ============================================================
   RÁDIO SÃO LUÍS - DESIGN SYSTEM (global.css)
   Bloco 1: Variáveis, Reset, Tipografia, Utilitários
   Versão: 1.0.0
   ============================================================ */

/* 1. VARIÁVEIS CSS */
:root {
  /* Cores - QA-CHECKLIST.md */
  --color-primary: #081A3D;
  --color-primary-light: #103B8A;
  --color-accent: #FFC107;
  --color-accent-hover: #E0A800;
  --color-white: #FFFFFF;
  --color-gray-bg: #F5F6F8;
  --color-gray-border: #E5E7EB;
  --color-text: #1F2937;
  --color-text-muted: #6B7280;
  --color-placeholder: #9CA3AF;
  
  /* Tipografia */
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
  --fs-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --lh-heading: 1.2;
  --lh-body: 1.6;
  --lh-meta: 1.5;
  
  /* Espaçamento (sistema 8px) */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px; --space-12: 48px; --space-16: 64px;
  
  /* Bordas & Sombras */
  --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 24px rgba(0,0,0,.1);
  
  /* Z-index */
  --z-sticky: 1000; --z-fixed: 9999; --z-modal: 10000;
  
  /* Container */
  --container-max: 1200px;
}

/* 2. RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body { font-family: var(--font-body); font-size: var(--fs-base); line-height: var(--lh-body); color: var(--color-text); background: var(--color-white); -webkit-font-smoothing: antialiased; }
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }

/* 3. TIPOGRAFIA */
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); font-weight: 700; line-height: var(--lh-heading); color: var(--color-primary); }
h1 { font-size: clamp(2.5rem, 2rem + 2vw, 4rem); }
h2 { font-size: clamp(1.75rem, 1.5rem + 1.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 1.1rem + 1vw, 1.75rem); }
h4 { font-size: clamp(1.1rem, 1rem + 0.5vw, 1.25rem); }
.rs-section-header h2::before { content: ""; display: inline-block; width: 4px; height: 40px; background: var(--color-accent); border-radius: 2px; margin-right: 12px; vertical-align: middle; }

/* 4. UTILITÁRIOS */
.container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--space-4); }
.row { display: flex; flex-wrap: wrap; margin: 0 calc(var(--space-3) * -1); }
.col { padding: 0 var(--space-3); }
.flex { display: flex; }
.flex-col { flex-direction: column; }
.justify-between { justify-content: space-between; }
.items-center { align-items: center; }
.gap-2 { gap: var(--space-2); } .gap-3 { gap: var(--space-3); } .gap-4 { gap: var(--space-4); } .gap-6 { gap: var(--space-6); }
.text-center { text-align: center; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* 5. COMPONENTES BASE */
/* Botões */
.rsl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-heading); font-weight: 600; border-radius: var(--radius-md); padding: 14px 28px; transition: all .25s cubic-bezier(.4,0,.2,1); }
.rsl-btn-primary { background: var(--color-accent); color: #081A3D; font-weight: 700; }
.rsl-btn-primary:hover { background: var(--color-accent-hover); transform: scale(1.05); box-shadow: var(--shadow-md); }
.rsl-btn-outline { background: transparent; color: var(--color-primary); border: 2px solid var(--color-primary); }
.rsl-btn-outline:hover { background: var(--color-primary); color: var(--color-white); }
.rsl-btn-link { color: var(--color-primary-light); font-weight: 500; }
.rsl-btn-link:hover { color: var(--color-accent); }

/* Badge Categoria */
.rsl-category-badge,
.rsl-badge-accent { display: inline-block; background: #f59e0b; color: #000; font-family: var(--font-heading, sans-serif); font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 4px; text-transform: uppercase; letter-spacing: .05em; line-height: 1; }

/* Card Base */
.rsl-post-card { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; transition: all .25s cubic-bezier(.4,0,.2,1); }
.rsl-post-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.rsl-card-img { width: 100%; height: auto; display: block; transition: transform .3s ease; }
.rsl-post-card:hover .rsl-card-img { transform: scale(1.02); }

/* Card Horizontal */
.rsl-card-horizontal { display: flex; flex-direction: row; }
.rsl-card-horizontal .rsl-card-image { flex-shrink: 0; overflow: hidden; border-radius: var(--radius-md) 0 0 var(--radius-md); width: 120px; }
.rsl-card-horizontal .rsl-card-img { height: 100%; min-height: 100%; object-fit: cover; }
.rsl-card-horizontal .rsl-card-content { padding: var(--space-3); display: flex; flex-direction: column; justify-content: space-between; }

/* Card Vertical */
.rsl-card-vertical { display: flex; flex-direction: column; }
.rsl-card-vertical .rsl-card-image-link { display: block; overflow: hidden; border-radius: var(--radius-md) var(--radius-md) 0 0; }
.rsl-card-vertical .rsl-card-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.rsl-card-vertical .rsl-card-content { padding: var(--space-4); display: flex; flex-direction: column; flex: 1; }

/* Card Hero/Destaque */
.rsl-card-hero { position: relative; border-radius: var(--radius-lg); overflow: hidden; }
.rsl-card-hero .rsl-card-img { width: 100%; height: 100%; object-fit: cover; }
.rsl-card-link { display: block; position: relative; height: 100%; }
.rsl-card-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: var(--space-6); color: var(--color-white); }
.rsl-card-overlay-category { margin-bottom: var(--space-2); }
.rsl-card-overlay-content .rsl-card-title a { color: var(--color-white); }
.rsl-card-overlay-content .rsl-card-title a:hover { color: var(--color-accent); }
.rsl-card-overlay-content .rsl-card-excerpt { color: rgba(255,255,255,.9); }
.rsl-card-overlay-content .rsl-card-meta { color: rgba(255,255,255,.7); }

/* Títulos Cards */
.rsl-card-title { margin: var(--space-2) 0 var(--space-1); line-height: 1.3; }
.rsl-card-title a { color: var(--color-primary); transition: color .2s; }
.rsl-card-title a:hover { color: var(--color-accent); }

/* Excerpt */
.rsl-card-excerpt { margin: var(--space-2) 0 0; font-size: .85rem; line-height: 1.5; color: #374151; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Meta */
.rsl-card-meta { margin-top: var(--space-3); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: .75rem; color: var(--color-text-muted); }
.rsl-meta-sep { color: #D1D5DB; }
.rsl-card-date, .rsl-card-author, .rsl-card-reading-time { display: inline-flex; align-items: center; gap: 4px; }

/* 6. LAYOUT - TOP BAR */
.rsl-top-bar { background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-light) 100%); padding: var(--space-2) var(--space-4); font-size: .85rem; color: var(--color-white); }
.rsl-top-bar-inner { display: flex; justify-content: space-between; align-items: center; max-width: var(--container-max); margin: 0 auto; gap: var(--space-4); flex-wrap: wrap; }
.rsl-top-bar-left { display: flex; align-items: center; gap: var(--space-4); }
.rsl-logo { max-height: 36px; }
.rsl-tagline { font-family: var(--font-heading); font-weight: 500; opacity: .9; }
.rsl-top-bar-center { display: flex; align-items: center; gap: var(--space-3); }
.rsl-live-badge { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: .7rem; }
.rsl-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent); animation: rsl-pulse 1.5s infinite; }
@keyframes rsl-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.rsl-top-bar-right { display: flex; align-items: center; gap: var(--space-3); }
.rsl-social-icons { display: flex; gap: var(--space-2); }
.rsl-social-icons a { color: var(--color-white); opacity: .8; transition: all .2s; }
.rsl-social-icons a:hover { opacity: 1; color: var(--color-accent); transform: translateY(-1px); }
.rsl-btn-live { background: var(--color-accent); color: var(--color-white); padding: 10px 20px; border-radius: var(--radius-md); font-weight: 600; display: flex; align-items: center; gap: 6px; }
.rsl-btn-live:hover { background: var(--color-accent-hover); }

/* 7. LAYOUT - HEADER/MENU */
.rsl-main-header { position: sticky; top: 0; z-index: var(--z-sticky); background: var(--color-white); border-bottom: 1px solid var(--color-gray-border); }
.rsl-main-menu { height: 64px; display: flex; align-items: center; justify-content: space-between; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--space-4); }
.rsl-menu-nav { display: flex; align-items: center; gap: var(--space-1); }
.rsl-menu-item { position: relative; }
.rsl-menu-link { display: block; padding: var(--space-2) var(--space-4); font-family: var(--font-heading); font-weight: 600; font-size: .95rem; color: var(--color-primary); border-radius: var(--radius-sm); transition: color .2s; }
.rsl-menu-link:hover, .rsl-menu-item.current > .rsl-menu-link { color: var(--color-accent); }
.rsl-submenu { position: absolute; top: 100%; left: 0; min-width: 220px; background: var(--color-white); border-top: 2px solid var(--color-accent); box-shadow: var(--shadow-lg); border-radius: 0 0 var(--radius-md) var(--radius-md); padding: var(--space-3) 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .25s; }
.rsl-menu-item:hover > .rsl-submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.rsl-submenu-item { padding: 0; }
.rsl-submenu-link { display: block; padding: var(--space-2) var(--space-5); font-weight: 500; font-size: .9rem; color: var(--color-text); }
.rsl-submenu-link:hover { background: var(--color-gray-bg); color: var(--color-accent); }
.rsl-menu-search { display: flex; align-items: center; }
.rsl-search-btn { padding: var(--space-2); color: var(--color-text-muted); transition: color .2s; }
.rsl-search-btn:hover { color: var(--color-accent); }
.rsl-mobile-menu-btn { display: none; padding: var(--space-2); color: var(--color-primary); }

/* 8. LAYOUT - HERO/DESTAQUE */
.rsl-hero { padding: var(--space-8) 0; }
.rsl-hero-grid { display: grid; grid-template-columns: 1.5fr 1fr 0.5fr; gap: var(--space-4); }
.rsl-hero-main { position: relative; min-height: 450px; }
.rsl-hero-main .rsl-card-img { width: 100%; height: 100%; object-fit: cover; }
.rsl-hero-main .rsl-card-overlay { padding: var(--space-6); }
.rsl-hero-main .rsl-card-title { font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem); line-height: 1.15; }
.rsl-hero-main .rsl-card-excerpt { font-size: 1.1rem; max-width: 80%; }
.rsl-hero-main .rsl-card-meta { margin-top: var(--space-4); }
.rsl-hero-center { display: flex; flex-direction: column; gap: var(--space-4); }
.rsl-hero-center .rsl-post-card { flex: 1; min-height: 0; }
.rsl-hero-center .rsl-card-vertical .rsl-card-img { aspect-ratio: 4/3; height: auto; }
.rsl-hero-center .rsl-card-title { font-size: 1.1rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rsl-hero-right { display: flex; flex-direction: column; gap: var(--space-4); }
.rsl-widget-no-ar { background: var(--color-primary); border-radius: var(--radius-lg); padding: var(--space-4); color: var(--color-white); }
.rsl-widget-no-ar-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; opacity: .7; margin-bottom: var(--space-2); }
.rsl-widget-no-ar-live { display: inline-flex; align-items: center; gap: 6px; font-size: .7rem; font-weight: 600; background: var(--color-accent); padding: 2px 8px; border-radius: 9999px; margin-bottom: var(--space-3); }
.rsl-widget-no-ar-live .rsl-live-dot { background: var(--color-white); }
.rsl-widget-no-ar-player { text-align: center; }
.rsl-widget-no-ar-play { width: 48px; height: 48px; border-radius: 50%; background: var(--color-accent); display: inline-flex; align-items: center; justify-content: center; color: var(--color-white); box-shadow: 0 4px 16px rgba(229,57,53,.4); transition: all .2s; }
.rsl-widget-no-ar-play:hover { background: var(--color-accent-hover); transform: scale(1.05); }
.rsl-widget-no-ar-track { margin-top: var(--space-3); font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsl-widget-no-ar-program { font-size: .75rem; opacity: .7; margin-top: 4px; }
.rsl-ad-300x250 { background: var(--color-gray-bg); border-radius: var(--radius-md); min-height: 250px; display: flex; align-items: center; justify-content: center; color: var(--color-placeholder); }

/* 9. ÚLTIMAS NOTÍCIAS */
.rsl-section { padding: var(--space-10) 0; }
.rsl-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-6); flex-wrap: wrap; gap: var(--space-3); }
.rsl-latest-list { display: flex; flex-direction: column; gap: 0; }
.rsl-latest-item { display: flex; gap: var(--space-4); padding: var(--space-4) 0; border-bottom: 1px solid var(--color-gray-border); }
.rsl-latest-item:last-child { border-bottom: none; }
.rsl-latest-img { width: 120px; flex-shrink: 0; aspect-ratio: 2/3; object-fit: cover; border-radius: var(--radius-sm); }
.rsl-latest-content { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.rsl-latest-content .rsl-card-title { font-size: 1rem; }
.rsl-latest-content .rsl-card-excerpt { -webkit-line-clamp: 2; font-size: .8rem; }

/* 10. MAIN + SIDEBAR */
.rsl-main-grid { display: grid; grid-template-columns: 2fr 1fr; gap: var(--space-8); }
.rsl-category-sections { display: flex; flex-direction: column; gap: var(--space-10); }
.rsl-categoria { display: flex; flex-direction: column; }
.rsl-categoria-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-4); }
.rsl-categoria-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-4); }
.rsl-categoria-destaque { min-height: 400px; }
.rsl-categoria-destaque .rsl-card-overlay { padding: var(--space-6); }
.rsl-categoria-destaque .rsl-card-title { font-size: 1.5rem; }
.rsl-categoria-destaque .rsl-card-excerpt { font-size: .95rem; -webkit-line-clamp: 4; }
.rsl-categoria-lista { display: flex; flex-direction: column; gap: var(--space-3); }
.rsl-categoria-lista .rsl-post-card { border-radius: var(--radius-sm); }
.rsl-categoria-lista .rsl-card-horizontal .rsl-card-image { width: 100px; }

/* Sidebar Sticky */
.rsl-sidebar { position: sticky; top: 100px; }
.rsl-sidebar-widget { background: var(--color-white); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--space-4); margin-bottom: var(--space-6); }
.rsl-widget-title { font-family: var(--font-heading); font-weight: 700; font-size: 1.1rem; color: var(--color-primary); position: relative; padding-left: var(--space-3); margin-bottom: var(--space-4); }
.rsl-widget-title::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 24px; background: var(--color-accent); border-radius: 2px; }

/* Programação Sidebar */
.rsl-programacao-lista { list-style: none; display: flex; flex-direction: column; gap: var(--space-2); }
.rsl-programa-item { background: var(--color-white); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); display: flex; align-items: center; gap: var(--space-3); border: 1px solid var(--color-gray-bg); transition: all .2s; }
.rsl-programa-item:hover { border-color: var(--color-gray-border); }
.rsl-programa-item.rsl-current { border-left: 3px solid var(--color-accent); background: #FEF2F2; }
.rsl-programa-horario { min-width: 100px; font-variant-numeric: tabular-nums; font-weight: 600; font-size: .9rem; color: var(--color-primary); }
.rsl-programa-item.rsl-current .rsl-programa-horario { color: var(--color-accent); }
.rsl-programa-info { flex: 1; min-width: 0; }
.rsl-programa-titulo { margin: 0 0 4px; font-size: .95rem; font-weight: 600; color: var(--color-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsl-programa-apresentador { font-size: .8rem; color: var(--color-text-muted); }
.rsl-programa-tipo { font-size: .7rem; color: var(--color-placeholder); }
.rsl-live-badge-small { background: var(--color-accent); color: var(--color-white); font-size: .65rem; padding: 2px 8px; border-radius: 9999px; font-weight: 600; }

/* Mais Lidas Sidebar */
.rsl-mais-lidas-ranking { list-style: none; display: flex; flex-direction: column; gap: var(--space-3); }
.rsl-mais-lidas-item { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); transition: all .2s; }
.rsl-mais-lidas-item:hover { background: var(--color-gray-bg); }
.rsl-ranking-counter { flex-shrink: 0; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-weight: 700; font-size: .8rem; background: var(--color-gray-bg); color: var(--color-text-muted); }
.rsl-mais-lidas-item:nth-child(1) .rsl-ranking-counter,
.rsl-mais-lidas-item:nth-child(2) .rsl-ranking-counter,
.rsl-mais-lidas-item:nth-child(3) .rsl-ranking-counter { background: linear-gradient(135deg, var(--color-accent), var(--color-accent-hover)); color: var(--color-white); }
.rsl-mais-lidas-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: var(--radius-sm); flex-shrink: 0; }
.rsl-mais-lidas-content { flex: 1; min-width: 0; }
.rsl-mais-lidas-title { margin: 4px 0 0; font-size: .9rem; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsl-mais-lidas-title a:hover { color: var(--color-accent); }
.rsl-mais-lidas-excerpt { margin: 4px 0 0; font-size: .75rem; color: var(--color-text-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Ad Sidebar */
.rsl-ad-300x600 { background: var(--color-gray-bg); border-radius: var(--radius-md); min-height: 600px; display: flex; align-items: center; justify-content: center; color: var(--color-placeholder); }

/* Agora na Rádio (Player Mini) */
.rsl-agora-radio { background: var(--color-primary); border-radius: var(--radius-lg); padding: var(--space-4); color: var(--color-white); text-align: center; }
.rsl-agora-radio-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; opacity: .7; margin-bottom: var(--space-3); }
.rsl-agora-radio .rsl-radio-main { justify-content: center; gap: var(--space-4); }
.rsl-agora-radio .rsl-radio-btn-play { width: 56px; height: 56px; background: var(--color-accent); }
.rsl-agora-radio .rsl-radio-btn-play:hover { background: var(--color-accent-hover); }
.rsl-agora-radio .rsl-current-track { color: var(--color-white); }
.rsl-agora-radio .rsl-current-program { color: rgba(255,255,255,.7); }

/* 11. VÍDEOS */
.rsl-video-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); }
.rsl-video-card { background: var(--color-white); border-radius: var(--radius-md); overflow: hidden; transition: all .25s; }
.rsl-video-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.rsl-video-thumb-wrapper { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; }
.rsl-video-thumb { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.rsl-video-card:hover .rsl-video-thumb { transform: scale(1.03); }
.rsl-video-thumb-placeholder { aspect-ratio: 16/9; background: var(--color-text); display: flex; align-items: center; justify-content: center; color: var(--color-text-muted); }
.rsl-video-play-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.3); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .2s; cursor: pointer; }
.rsl-video-card:hover .rsl-video-play-overlay { opacity: 1; }
.rsl-video-play-overlay svg { color: var(--color-white); filter: drop-shadow(0 4px 8px rgba(0,0,0,.3)); width: 48px; height: 48px; }
.rsl-video-duration-badge { position: absolute; bottom: 8px; right: 8px; background: rgba(0,0,0,.8); color: var(--color-white); padding: 2px 6px; border-radius: 4px; font-size: .7rem; font-weight: 600; }
.rsl-video-cat-badge { position: absolute; top: 8px; left: 8px; }
.rsl-video-content { padding: var(--space-3); }
.rsl-video-title { margin: 0; font-size: .9rem; line-height: 1.3; }
.rsl-video-title a:hover { color: var(--color-accent); }
.rsl-video-category { font-size: .65rem; }
.rsl-video-meta { font-size: .75rem; color: var(--color-text-muted); margin-top: 4px; }

/* 12. PODCASTS */
.rsl-podcast-carousel { display: flex; gap: var(--space-6); overflow-x: auto; padding-bottom: var(--space-4); scroll-snap-type: x mandatory; }
.rsl-podcast-card { background: var(--color-white); border-radius: var(--radius-lg); overflow: hidden; flex-shrink: 0; scroll-snap-align: start; box-shadow: var(--shadow-sm); transition: all .25s; width: 320px; }
.rsl-podcast-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.rsl-podcast-cover-link { display: block; overflow: hidden; }
.rsl-podcast-cover { width: 100%; aspect-ratio: 1/1; object-fit: cover; transition: transform .3s; }
.rsl-podcast-card:hover .rsl-podcast-cover { transform: scale(1.05); }
.rsl-podcast-cover-placeholder { aspect-ratio: 1/1; background: var(--color-text); border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
.rsl-podcast-content { padding: var(--space-4); display: flex; flex-direction: column; flex: 1; }
.rsl-podcast-title { margin: 0 0 var(--space-2); font-size: 1rem; line-height: 1.3; }
.rsl-podcast-title a:hover { color: var(--color-accent); }
.rsl-podcast-meta { font-size: .8rem; color: var(--color-text-muted); }
.rsl-podcast-host { font-size: .75rem; color: var(--color-placeholder); }
.rsl-btn-podcast { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; padding: 8px 16px; border-radius: var(--radius-sm); font-weight: 600; text-decoration: none; transition: all .2s; }
.rsl-btn-podcast.rsl-btn-outline { background: transparent; color: var(--color-primary); border: 2px solid var(--color-primary); }
.rsl-btn-podcast.rsl-btn-outline:hover { background: var(--color-primary); color: var(--color-white); }

/* 13. CHAMADA FINAL */
.rsl-final-cta { background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%); padding: var(--space-16) var(--space-4); text-align: center; }
.rsl-final-cta-inner { max-width: 800px; margin: 0 auto; }
.rsl-final-cta h1 { color: var(--color-white); font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); line-height: 1.15; margin-bottom: var(--space-4); }
.rsl-final-cta p { color: rgba(255,255,255,.9); font-size: clamp(1.1rem, 1rem + 0.5vw, 1.25rem); margin-bottom: var(--space-8); }
.rsl-final-cta .rsl-btn-primary { padding: 18px 48px; font-size: 1.1rem; }
.rsl-final-cta-player { margin-top: var(--space-10); padding: var(--space-6); background: rgba(0,0,0,.2); border-radius: var(--radius-lg); }
.rsl-final-cta .rsl-radio-main { justify-content: center; }
.rsl-final-cta .rsl-radio-btn-play { width: 64px; height: 64px; background: var(--color-accent); }
.rsl-final-cta .rsl-current-track { color: var(--color-white); font-size: 1.1rem; }

/* 14. FOOTER */
.rsl-footer { background: var(--color-primary); color: var(--color-white); }
.rsl-footer-top { padding: var(--space-12) var(--space-4) var(--space-8); }
.rsl-footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: var(--space-8); max-width: var(--container-max); margin: 0 auto; }
.rsl-footer-col-1 .rsl-logo { max-height: 60px; margin-bottom: var(--space-4); }
.rsl-footer-col-1 p { color: rgba(255,255,255,.7); font-size: .9rem; line-height: 1.6; margin-bottom: var(--space-4); }
.rsl-footer-social { display: flex; gap: var(--space-3); }
.rsl-footer-social a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.1); display: flex; align-items: center; justify-content: center; color: var(--color-white); transition: all .2s; }
.rsl-footer-social a:hover { background: var(--color-accent); transform: translateY(-2px); }
.rsl-footer-col h4 { font-size: 1rem; font-weight: 600; margin-bottom: var(--space-4); }
.rsl-footer-links { list-style: none; display: flex; flex-direction: column; gap: var(--space-2); }
.rsl-footer-links a { color: rgba(255,255,255,.8); font-size: .9rem; transition: color .2s; }
.rsl-footer-links a:hover { color: var(--color-accent); }
.rsl-footer-contact { font-style: normal; line-height: 1.8; }
.rsl-footer-contact p { color: rgba(255,255,255,.7); font-size: .9rem; }
.rsl-footer-contact a { color: rgba(255,255,255,.8); }
.rsl-footer-contact a:hover { color: var(--color-accent); }
.rsl-newsletter-form { display: flex; gap: var(--space-2); margin-top: var(--space-4); }
.rsl-newsletter-input { flex: 1; padding: 12px 16px; border-radius: var(--radius-sm); border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.05); color: var(--color-white); font-family: var(--font-body); }
.rsl-newsletter-input::placeholder { color: rgba(255,255,255,.5); }
.rsl-newsletter-btn { background: var(--color-accent); color: var(--color-white); padding: 0 20px; border-radius: var(--radius-sm); font-weight: 600; }
.rsl-newsletter-btn:hover { background: var(--color-accent-hover); }
.rsl-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: var(--space-4); }
.rsl-footer-bottom-inner { max-width: var(--container-max); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-2); font-size: .85rem; }
.rsl-copyright { color: rgba(255,255,255,.6); }
.rsl-legal-links { display: flex; gap: var(--space-4); }
.rsl-legal-links a { color: rgba(255,255,255,.6); transition: color .2s; }
.rsl-legal-links a:hover { color: var(--color-accent); }

/* 15. PLAYER FIXO BOTTOM */
.rsl-radio-fixed { position: fixed; bottom: 0; left: 0; right: 0; z-index: var(--z-fixed); background: var(--color-primary); box-shadow: 0 -4px 20px rgba(0,0,0,.15); padding: var(--space-3) var(--space-6); }
.rsl-radio-fixed-inner { max-width: var(--container-max); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.rsl-radio-fixed .rsl-radio-main { flex: 1; min-width: 0; }
.rsl-radio-fixed .rsl-radio-btn-play { width: 44px; height: 44px; background: var(--color-accent); }
.rsl-radio-fixed .rsl-current-track { color: var(--color-white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rsl-radio-fixed .rsl-current-program { color: rgba(255,255,255,.7); font-size: .75rem; }
.rsl-radio-fixed .rsl-volume-control { display: flex; align-items: center; gap: var(--space-2); }
.rsl-radio-fixed .rsl-volume-slider { width: 80px; }
.rsl-radio-fixed .rsl-share-copy { background: rgba(255,255,255,.1); color: var(--color-white); padding: 8px 12px; border-radius: var(--radius-sm); font-size: .8rem; }

/* 16. SINGLE POST */
.rsl-single { padding: var(--space-10) 0; }
.rsl-breadcrumb { display: flex; align-items: center; gap: var(--space-2); font-size: .85rem; color: var(--color-text-muted); margin-bottom: var(--space-4); flex-wrap: wrap; }
.rsl-breadcrumb a:hover { color: var(--color-accent); }
.rsl-breadcrumb-sep { color: var(--color-placeholder); }
.rsl-single-header { margin-bottom: var(--space-6); }
.rsl-single-category { display: inline-block; margin-bottom: var(--space-3); }
.rsl-single-title { font-size: clamp(2rem, 1.75rem + 1.5vw, 3rem); line-height: 1.15; margin-bottom: var(--space-4); }
.rsl-single-lead { font-size: 1.125rem; line-height: 1.6; color: var(--color-text-muted); max-width: 800px; margin-bottom: var(--space-6); padding-bottom: var(--space-6); border-bottom: 1px solid var(--color-gray-border); }
.rsl-single-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); font-size: .9rem; color: var(--color-text-muted); margin-bottom: var(--space-6); }
.rsl-author-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.rsl-author-name { font-weight: 600; color: var(--color-text); }
.rsl-reading-time { display: inline-flex; align-items: center; gap: 4px; }
.rsl-single-featured { margin-bottom: var(--space-8); border-radius: var(--radius-lg); overflow: hidden; }
.rsl-single-featured img { width: 100%; height: auto; }
.rsl-single-content { max-width: 800px; }
.rsl-single-content .wp-block-image { margin: var(--space-6) 0; }
.rsl-single-content h2, .rsl-single-content h3, .rsl-single-content h4 { margin-top: var(--space-8); margin-bottom: var(--space-4); }
.rsl-single-content p { margin-bottom: var(--space-4); line-height: var(--lh-body); }
.rsl-single-content ul, .rsl-single-content ol { margin: var(--space-4) 0; padding-left: var(--space-6); }
.rsl-single-content blockquote { border-left: 4px solid var(--color-accent); padding-left: var(--space-4); margin: var(--space-6) 0; font-style: italic; color: var(--color-text-muted); }
.rsl-single-content figure { margin: var(--space-6) 0; }
.rsl-single-content figcaption { text-align: center; font-size: .85rem; color: var(--color-text-muted); margin-top: var(--space-2); }
.rsl-single-tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-8) 0; padding-top: var(--space-6); border-top: 1px solid var(--color-gray-border); }
.rsl-tag { font-size: .8rem; color: var(--color-text-muted); padding: 4px 12px; border: 1px solid var(--color-gray-border); border-radius: 9999px; transition: all .2s; }
.rsl-tag:hover { color: var(--color-accent); border-color: var(--color-accent); }
.rsl-related { margin-top: var(--space-12); }
.rsl-related-title { font-size: 1.5rem; margin-bottom: var(--space-6); }
.rsl-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.rsl-author-box { display: flex; gap: var(--space-4); padding: var(--space-6); background: var(--color-gray-bg); border-radius: var(--radius-lg); margin-top: var(--space-10); }
.rsl-author-box-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.rsl-author-box-name { font-size: 1.25rem; margin-bottom: var(--space-2); }
.rsl-author-box-bio { color: var(--color-text-muted); margin-bottom: var(--space-3); }
.rsl-author-box-social { display: flex; gap: var(--space-3); }
.rsl-author-box-social a { color: var(--color-text-muted); transition: color .2s; }
.rsl-author-box-social a:hover { color: var(--color-accent); }
.rsl-author-box-link { font-weight: 600; color: var(--color-primary); }
.rsl-author-box-link:hover { color: var(--color-accent); }
.rsl-in-article-ad { text-align: center; margin: var(--space-8) 0; min-height: 250px; }

/* 17. ARCHIVE CATEGORY */
.rsl-archive-hero { background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-light) 100%); padding: var(--space-12) var(--space-4); color: var(--color-white); }
.rsl-archive-hero-inner { max-width: var(--container-max); margin: 0 auto; }
.rsl-archive-hero .rsl-breadcrumb { color: rgba(255,255,255,.7); }
.rsl-archive-hero .rsl-breadcrumb a { color: rgba(255,255,255,.9); }
.rsl-archive-hero .rsl-breadcrumb a:hover { color: var(--color-accent); }
.rsl-archive-hero h1 { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); margin-top: var(--space-4); }
.rsl-archive-hero p { margin-top: var(--space-4); opacity: .8; max-width: 600px; }
.rsl-archive-destaque { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-6); margin: var(--space-8) 0; }
.rsl-archive-destaque .rsl-card-hero { min-height: 400px; }
.rsl-archive-destaque .rsl-card-overlay { padding: var(--space-6); }
.rsl-archive-destaque .rsl-card-title { font-size: 1.5rem; }
.rsl-archive-destaque .rsl-card-excerpt { font-size: .95rem; -webkit-line-clamp: 4; }
.rsl-archive-lista { display: flex; flex-direction: column; gap: var(--space-4); }
.rsl-archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.rsl-archive-grid .rsl-card-vertical { height: 100%; }
.rsl-archive-grid .rsl-card-content { flex: 1; display: flex; flex-direction: column; }
.rsl-archive-grid .rsl-card-meta { margin-top: auto; }
.rsl-load-more { text-align: center; margin-top: var(--space-8); }
.rsl-load-more .rsl-btn-outline { padding: 14px 48px; }
.rsl-empty-state { text-align: center; padding: var(--space-16) var(--space-4); color: var(--color-text-muted); }
.rsl-empty-state svg { width: 80px; height: 80px; margin-bottom: var(--space-4); opacity: .5; }

/* 18. RESPONSIVIDADE */
@media (max-width: 1199px) {
  .rsl-hero-grid { grid-template-columns: 1.5fr 1fr; }
  .rsl-hero-right { grid-column: 1 / -1; flex-direction: row; }
  .rsl-widget-no-ar { flex: 1; min-width: 280px; }
  .rsl-ad-300x250 { flex: 1; min-width: 280px; }
  .rsl-video-grid { grid-template-columns: repeat(2, 1fr); }
  .rsl-archive-grid { grid-template-columns: repeat(2, 1fr); }
  .rsl-related-grid { grid-template-columns: repeat(2, 1fr); }
  .rsl-footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1023px) {
  .rsl-main-grid { grid-template-columns: 1fr; }
  .rsl-sidebar { position: static; }
  .rsl-categoria-grid { grid-template-columns: 1fr; }
  .rsl-categoria-destaque { min-height: 300px; }
  .rsl-archive-destaque { grid-template-columns: 1fr; }
  .rsl-archive-destaque .rsl-card-hero { min-height: 300px; }
  .rsl-menu-nav { position: fixed; top: 0; right: -300px; width: 300px; height: 100vh; background: var(--color-white); flex-direction: column; align-items: stretch; padding: var(--space-6); box-shadow: var(--shadow-lg); z-index: var(--z-fixed); transition: right .3s; overflow-y: auto; }
  .rsl-menu-nav.open { right: 0; }
  .rsl-menu-item { border-bottom: 1px solid var(--color-gray-border); }
  .rsl-menu-link { padding: var(--space-3) 0; }
  .rsl-submenu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; border-top: 1px solid var(--color-gray-border); padding: var(--space-2) 0 0 var(--space-4); }
  .rsl-mobile-menu-btn { display: flex; }
  .rsl-search-btn { order: -1; }
  .rsl-top-bar-center { order: 3; width: 100%; justify-content: center; margin-top: var(--space-2); }
  .rsl-archive-grid { grid-template-columns: 1fr; }
  .rsl-related-grid { grid-template-columns: 1fr; }
  .rsl-final-cta .rsl-radio-main { flex-direction: column; gap: var(--space-3); }
  .rsl-footer-bottom-inner { flex-direction: column; text-align: center; }
}

@media (max-width: 767px) {
  .rsl-hero-grid { grid-template-columns: 1fr; }
  .rsl-hero-right { flex-direction: column; }
  .rsl-hero-main { min-height: 300px; }
  .rsl-latest-item { flex-direction: column; }
  .rsl-latest-img { width: 100%; aspect-ratio: 16/9; }
  .rsl-categoria-destaque .rsl-card-horizontal { flex-direction: column; }
  .rsl-categoria-destaque .rsl-card-image { width: 100% !important; border-radius: var(--radius-md) var(--radius-md) 0 0; }
  .rsl-categoria-destaque .rsl-card-img { height: 200px; object-fit: cover; }
  .rsl-video-grid { grid-template-columns: 1fr; }
  .rsl-podcast-card { width: 280px; }
  .rsl-final-cta h1 { font-size: 2rem; }
  .rsl-fixed-player .rsl-volume-control { display: none; }
  .rsl-footer-grid { grid-template-columns: 1fr; }
  .rsl-newsletter-form { flex-direction: column; }
  .rsl-archive-grid .rsl-card-vertical .rsl-card-img { aspect-ratio: 16/9; }
}

@media (max-width: 479px) {
  :root { --fs-base: 0.95rem; }
  .rsl-top-bar { font-size: .75rem; padding: var(--space-1) var(--space-3); }
  .rsl-tagline { display: none; }
  .rsl-main-menu { height: 56px; }
  .rsl-section { padding: var(--space-6) 0; }
  .rsl-btn-primary { padding: 12px 20px; font-size: .9rem; }
  .rsl-card-horizontal { flex-direction: column; }
  .rsl-card-horizontal .rsl-card-image { width: 100% !important; border-radius: var(--radius-md) var(--radius-md) 0 0; }
  .rsl-card-horizontal .rsl-card-img { height: 200px; object-fit: cover; }
  .rsl-hero-main { min-height: 250px; }
  .rsl-hero-main .rsl-card-title { font-size: 1.5rem; }
  .rsl-hero-main .rsl-card-excerpt { display: none; }
  .rsl-widget-title { font-size: 1rem; }
  .rsl-programa-horario { min-width: 80px; font-size: .8rem; }
  .rsl-ranking-counter { width: 24px; height: 24px; font-size: .7rem; }
  .rsl-mais-lidas-thumb { width: 50px; height: 50px; }
  .rsl-agora-radio .rsl-radio-btn-play { width: 48px; height: 48px; }
}

/* 19. ACESSIBILIDADE */
.skip-link { position: absolute; top: -100%; left: 50%; transform: translateX(-50%); background: var(--color-primary); color: var(--color-white); padding: var(--space-3) var(--space-6); border-radius: var(--radius-md); z-index: var(--z-modal); font-weight: 600; }
.skip-link:focus { top: var(--space-4); }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.rsl-radio-btn-play:focus-visible,
.rsl-volume-slider:focus-visible,
.rsl-share-copy:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: var(--radius-sm); }

/* 20. PRINT */
@media print {
  .rsl-top-bar, .rsl-main-header, .rsl-sidebar, .rsl-radio-fixed, .rsl-footer, .rsl-ad-300x250, .rsl-ad-300x600, .rsl-in-article-ad, .rsl-btn, .rsl-social-icons, .rsl-newsletter-form { display: none !important; }
  .rsl-single-content { max-width: 100%; }
  body { font-size: 12pt; line-height: 1.5; }
  a { text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
}
