@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');
.ew-arch * { box-sizing: border-box; margin: 0; padding: 0; }
.ew-arch {
--red: #c0001a;
--white: #fff;
--off: rgba(255,255,255,0.55);
--faint: rgba(255,255,255,0.25);
--border: rgba(255,255,255,0.07);
--hover: rgba(255,255,255,0.04);
--display:'Bebas Neue', sans-serif;
--body: 'Barlow', sans-serif;
font-family: var(--body);
color: #fff;
width: 100%;
}
/* ── Header da categoria ── */
.ew-arch__header {
padding: 40px 0 32px;
border-bottom: 1px solid var(--border);
margin-bottom: 36px;
}
.ew-arch__header-inner {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 24px;
flex-wrap: wrap;
}
.ew-arch__cat-label {
font-size: 11px;
font-weight: 700;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--red);
margin-bottom: 8px;
display: flex;
align-items: center;
gap: 8px;
}
.ew-arch__cat-label::before {
content: '';
display: inline-block;
width: 3px; height: 14px;
background: var(--red);
border-radius: 2px;
}
.ew-arch__title {
font-family: var(--display);
font-size: clamp(32px, 5vw, 52px);
letter-spacing: .03em;
line-height: 1;
color: #fff;
text-transform: uppercase;
margin-bottom: 10px;
}
.ew-arch__desc {
font-size: 14px;
color: var(--off);
line-height: 1.6;
max-width: 560px;
}
.ew-arch__count {
font-size: 13px;
color: var(--faint);
white-space: nowrap;
flex-shrink: 0;
}
.ew-arch__count span {
font-family: var(--display);
font-size: 28px;
color: var(--red);
display: block;
line-height: 1;
}
/* ── Layout: lista + sidebar ── */
.ew-arch__layout {
display: grid;
grid-template-columns: 1fr 320px;
gap: 40px;
align-items: flex-start;
}
/* ── Posts list ── */
.ew-arch__list { display: flex; flex-direction: column; }
.ew-arch__item {
display: grid;
grid-template-columns: 200px 1fr;
gap: 20px;
align-items: flex-start;
padding: 20px 0;
border-bottom: 1px solid var(--border);
text-decoration: none;
color: inherit;
transition: background .15s;
border-radius: 8px;
}
.ew-arch__item:first-child { padding-top: 0; }
.ew-arch__item:last-child { border-bottom: none; }
.ew-arch__item:hover {
background: var(--hover);
padding-left: 12px; padding-right: 12px;
margin-left: -12px; margin-right: -12px;
}
.ew-arch__thumb {
position: relative;
border-radius: 8px;
overflow: hidden;
aspect-ratio: 16/10;
background: rgba(255,255,255,0.05);
flex-shrink: 0;
}
.ew-arch__thumb img {
width: 100%; height: 100%;
object-fit: cover; display: block;
transition: transform .4s;
}
.ew-arch__item:hover .ew-arch__thumb img { transform: scale(1.05); }
.ew-arch__thumb-empty { width: 100%; height: 100%; background: rgba(255,255,255,0.04); }
.ew-arch__thumb-cat {
position: absolute; bottom: 8px; left: 8px;
font-size: 9px; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
background: var(--red); color: #fff;
padding: 2px 8px; border-radius: 3px;
}
.ew-arch__content { display: flex; flex-direction: column; padding-top: 2px; min-width: 0; }
.ew-arch__meta {
display: flex; align-items: center; gap: 8px;
margin-bottom: 8px; flex-wrap: wrap;
}
.ew-arch__meta-time { font-size: 11px; color: var(--faint); }
.ew-arch__meta-cat {
font-size: 10px; font-weight: 700;
letter-spacing: .1em; text-transform: uppercase;
color: var(--red);
}
.ew-arch__post-title {
font-family: var(--display);
font-size: clamp(18px, 2vw, 24px);
letter-spacing: .03em; line-height: 1.15;
color: #fff; margin-bottom: 10px;
text-transform: uppercase;
transition: color .2s;
display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ew-arch__item:hover .ew-arch__post-title { color: var(--red); }
.ew-arch__excerpt {
font-size: 13px; line-height: 1.6;
color: var(--off);
display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
margin-bottom: 10px;
}
.ew-arch__author { font-size: 11px; color: var(--faint); }
/* Skeleton */
.ew-arch__skel-item {
display: grid; grid-template-columns: 200px 1fr;
gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--border);
}
.ew-arch__skel-thumb {
border-radius: 8px; aspect-ratio: 16/10;
background: linear-gradient(90deg,rgba(255,255,255,0.05) 25%,rgba(255,255,255,0.09) 50%,rgba(255,255,255,0.05) 75%);
background-size: 200% 100%; animation: ew-shimmer 1.4s infinite;
}
.ew-arch__skel-line { height: 13px; border-radius: 4px; margin-bottom: 8px; background: rgba(255,255,255,0.06); }
.ew-arch__skel-line--short { width: 40%; }
.ew-arch__skel-line--title { height: 20px; width: 85%; background: rgba(255,255,255,0.08); }
@keyframes ew-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
/* Load more */
.ew-arch__more-wrap { display: flex; justify-content: center; margin-top: 32px; }
.ew-arch__more-btn {
display: inline-flex; align-items: center; gap: 8px;
padding: 10px 36px;
border: 1px solid var(--border); border-radius: 4px;
background: transparent; color: var(--off);
font-family: var(--display); font-size: 16px;
letter-spacing: .1em; cursor: pointer; transition: all .2s;
}
.ew-arch__more-btn:hover { border-color: var(--red); color: var(--red); }
.ew-arch__more-btn:disabled { opacity: .3; cursor: not-allowed; }
/* ── Sidebar ── */
.ew-arch__sidebar {
position: sticky; top: 80px;
display: flex; flex-direction: column; gap: 36px;
}
.ew-arch__sb-block {}
.ew-arch__sb-head {
display: flex; align-items: center; gap: 10px;
margin-bottom: 16px;
}
.ew-arch__sb-head-bar { width: 3px; height: 20px; background: var(--red); border-radius: 2px; flex-shrink: 0; }
.ew-arch__sb-head-title {
font-family: var(--display);
font-size: 18px; letter-spacing: .08em; color: #fff; line-height: 1;
}
.ew-arch__sb-head-line { flex: 1; height: 1px; background: var(--border); }
.ew-arch__sb-item {
display: flex; gap: 12px; align-items: center;
padding: 11px 0; border-bottom: 1px solid var(--border);
text-decoration: none; color: inherit; transition: opacity .2s;
}
.ew-arch__sb-item:last-child { border-bottom: none; }
.ew-arch__sb-item:hover { opacity: .75; }
.ew-arch__sb-item:hover .ew-arch__sb-title { color: var(--red); }
.ew-arch__sb-thumb {
width: 68px; height: 50px; border-radius: 5px;
object-fit: cover; flex-shrink: 0;
background: rgba(255,255,255,.05); display: block;
}
.ew-arch__sb-text { flex: 1; min-width: 0; }
.ew-arch__sb-title {
font-family: var(--display);
font-size: 13px; line-height: 1.4;
color: var(--white); text-transform: uppercase;
display: -webkit-box;
-webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
margin-bottom: 3px; transition: color .2s;
}
.ew-arch__sb-time { display: block; font-size: 10px; color: var(--faint); }
/* ── Banner Google — fontes preferidas ── */
.ew-arch__gnews {
display: block;
background: #1a1a1a;
border: 1px solid rgba(255,255,255,.09);
border-left: 3px solid var(--red);
border-radius: 12px;
padding: 18px 18px 20px;
text-decoration: none; color: inherit;
transition: border-color .2s, transform .2s;
}
.ew-arch__gnews:hover { border-color: var(--red); transform: translateY(-2px); }
.ew-arch__gnews-top { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.ew-arch__gnews-icon {
width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
background: #fff;
display: flex; align-items: center; justify-content: center;
}
.ew-arch__gnews-title {
font-family: var(--display);
font-size: 18px; letter-spacing: .03em; line-height: 1.1;
color: #fff; text-transform: uppercase;
}
.ew-arch__gnews-sub { font-size: 12px; line-height: 1.5; color: var(--off); margin-bottom: 14px; }
.ew-arch__gnews-btn {
display: inline-block;
font-size: 11px; font-weight: 700;
letter-spacing: .08em; text-transform: uppercase;
background: var(--red); color: #fff;
padding: 8px 16px; border-radius: 20px;
transition: background .2s;
}
.ew-arch__gnews:hover .ew-arch__gnews-btn { background: #8c0013; }
/* ── Responsive ── */
@media (max-width: 1024px) {
.ew-arch__layout { grid-template-columns: 1fr 260px; gap: 28px; }
.ew-arch__item { grid-template-columns: 160px 1fr; }
}
@media (max-width: 768px) {
.ew-arch__layout { grid-template-columns: 1fr; }
.ew-arch__sidebar { position: static; margin-top: 40px; }
.ew-arch__item { grid-template-columns: 130px 1fr; gap: 14px; }
.ew-arch__excerpt { display: none; }
}
@media (max-width: 480px) {
.ew-arch__item { grid-template-columns: 100px 1fr; gap: 12px; }
.ew-arch__title { font-size: 28px; }
}
(function() {
var BASE = 'https://exclusivewrestling.pt/wp-json/wp/v2';
var PER = 8;
var page = 1;
var total = 0;
var totalPages = 1;
var loading = false;
var currentCatId = null;
var currentTagId = null;
var currentAuthorId = null;
/* Contexto do PHP ou fallback por URL
Nota: categorias hierárquicas (/category/wwe/raw/) → usa-se o ÚLTIMO segmento */
var ctx = window.ewArchiveContext || {};
if (!ctx.type) {
var path = window.location.pathname.replace(/\/page\/\d+\/?$/,'');
var mCat = path.match(/\/category\/(?:.+\/)?([^/]+)\/?$/);
var mTag = path.match(/\/tag\/([^/]+)/);
var mAuth = path.match(/\/author\/([^/]+)/);
if (mCat) { ctx = {type:'category', slug:decodeURIComponent(mCat[1])}; }
if (mTag) { ctx = {type:'tag', slug:decodeURIComponent(mTag[1])}; }
if (mAuth) { ctx = {type:'author', slug:decodeURIComponent(mAuth[1])}; }
}
function getJ(url) {
return fetch(url).then(function(r){ if(!r.ok) throw new Error('HTTP '+r.status); return r.json(); });
}
function getM(url) {
return fetch(url).then(function(r){
if(!r.ok) throw new Error('HTTP '+r.status);
total = parseInt(r.headers.get('X-WP-Total')||'0',10);
totalPages = parseInt(r.headers.get('X-WP-TotalPages')||'1',10);
return r.json();
});
}
function dec(s){var t=document.createElement('textarea');t.innerHTML=s;return t.value;}
function strip(s){var t=document.createElement('div');t.innerHTML=s;return t.textContent||t.innerText||'';}
function thumb(p){
var m=p._embedded&&p._embedded['wp:featuredmedia'];
if(!m||!m[0])return'';
var s=m[0].media_details&&m[0].media_details.sizes;
if(s){var o=['medium_large','large','medium','thumbnail'];for(var i=0;i<o.length;i++){if(s[o[i]])return s[o[i]].source_url;}}
return m[0].source_url||'';
}
function catOf(p){
var t=p._embedded&&p._embedded['wp:term'];
if(!t||!t[0])return'';
var c=t[0].filter(function(x){return x.taxonomy==='category'&&x.slug!=='destaques';});
return c.length?c[0].name:'';
}
function authorOf(p){var a=p._embedded&&p._embedded['author'];return(a&&a[0])?(a[0].name||''):'';}
function ago(d){
var s=Math.floor((Date.now()-new Date(d))/1000);
if(s<60)return s+' seg atrás';
if(s<3600)return Math.floor(s/60)+' min atrás';
if(s120)ex=ex.slice(0,120).replace(/\s\S*$/,'')+'…';
return '
'+
''+
(img?'

':'
')+
(cat?'
'+cat+'':'')+
'
'+
''+
'
'+ago(p.date)+''+(cat?''+cat+'':'')+'
'+
'
'+dec(p.title.rendered)+'
'+
(ex?'
'+ex+'
':'')+
(author?'
Por '+author+'
':'')+
'
';
}
function buildURL(){
var u=BASE+'/posts?per_page='+PER+'&page='+page+'&_embed&orderby=date&order=desc';
if(currentCatId) u+='&categories='+currentCatId;
if(currentTagId) u+='&tags='+currentTagId;
if(currentAuthorId) u+='&author='+currentAuthorId;
return u;
}
function loadPosts(append){
if(loading)return;
loading=true;
var list=document.getElementById('ew-arch-list');
var btn=document.getElementById('ew-arch-more-btn');
if(btn){btn.disabled=true;btn.textContent='A carregar…';}
getM(buildURL()).then(function(posts){
loading=false;
document.getElementById('ew-arch-total').textContent=total;
if(!posts.length&&!append){
list.innerHTML='
Sem artigos encontrados.
';
document.getElementById('ew-arch-more-wrap').style.display='none';
return;
}
var html=posts.map(renderItem).join('');
if(append)list.insertAdjacentHTML('beforeend',html);
else list.innerHTML=html;
var mw=document.getElementById('ew-arch-more-wrap');
if(mw)mw.style.display=(page<totalPages)?'flex':'none';
if(btn){btn.disabled=false;btn.textContent='Ver mais';}
}).catch(function(err){
loading=false;
list.innerHTML='
Erro: '+err.message+'
';
});
}
function loadSidebar(){
var el=document.getElementById('ew-arch-sb-list');
if(!el)return;
getJ(BASE+'/posts?per_page=5&_embed&orderby=date&order=desc').then(function(posts){
el.innerHTML=posts.map(function(p){
var img=thumb(p);
return '
'+
(img?'
':'')+
''+dec(p.title.rendered)+'
'+ago(p.date)+'';
}).join('');
}).catch(function(){});
}
function setHeader(type,name,desc,count){
var labels={category:'Categoria',tag:'Tag',author:'Autor',tax:'Arquivo'};
document.getElementById('ew-arch-type').textContent=labels[type]||'Arquivo';
document.getElementById('ew-arch-name').textContent=name||'';
if(desc)document.getElementById('ew-arch-desc').textContent=desc;
if(count)document.getElementById('ew-arch-total').textContent=count;
}
function init(){
/* Contexto completo do PHP com ID */
if(ctx.id && ctx.type==='category'){ currentCatId=ctx.id; setHeader('category',ctx.name,ctx.description,ctx.count); loadPosts(false);loadSidebar();return; }
if(ctx.id && ctx.type==='tag'){ currentTagId=ctx.id; setHeader('tag',ctx.name,ctx.description,ctx.count); loadPosts(false);loadSidebar();return; }
if(ctx.id && ctx.type==='tax'){ currentCatId=ctx.id; setHeader('tax',ctx.name,ctx.description,ctx.count); loadPosts(false);loadSidebar();return; }
if(ctx.id && ctx.type==='author'){ currentAuthorId=ctx.id; setHeader('author',ctx.name,ctx.description); loadPosts(false);loadSidebar();return; }
/* Fallback por slug */
if(!ctx.slug){ setHeader('','Arquivo',''); loadPosts(false);loadSidebar();return; }
if(ctx.type==='author'){
getJ(BASE+'/users?slug='+encodeURIComponent(ctx.slug)+'&_fields=id,name,description').then(function(u){
if(!u.length){loadPosts(false);loadSidebar();return;}
currentAuthorId=u[0].id; setHeader('author',u[0].name,u[0].description); loadPosts(false);loadSidebar();
}).catch(function(){ loadPosts(false);loadSidebar(); });
return;
}
var ep=ctx.type==='tag'?'/tags':'/categories';
getJ(BASE+ep+'?slug='+encodeURIComponent(ctx.slug)+'&_fields=id,name,description,count').then(function(terms){
if(terms&&terms.length){
var t=terms[0];
if(ctx.type==='tag')currentTagId=t.id; else currentCatId=t.id;
setHeader(ctx.type,t.name,strip(t.description||''),t.count);
} else {
setHeader(ctx.type,ctx.slug.replace(/-/g,' '),'');
}
loadPosts(false);loadSidebar();
}).catch(function(){
setHeader(ctx.type,ctx.slug.replace(/-/g,' '),'');
loadPosts(false);loadSidebar();
});
}
document.getElementById('ew-arch-more-btn').addEventListener('click',function(){ page++;loadPosts(true); });
/* Aguardar o footer do WordPress injectar o ewArchiveContext */
function tryInit(attempts) {
if (window.ewArchiveContext && window.ewArchiveContext.type) {
ctx = window.ewArchiveContext;
init();
} else if (attempts > 0) {
setTimeout(function(){ tryInit(attempts-1); }, 100);
} else {
/* Último fallback — correr mesmo sem contexto */
init();
}
}
if(document.readyState==='loading') {
document.addEventListener('DOMContentLoaded', function(){ tryInit(20); });
} else {
tryInit(20);
}
})();