/* ============================================================
   Lar Conta — Blog
   Reusa os tokens da landing (pine/cream/amber) + tema dia/noite
   (mesma chave lc_theme; html[data-theme="dark"])
   ============================================================ */

:root{
  --cream:#F7F2E9; --cream-2:#EFE7D6; --paper:#FFFFFF;
  --pine:#1C4A3A; --pine-2:#27604B;
  --receita:#2E7D5B; --despesa:#C9603F;
  --amber:#E2A93B; --amber-deep:#C8881F;
  --ink:#2A2723; --ink-soft:#6F6A60; --line:#E6DECE;
  --radius:22px;
  --shadow:0 24px 60px -24px rgba(28,74,58,.30);
  --pine-solid:#1C4A3A; --pine-solid-2:#27604B;
}
html[data-theme="dark"]{
  --cream:#131D17; --cream-2:#1E2C24; --paper:#192821;
  --pine:#A5D4BA; --pine-2:#84C1A2;
  --receita:#4CB585; --despesa:#E08561;
  --amber:#E9BE63; --amber-deep:#E9BE63;
  --ink:#EBE5D8; --ink-soft:#9EA99E; --line:#2B3B32;
  --shadow:0 24px 60px -24px rgba(0,0,0,.55);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
.wrap{width:min(1120px,92vw); margin:0 auto}
a{color:inherit}
img{max-width:100%; display:block}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:40;
  backdrop-filter:saturate(1.4) blur(14px);
  background:rgba(247,242,233,.72); border-bottom:1px solid var(--line);
}
html[data-theme="dark"] header{background:rgba(19,29,23,.55); border-color:rgba(255,255,255,.12)}
.nav{display:flex; align-items:center; justify-content:space-between; height:66px; gap:16px}
.brand{display:inline-flex; align-items:center; gap:10px; font-family:"Fraunces",serif; font-weight:600; font-size:19px; text-decoration:none; color:var(--ink)}
.brand .mark{width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:linear-gradient(160deg,#F6DFA6,var(--amber)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.brand .mark svg{width:20px; height:20px}
.nav-right{display:flex; align-items:center; gap:10px}
.nav-links{display:flex; gap:20px; font-weight:600; font-size:15px}
.nav-links a{text-decoration:none; color:var(--ink-soft)}
.nav-links a:hover{color:var(--ink)}
.theme-btn{width:38px; height:38px; border-radius:11px; border:1px solid var(--line); background:var(--paper); cursor:pointer; display:grid; place-items:center; color:var(--ink)}
.theme-btn svg{width:18px; height:18px}
.btn{display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-weight:700; border-radius:13px; padding:11px 18px; font-size:15px; border:1px solid transparent; cursor:pointer}
.btn-primary{background:linear-gradient(180deg,var(--pine-solid-2),var(--pine-solid)); color:#fff; box-shadow:var(--shadow)}
html[data-theme="dark"] .btn-primary{color:#0c130f; background:linear-gradient(180deg,var(--pine),var(--pine-2))}
.btn-primary:hover{filter:brightness(1.06)}
.btn-ghost{background:var(--paper); border-color:var(--line); color:var(--ink)}
@media(max-width:720px){ .nav-links{display:none} }

/* ---------- Blog index ---------- */
.blog-hero{padding:56px 0 20px; text-align:center}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--pine); background:var(--cream-2); border:1px solid var(--line); padding:6px 14px; border-radius:999px}
.blog-hero h1{font-family:"Fraunces",serif; font-weight:600; font-size:clamp(32px,5vw,50px); line-height:1.1; margin:18px 0 12px; letter-spacing:-.01em}
.blog-hero p{max-width:620px; margin:0 auto; color:var(--ink-soft); font-size:19px}

/* filtro de categorias */
.chips{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; padding:26px 0 6px}
.chip{border:1px solid var(--line); background:var(--paper); color:var(--ink-soft); font-weight:700; font-size:14px; padding:9px 16px; border-radius:999px; cursor:pointer; display:inline-flex; align-items:center; gap:7px; transition:all .15s ease}
.chip:hover{color:var(--ink); border-color:var(--pine)}
.chip.active{background:var(--pine-solid); color:#fff; border-color:var(--pine-solid)}
html[data-theme="dark"] .chip.active{background:var(--pine); color:#0c130f; border-color:var(--pine)}

.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:26px; padding:26px 0 20px}
.grid .empty{grid-column:1/-1; text-align:center; color:var(--ink-soft); padding:40px 0; display:none}
.card{
  display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; text-decoration:none; color:inherit;
  box-shadow:0 12px 34px -22px rgba(28,74,58,.35); transition:transform .18s ease, box-shadow .18s ease;
}
.card:hover{transform:translateY(-4px); box-shadow:0 26px 50px -24px rgba(28,74,58,.45)}
.card .thumb{aspect-ratio:16/9; display:grid; place-items:center; position:relative; overflow:hidden}
.card .thumb svg{width:100%; height:100%; display:block}
.card .body{padding:20px 22px 24px}
.card .tag{font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--amber-deep)}
.card h2{font-family:"Fraunces",serif; font-weight:600; font-size:22px; line-height:1.22; margin:8px 0 8px}
.card p{color:var(--ink-soft); font-size:15px; margin:0 0 14px}
.card .meta{font-size:13px; color:var(--ink-soft); display:flex; gap:10px; align-items:center}

.featured{grid-column:1/-1; display:grid; grid-template-columns:1.1fr 1fr; gap:0}
.featured .thumb{aspect-ratio:auto; min-height:280px}
.featured .body{padding:36px 40px; align-self:center}
.featured h2{font-size:30px}
.featured p{font-size:17px}
@media(max-width:820px){ .featured{grid-template-columns:1fr} .featured .body{padding:24px} }

/* ---------- Masthead compacto + Hero de revista ---------- */
.blog-masthead{padding:30px 0 6px}
.blog-masthead .eyebrow{margin-bottom:0}
.blog-masthead h1{font-family:"Fraunces",serif; font-weight:600; font-size:clamp(24px,3.2vw,36px); line-height:1.1; letter-spacing:-.01em; margin:10px 0 6px}
.blog-masthead p{color:var(--ink-soft); font-size:17px; max-width:60ch; margin:0}

.feature{display:grid; grid-template-columns:1.15fr 1fr; gap:26px; padding:20px 0 6px}
.f-link{display:flex; flex-direction:column; text-decoration:none; color:inherit}
.f-cover{position:relative; border-radius:18px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10; box-shadow:0 12px 34px -24px rgba(28,74,58,.4)}
.f-cover svg,.f-cover img{width:100%; height:100%; display:block; object-fit:cover}
.thumb img{width:100%; height:100%; display:block; object-fit:cover}
.cover img{width:100%; display:block; aspect-ratio:16/9; object-fit:cover}
.cat-pill{position:absolute; top:12px; left:12px; display:inline-flex; align-items:center; gap:6px; background:rgba(247,242,233,.94); color:var(--pine); font-weight:700; font-size:12.5px; padding:5px 12px; border-radius:999px; box-shadow:0 2px 8px rgba(0,0,0,.15)}
html[data-theme="dark"] .cat-pill{background:rgba(19,29,23,.9); color:var(--pine)}

.feature-main .f-title{font-family:"Fraunces",serif; font-weight:600; font-size:clamp(23px,2.5vw,31px); line-height:1.16; letter-spacing:-.01em; margin:16px 0 8px}
.feature-main .f-excerpt{color:var(--ink-soft); font-size:16px; line-height:1.55; margin:0 0 10px}
.feature-main:hover .f-title{color:var(--pine)}
.f-meta{font-size:13px; color:var(--ink-soft)}

.feature-side{display:grid; grid-template-columns:1fr 1fr; gap:20px; align-content:start}
.feature-card .f-cover{aspect-ratio:16/9}
.feature-card .f-title{font-family:"Fraunces",serif; font-weight:600; font-size:16.5px; line-height:1.25; margin:10px 0 5px}
.feature-card:hover .f-title{color:var(--pine)}

.archive-head{font-family:"Fraunces",serif; font-weight:600; font-size:20px; margin:34px 0 4px; padding-top:22px; border-top:1px solid var(--line)}

@media(max-width:900px){
  .feature{grid-template-columns:1fr; gap:22px}
}
@media(max-width:560px){
  .feature-side{grid-template-columns:1fr}
}

/* No celular: molduras 3:2 (= às fotos paisagem, que ficam sem corte;
   as fotos retrato cortam bem menos que no 16:9).
   A imagem é ancorada com position:absolute/inset:0 — no iOS Safari a img
   com height:100% dentro de um container com aspect-ratio NÃO preenche
   (sobra faixa branca em cima); inset:0 preenche em qualquer navegador. */
@media(max-width:640px){
  .f-cover,
  .feature-card .f-cover{aspect-ratio:3/2}
  .card .thumb{aspect-ratio:3/2}
  .cover{position:relative; aspect-ratio:3/2}
  .f-cover img,.card .thumb img,.cover img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover; object-position:center;
  }
}

/* ---------- Article ---------- */
.article{padding:44px 0 30px}
.article .col{width:min(720px,92vw); margin:0 auto}
.breadcrumb{font-size:14px; color:var(--ink-soft); margin-bottom:18px}
.breadcrumb a{text-decoration:none; color:var(--pine); font-weight:600}
.article h1{font-family:"Fraunces",serif; font-weight:600; font-size:clamp(30px,4.6vw,44px); line-height:1.12; letter-spacing:-.01em; margin:6px 0 16px}
.article .lede{font-size:20px; color:var(--ink-soft); line-height:1.6; margin:0 0 22px}
.article .post-meta{display:flex; align-items:center; gap:12px; font-size:14px; color:var(--ink-soft); padding-bottom:24px; border-bottom:1px solid var(--line); margin-bottom:8px}
.article .cover{width:min(960px,92vw); margin:24px auto 8px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line)}
.article .cover svg{width:100%; display:block}

.prose{font-size:18px; line-height:1.78}
.prose h2{font-family:"Fraunces",serif; font-weight:600; font-size:28px; line-height:1.2; margin:40px 0 12px; letter-spacing:-.01em}
.prose h3{font-family:"Fraunces",serif; font-weight:600; font-size:21px; margin:28px 0 8px}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{margin:0 0 18px; padding-left:22px}
.prose li{margin:0 0 8px}
.prose strong{color:var(--ink); font-weight:700}
.prose a{color:var(--pine); text-decoration:underline; text-underline-offset:3px; font-weight:600}
.prose blockquote{margin:24px 0; padding:16px 22px; border-left:4px solid var(--amber); background:var(--cream-2); border-radius:0 14px 14px 0; color:var(--ink); font-family:"Fraunces",serif; font-size:20px; font-style:italic}

.callout{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:20px 22px; margin:26px 0; box-shadow:0 10px 30px -22px rgba(28,74,58,.35)}
.callout .k{font-weight:700; color:var(--pine); font-size:14px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px}

/* Vídeo do YouTube (16:9 responsivo) + figuras/galeria — usados pelos posts do compositor */
.embed{position:relative; width:100%; aspect-ratio:16/9; margin:28px 0; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:0 12px 34px -24px rgba(28,74,58,.4); background:#000}
.embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.prose figure{margin:28px 0}
.prose figure img{width:100%; display:block; border-radius:var(--radius); border:1px solid var(--line)}
.prose figure figcaption{font-size:14px; color:var(--ink-soft); text-align:center; margin-top:8px; font-style:italic}
.prose .gallery{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:28px 0}
.prose .gallery figure{margin:0}

/* CTA box (converte pro app) */
.cta{
  margin:40px 0; padding:34px 32px; border-radius:var(--radius);
  background:linear-gradient(155deg,var(--pine-solid-2),var(--pine-solid)); color:#fff;
  box-shadow:var(--shadow); text-align:center;
}
html[data-theme="dark"] .cta{background:linear-gradient(155deg,#1E3A2E,#14251C); border:1px solid rgba(255,255,255,.1)}
.cta h3{font-family:"Fraunces",serif; font-weight:600; font-size:26px; margin:0 0 8px; color:#fff}
.cta p{margin:0 0 18px; color:rgba(255,255,255,.85); font-size:16px}
.cta .btn-cta{display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--pine-solid); text-decoration:none; font-weight:800; border-radius:13px; padding:13px 24px; font-size:16px}
.cta .btn-cta:hover{filter:brightness(.96)}
.cta small{display:block; margin-top:12px; color:rgba(255,255,255,.7); font-size:13px}

/* ---------- Newsletter (captação de lead) ---------- */
.nl-box{
  margin:40px 0; padding:32px 30px; border-radius:var(--radius);
  background:linear-gradient(155deg,var(--pine-solid-2),var(--pine-solid)); color:#fff;
  box-shadow:var(--shadow); text-align:center;
}
html[data-theme="dark"] .nl-box{background:linear-gradient(155deg,#1E3A2E,#14251C); border:1px solid rgba(255,255,255,.1)}
.nl-box h3{font-family:"Fraunces",serif; font-weight:600; font-size:24px; margin:0 0 8px; color:#fff; line-height:1.2}
.nl-box p{margin:0 0 18px; color:rgba(255,255,255,.85); font-size:16px}
.nl-form{display:flex; gap:10px; max-width:440px; margin:0 auto; flex-wrap:wrap}
.nl-form input{flex:1; min-width:200px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.96); color:#21302A; border-radius:13px; padding:13px 16px; font-size:15px; font-family:inherit}
.nl-form input:focus{outline:2px solid var(--amber); outline-offset:1px}
.nl-form button{background:var(--amber); color:#3a2a08; border:none; font-weight:800; border-radius:13px; padding:13px 22px; font-size:15px; cursor:pointer; white-space:nowrap; font-family:inherit}
.nl-form button:hover{filter:brightness(1.05)}
.nl-form button:disabled{opacity:.7; cursor:default}
.nl-msg{margin:6px auto 0; max-width:440px; font-size:15px; font-weight:600; padding:12px 16px; border-radius:12px}
.nl-msg.ok{background:rgba(255,255,255,.15); color:#fff}
.nl-msg.err{background:rgba(255,255,255,.15); color:#ffd9cf}
.nl-box small{display:block; margin-top:14px; color:rgba(255,255,255,.72); font-size:13px}
.nl-box small a{color:rgba(255,255,255,.92); text-decoration:underline; text-underline-offset:2px}

/* ---------- Comentários ---------- */
.comments-wrap{width:min(720px,92vw); margin:10px auto 0; padding-top:8px}
.cm-title{font-family:"Fraunces",serif; font-weight:600; font-size:24px; margin:8px 0 16px}
.cm-form{display:flex; flex-direction:column; gap:10px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:18px 18px; box-shadow:0 10px 30px -24px rgba(28,74,58,.35)}
.cm-form input,.cm-form textarea{border:1px solid var(--line); background:var(--cream); color:var(--ink); border-radius:11px; padding:12px 14px; font-size:15px; font-family:inherit; width:100%}
.cm-form input:focus,.cm-form textarea:focus{outline:2px solid var(--pine); outline-offset:1px}
.cm-form textarea{resize:vertical; min-height:76px}
.cm-actions{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.cm-hint{font-size:12.5px; color:var(--ink-soft)}
#cm-submit{background:linear-gradient(180deg,var(--pine-solid-2),var(--pine-solid)); color:#fff; border:none; font-weight:700; border-radius:12px; padding:11px 22px; font-size:15px; cursor:pointer; font-family:inherit}
html[data-theme="dark"] #cm-submit{color:#0c130f; background:linear-gradient(180deg,var(--pine),var(--pine-2))}
#cm-submit:disabled{opacity:.7; cursor:default}
.cm-msg{margin:12px 0 0; font-size:14.5px; font-weight:600; padding:12px 14px; border-radius:12px}
.cm-msg.ok{background:var(--cream-2); color:var(--pine)}
.cm-msg.err{background:#F6E4DC; color:var(--despesa)}
html[data-theme="dark"] .cm-msg.err{background:#3a2a24}
.cm-list{margin-top:22px; display:flex; flex-direction:column; gap:16px}
.cm-empty{color:var(--ink-soft); font-size:15px; padding:6px 0}
.cm-item{border-top:1px solid var(--line); padding-top:16px}
.cm-head{display:flex; align-items:baseline; gap:10px; margin-bottom:5px}
.cm-who{font-weight:700; color:var(--ink); font-size:15px}
.cm-when{font-size:12.5px; color:var(--ink-soft)}
.cm-body{color:var(--ink); font-size:15.5px; line-height:1.6}

/* ---------- Footer ---------- */
footer{padding:52px 0 44px; color:var(--ink-soft); font-size:14px; border-top:1px solid var(--line); margin-top:40px}
.foot-grid{display:flex; flex-wrap:wrap; gap:18px 28px; align-items:center; justify-content:space-between}
.foot-links{display:flex; flex-wrap:wrap; gap:16px}
.foot-links a{text-decoration:none; color:var(--ink-soft)}
.foot-links a:hover{color:var(--ink)}
