/*
Theme Name: Controle Jurídico — Blog
Theme URI: https://controlejuridico.site/
Template: ollie
Author: Controle Jurídico
Author URI: https://controlejuridico.site/
Description: Tema filho editorial do blog Controle Jurídico (base: Ollie). Portal de conteúdo sobre organização, gestão, tecnologia e IA na advocacia.
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cj-blog
Tags: blog, full-site-editing, block-patterns, translation-ready
*/

:root{
  --cj-brand:#10b77f;
  --cj-brand-dark:#0d9668;
  --cj-brand-soft:#ecfdf5;
  --cj-ink:#111827;
  --cj-muted:#6b7280;
  --cj-line:#e5e7eb;
  --cj-bg-soft:#f8fafc;
  --cj-radius:14px;
  --cj-shadow:0 1px 2px rgba(17,24,39,.06),0 8px 24px -18px rgba(17,24,39,.25);
}
body{ -webkit-font-smoothing:antialiased; }

/* ---------- Cabeçalho ---------- */
.cj-header{ border-bottom:1px solid var(--cj-line); background:#fff; }
.cj-header .cj-header-inner{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; padding:14px 0; width:100%; }
.cj-header .wp-block-site-logo img{ max-height:42px; width:auto; }
.cj-brand{ display:flex; flex-direction:column; gap:2px; line-height:1.15; }
.cj-header .wp-block-site-title{ font-size:1.05rem; font-weight:800; letter-spacing:-.01em; margin:0; }
.cj-header .wp-block-site-title a{ text-decoration:none; color:var(--cj-ink); }
.cj-header .wp-block-site-tagline{ font-size:.78rem; color:var(--cj-muted); margin:0; }
.cj-header .wp-block-navigation{ margin-left:auto; }
.cj-header .wp-block-navigation-item__content{ font-size:.95rem; font-weight:600; color:var(--cj-ink); text-decoration:none; padding:6px 10px; border-radius:8px; }
.cj-header .wp-block-navigation-item__content:hover{ background:var(--cj-bg-soft); color:var(--cj-brand-dark); }
.cj-header .wp-block-search{ max-width:230px; }
.cj-header .wp-block-search__input{ border:1px solid var(--cj-line); border-radius:10px; padding:8px 12px; font-size:.9rem; }
.cj-header .wp-block-search__button{ background:var(--cj-bg-soft); border:1px solid var(--cj-line); border-radius:10px; }
.cj-header-cta .wp-block-button__link,
.cj-btn{ background:var(--cj-brand); color:#fff !important; border-radius:10px; padding:10px 16px; font-weight:700; font-size:.9rem; text-decoration:none; border:0; display:inline-block; }
.cj-header-cta .wp-block-button__link:hover,.cj-btn:hover{ background:var(--cj-brand-dark); }

/* ---------- Estrutura ---------- */
.cj-main{ padding-top:28px; }
.cj-section{ margin:44px 0; }
.cj-section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; border-bottom:1px solid var(--cj-line); padding-bottom:10px; margin-bottom:22px; }
.cj-section-title{ font-size:1.5rem; margin:0; letter-spacing:-.01em; }
.cj-more{ font-size:.9rem; font-weight:700; color:var(--cj-brand-dark); text-decoration:none; white-space:nowrap; }

/* ---------- Grade de cards ---------- */
.cj-grid{ display:grid; gap:26px; }
.cj-grid-1{ grid-template-columns:1fr; }
.cj-grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.cj-grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.cj-grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.cj-grid .wp-block-post{ background:#fff; }

.cj-card{ display:flex; flex-direction:column; border:1px solid var(--cj-line); border-radius:var(--cj-radius); overflow:hidden; background:#fff; height:100%; transition:box-shadow .18s ease, transform .18s ease; }
.cj-card:hover{ box-shadow:var(--cj-shadow); transform:translateY(-2px); }
.cj-card-media{ display:block; aspect-ratio:16/9; background:var(--cj-bg-soft); overflow:hidden; }
.cj-card-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.cj-media-fallback{ display:block; width:100%; height:100%; background:linear-gradient(135deg,#eef2f7,#e2e8f0); }
.cj-card-body{ padding:16px 18px 18px; display:flex; flex-direction:column; gap:8px; flex:1; }
.cj-cat{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--cj-brand-dark); text-decoration:none; }
.cj-card-title{ font-size:1.12rem; line-height:1.3; margin:0; }
.cj-card-title a{ color:var(--cj-ink); text-decoration:none; }
.cj-card-title a:hover{ color:var(--cj-brand-dark); }
.cj-card-excerpt{ font-size:.94rem; line-height:1.6; color:var(--cj-muted); margin:0; }
.cj-card-meta{ font-size:.8rem; color:var(--cj-muted); margin-top:auto; display:flex; gap:8px; align-items:center; }

/* ---------- Destaque (hero) ---------- */
.cj-hero{ display:grid; grid-template-columns:1.35fr 1fr; gap:26px; align-items:stretch; margin-top:6px; }
.cj-hero-main{ position:relative; border:1px solid var(--cj-line); border-radius:var(--cj-radius); overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.cj-hero-main .cj-card-media{ aspect-ratio:16/9; }
.cj-hero-main .cj-card-body{ padding:22px 24px 24px; gap:10px; }
.cj-hero-main .cj-card-title{ font-size:1.85rem; line-height:1.18; }
.cj-hero-side{ display:flex; flex-direction:column; gap:26px; }
.cj-hero-side .cj-card{ flex-direction:row; align-items:stretch; }
.cj-hero-side .cj-card-media{ width:42%; aspect-ratio:1/1; flex:0 0 42%; }
.cj-hero-side .cj-card-body{ padding:14px 16px; }
.cj-hero-side .cj-card-title{ font-size:1.02rem; }

/* ---------- Rodapé ---------- */
.cj-footer{ margin-top:56px; border-top:1px solid var(--cj-line); background:var(--cj-bg-soft); padding:44px 0 26px; }
.cj-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:28px; }
.cj-footer h2,.cj-footer h3{ font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color:var(--cj-ink); margin:0 0 12px; }
.cj-footer p{ font-size:.9rem; color:var(--cj-muted); line-height:1.6; margin:0; }
.cj-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.cj-footer a{ font-size:.92rem; color:var(--cj-muted); text-decoration:none; }
.cj-footer a:hover{ color:var(--cj-brand-dark); }
.cj-footer-bottom{ margin-top:30px; padding-top:18px; border-top:1px solid var(--cj-line); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:.82rem; color:var(--cj-muted); }

/* ---------- CTA ---------- */
.cj-cta{ margin:46px 0 10px; border:1px solid #a7f3d0; background:linear-gradient(180deg,#f0fdf7,#ecfdf5); border-radius:var(--cj-radius); padding:24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.cj-cta strong{ display:block; font-size:1.15rem; color:#065f46; }
.cj-cta p{ margin:6px 0 0; color:#065f46; font-size:.95rem; }

/* ---------- Artigo ---------- */
.cj-crumb{ font-size:.82rem; color:var(--cj-muted); margin:8px 0 18px; display:flex; gap:8px; flex-wrap:wrap; }
.cj-crumb a{ color:var(--cj-muted); text-decoration:none; }
.cj-crumb a:hover{ color:var(--cj-brand-dark); }
.single-post .wp-block-post-terms{ margin-bottom:10px; }
.single-post .wp-block-post-terms a{ font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--cj-brand-dark); text-decoration:none; }
.single-post .wp-block-post-title{ font-size:clamp(2rem,1.4rem+2.4vw,2.85rem); line-height:1.15; letter-spacing:-.02em; margin:6px 0 12px; }
.cj-post-meta{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; font-size:.86rem; color:var(--cj-muted); margin-bottom:22px; }
.cj-post-meta .cj-author{ font-weight:700; color:var(--cj-ink); }
.cj-featured{ margin:0 0 28px; border-radius:var(--cj-radius); overflow:hidden; }
.cj-featured img{ width:100%; height:auto; display:block; }
.cj-content{ font-size:1.15rem; line-height:1.85; }
.cj-content > p, .cj-content > ul, .cj-content > ol{ margin-bottom:1.4em; }
.cj-content h2{ font-size:1.75rem; margin:2.2em 0 .6em; }
.cj-content h3{ font-size:1.35rem; margin:1.8em 0 .5em; }
.cj-content ul, .cj-content ol{ padding-left:1.3em; }
.cj-content li{ margin-bottom:.5em; }
.cj-content img{ border-radius:12px; }
.cj-content blockquote{ border-left:3px solid var(--cj-brand); background:var(--cj-brand-soft); margin:1.6em 0; padding:14px 18px; border-radius:0 12px 12px 0; }
.cj-content a{ text-decoration:underline; text-underline-offset:3px; }
.cj-content code{ background:#f3f4f6; padding:2px 6px; border-radius:6px; font-size:.92em; }

/* ---------- Relacionados / busca ---------- */
.cj-related{ margin-top:54px; }
.cj-search-results .cj-card{ margin-bottom:0; }
.cj-empty{ border:1px dashed var(--cj-line); border-radius:var(--cj-radius); padding:26px; text-align:center; color:var(--cj-muted); }

/* ---------- Responsivo ---------- */
@media (max-width:1024px){
  .cj-hero{ grid-template-columns:1fr; }
  .cj-grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cj-footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .cj-grid-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cj-header .wp-block-search{ max-width:none; width:100%; }
}
@media (max-width:640px){
  .cj-grid-2,.cj-grid-3,.cj-grid-4{ grid-template-columns:1fr; }
  .cj-hero-side .cj-card{ flex-direction:column; }
  .cj-hero-side .cj-card-media{ width:100%; flex:none; aspect-ratio:16/9; }
  .cj-hero-main .cj-card-title{ font-size:1.45rem; }
  .cj-footer-grid{ grid-template-columns:1fr; }
  .cj-cta{ flex-direction:column; align-items:flex-start; }
  .cj-content{ font-size:1.06rem; }
}

/* ---------- Listas nativas (arquivo, busca, relacionados) ---------- */
.wp-block-post-template.cj-grid{ list-style:none; margin:0; padding:0; }
.wp-block-post-template.cj-grid > li{ background:#fff; border:1px solid var(--cj-line); border-radius:var(--cj-radius); overflow:hidden; display:flex; flex-direction:column; }
.wp-block-post-template.cj-grid > li > *{ margin:0; }
.wp-block-post-template.cj-grid > li .wp-block-post-featured-image{ aspect-ratio:16/9; overflow:hidden; background:var(--cj-bg-soft); margin:0; }
.wp-block-post-template.cj-grid > li .wp-block-post-featured-image img{ width:100%; height:100%; object-fit:cover; }
.wp-block-post-template.cj-grid > li .wp-block-post-terms{ padding:14px 18px 0; }
.wp-block-post-template.cj-grid > li .wp-block-post-terms a{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--cj-brand-dark); text-decoration:none; }
.wp-block-post-template.cj-grid > li .wp-block-post-title{ padding:6px 18px 0; font-size:1.12rem; line-height:1.3; }
.wp-block-post-template.cj-grid > li .wp-block-post-title a{ color:var(--cj-ink); text-decoration:none; }
.wp-block-post-template.cj-grid > li .wp-block-post-title a:hover{ color:var(--cj-brand-dark); }
.wp-block-post-template.cj-grid > li .wp-block-post-excerpt{ padding:8px 18px 0; font-size:.94rem; color:var(--cj-muted); line-height:1.6; }
.wp-block-post-template.cj-grid > li .wp-block-post-date{ padding:14px 18px 18px; margin-top:auto; font-size:.8rem; color:var(--cj-muted); }
.wp-block-query-pagination{ margin-top:34px; display:flex; gap:10px; justify-content:center; align-items:center; }
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{ border:1px solid var(--cj-line); border-radius:10px; padding:8px 13px; text-decoration:none; color:var(--cj-ink); font-weight:600; font-size:.9rem; }
.wp-block-query-pagination a:hover{ border-color:var(--cj-brand); color:var(--cj-brand-dark); }
.wp-block-query-pagination .page-numbers.current{ background:var(--cj-brand); border-color:var(--cj-brand); color:#fff; }
.wp-block-query-title{ font-size:1.9rem; margin:6px 0 6px; letter-spacing:-.01em; }
.wp-block-term-description{ color:var(--cj-muted); margin-bottom:22px; }
.cj-search-hero{ background:var(--cj-bg-soft); border:1px solid var(--cj-line); border-radius:var(--cj-radius); padding:22px; margin:10px 0 30px; }
.cj-search-hero .wp-block-search{ max-width:520px; }
.cj-404{ text-align:center; padding:40px 0; }
.cj-404 .wp-block-search{ max-width:420px; margin:18px auto; }
.cj-page-content{ font-size:1.08rem; line-height:1.8; }

.cj-subtitle{ font-size:1.18rem; line-height:1.6; color:var(--cj-muted); margin:2px 0 14px; }
