/* ============================================================
   LSV BLOG — usa os MESMOS design tokens do site principal
   (cores, fontes, motivo de "ingresso") para consistência total.
   ============================================================ */

:root{
  --bg:#0a0a0b;
  --bg-alt:#131210;
  --gold-deep:#8a6a24;
  --gold:#c69a3f;
  --gold-bright:#e8c168;
  --cream:#f3ede0;
  --muted:#9a9284;
  --line:#2b271e;
  --maxw:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--cream);
  font-family:'Inter',sans-serif;
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
h1,h2,h3{font-family:'Big Shoulders Display',sans-serif; text-transform:uppercase; letter-spacing:0.01em; line-height:0.95;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold);
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--gold); display:inline-block; }
.muted{color:var(--muted);}

/* ---------- TICKET TEAR DIVIDER (igual ao site) ---------- */
.tear{
  height:26px; width:100%;
  background-image: radial-gradient(circle 8px at 13px 0px, var(--bg) 8px, transparent 9px);
  background-repeat:repeat-x; background-size:26px 16px; background-position: center top;
}
.tear.on-alt{ background-image: radial-gradient(circle 8px at 13px 0px, var(--bg-alt) 8px, transparent 9px); }
.tear.flip{ transform: rotate(180deg); }

/* ---------- NAV (idêntico ao site principal) ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(10,10,11,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav.wrap{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:28px; height:76px; }
.logo{ display:flex; align-items:center; height:40px; }
.logo a{ display:flex; align-items:center; height:100%; }
.logo img{ height:100%; width:auto; display:block; }
.navlinks{display:flex; gap:30px; align-items:center; justify-content:center; white-space:nowrap;}
.navlinks a{ font-size:14px; font-weight:500; color:var(--muted); transition:color 0.2s; }
.navlinks a:hover, .navlinks a.active{color:var(--gold-bright);}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
  padding:13px 22px; border:1px solid var(--gold); color:var(--gold-bright);
  border-radius:2px; transition:all 0.25s; white-space:nowrap; cursor:pointer;
}
.btn:hover{background:var(--gold); color:var(--bg);}
.btn.solid{background:var(--gold); color:var(--bg);}
.btn.solid:hover{background:var(--gold-bright); border-color:var(--gold-bright);}
.navcta{display:flex;}
.navburger{display:none;}
.nav-toggle-input{ display:none; }
.mobile-panel{ display:none; }

@media (max-width:920px){
  .navlinks{ display:none; }
  .navcta{ display:none; }
  .navburger{
    display:flex; align-items:center; justify-content:center;
    width:40px; height:40px; cursor:pointer; grid-column:3; justify-self:end;
  }
  .navburger span, .navburger span::before, .navburger span::after{
    content:""; display:block; width:22px; height:2px; background:var(--cream);
    position:relative; transition:background 0.2s;
  }
  .navburger span::before{ position:absolute; top:-7px; }
  .navburger span::after{ position:absolute; top:7px; }
  .mobile-panel{
    display:flex; flex-direction:column;
    position:fixed; top:76px; left:0; right:0;
    background:var(--bg); border-bottom:1px solid var(--line);
    padding:8px 32px 20px; max-height:0; overflow:hidden; transition:max-height 0.3s ease;
  }
  .mobile-panel a{ padding:15px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--cream); font-weight:500; }
  .mobile-panel .btn{ margin-top:16px; text-align:center; justify-content:center; }
  .nav-toggle-input:checked ~ .mobile-panel{ max-height:600px; }
}

/* ---------- FOOTER (idêntico ao site) ---------- */
footer{ border-top:1px solid var(--line); padding:36px 0; }
footer .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
footer p{ font-size:13px; color:var(--muted); }
footer .eco{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:0.04em; }
footer .eco b{ color:var(--gold); font-weight:500; }
footer .eco a:hover b{ color:var(--gold-bright); text-decoration:underline; }

/* ============================================================
   COMPONENTES ESPECÍFICOS DO BLOG
   ============================================================ */

/* Breadcrumbs */
.breadcrumbs{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.05em;
  color:var(--muted); display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;
}
.breadcrumbs a{ color:var(--muted); transition:color 0.2s; }
.breadcrumbs a:hover{ color:var(--gold-bright); }
.breadcrumbs .sep{ color:var(--line); }
.breadcrumbs .current{ color:var(--gold); }

/* Blog Hero */
.blog-hero{ padding:160px 0 56px; border-bottom:1px solid var(--line); }
.blog-hero h1{ font-size:clamp(34px,5vw,58px); color:var(--cream); margin:16px 0 16px; }
.blog-hero p{ color:var(--muted); font-size:16px; max-width:64ch; margin-bottom:36px; }

/* Search box */
.search-box{
  display:flex; align-items:center; gap:12px;
  border:1px solid var(--line); background:var(--bg-alt);
  padding:14px 18px; max-width:520px;
}
.search-box svg{ flex-shrink:0; opacity:0.6; }
.search-box input{
  background:none; border:none; outline:none; color:var(--cream);
  font-family:'Inter',sans-serif; font-size:14px; width:100%;
}
.search-box input::placeholder{ color:var(--muted); }

/* Category filter pills */
.cat-filters{ display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 0; }
.cat-pill{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); padding:8px 14px;
  cursor:pointer; transition:all 0.2s; background:none;
}
.cat-pill:hover{ color:var(--gold-bright); border-color:var(--gold-deep); }
.cat-pill.active{ color:var(--bg); background:var(--gold); border-color:var(--gold); }

/* Featured article */
.featured{
  display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  padding:56px 0; border-bottom:1px solid var(--line);
}
.featured .img-box{ border:1px solid var(--line); aspect-ratio:16/11; overflow:hidden; }
.featured .img-box img{ width:100%; height:100%; object-fit:cover; filter:grayscale(15%) contrast(1.05); }
.featured .badge{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--bg); background:var(--gold-bright); padding:5px 12px; margin-bottom:16px;
}
.featured h2{ font-size:clamp(26px,3.2vw,38px); color:var(--cream); margin-bottom:14px; }
.featured p.excerpt{ color:var(--muted); font-size:15.5px; margin-bottom:22px; max-width:56ch; }
.meta-row{
  display:flex; gap:18px; flex-wrap:wrap; align-items:center;
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:0.03em; margin-bottom:20px;
}
.meta-row .cat-tag{ color:var(--gold); }

/* Article grid + cards */
.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.article-card{
  border:1px solid var(--line); background:var(--bg-alt);
  padding:26px; display:flex; flex-direction:column; transition:border-color 0.2s;
}
.article-card:hover{ border-color:var(--gold-deep); }
.article-card .cat-tag{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold);
}
.article-card h3{
  font-size:20px; color:var(--cream); text-transform:uppercase; margin:12px 0 10px; line-height:1.05;
}
.article-card p{ color:var(--muted); font-size:14px; flex-grow:1; margin-bottom:16px; }
.article-card .card-meta{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--muted);
  display:flex; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line); padding-top:14px;
}
.article-card .read-link{ color:var(--gold-bright); }
.article-card.soon{ opacity:0.55; }
.article-card.soon .card-meta .read-link{ color:var(--muted); }
.soon-tag{
  font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); padding:3px 8px; display:inline-block; margin-bottom:10px;
}

/* Author box */
.author-box{
  display:grid; grid-template-columns:120px 1fr; gap:28px; align-items:center;
  border:1px solid var(--line); background:var(--bg-alt); padding:32px; margin:48px 0;
}
.author-box img{ width:120px; height:120px; object-fit:cover; border:1px solid var(--gold-deep); border-radius:50%; }
.author-box .label{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.author-box h4{ font-family:'Big Shoulders Display',sans-serif; font-size:24px; text-transform:uppercase; color:var(--cream); margin-bottom:8px; }
.author-box p{ color:var(--muted); font-size:14.5px; }

/* CTA blocks */
.cta-box{
  border:1px solid var(--gold-deep); padding:36px;
  background:radial-gradient(ellipse 500px 260px at 15% 10%, rgba(198,154,63,0.12), transparent 60%), var(--bg-alt);
  margin:40px 0; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
}
.cta-box h4{ font-family:'Big Shoulders Display',sans-serif; font-size:24px; color:var(--cream); text-transform:uppercase; margin-bottom:8px; }
.cta-box p{ color:var(--muted); font-size:14px; max-width:50ch; }

/* Article body typography */
.article-body{ max-width:74ch; }
.article-body h2{ font-size:28px; color:var(--cream); margin:40px 0 16px; text-transform:none; }
.article-body h3{ font-size:20px; color:var(--gold-bright); margin:28px 0 12px; text-transform:none; }
.article-body p{ color:#cfc9bd; font-size:16px; margin-bottom:18px; }
.article-body ul, .article-body ol{ color:#cfc9bd; font-size:16px; margin:0 0 18px 22px; }
.article-body li{ margin-bottom:8px; }
.article-body blockquote{
  border-left:2px solid var(--gold); padding:4px 0 4px 24px; margin:28px 0;
  font-family:'Big Shoulders Display',sans-serif; font-size:22px; color:var(--gold-bright); text-transform:none; line-height:1.3;
}
.article-body strong{ color:var(--cream); }
.article-body a{ color:var(--gold-bright); border-bottom:1px solid var(--gold-deep); }

/* TOC */
.toc{
  border:1px solid var(--line); background:var(--bg-alt); padding:24px 28px; margin-bottom:40px;
}
.toc .label{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.toc ol{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.toc a{ font-size:14px; color:var(--muted); transition:color 0.2s; }
.toc a:hover{ color:var(--gold-bright); }

/* Share buttons */
.share-row{ display:flex; gap:10px; align-items:center; margin:32px 0; flex-wrap:wrap; }
.share-row .label{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--muted); letter-spacing:0.05em; text-transform:uppercase; margin-right:6px; }
.share-btn{
  width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); color:var(--muted); transition:all 0.2s; cursor:pointer; background:none;
}
.share-btn:hover{ border-color:var(--gold-deep); color:var(--gold-bright); }

/* Budget form */
.form-box{ border:1px solid var(--line); background:var(--bg-alt); padding:40px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; }
.form-grid .full{ grid-column:1 / -1; }
.field label{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--muted); margin-bottom:8px;
}
.field input, .field select, .field textarea{
  width:100%; background:var(--bg); border:1px solid var(--line); color:var(--cream);
  padding:13px 14px; font-family:'Inter',sans-serif; font-size:14px; outline:none; transition:border-color 0.2s;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold-deep); }
.field textarea{ resize:vertical; min-height:100px; }
.form-note{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--muted); margin-top:18px; }
.form-note b{ color:var(--gold-bright); font-weight:500; }

/* Related articles */
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px; }

/* Pagination (scaffold for future) */
.pagination{ display:flex; gap:10px; justify-content:center; margin-top:48px; }
.pagination a, .pagination span{
  width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--muted);
}
.pagination a:hover{ border-color:var(--gold-deep); color:var(--gold-bright); }
.pagination .current{ background:var(--gold); color:var(--bg); border-color:var(--gold); }

section{ padding:64px 0; }
.sec-head{ max-width:640px; margin-bottom:36px; }
.sec-head h2{ font-size:clamp(28px,3.6vw,40px); color:var(--cream); margin-top:14px; }
.sec-head p{ color:var(--muted); margin-top:14px; font-size:15px; }

/* Accessibility: focus states */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, label:focus-visible{
  outline:2px solid var(--gold-bright); outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; animation:none !important; }
}

@media (max-width:920px){
  .featured{ grid-template-columns:1fr; }
  .article-grid{ grid-template-columns:repeat(2,1fr); }
  .related-grid{ grid-template-columns:repeat(2,1fr); }
  .author-box{ grid-template-columns:1fr; text-align:center; }
  .author-box img{ margin:0 auto; }
  .form-grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .wrap{ padding:0 20px; }
  .blog-hero{ padding:150px 0 40px; }
  .article-grid{ grid-template-columns:1fr; }
  .related-grid{ grid-template-columns:1fr; }
  .cta-box{ flex-direction:column; align-items:flex-start; }
}
