/* ============================================================
   luiba.ag — Blog / Conteúdo GEO
   Design system oficial: mint + forest green,
   Clash Display (títulos) + Plus Jakarta Sans (corpo, ss02 on)
   Self-contained: os posts NÃO dependem do tailwind.css.
   ============================================================ */

:root{
  --mint:#EEF4EE; --forest:#2D6A4F; --cta:#4A8C6A; --cta-dark:#3c7657;
  --badge:#C8E6C9; --ink:#1A1A1A; --muted:#555555; --white:#FFFFFF;
  --line:#dbe6dc; --line-soft:#e7efe7;
  --shadow:0 12px 44px rgba(45,106,79,.08);
  --radius:18px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--mint); color:var(--ink);
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
  font-feature-settings:"ss02" on;
  line-height:1.72; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:var(--forest); text-underline-offset:3px}

/* ---------- Top nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:50;
  background:rgba(238,244,238,.82); backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.site-nav .inner{
  max-width:1120px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.site-nav .brand{display:flex; align-items:center; gap:10px; text-decoration:none}
.site-nav .brand img{height:32px; width:auto}
.site-nav .links{display:flex; align-items:center; gap:26px}
.site-nav .links a{
  color:rgba(26,26,26,.82); text-decoration:none; font-weight:600; font-size:.94rem;
}
.site-nav .links a:hover{color:var(--forest)}
.nav-cta{
  background:var(--cta); color:#fff !important; padding:10px 18px;
  border-radius:999px; font-weight:700; font-size:.9rem; white-space:nowrap;
  box-shadow:0 6px 18px rgba(74,140,106,.28); transition:transform .15s, background .15s;
}
.nav-cta:hover{background:var(--cta-dark); transform:translateY(-1px)}
@media (max-width:760px){ .site-nav .links a:not(.nav-cta){display:none} }

/* ---------- Layout ---------- */
.wrap{max-width:760px; margin:0 auto; padding:0 24px}
.wrap-wide{max-width:1120px; margin:0 auto; padding:0 24px}

/* ---------- Breadcrumb ---------- */
.crumb{max-width:760px; margin:26px auto 0; padding:0 24px; font-size:.85rem; color:var(--muted)}
.crumb a{color:var(--muted); text-decoration:none}
.crumb a:hover{color:var(--forest)}
.crumb span{color:var(--forest); font-weight:600}

/* ---------- Article hero ---------- */
.post-hero{padding:22px 0 8px}
.eyebrow{
  display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--cta);
  background:var(--badge); padding:6px 12px; border-radius:999px;
}
.post-hero h1{
  font-family:"Clash Display",sans-serif; font-weight:700;
  font-size:clamp(2rem,5vw,2.9rem); line-height:1.08; letter-spacing:-.02em;
  margin:18px 0 14px;
}
.post-hero .dek{font-size:1.14rem; color:#333; margin:0 0 22px; line-height:1.6}
.post-meta{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  font-size:.9rem; color:var(--muted); margin-bottom:6px;
}
.post-meta .avatar{
  width:34px; height:34px; border-radius:50%; background:var(--forest); color:#fff;
  display:grid; place-items:center; font-weight:700; font-size:.85rem;
}
.post-meta strong{color:var(--ink)}
.post-meta .dot{opacity:.4}

/* ---------- Prose (corpo do artigo) ---------- */
.prose{padding:28px 0 8px; font-size:1.06rem}
.prose > *:first-child{margin-top:0}
.prose h2{
  font-family:"Clash Display",sans-serif; font-weight:600;
  font-size:clamp(1.4rem,3vw,1.75rem); line-height:1.2; letter-spacing:-.01em;
  margin:44px 0 14px; color:var(--ink); scroll-margin-top:90px;
}
.prose h3{
  font-family:"Plus Jakarta Sans",sans-serif; font-weight:700;
  font-size:1.18rem; margin:30px 0 10px; color:var(--forest);
}
.prose p{margin:0 0 18px; color:#2a2a2a}
.prose ul,.prose ol{margin:0 0 20px; padding-left:24px}
.prose li{margin:9px 0; color:#2a2a2a}
.prose li::marker{color:var(--cta)}
.prose a{color:var(--forest); font-weight:600}
.prose strong{color:var(--ink); font-weight:700}
.prose hr{border:0; border-top:1px solid var(--line); margin:36px 0}

.prose blockquote{
  margin:26px 0; padding:18px 24px; border-left:4px solid var(--cta);
  background:var(--white); border-radius:0 12px 12px 0; box-shadow:var(--shadow);
  font-size:1.12rem; font-style:italic; color:#2a2a2a;
}

/* Callout / destaque */
.callout{
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  padding:22px 24px; margin:26px 0; box-shadow:var(--shadow);
}
.callout .label{
  font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cta); margin:0 0 8px;
}
.callout p:last-child{margin-bottom:0}

/* Stats */
.stat-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:30px 0;
}
.stat{
  background:var(--forest); color:#fff; border-radius:14px; padding:20px 18px; text-align:center;
}
.stat .num{font-family:"Clash Display",sans-serif; font-weight:700; font-size:1.9rem; line-height:1}
.stat .cap{font-size:.85rem; opacity:.9; margin-top:6px}
@media (max-width:620px){ .stat-row{grid-template-columns:1fr} }

/* Tabela */
.prose table{width:100%; border-collapse:collapse; margin:22px 0; font-size:.96rem}
.prose th,.prose td{text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:top}
.prose th{color:var(--forest); font-weight:700; background:rgba(200,230,201,.35)}

/* ---------- FAQ ---------- */
.faq{margin:34px 0}
.faq h2{margin-bottom:16px}
.faq details{
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  padding:4px 20px; margin:12px 0;
}
.faq summary{
  cursor:pointer; padding:16px 0; font-weight:700; color:var(--ink); list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:14px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; color:var(--cta); font-size:1.4rem; font-weight:400; transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 16px; color:#2a2a2a}

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--forest),var(--cta-dark));
  color:#fff; border-radius:var(--radius); padding:40px 36px; margin:44px 0 12px;
  text-align:center; box-shadow:0 18px 50px rgba(45,106,79,.22);
}
.cta-band h2{font-family:"Clash Display",sans-serif; font-weight:700; font-size:1.7rem; margin:0 0 10px; color:#fff}
.cta-band p{margin:0 auto 22px; max-width:520px; opacity:.94}
.btn-primary{
  display:inline-flex; align-items:center; gap:10px; background:#fff; color:var(--forest);
  padding:15px 30px; border-radius:999px; font-weight:700; font-size:1rem; text-decoration:none;
  transition:transform .15s, box-shadow .15s;
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.18)}

/* ---------- Related / autor ---------- */
.author-box{
  display:flex; gap:16px; align-items:center; background:var(--white);
  border:1px solid var(--line); border-radius:14px; padding:20px 22px; margin:34px 0;
}
.author-box .avatar{width:52px; height:52px; font-size:1.1rem; flex:none}
.author-box p{margin:0; font-size:.94rem; color:var(--muted)}
.author-box strong{color:var(--ink)}

/* ---------- Footer ---------- */
.site-footer{
  border-top:1px solid var(--line); margin-top:56px; padding:36px 0;
  background:rgba(255,255,255,.5);
}
.site-footer .inner{
  max-width:1120px; margin:0 auto; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.site-footer img{height:30px; width:auto}
.site-footer nav{display:flex; gap:18px; flex-wrap:wrap; font-size:.9rem}
.site-footer a{color:var(--forest); text-decoration:none; font-weight:600}
.site-footer a:hover{text-decoration:underline}
.site-footer .copy{color:var(--muted); font-size:.84rem; width:100%; text-align:center; margin-top:8px}

/* ============================================================
   ÍNDICE DO BLOG
   ============================================================ */
.blog-index-hero{padding:48px 0 22px; text-align:center}
.blog-index-hero .eyebrow{margin-bottom:16px}
.blog-index-hero h1{
  font-family:"Clash Display",sans-serif; font-weight:700;
  font-size:clamp(2.1rem,5vw,3rem); line-height:1.08; letter-spacing:-.02em; margin:0 0 14px;
}
.blog-index-hero p{font-size:1.14rem; color:var(--muted); max-width:620px; margin:0 auto}

.post-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:22px; padding:36px 0 20px;
}
.post-card{
  display:flex; flex-direction:column; background:var(--white);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  text-decoration:none; color:inherit; transition:transform .18s, box-shadow .18s, border-color .18s;
}
.post-card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--cta)}
.post-card .cover{
  background:linear-gradient(135deg,var(--forest),var(--cta)); height:8px;
}
.post-card.feat .cover{height:120px; display:grid; place-items:center}
.post-card.feat .cover span{color:#fff; font-family:"Clash Display",sans-serif; font-weight:700; letter-spacing:.1em; font-size:.8rem; text-transform:uppercase}
.post-card .body{padding:24px; display:flex; flex-direction:column; gap:10px; flex:1}
.post-card .cat{font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cta)}
.post-card h3{font-family:"Clash Display",sans-serif; font-weight:600; font-size:1.25rem; line-height:1.22; margin:0; color:var(--ink)}
.post-card p{margin:0; color:var(--muted); font-size:.96rem; flex:1}
.post-card .more{font-weight:700; color:var(--forest); font-size:.9rem; margin-top:4px}
