/*
Theme Name: Pagodinsta
Theme URI: https://pagodinsta.com.br
Author: Pagodinsta
Description: Tema de noticias inspirado no Billboard para pagode, sertanejo, letras de musica e o ecossistema Pagodinsta. Inclui capa em destaque, paradas de sucesso, letras com metadados (compositor, tom, cifra), galeria de fotos e espaco para feed do Instagram.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pagodinsta
*/

:root{
  --green:#8BC53F;
  --lime:#D6DE23;
  --black:#0A0A0A;
  --charcoal:#1B1B18;
  --white:#FFFFFF;
  --gray-100:#F4F4F2;
  --gray-300:#D8D8D5;
  --gray-600:#6B6B67;
  --gold:#E6B540;
  --font-serif:Georgia,'Times New Roman',serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--black);background:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font:inherit;border:none;background:none;cursor:pointer;}
.screen-reader-text{position:absolute;left:-9999px;}
.container{max-width:1200px;margin:0 auto;padding:0 20px;}

/* Scroll-reveal (see main.js): elements only start hidden once JS has
   confirmed it's running and reduced-motion isn't requested — the
   "reveal-ready" class is added by JS, so content never gets stuck
   invisible if a script fails to load. */
html.reveal-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease;}
html.reveal-ready [data-reveal].in-view{opacity:1;transform:none;}

/* Topbar */
.topbar{background:var(--black);color:var(--white);font-size:12px;}
.topbar .container{display:flex;align-items:center;justify-content:space-between;height:34px;gap:16px;}
.topbar-ticker{flex:1;min-width:0;overflow:hidden;white-space:nowrap;letter-spacing:.03em;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent);}
.topbar-ticker-track{display:inline-block;padding-left:100%;animation:ticker-scroll 22s linear infinite;}
.topbar-ticker:hover .topbar-ticker-track{animation-play-state:paused;}
.topbar-ticker b{color:var(--lime);}
@keyframes ticker-scroll{0%{transform:translateX(0);}100%{transform:translateX(-100%);}}
@media (prefers-reduced-motion: reduce){.topbar-ticker-track{animation:none;padding-left:0;}}
.topbar-social{display:flex;gap:14px;flex-shrink:0;}
.topbar-social a{opacity:.85;width:16px;height:16px;}
.topbar-social a:hover{opacity:1;color:var(--green);}
.topbar-social svg{width:16px;height:16px;}

/* Header — shrinks slightly and hides on scroll-down / reappears on
   scroll-up (see main.js), so it doesn't eat screen space on mobile
   while still being reachable instantly when the visitor wants it back. */
.site-header{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:3px solid var(--black);transition:transform .25s ease,box-shadow .25s ease;}
.site-header.is-hidden{transform:translateY(-100%);}
.site-header.is-scrolled{box-shadow:0 6px 18px rgba(0,0,0,.08);}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px;transition:height .25s ease;}
.site-header.is-scrolled .container{height:62px;}

.logo{display:flex;align-items:center;gap:10px;font-weight:900;font-size:22px;letter-spacing:-0.5px;flex-shrink:0;white-space:nowrap;}
.logo-text{white-space:nowrap;}
/* !important here is deliberate: the WordPress custom-logo image is
   printed at its full uploaded resolution (WP does not scale it down
   on the front end), so this box has to win against that image's own
   width/height attributes and against any leftover/plugin CSS no
   matter the cascade order. min-width:0 stops this flex item from
   refusing to shrink below the image's native size. */
.logo-badge{width:40px!important;height:40px!important;min-width:0!important;max-width:40px!important;max-height:40px!important;border-radius:50%!important;background:conic-gradient(from 200deg,var(--green),var(--lime),var(--green));display:flex!important;align-items:center;justify-content:center;flex-shrink:0!important;overflow:hidden!important;}
.logo-badge a{display:block!important;width:100%!important;height:100%!important;}
.logo-badge img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;}
.logo-badge svg{width:22px;height:22px;color:var(--black);}
.logo .accent{color:var(--green);}

.site-nav{display:flex;}
.site-nav-list{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;list-style:none;}
.site-nav-list li{list-style:none;}
.site-nav-list a{display:inline-block;white-space:nowrap;font-weight:800;font-size:14px;letter-spacing:.03em;text-transform:uppercase;padding:6px 2px;border-bottom:3px solid transparent;transition:.15s;}
.site-nav-list a:hover,.site-nav-list .current-menu-item>a{border-color:var(--green);}

.header-actions{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.icon-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--black);flex-shrink:0;}
.icon-btn svg{width:16px;height:16px;}
.icon-btn:hover{background:var(--black);color:var(--white);}
.nav-toggle{display:none;}
.header-search{position:absolute;top:76px;left:0;right:0;background:var(--white);border-bottom:3px solid var(--black);padding:16px 20px;display:none;z-index:49;}
.header-search.open{display:block;}
.header-search form{max-width:1200px;margin:0 auto;display:flex;gap:8px;}
.header-search input{flex:1;border:2px solid var(--black);padding:10px 14px;font-size:15px;}
.header-search button{background:var(--black);color:var(--white);padding:10px 18px;font-weight:800;text-transform:uppercase;font-size:13px;}

.site-nav-close{display:none;}
@media(max-width:860px){
  /* Full-viewport overlay (inset:0, its own z-index) instead of pinning
     to a hardcoded "top:73px" — that broke whenever the header's actual
     height changed (long custom logo, browser font-size settings, etc).
     The panel now carries its own close button and top padding so it
     never depends on measuring the header. */
  .site-nav{position:fixed;inset:0;z-index:100;background:var(--white);padding:80px 24px 24px;transform:translateX(100%);transition:transform .2s;overflow-y:auto;}
  .site-nav.open{transform:translateX(0);}
  .site-nav-list{flex-direction:column;align-items:stretch;gap:0;}
  .site-nav-list a{display:block;width:100%;padding:16px 0;border-bottom:1px solid var(--gray-300)!important;font-size:18px;white-space:normal;}
  .nav-toggle{display:flex;}
  .site-nav-close{display:flex;position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;align-items:center;justify-content:center;border:2px solid var(--black);}
}
@media(max-width:480px){
  .logo{font-size:18px;gap:8px;}
  .logo-badge{width:32px;height:32px;}
}

/* Tags — accent rotates per editoria (see pagodinsta_category_accent()) so
   different categories read as visually distinct without leaving the
   brand palette. */
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--green);color:var(--black);font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;}
.tag.tag-lime{background:var(--lime);}
.tag.tag-outline{background:transparent;border:2px solid var(--white);color:var(--white);}

/* Hero group — 1 big story + up to 3 secondary headlines beside it, so the
   homepage reads as a dense front page (ESPN/Billboard-style) instead of a
   single lonely hero image. */
.hero-group{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin:24px 0 40px;align-items:stretch;}
@media(max-width:900px){.hero-group{grid-template-columns:1fr;}}
/* The secondary list (3 short items) is naturally much shorter than the
   main photo+headline column. Stretching it to match that height and
   spacing the items out with space-between avoids a big dead gap at the
   bottom instead of just clustering the 3 items at the top. */
.hero-secondary{display:flex;flex-direction:column;justify-content:space-between;gap:4px;height:100%;}
.hero-secondary-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--gray-300);}
.hero-secondary-item:first-child{padding-top:0;}
.hero-secondary-item:last-child{border-bottom:none;}
.hero-secondary-thumb{width:76px;height:76px;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--green),var(--charcoal));}
.hero-secondary-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.7,.3,1);}
.hero-secondary-item:hover .hero-secondary-thumb img{transform:scale(1.08);}
.hero-secondary-thumb .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.3;}
.hero-secondary-thumb .placeholder-icon svg{width:24px;height:24px;color:var(--white);}
.hero-secondary-item .tag{font-size:10px;padding:2px 7px;margin-bottom:6px;}
.hero-secondary-item h4{font-size:15px;font-weight:800;line-height:1.25;transition:color .15s;}
.hero-secondary-item:hover h4{color:var(--green);}

/* Hero (main story) — photo stays fully visible; the headline/dek sit in
   a normal text block below it (ESPN/Billboard style) instead of overlaid
   on top of the image, so the photo never gets hidden no matter how long
   the title is. */
.hero{position:relative;}
.hero-media{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--charcoal),var(--black) 60%);overflow:hidden;}
.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.3,1);}
.hero:hover .hero-media img{transform:scale(1.03);}
.hero-media .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.15;}
.hero-media .placeholder-icon svg{width:180px;height:180px;color:var(--white);}
.hero-content{padding:22px 0 0;}
.hero-content .tag{margin-bottom:14px;}
.hero-content h1{font-size:clamp(26px,3vw,38px);font-weight:900;letter-spacing:-1px;line-height:1.15;margin-bottom:12px;}
.hero-content h1 a{transition:color .15s;}
.hero-content h1 a:hover{color:var(--green);}
.hero-content p.dek{font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--gray-600);margin-bottom:14px;max-width:700px;}
.meta{font-size:13px;color:var(--gray-600);display:flex;gap:14px;flex-wrap:wrap;}
.meta b{color:var(--black);}
@media(max-width:600px){
  .hero-media{aspect-ratio:4/3;}
  .hero-content h1{font-size:22px;margin-bottom:8px;}
  .hero-content p.dek{font-size:14px;margin-bottom:10px;}
  .meta{font-size:12px;gap:8px;}
}

/* Section title */
.section-title{display:flex;align-items:center;justify-content:space-between;border-bottom:4px solid var(--black);padding-bottom:10px;margin:44px 0 24px;gap:16px;}
.section-title h2{font-size:26px;font-weight:900;text-transform:uppercase;letter-spacing:-0.5px;}
.section-title h2 span{color:var(--green);}
.section-title a{font-weight:800;font-size:13px;text-transform:uppercase;border-bottom:2px solid var(--black);white-space:nowrap;}

/* Layout */
.content-layout{display:grid;grid-template-columns:2fr 1fr;gap:48px;}
@media(max-width:900px){.content-layout{grid-template-columns:1fr;}}

/* Cards */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.card-grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:900px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.card-grid{grid-template-columns:1fr;}}
.card{display:block;border-left:3px solid transparent;padding-left:0;transition:border-color .2s;}
.card.accent-lime{border-color:transparent;}
.card:hover{border-left-color:var(--green);padding-left:10px;}
.card.accent-lime:hover{border-left-color:var(--lime);}
.card-thumb{aspect-ratio:4/3;background:linear-gradient(135deg,var(--green),var(--charcoal));position:relative;margin-bottom:14px;overflow:hidden;}
.card.accent-lime .card-thumb{background:linear-gradient(135deg,var(--lime),var(--black));}
.card-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.7,.3,1);}
.card:hover .card-thumb img{transform:scale(1.07);}
.card-thumb .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.3;}
.card-thumb .placeholder-icon svg{width:56px;height:56px;color:var(--white);}
.card .tag{margin-bottom:10px;}
.card h3{font-size:19px;font-weight:900;line-height:1.2;margin:10px 0 8px;letter-spacing:-.3px;transition:color .15s;}
.card:hover h3{color:var(--green);}
.card.accent-lime:hover h3{color:var(--lime);}
.card p{font-size:14px;color:var(--gray-600);}
.card .meta{margin-top:8px;}
.card .meta b{color:var(--black);}

/* Trending sidebar — boxed panel (like a scoreboard/rankings module)
   instead of a bare list, so it reads as its own distinct block. */
.trending-list{background:var(--gray-100);border:2px solid var(--black);padding:6px 18px;}
.trending-item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--gray-300);transition:padding-left .15s;}
.trending-item:last-child{border-bottom:none;}
.trending-item:hover{padding-left:6px;}
.trending-rank{font-size:32px;font-weight:900;color:var(--green);width:36px;flex-shrink:0;line-height:1;}
.trending-item h4{font-size:15px;font-weight:800;line-height:1.25;transition:color .15s;}
.trending-item:hover h4{color:var(--green);}
.trending-item span{font-size:12px;color:var(--gray-600);}

/* Charts */
.chart-box{background:var(--charcoal);color:var(--white);padding:28px;margin-top:44px;}
.chart-box .section-title{border-color:var(--green);margin-top:0;}
.chart-box .section-title h2{color:var(--white);}
.chart-box .section-title a{color:#fff;border-color:#fff;}
.chart-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12);color:inherit;transition:padding-left .15s;}
.chart-row:hover{padding-left:8px;}
.chart-rank{font-size:26px;font-weight:900;width:38px;color:var(--lime);transition:transform .15s;}
.chart-row:hover .chart-rank{transform:scale(1.15);}
.chart-thumb{width:52px;height:52px;background:linear-gradient(135deg,var(--green),var(--lime));flex-shrink:0;position:relative;overflow:hidden;}
.chart-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.7,.3,1);}
.chart-row:hover .chart-thumb img{transform:scale(1.1);}
.chart-info{flex:1;min-width:0;}
.chart-info h4{font-size:15px;font-weight:800;transition:color .15s;}
.chart-row:hover .chart-info h4{color:var(--lime);}
.chart-info span{font-size:12px;color:var(--gray-300);}
.chart-move{font-size:13px;font-weight:800;flex-shrink:0;}
.chart-move.up{color:var(--green);}
.chart-move.down{color:#e0605a;}
.chart-move.new{color:var(--lime);}

/* Vídeos & Podcast carousel — reuses the "Todos os Links" episode fields
   from Personalizar so there's a single place to manage them, shown here
   as a horizontal-scroll teaser on the homepage. */
.vid-carousel{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;}
.vid-card{flex:0 0 auto;width:240px;scroll-snap-align:start;}
.vid-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--charcoal),var(--black) 60%);position:relative;overflow:hidden;margin-bottom:10px;}
.vid-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.2,.7,.3,1);}
.vid-card:hover .vid-thumb img{transform:scale(1.06);}
.vid-thumb .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.3;}
.vid-thumb .placeholder-icon svg{width:40px;height:40px;color:var(--white);}
.vid-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:rgba(10,10,10,.7);display:flex;align-items:center;justify-content:center;transition:.2s;}
.vid-play svg{width:16px;height:16px;color:var(--white);}
.vid-card:hover .vid-play{background:var(--green);transform:translate(-50%,-50%) scale(1.1);}
.vid-card:hover .vid-play svg{color:var(--black);}
.vid-label{display:block;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--green);margin-bottom:4px;}
.vid-info h4{font-size:14px;font-weight:800;line-height:1.3;transition:color .15s;}
.vid-card:hover .vid-info h4{color:var(--green);}

/* Subscribe */
.subscribe-box{background:var(--green);padding:36px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:48px 0;flex-wrap:wrap;}
.subscribe-box h3{font-size:24px;font-weight:900;max-width:420px;}
.subscribe-form{display:flex;flex:1;max-width:420px;min-width:260px;}
.subscribe-form input{flex:1;border:3px solid var(--black);border-right:none;padding:12px 14px;font-size:14px;}
.subscribe-form button{background:var(--black);color:var(--white);padding:12px 22px;font-weight:900;text-transform:uppercase;font-size:13px;border:3px solid var(--black);}
.subscribe-form-mailpoet{display:block;max-width:420px;}
.subscribe-form-mailpoet input[type="email"],.subscribe-form-mailpoet input[type="text"]{border:3px solid var(--black)!important;padding:12px 14px!important;font-size:14px!important;width:100%;}
.subscribe-form-mailpoet input[type="submit"],.subscribe-form-mailpoet button{background:var(--black)!important;color:var(--white)!important;font-weight:900!important;text-transform:uppercase;font-size:13px!important;border:3px solid var(--black)!important;padding:12px 22px!important;margin-top:8px;}

/* Instagram live feed */
.instagram-feed-section{background:var(--charcoal);color:var(--white);padding:56px 0;margin-top:44px;}
.instagram-feed-section .section-title{border-color:var(--green);margin-top:0;}
.instagram-feed-section .section-title h2{color:var(--white);}
.ig-feed-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;}
@media(max-width:700px){.ig-feed-grid{grid-template-columns:repeat(3,1fr);}}
.ig-feed-tile{aspect-ratio:1/1;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;}
.ig-feed-tile svg{width:20px;height:20px;opacity:.5;}
.ig-feed-note{font-size:13px;color:var(--gray-300);margin-top:18px;max-width:640px;line-height:1.6;}
.ig-feed-note b{color:var(--lime);}

/* Breadcrumbs */
.breadcrumbs{padding:14px 0;}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;font-size:12px;color:var(--gray-600);}
.breadcrumbs li{display:flex;align-items:center;gap:6px;}
.breadcrumbs a{font-weight:700;color:var(--gray-600);}
.breadcrumbs a:hover{color:var(--green);}
.breadcrumbs span[aria-current]{font-weight:800;color:var(--black);}
.breadcrumbs li.sep{color:var(--gray-300);}

/* Category banner */
.category-banner{background:var(--black);color:var(--white);padding:56px 0;margin-bottom:40px;}
.category-banner .tag{margin-bottom:12px;}
.category-banner h1{font-size:clamp(34px,6vw,56px);font-weight:900;text-transform:uppercase;letter-spacing:-1px;}
.category-banner p{color:var(--gray-300);max-width:600px;margin-top:10px;font-size:15px;}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin:48px 0;flex-wrap:wrap;}
.pagination a,.pagination span{min-width:40px;height:40px;padding:0 12px;display:flex;align-items:center;justify-content:center;border:2px solid var(--black);font-weight:800;}
.pagination .current{background:var(--black);color:var(--white);}

/* Article single */
.article-header{max-width:760px;margin:40px auto 0;text-align:left;}
.article-header h1{font-size:clamp(30px,5vw,46px);font-weight:900;letter-spacing:-1px;line-height:1.08;margin:14px 0;}
.article-header p.dek{font-family:var(--font-serif);font-style:italic;font-size:20px;color:var(--gray-600);margin-bottom:14px;}
.article-hero{max-width:900px;margin:32px auto;aspect-ratio:16/9;background:linear-gradient(135deg,var(--green),var(--charcoal));position:relative;overflow:hidden;}
.article-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.article-hero .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.2;}
.article-hero .placeholder-icon svg{width:120px;height:120px;color:var(--white);}
.article-body{max-width:760px;margin:32px auto;font-size:18px;line-height:1.85;}
.article-body p{margin-bottom:22px;}
.article-body blockquote{border-left:4px solid var(--green);padding-left:18px;font-weight:700;font-style:italic;margin:28px 0;font-size:20px;}
.article-body img{margin:28px auto;}

/* Video/embed blocks pasted into a post (YouTube plugins, oEmbeds, raw
   iframes) — instead of floating at a fixed small size, make them fill
   the reading column with the same bold-bordered treatment as the rest
   of the theme's media. Targets generic tags plus common wrapper classes
   from "Embed Plus for YouTube" so old posts don't need to be edited. */
.article-body iframe,
.lyrics-body iframe,
.article-body .wp-block-embed,
.lyrics-body .wp-block-embed,
.article-body .embedplus-container,
.lyrics-body .embedplus-container,
.article-body .evp-video-wrapper,
.lyrics-body .evp-video-wrapper {
	display:block;
	width:100%;
	max-width:100%;
	aspect-ratio:16/9;
	height:auto;
	border:2px solid var(--black);
	border-radius:2px;
	margin:32px auto;
}
.article-body .wp-block-embed iframe,
.lyrics-body .wp-block-embed iframe,
.article-body .embedplus-container iframe,
.lyrics-body .embedplus-container iframe,
.article-body .evp-video-wrapper iframe,
.lyrics-body .evp-video-wrapper iframe {
	border:none;
	margin:0;
	aspect-ratio:auto;
}
.article-body .wp-block-embed__wrapper{position:relative;}

/* Auto-embed generated from the "Link para ouvir" lyrics field */
.media-embed{max-width:720px;margin:28px auto;}
.media-embed-label{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-600);margin-bottom:8px;}
.media-embed iframe{display:block;width:100%;border:2px solid var(--black);border-radius:2px;}
.media-embed.is-youtube iframe{aspect-ratio:16/9;height:auto;}
.media-embed.is-spotify iframe{height:152px;}
.share-row{display:flex;gap:10px;margin:24px 0;max-width:760px;margin-left:auto;margin-right:auto;flex-wrap:wrap;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-weight:800;font-size:13px;text-transform:uppercase;border:2px solid var(--black);}
.btn svg{width:14px;height:14px;}
.btn-solid{background:var(--black);color:var(--white);}
.btn-solid:hover{background:var(--green);border-color:var(--green);color:var(--black);}
.btn:hover{background:var(--gray-100);}

/* Lyrics */
.lyrics-header{background:var(--charcoal);color:var(--white);padding:48px 0;}
.lyrics-header .container{display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:center;}
@media(max-width:700px){.lyrics-header .container{grid-template-columns:1fr;}}
.lyrics-cover{width:200px;height:200px;background:linear-gradient(135deg,var(--green),var(--lime));position:relative;overflow:hidden;}
.lyrics-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.lyrics-cover .placeholder-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.lyrics-cover .placeholder-icon svg{width:76px;height:76px;color:var(--black);opacity:.45;}
.lyrics-header h1{font-size:clamp(26px,4vw,38px);font-weight:900;letter-spacing:-.5px;margin:8px 0 6px;}
.lyrics-header .artist{font-size:18px;font-weight:700;color:var(--lime);}
.lyrics-meta-bar{display:flex;gap:28px;margin:44px 0 8px;padding:18px 0;border-top:2px solid var(--black);border-bottom:2px solid var(--black);flex-wrap:wrap;}
.lyrics-meta-bar div{font-size:12px;text-transform:uppercase;color:var(--gray-600);}
.lyrics-meta-bar div b{display:block;font-size:15px;color:var(--black);text-transform:none;margin-top:2px;font-weight:800;}
.lyrics-actions{display:flex;gap:10px;margin:20px 0 8px;flex-wrap:wrap;}
.lyrics-body{max-width:720px;margin:32px auto 0;font-size:18px;line-height:2;}
.lyrics-body p{margin-bottom:28px;}
.lyrics-body .chorus{padding-left:18px;border-left:4px solid var(--green);font-weight:700;}
.lyrics-note{max-width:720px;margin:0 auto 40px;font-size:13px;color:var(--gray-600);font-style:italic;}

/* Network / ecosystem */
.network-section{background:var(--black);color:var(--white);padding:56px 0;margin-top:60px;}
.network-section .section-title{border-color:var(--green);margin-top:0;}
.network-section .section-title h2{color:var(--white);}
.network-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.network-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.network-grid{grid-template-columns:1fr;}}
/* Avatar + handle always sit in their own row (.network-card-top); the
   description (if filled in) goes full-width underneath instead of
   beside it — otherwise cards without a description just left a ragged
   empty gap next to ones that had one, in the same grid row. */
.network-card{background:var(--charcoal);padding:18px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;transition:background .15s,transform .15s;}
.network-card:hover{background:var(--green);color:var(--black);transform:translateY(-3px);}
.network-card-top{display:flex;align-items:center;gap:12px;}
.network-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--green),var(--lime));flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--black);font-size:16px;overflow:hidden;position:relative;}
.network-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.network-card h4{font-size:14px;font-weight:800;}
.network-card .handles{display:flex;gap:10px;margin-top:5px;font-size:12px;opacity:.8;align-items:center;}
.network-card .handles svg{width:14px;height:14px;}
.network-card p{font-size:13px;color:var(--gray-300);}
.network-card:hover p{color:var(--black);}

/* Sobre page */
.about-intro{display:grid;grid-template-columns:220px 1fr;gap:40px;align-items:center;padding:48px 0;}
@media(max-width:700px){.about-intro{grid-template-columns:1fr;text-align:center;}}
.about-photo{width:220px;height:220px;border-radius:50%;background:conic-gradient(from 200deg,var(--green),var(--lime),var(--green));display:flex;align-items:center;justify-content:center;margin:0 auto;overflow:hidden;position:relative;}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.about-photo svg{width:90px;height:90px;color:var(--black);opacity:.55;}
.about-text h2{font-size:28px;font-weight:900;letter-spacing:-.5px;margin-bottom:14px;}
.about-text p{font-size:16px;color:var(--gray-600);margin-bottom:14px;max-width:640px;}
.about-note{font-size:12px;font-style:italic;color:var(--gray-600);border-left:3px solid var(--green);padding-left:10px;}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;background:var(--gray-100);padding:32px 20px;}
@media(max-width:700px){.stats-row{grid-template-columns:repeat(2,1fr);}}
.stat{text-align:center;}
.stat b{display:block;font-size:32px;font-weight:900;color:var(--green);}
.stat span{font-size:12px;text-transform:uppercase;font-weight:800;color:var(--gray-600);letter-spacing:.03em;}
.about-cta{background:var(--charcoal);color:var(--white);text-align:center;padding:48px 20px;margin-top:60px;}
.about-cta h3{font-size:24px;font-weight:900;margin-bottom:14px;}

/* Light ecosystem grid variant, used on the Sobre page (outside the dark footer strip) */
.network-grid.light .network-card{background:var(--gray-100);border:2px solid var(--black);}
.network-grid.light .network-card:hover{background:var(--green);}
.network-grid.light .network-card p{color:var(--gray-600);}
.network-grid.light .network-card:hover p{color:var(--black);}

/* Link hub (linktree) — full-bleed photo banner with a torn-edge
   transition into a dark page of color-coded, glowing link cards. Each
   category gets its own accent (green/lime/gold/outline) instead of one
   flat button style everywhere, closer to a "produced" media-kit page
   than a plain stacked-link list. */
.lt-page{background:var(--black);}

.lt-hero{position:relative;padding:56px 24px 84px;text-align:center;overflow:hidden;min-height:360px;display:flex;align-items:center;justify-content:center;}
.lt-hero-media{position:absolute;inset:0;z-index:0;background:conic-gradient(from 200deg,var(--green),var(--lime),var(--green));}
.lt-hero-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);}
.lt-hero-media::before{content:'';position:absolute;inset:0;background:var(--green);mix-blend-mode:color;opacity:.92;}
.lt-hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.15) 0%,rgba(10,10,10,.55) 55%,var(--black) 96%);}
.lt-hero-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.lt-hero-fallback svg{width:120px;height:120px;color:rgba(255,255,255,.18);}
.lt-hero-content{position:relative;z-index:1;max-width:420px;}
.lt-backlink{display:inline-block;font-size:12px;font-weight:800;color:rgba(255,255,255,.75);margin-bottom:18px;text-transform:uppercase;letter-spacing:.04em;}
.lt-backlink:hover{color:var(--white);}
.lt-hero-logo{width:64px;height:64px;border-radius:50%;margin:0 auto 14px;background:var(--black);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border:3px solid var(--white);}
.lt-hero-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.lt-hero-logo svg{width:28px;height:28px;color:var(--lime);}
.lt-hero-content h1{font-size:clamp(30px,7vw,42px);font-weight:900;letter-spacing:-1px;color:var(--white);}
.lt-hero-content h1 .accent{color:var(--lime);}
.lt-hero-tagline{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.85);margin:8px auto 20px;}
.lt-socials{display:flex;justify-content:center;gap:14px;}
.lt-socials a{width:42px;height:42px;border-radius:50%;background:rgba(10,10,10,.55);border:2px solid rgba(255,255,255,.5);color:var(--white);display:flex;align-items:center;justify-content:center;transition:.2s;backdrop-filter:blur(2px);}
.lt-socials a:hover{background:var(--white);color:var(--black);border-color:var(--white);transform:translateY(-2px);}
.lt-socials svg{width:19px;height:19px;}
.lt-hero-edge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:44px;fill:var(--black);z-index:1;}

.lt-wrap{max-width:520px;margin:0 auto;padding:8px 20px 60px;}
section.lt-section{margin-bottom:38px;}
.lt-section h2{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;display:flex;align-items:center;gap:8px;color:var(--white);}
.lt-section-icon{font-size:16px;}

.lt-carousel{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px;}
.lt-ep{flex:0 0 auto;width:200px;scroll-snap-align:start;background:linear-gradient(160deg,var(--charcoal),#000);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px rgba(214,222,35,.25),0 10px 26px -12px rgba(214,222,35,.4);transition:transform .2s,box-shadow .2s;}
.lt-ep:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(214,222,35,.55),0 16px 34px -10px rgba(214,222,35,.6);}
.lt-ep-thumb{aspect-ratio:1/1;background:linear-gradient(135deg,var(--charcoal),var(--black));position:relative;}
.lt-ep-thumb svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;color:var(--lime);}
.lt-ep-info{padding:12px 14px;}
.lt-ep-info span{font-size:11px;font-weight:800;color:var(--lime);text-transform:uppercase;}
.lt-ep-info h4{font-size:13px;font-weight:800;line-height:1.3;margin-top:4px;color:var(--white);}
.lt-playlist{flex:0 0 auto;width:140px;scroll-snap-align:start;text-align:center;}
.lt-pl-cover{aspect-ratio:1/1;border-radius:12px;background:linear-gradient(135deg,var(--green),var(--lime));margin-bottom:8px;position:relative;box-shadow:0 0 0 1px rgba(139,197,63,.35),0 10px 26px -12px rgba(139,197,63,.55);transition:transform .2s,box-shadow .2s;overflow:hidden;}
.lt-pl-cover.alt{background:linear-gradient(135deg,var(--lime),var(--charcoal));box-shadow:0 0 0 1px rgba(214,222,35,.35),0 10px 26px -12px rgba(214,222,35,.55);}
.lt-playlist:hover .lt-pl-cover{transform:translateY(-4px);}
.lt-pl-cover svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;color:var(--black);opacity:.5;}
.lt-playlist span{font-size:12px;font-weight:800;color:var(--white);}

/* Banner cards (descontos, contato, publi) — one glow color per category */
.lt-banner{position:relative;display:flex;align-items:center;gap:16px;width:100%;background:linear-gradient(160deg,var(--charcoal),#000);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:18px 20px;margin-bottom:14px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.lt-banner:hover{transform:translateY(-3px);}
.lt-banner-watermark{position:absolute;right:-14px;top:50%;transform:translateY(-50%);opacity:.14;color:var(--white);}
.lt-banner-watermark svg{width:100px;height:100px;}
.lt-banner-text{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.lt-banner-eyebrow{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.lt-banner-title{font-size:15px;font-weight:800;line-height:1.35;color:var(--white);}
.lt-banner-cta{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:10px 16px;border-radius:999px;white-space:nowrap;animation:lt-cta-pulse 2.6s ease-in-out infinite;}
.lt-banner-cta svg{width:13px;height:13px;}
@keyframes lt-cta-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
@media(prefers-reduced-motion:reduce){.lt-banner-cta{animation:none;}}

.lt-banner-gold{box-shadow:0 0 0 1px rgba(230,181,64,.4),0 10px 28px -12px rgba(230,181,64,.55);}
.lt-banner-gold:hover{box-shadow:0 0 0 1px rgba(230,181,64,.7),0 16px 36px -10px rgba(230,181,64,.75);}
.lt-banner-gold .lt-banner-eyebrow{color:var(--gold);}
.lt-banner-gold .lt-banner-cta{background:var(--gold);color:var(--black);}

.lt-banner-green{box-shadow:0 0 0 1px rgba(139,197,63,.4),0 10px 28px -12px rgba(139,197,63,.55);}
.lt-banner-green:hover{box-shadow:0 0 0 1px rgba(139,197,63,.7),0 16px 36px -10px rgba(139,197,63,.75);}
.lt-banner-green .lt-banner-eyebrow{color:var(--green);}
.lt-banner-green .lt-banner-cta{background:var(--green);color:var(--black);}

.lt-banner-lime{box-shadow:0 0 0 1px rgba(214,222,35,.4),0 10px 28px -12px rgba(214,222,35,.55);}
.lt-banner-lime:hover{box-shadow:0 0 0 1px rgba(214,222,35,.7),0 16px 36px -10px rgba(214,222,35,.75);}
.lt-banner-lime .lt-banner-eyebrow{color:var(--lime);}
.lt-banner-lime .lt-banner-cta{background:var(--lime);color:var(--black);}

.lt-banner-outline{box-shadow:0 0 0 1px rgba(255,255,255,.25),0 10px 28px -14px rgba(255,255,255,.3);}
.lt-banner-outline:hover{box-shadow:0 0 0 1px rgba(255,255,255,.5),0 16px 36px -10px rgba(255,255,255,.4);}
.lt-banner-outline .lt-banner-eyebrow{color:var(--white);opacity:.7;}
.lt-banner-outline .lt-banner-cta{background:var(--white);color:var(--black);}

.lt-footer{text-align:center;font-size:12px;color:var(--gray-600);margin-top:40px;}
.lt-footer a{font-weight:800;color:var(--white);}

@media(max-width:480px){
  .lt-hero{padding:44px 20px 76px;min-height:320px;}
  .lt-banner{flex-wrap:wrap;}
  .lt-banner-cta{margin-left:auto;}
}

/* Footer */
.site-footer{background:var(--charcoal);color:var(--gray-300);padding:40px 0 24px;}
.footer-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12);}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:600px){.footer-grid{grid-template-columns:repeat(2,1fr);}}
.footer-grid h5{color:var(--white);font-size:13px;text-transform:uppercase;font-weight:800;margin-bottom:14px;letter-spacing:.03em;}
.footer-grid li{margin-bottom:8px;font-size:14px;}
.footer-grid li a:hover{color:var(--green);}
.footer-about p{font-size:13px;line-height:1.6;color:var(--gray-300);max-width:280px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:20px;font-size:12px;flex-wrap:wrap;gap:12px;}

/* WordPress core alignment helpers */
.alignwide{max-width:1160px;}
.alignfull{max-width:none;width:100%;}
.wp-caption-text{font-size:13px;color:var(--gray-600);margin-top:6px;}
