/* ============================================================
   front.css — v7 (organizado)
   Estrutura:
   1. Variáveis & Reset
   2. Cursor & Scrollbar
   3. Navegação
   4. Hero
   5. Marquee
   6. Sections & Tipografia
   7. Sobre
   8. Botões
   9. Serviços
   10. Trabalhos
   11. Blog (cards, lista, post)
   12. Testemunhos
   13. Contacto & Formulário
   14. Flutuantes
   15. Modais
   16. Footer
   17. Reveal / Animações
   18. Páginas secundárias (hero, breadcrumb, sidebar, processo)
   19. Responsive
   ============================================================ */

/* ── 1. VARIÁVEIS & RESET ── */
:root {
  --bg: #0a0a0f;
  --sf: #111118;
  --sf2: #16161f;
  --bd: rgba(255,255,255,.06);
  --tx: #e8e8f0;
  --mu: #6b6b80;
  --ac: #c8f564;
  --ac2: #5664f5;
  --ac3: #f56456;
  --ac4: #f0b464;
  --gl: rgba(200,245,100,.12);
}
*,*::before,*::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--tx); font-family: 'Outfit', sans-serif; font-weight: 300; overflow-x: hidden; }

/* ── 2. CURSOR & SCROLLBAR ── */
@media (pointer: fine) {
  body { cursor: none; }
  #cr  { position: fixed; width: 12px; height: 12px; background: var(--ac); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); mix-blend-mode: difference; }
  #crr { position: fixed; width: 40px; height: 40px; border: 1.5px solid var(--ac); border-radius: 50%; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); opacity: .5; }
}
@media (pointer: coarse) { #cr, #crr { display: none; } }
body::before { content: ''; position: fixed; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E"); pointer-events: none; z-index: 2000; opacity: .35; }
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--ac); border-radius: 2px; }

/* ── 3. NAVEGAÇÃO ── */
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 500; padding: 1rem 4vw; display: flex; align-items: center; justify-content: space-between; flex-wrap: nowrap; backdrop-filter: blur(20px); background: rgba(10,10,15,.88); border-bottom: 1px solid var(--bd); }
.logo { font-family: 'Bebas Neue', sans-serif; font-size: 1.6rem; letter-spacing: .05em; color: var(--tx); text-decoration: none; line-height: 1; }
.logo span { color: var(--ac); }
.logo-s { font-family: 'DM Mono', monospace; font-size: .5rem; letter-spacing: .15em; text-transform: uppercase; color: var(--mu); display: block; margin-top: .08rem; }
.nl { display: flex; gap: 0; list-style: none; background: rgba(22,22,31,.8); backdrop-filter: blur(10px); border: 1px solid var(--bd); border-radius: 40px; padding: .15rem; box-shadow: 0 4px 20px rgba(0,0,0,.3); }
.nl a { font-family: 'Outfit', sans-serif; font-size: .72rem; font-weight: 400; letter-spacing: .02em; text-transform: uppercase; color: var(--mu); text-decoration: none; transition: all .3s ease; padding: .35rem .72rem; display: flex; align-items: center; gap: .22rem; border-radius: 30px; white-space: nowrap; }
.nl a i { font-size: .88rem; color: var(--mu); transition: color .3s; }
.nl a:hover { color: #fff; background: rgba(200,245,100,.1); }
.nl a:hover i { color: var(--ac); }
.nc { font-family: 'Outfit', sans-serif; font-size: .8rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: #25d366; border: none; border-radius: 40px; padding: .5rem 1.5rem; cursor: pointer; transition: background .3s, transform .2s; text-decoration: none; display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; box-shadow: 0 4px 15px rgba(37,211,102,.2); }
.nc i { font-size: 1.1rem; }
.nc:hover { background: #20b859; transform: translateY(-2px); }
.bg2 { display: none; flex-direction: column; gap: 5px; cursor: pointer; border: none; background: none; padding: .3rem; }
.bg2 span { display: block; width: 24px; height: 1.5px; background: var(--tx); transition: all .3s; }
.bg2.op span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.bg2.op span:nth-child(2) { opacity: 0; }
.bg2.op span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.mm { position: fixed; inset: 0; background: rgba(10,10,15,.97); z-index: 490; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(.5rem,2.5vh,1.5rem); opacity: 0; pointer-events: none; transition: opacity .3s; }
.mm.op { opacity: 1; pointer-events: all; }
.mm a { font-family: 'Bebas Neue', sans-serif; font-size: clamp(1.6rem,7vw,2.8rem); color: var(--mu); text-decoration: none; letter-spacing: .05em; transition: color .3s; cursor: pointer; }
.mm a:hover { color: var(--ac); }

/* ── 4. HERO ── */
#header { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 4.5rem 4vw 0; position: relative; overflow: hidden; }
.hg { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size: 80px 80px; mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%); pointer-events: none; }
.ob { position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }
.ob1 { width: 600px; height: 600px; background: radial-gradient(circle,rgba(86,100,245,.2) 0%,transparent 70%); top: -80px; right: -80px; animation: fl1 9s ease-in-out infinite; }
.ob2 { width: 380px; height: 380px; background: radial-gradient(circle,rgba(200,245,100,.1) 0%,transparent 70%); bottom: 0; left: -40px; animation: fl2 11s ease-in-out infinite; }
@keyframes fl1 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(-25px,35px); } }
@keyframes fl2 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(35px,-25px); } }
.heb { font-family: 'DM Mono', monospace; font-size: .65rem; letter-spacing: .28em; text-transform: uppercase; color: var(--ac); margin-bottom: 1.2rem; opacity: 0; animation: fu .8s ease forwards .3s; display: flex; align-items: center; gap: .9rem; }
.heb::before { content: ''; display: inline-block; width: 30px; height: 1px; background: var(--ac); }
.ht { font-family: 'Bebas Neue', sans-serif; font-size: clamp(3.5rem,10vw,9.5rem); line-height: .9; letter-spacing: -.02em; margin-bottom: 1.4rem; opacity: 0; animation: fu .8s ease forwards .5s; }
.ht .ol { display: block; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.15); }
.ht .aw { color: var(--ac); position: relative; display: inline-block; }
.ht .aw::after { content: attr(data-text); position: absolute; inset: 0; color: var(--ac); filter: blur(18px); opacity: .35; }
.twl { font-family: 'DM Mono', monospace; font-size: clamp(.78rem,1.3vw,.96rem); color: var(--ac); min-height: 1.5rem; margin-bottom: .8rem; opacity: 0; animation: fu .8s ease forwards .62s; }
.hs { font-size: clamp(.86rem,1.4vw,1rem); color: var(--mu); max-width: 480px; line-height: 1.85; margin-bottom: .8rem; opacity: 0; animation: fu .8s ease forwards .75s; }
.hb { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; opacity: 0; animation: fu .8s ease forwards .9s; margin-bottom: .5rem; }
.hb .bo { border-color: rgba(107,107,128,.3); color: var(--mu); background: transparent; }
.hb .bo:hover { border-color: var(--ac); color: var(--ac); }
.bav { position: absolute; bottom: 2rem; right: 4vw; display: flex; align-items: center; gap: .7rem; font-family: 'DM Mono', monospace; font-size: .56rem; letter-spacing: .18em; text-transform: uppercase; color: var(--mu); opacity: 0; animation: fu 1s ease forwards 1.1s; }
.bdt { width: 8px; height: 8px; border-radius: 50%; background: var(--ac); animation: pl 2s ease infinite; }
@keyframes pl { 0%,100% { box-shadow: 0 0 0 0 rgba(200,245,100,.4); } 50% { box-shadow: 0 0 0 8px transparent; } }
.sind { position: absolute; bottom: 1.8rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .5rem; opacity: 0; animation: fu 1s ease forwards 1.1s; }
.sind span { font-family: 'DM Mono', monospace; font-size: .54rem; letter-spacing: .2em; text-transform: uppercase; color: var(--mu); writing-mode: vertical-rl; }
.slin { width: 1px; height: 46px; background: linear-gradient(to bottom, var(--ac), transparent); animation: sla 2s ease-in-out infinite; }
@keyframes sla { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@keyframes fu { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

/* ── 5. MARQUEE ── */
.mw { overflow: hidden; border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); padding: .8rem 0; background: var(--sf); }
.mt { display: flex; gap: 3.5rem; width: max-content; animation: mq 22s linear infinite; }
.mt.rv { animation-name: mq-rv; }
.mi { font-family: 'Bebas Neue', sans-serif; font-size: 1rem; letter-spacing: .1em; color: var(--mu); white-space: nowrap; display: flex; align-items: center; gap: 1.5rem; }
.mi::after { content: '✦'; color: var(--ac); font-size: .6rem; }
.mi-g { color: var(--ac) !important; }
.mi-w { color: #ffffff !important; }
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes mq-rv { from { transform: translateX(-50%); } to { transform: translateX(0); } }

/* ── 6. SECTIONS & TIPOGRAFIA ── */
section { padding: 6rem 4vw; position: relative; }
.sl { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .28em; text-transform: uppercase; color: var(--ac); display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; }
.sl::before { content: ''; display: inline-block; width: 26px; height: 1px; background: var(--ac); }
.st2 { font-family: 'DM Serif Display', serif; font-size: clamp(2rem,4.2vw,3.4rem); line-height: 1.1; margin-bottom: 1rem; }
.st2 em { font-style: italic; color: var(--ac); }
.inn { max-width: 1200px; margin: 0 auto; }

/* ── 7. SOBRE ── */
#sobre { background: var(--sf); }
#btn-sobre {border-color: rgba(240,180,100,.3);color: var(--ac4);}
#btn-sobre i {color: var(--ac4);}
#btn-sobre:hover {background: rgba(240,180,100,.08);border-color: rgba(240,180,100,.5);color: var(--ac4);}
.sg { display: grid; grid-template-columns: 1fr 1.15fr; gap: 4.5rem; align-items: center; }
.sv { position: relative; background: var(--bg); border: 1px solid var(--bd); overflow: hidden; border-radius: 10px; }
.cb-corner { position: absolute; width: 16px; height: 16px; border-color: var(--ac); border-style: solid; opacity: .4; }
.cb-corner.tl { top: 0; left: 0; border-width: 2px 0 0 2px; }
.cb-corner.br { bottom: 0; right: 0; border-width: 0 2px 2px 0; }
.vt { position: absolute; font-family: 'DM Mono', monospace; font-size: .5rem; letter-spacing: .1em; color: var(--ac); text-transform: uppercase; }
.vt.tl { top: .75rem; left: .75rem; }
.vt.br { bottom: .75rem; right: .75rem; text-align: right; }
.sv video, .sv img.pi { width: 100%; display: block; filter: grayscale(25%) contrast(1.05); transition: filter .5s; }
.sv:hover video, .sv:hover img.pi { filter: grayscale(0%) contrast(1); }
.vcard { position: absolute; bottom: 1rem; left: 1rem; right: 1rem; background: rgba(10,10,15,.9); backdrop-filter: blur(12px); border: 1px solid var(--bd); padding: .8rem 1rem; display: flex; justify-content: space-between; align-items: center; }
.vn { font-family: 'DM Serif Display', serif; font-size: .95rem; }
.vr { font-family: 'DM Mono', monospace; font-size: .5rem; color: var(--ac); letter-spacing: .1em; text-transform: uppercase; margin-top: .1rem; }
.vs span { display: block; font-family: 'Bebas Neue', sans-serif; font-size: 1.7rem; color: var(--ac); line-height: 1; text-align: right; }
.vs small { font-family: 'DM Mono', monospace; font-size: .5rem; color: var(--mu); letter-spacing: .1em; text-transform: uppercase; }
.stxt p { color: var(--mu); line-height: 1.9; margin-bottom: 1rem; font-size: .94rem; }
.sr2 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.3rem; padding-top: 1.6rem; border-top: 1px solid var(--bd); }
.sn3 { font-family: 'Bebas Neue', sans-serif; font-size: 2.8rem; color: #fff !important; line-height: 1; display: block; }
.sla2 { font-family: 'DM Mono', monospace; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ac); margin-top: .2rem; display: block; }
.sb2 { display: flex; gap: .65rem; flex-wrap: wrap; margin-top: 1.3rem; }
.sb2 .bo i { font-size: 1.1rem; }
.sb2 .bo { font-size: .65rem; padding: .7rem 1.3rem; gap: .55rem; }

/* ── 8. BOTÕES ── */
.ba { font-family: 'DM Mono', monospace; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; padding: .65rem 1.4rem; background: var(--ac); color: #fff !important; border: 2px solid var(--ac); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; transition: background .25s, color .25s, border-color .25s; font-weight: 700; }
.ba:hover { background: #fff; color: var(--ac) !important; border-color: var(--ac); }
.bo { font-family: 'DM Mono', monospace; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; padding: .65rem 1.2rem; color: var(--mu); border: 1px solid var(--bd); background: none; cursor: pointer; text-decoration: none; transition: color .3s, border-color .3s; display: inline-flex; align-items: center; gap: .45rem; }
.bo:hover { color: var(--tx); border-color: rgba(255,255,255,.25); }
.bwa { border-color: rgba(37,211,102,.3) !important; color: #25d366 !important; }
.bwa:hover { background: rgba(37,211,102,.06) !important; }
.bfb { border-color: rgba(66,103,178,.3) !important; color: #4267b2 !important; }
.bfb:hover { background: rgba(66,103,178,.06) !important; }
.btn-ver-todos { font-family: 'DM Mono', monospace; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; padding: .7rem 1.8rem; background: none; border: 1px solid var(--bd); color: var(--mu); cursor: pointer; text-decoration: none; transition: border-color .3s, color .3s, background .3s; display: inline-flex; align-items: center; gap: .6rem; margin-top: 2rem; }
.btn-ver-todos:hover { border-color: var(--ac); color: var(--ac); }
.plm { text-align: center; }

/* ── 9. SERVIÇOS ── */
#oque { background: var(--bg); }
.scg { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; margin-top: 3rem; }
.sc { background: var(--sf); border: 1px solid var(--bd); padding: 2rem; position: relative; overflow: visible; cursor: default; transition: border-color .4s, transform .4s; display: flex; flex-direction: column; }
.sc::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg,var(--gl) 0%,transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.sc:hover { border-color: rgba(200,245,100,.28); transform: translateY(-4px); }
.sc:hover::before { opacity: 1; }
.sc:hover h3 { color: var(--ac); }
.sci { font-size: 1.8rem; margin-bottom: .6rem; display: block; color: var(--ac); }
.sc h3 { font-family: 'DM Serif Display', serif; font-size: 1.18rem; margin-bottom: .6rem; transition: color .4s; }
.sc-preview { color: var(--mu); font-size: .88rem; line-height: 1.65; margin-bottom: .9rem; flex: 1; }
.tgs { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .8rem; }
.tg { font-family: 'DM Mono', monospace; font-size: .54rem; letter-spacing: .09em; text-transform: uppercase; color: var(--ac); border: 1px solid rgba(200,245,100,.2); padding: .18rem .58rem; }
.scb { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; padding: .52rem 1rem; background: none; border: 1px solid rgba(200,245,100,.3); color: var(--ac); cursor: pointer; transition: background .25s, color .25s; width: 100%; margin-top: auto; text-decoration: none; display: block; text-align: center; position: relative; z-index: 5; }
.scb:hover { background: var(--ac); color: #0a0a0f; }

/* ── 10. TRABALHOS ── */
#trabalhos { background: var(--sf); }
.th { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 2.5rem; flex-wrap: wrap; gap: 1.5rem; }
.pg { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.wi { position: relative; overflow: hidden; border: 1px solid var(--bd); background: var(--bg); cursor: pointer; aspect-ratio: 16/10; text-decoration: none; display: block; }
.wi img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s, filter .4s; filter: grayscale(20%); }
.wi:hover img { transform: scale(1.06); filter: grayscale(0%); }
.wi-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.3); opacity: 0; transition: opacity .3s; pointer-events: none; z-index: 1; }
.wi:hover .wi-overlay { opacity: 1; }
.wi-lbl { position: absolute; bottom: 0; left: 0; right: 0; padding: .7rem 1rem; background: linear-gradient(transparent,rgba(0,0,0,.7)); pointer-events: none; z-index: 2; }
.wi-cat { font-family: 'DM Mono', monospace; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ac); display: block; margin-bottom: .2rem; }
.wi-nome { font-family: 'Outfit', sans-serif; font-weight: 500; font-size: .85rem; color: var(--tx); display: block; line-height: 1.3; }
.wo { position: absolute; inset: 0; background: rgba(0,0,0,.75); display: flex; align-items: center; justify-content: center; gap: .7rem; opacity: 0; transition: opacity .32s; z-index: 3; }
.wi:hover .wo { opacity: 1; }
.wdet { font-family: 'DM Mono', monospace; font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; padding: .4rem .9rem; background: none; border: 1px solid rgba(255,255,255,.28); color: var(--tx); cursor: pointer; transition: border-color .3s, color .3s; text-decoration: none; }
.wdet:hover { border-color: var(--ac); color: var(--ac); }

/* ── 11. BLOG ── */
/* Cards de post (usados em index, blog.php e blog_post.php) */
.post-card { background: var(--sf); border: 1px solid var(--bd); text-decoration: none; display: flex; flex-direction: column; transition: border-color .3s; }
.post-card:hover { border-color: rgba(200,245,100,.28); }
.post-card-img { aspect-ratio: 16/9; overflow: hidden; position: relative; background: var(--sf2); }
.post-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s, filter .3s; filter: grayscale(15%); }
.post-card:hover .post-card-img img { transform: scale(1.04); filter: grayscale(0%); }
.post-card-badge { position: absolute; top: .6rem; left: .6rem; font-family: 'DM Mono', monospace; font-size: .48rem; letter-spacing: .12em; text-transform: uppercase; background: var(--ac); color: #0a0a0f !important; padding: .15rem .5rem; font-weight: 700; z-index: 5; }
.post-card-body { padding: 1.1rem; flex: 1; display: flex; flex-direction: column; }
.post-card-cat { font-family: 'DM Mono', monospace; font-size: .52rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ac); display: block; margin-bottom: .4rem; }
.post-card-title { font-family: 'DM Serif Display', serif; font-size: 1.05rem; color: var(--tx); margin-bottom: .5rem; line-height: 1.3; transition: color .3s; }
.post-card:hover .post-card-title { color: var(--ac); }
.post-card-excerpt { font-size: .88rem; color: var(--mu); line-height: 1.6; flex: 1; margin-bottom: .8rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post-card-meta { display: flex; align-items: center; justify-content: space-between; font-family: 'DM Mono', monospace; font-size: .52rem; color: var(--mu); }
.post-card-meta span { display: flex; align-items: center; gap: .28rem; }
/* Grid de destaque (index) */
.blog-destaque { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--bd); }
.blog-destaque .sl { margin-bottom: 2rem; }
.blog-destaque-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
/* Página blog.php */
.blog-hero { padding: 7rem 4vw 3rem; background: var(--sf); border-bottom: 1px solid var(--bd); position: relative; overflow: hidden; }
.blog-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at top right,rgba(86,100,245,.1),transparent 60%); }
.blog-bar { display: flex; gap: .7rem; flex-wrap: wrap; align-items: center; max-width: 1200px; margin: 2rem auto 1rem auto; padding: 1.2rem 4vw; background: var(--sf); border: 1.5px solid rgba(200,245,100,.3); border-radius: 12px; box-shadow: 0 0 18px rgba(200,245,100,.05); }
.blog-search { display: flex; flex: 1 1 250px; min-width: 200px; }
.blog-search input { flex: 1; background: var(--sf2); border: 1px solid var(--bd); border-right: none; color: var(--tx); padding: .65rem .9rem; font-family: 'Outfit', sans-serif; font-size: .86rem; outline: none; transition: border-color .3s; }
.blog-search input:focus { border-color: var(--ac); }
.blog-search button { background: var(--ac); color: #0a0a0f; border: none; padding: .65rem 1rem; cursor: pointer; font-size: .9rem; transition: background .25s; }
.blog-search button:hover { background: #d4ff70; }
.blog-filtros-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.2rem; }
.blog-filtros-titulo { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; color: var(--mu); display: flex; align-items: center; gap: .4rem; }
.blog-filtros-titulo i { color: var(--ac); font-size: .75rem; }
.blog-filtros-acoes { display: flex; align-items: center; gap: .5rem; }
.blog-filtro-limpar { font-family: 'DM Mono', monospace; font-size: .6rem; color: var(--mu); text-decoration: none; border: 1px solid var(--bd); padding: .35rem .65rem; white-space: nowrap; display: flex; align-items: center; gap: .3rem; border-radius: 4px; transition: color .2s, border-color .2s; }
.blog-filtro-limpar:hover { color: var(--ac); border-color: rgba(200,245,100,.3); }
.blog-view-btns { display: flex; gap: .3rem; }
.view-btn { width: 34px; height: 34px; border: 1px solid var(--bd); background: none; color: var(--mu); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: .9rem; transition: all .25s; }
.view-btn:hover, .view-btn.ativa { background: var(--ac); border-color: var(--ac); color: #0a0a0f; }
.blog-layout { display: grid; grid-template-columns: 1fr 260px; gap: 2.5rem; max-width: 1200px; margin: 0 auto; padding: 2.5rem 4vw 5rem; }
.blog-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.3rem; }
/* Lista */
.blog-list { display: flex; flex-direction: column; gap: .8rem; }
.post-list-item { background: var(--sf); border: 1px solid var(--bd); text-decoration: none; display: grid; grid-template-columns: 120px 1fr; transition: border-color .3s; }
.post-list-item:hover { border-color: rgba(200,245,100,.28); }
.post-list-img { aspect-ratio: 4/3; overflow: hidden; background: var(--sf2); }
.post-list-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s, filter .3s; filter: grayscale(15%); }
.post-list-item:hover .post-list-img img { transform: scale(1.04); filter: grayscale(0%); }
.post-list-body { padding: .9rem 1.1rem; display: flex; flex-direction: column; justify-content: center; }
.post-list-cat { font-family: 'DM Mono', monospace; font-size: .5rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ac); margin-bottom: .3rem; }
.post-list-title { font-family: 'DM Serif Display', serif; font-size: .98rem; color: var(--tx); transition: color .3s; margin-bottom: .4rem; line-height: 1.3; }
.post-list-item:hover .post-list-title { color: var(--ac); }
.post-list-excerpt { font-size: .88rem; color: var(--mu); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: .5rem; }
.post-list-meta { font-family: 'DM Mono', monospace; font-size: .5rem; color: var(--mu); display: flex; gap: .8rem; }
/* Sidebar blog */
.blog-sidebar .sb-block, .blog-sidebar .sidebar-block { background: var(--sf); border: 1px solid var(--bd); border-top: 2px solid var(--ac); padding: 1.5rem; margin-bottom: 1rem; }
.blog-sidebar .sidebar-block { position: static; }
.sb-title, .sidebar-title { font-family: 'DM Mono', monospace; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ac); margin-bottom: 1rem; }
.cat-list { list-style: none; }
.cat-list li a { font-size: .88rem; color: var(--mu); text-decoration: none; display: flex; justify-content: space-between; align-items: center; padding: .42rem 0; border-bottom: 1px solid var(--bd); transition: color .25s; text-transform: none; letter-spacing: 0; font-family: 'Outfit', sans-serif; font-weight: 300; }
.cat-list li:last-child a { border-bottom: none; }
.cat-list li a:hover { color: var(--tx); }
.cat-list li a.ativa { color: var(--ac); }
.tag-cloud { display: flex; flex-wrap: wrap; gap: .35rem; }
.tag-pill { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; color: var(--ac); border: 1px solid rgba(200,245,100,.2); padding: .18rem .58rem; text-decoration: none; transition: background .25s, color .25s; }
.tag-pill:hover, .tag-pill.ativa { background: var(--ac); color: #0a0a0f; border-color: var(--ac); }
/* Paginação */
.pag, .pag-wrap { display: flex; gap: .35rem; justify-content: center; margin-top: 1.8rem; flex-wrap: wrap; }
.pag a { font-family: 'DM Mono', monospace; font-size: .58rem; letter-spacing: .09em; text-transform: uppercase; padding: .42rem .85rem; background: none; border: 1px solid var(--bd); color: var(--mu); text-decoration: none; transition: all .25s; }
.pag a:hover, .pag a.ativa { background: var(--ac); border-color: var(--ac); color: #0a0a0f; }
/* Conteúdo de post */
.post-hero { padding: 7rem 4vw 0; background: var(--sf); border-bottom: 1px solid var(--bd); position: relative; overflow: hidden; }
.post-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at top right,rgba(86,100,245,.1),transparent 60%); }
.post-hero-inner { max-width: 1200px; margin: 0 auto; padding-bottom: 0; }
.post-cat-badge { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ac); border: 1px solid rgba(200,245,100,.25); padding: .25rem .8rem; display: inline-block; margin-bottom: 1rem; }
.post-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(2.5rem,6vw,5.5rem); line-height: .93; letter-spacing: -.02em; margin-bottom: 1.2rem; }
.post-meta { display: flex; align-items: center; gap: 1.5rem; font-family: 'DM Mono', monospace; font-size: .7rem; color: var(--mu); flex-wrap: wrap; padding-bottom: 1.8rem; }
.post-meta span { display: flex; align-items: center; gap: .35rem; }
.post-capa { width: 100%; max-height: 480px; object-fit: cover; display: block; border-top: 1px solid var(--bd); }
.post-capa-video { width: 100%; max-height: 480px; display: block; border-top: 1px solid var(--bd); }
.post-layout { display: grid; grid-template-columns: 1fr 280px; gap: 3rem; max-width: 1200px; margin: 0 auto; padding: 3rem 4vw 5rem; }
.post-layout .blog-sidebar { position: sticky; top: 80px; align-self: start; }
.post-content { font-size: .96rem; color: var(--tx); line-height: 1.9; }
.post-content h2 { font-family: 'DM Serif Display', serif; font-size: 1.6rem; color: var(--tx); margin: 2rem 0 .8rem; }
.post-content h3 { font-family: 'DM Serif Display', serif; font-size: 1.25rem; color: var(--tx); margin: 1.5rem 0 .6rem; }
.post-content p { margin-bottom: 1.1rem; }
.post-content strong { color: var(--tx); font-weight: 600; }
.post-content em { color: var(--ac); font-style: italic; }
.post-content ul, .post-content ol { padding-left: 1.4rem; margin-bottom: 1.1rem; }
.post-content li { margin-bottom: .4rem; }
.post-content a { color: var(--ac); text-decoration: none; border-bottom: 1px solid rgba(200,245,100,.3); }
.post-content a:hover { border-color: var(--ac); }
/* ── BLOCKQUOTE — design global (blog, sobre, trabalhos, serviços) ── */
.post-content blockquote,
.rich-content blockquote,
.svc-desc blockquote,
.stxt blockquote {
  position: relative;
  border-left: 4px solid var(--ac);
  padding: 1.4rem 1.6rem 1.4rem 2.8rem;
  background: linear-gradient(135deg, rgba(200,245,100,.06) 0%, rgba(200,245,100,.02) 100%);
  margin: 2rem 0;
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.8;
  color: var(--tx);
  border-radius: 0 10px 10px 0;
  box-shadow: 0 2px 18px rgba(200,245,100,.07), inset 0 0 0 1px rgba(200,245,100,.08);
}
.post-content blockquote::before,
.rich-content blockquote::before,
.svc-desc blockquote::before,
.stxt blockquote::before {
  content: '\201C';
  position: absolute;
  left: .5rem;
  top: .3rem;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 3rem;
  line-height: 1;
  color: var(--ac);
  opacity: .7;
  font-style: normal;
}
html.lm .post-content blockquote,
html.lm .rich-content blockquote,
html.lm .svc-desc blockquote,
html.lm .stxt blockquote {
  background: linear-gradient(135deg, rgba(74,140,0,.07) 0%, rgba(74,140,0,.02) 100%);
  box-shadow: 0 2px 18px rgba(74,140,0,.08), inset 0 0 0 1px rgba(74,140,0,.10);
}
html.lm .post-content blockquote::before,
html.lm .rich-content blockquote::before,
html.lm .svc-desc blockquote::before,
html.lm .stxt blockquote::before {
  color: #3a8000;
}
.post-content img { max-width: 100%; border: 1px solid var(--bd); display: block; margin: 1.2rem auto; }
.post-content code { font-family: 'DM Mono', monospace; font-size: .82rem; background: var(--sf2); padding: .18rem .45rem; border-radius: 2px; color: var(--ac); }
.post-content pre { background: var(--sf2); border: 1px solid var(--bd); padding: 1.2rem; overflow-x: auto; margin-bottom: 1.1rem; }
.post-content pre code { background: none; padding: 0; }
.post-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--bd); }
.post-tag { font-family: 'DM Mono', monospace; font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mu); border: 1px solid var(--bd); padding: .2rem .65rem; text-decoration: none; transition: color .25s, border-color .25s; }
.post-tag:hover { color: var(--ac); border-color: rgba(200,245,100,.3); }
/* Relacionados */
.rel-posts { margin-top: 0; padding-top: 0; border-top: none; }
.rel-posts-outer { background: var(--bg); padding: 3rem 4vw 4rem; border-top: 1px solid var(--bd); }
html.lm .rel-posts-outer { background: var(--sf2); }
.rel-posts-outer .rel-posts { max-width: 1200px; margin: 0 auto; }
.rel-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; margin-top: 2rem; }
.rel-card { background: var(--sf); border: 1px solid var(--bd); text-decoration: none; display: block; transition: border-color .3s; }
.rel-card:hover { border-color: rgba(200,245,100,.28); }
.rel-card-img { aspect-ratio: 16/9; overflow: hidden; background: var(--sf2); }
.rel-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; filter: grayscale(15%); }
.rel-card:hover .rel-card-img img { transform: scale(1.04); filter: grayscale(0%); }
.rel-card-body { padding: .9rem; }
.rel-card-title { font-family: 'DM Serif Display', serif; font-size: .92rem; color: var(--tx); transition: color .3s; }
.rel-card:hover .rel-card-title { color: var(--ac); }

/* ── 12. TESTEMUNHOS ── */
#testemunhos { background: var(--bg); }
.cw { position: relative; margin-top: 2.5rem; border: 1px solid var(--bd); overflow: hidden; background: var(--sf); }
.ci { position: relative; width: 100%; overflow: hidden; min-height: 100px; }
.cit { display: none; width: 100%; }
.cit.ac { display: block; }
.cit img { width: 100%; display: block; max-height: 600px; object-fit: contain; opacity: 0; transition: opacity .3s; background: var(--sf2); }
.cit img.ld { opacity: 1; }
.ccc { display: flex; justify-content: center; align-items: center; gap: 1.5rem; padding: 1.2rem; border-top: 1px solid var(--bd); background: var(--sf2); }
.cb2 { width: 36px; height: 36px; border-radius: 50%; background: none; border: 1px solid var(--bd); color: var(--mu); cursor: pointer; font-size: .82rem; display: flex; align-items: center; justify-content: center; transition: border-color .3s, color .3s; }
.cb2:hover { border-color: var(--ac); color: var(--ac); }
.fbl { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mu); text-decoration: none; border: 1px solid var(--bd); padding: .5rem 1.2rem; display: inline-flex; align-items: center; gap: .45rem; transition: color .3s, border-color .3s; }
.fbl:hover { color: var(--ac); border-color: rgba(200,245,100,.28); }

/* ── 13. CONTACTO & FORMULÁRIO ── */
#contact { background: var(--sf); border-top: 1px solid var(--bd); }
.ctg { display: grid; grid-template-columns: 1fr 1.15fr; gap: 4.5rem; align-items: start; }
.ctcrd { display: flex; align-items: center; gap: .85rem; padding: .9rem 0; border-bottom: 1px solid var(--bd); text-decoration: none; transition: color .3s; cursor: pointer; }
.cic { width: 28px; height: 28px; border: 1px solid var(--bd); display: flex; align-items: center; justify-content: center; font-size: .85rem; flex-shrink: 0; transition: border-color .3s; color: var(--mu); }
.ctcrd:hover .cic { border-color: rgba(200,245,100,.28); color: var(--ac); }
.ccl { font-family: 'DM Mono', monospace; font-size: .42rem; letter-spacing: .12em; text-transform: uppercase; color: #fff; display: block; margin-top: .08rem; opacity: .75; }
.ccv { font-size: .68rem; color: var(--tx); transition: color .3s; word-break: break-all; font-weight: 400; line-height: 1.2; }
.ctcrd:hover .ccv { color: var(--ac); }
.ctc { display: flex; flex-direction: column; }
.cf { display: flex; flex-direction: column; gap: .9rem; }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.fg { display: flex; flex-direction: column; gap: .28rem; }
.fg label { font-family: 'DM Mono', monospace; font-size: .54rem; letter-spacing: .18em; text-transform: uppercase; color: var(--mu); }
.fg input, .fg textarea { background: var(--bg); border: 1px solid var(--bd); color: var(--tx); padding: .78rem .9rem; font-family: 'Outfit', sans-serif; font-size: .9rem; outline: none; transition: border-color .3s; resize: none; cursor: text; width: 100%; }
.fg input:focus, .fg textarea:focus { border-color: var(--ac); }
.fg textarea { min-height: 100px; }
.fg.iv .emsg { display: block; }
.fg.iv input, .fg.iv textarea { border-color: var(--ac3); }
.emsg { font-family: 'DM Mono', monospace; font-size: .55rem; color: var(--ac3); display: none; margin-top: .15rem; }
.chr { display: flex; align-items: flex-start; gap: .75rem; }
.chr input[type=checkbox] { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; cursor: pointer; accent-color: var(--ac); appearance: auto; -webkit-appearance: auto; }
.chr label { font-size: .7rem; color: var(--mu); line-height: 1.55; cursor: pointer; }
.chr a { color: var(--ac); text-decoration: none; }
.chr a:hover { text-decoration: underline; }
.bsub { font-family: 'DM Mono', monospace; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; padding: 1rem; background: var(--ac); color: #1a1a2e !important; font-weight: 800; border: none; cursor: pointer; transition: transform .2s, background .3s; width: 100%; -webkit-text-fill-color: #1a1a2e; }
.bsub:hover { transform: translateY(-2px); background: #d4ff70; color: #1a1a2e !important; -webkit-text-fill-color: #1a1a2e; }
.bsub:disabled { opacity: .6; cursor: not-allowed; }
.pl2 { display: flex; gap: 1.2rem; margin-top: .6rem; flex-wrap: wrap; }
.pl2 a { font-family: 'DM Mono', monospace; font-size: .55rem; letter-spacing: .09em; text-transform: uppercase; color: var(--mu); text-decoration: none; display: flex; align-items: center; gap: .3rem; transition: color .3s; cursor: pointer; }
.pl2 a:hover { color: var(--ac); }
.ohh { position: absolute; left: -9999px; opacity: 0; pointer-events: none; height: 0; }

/* ── 14. FLUTUANTES ── */
.flt { position: fixed; bottom: 28px; right: 28px; display: flex; flex-direction: column; gap: .6rem; z-index: 400; }
.flt a { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--bd); background: var(--sf); display: flex; align-items: center; justify-content: center; font-size: 1rem; text-decoration: none; cursor: pointer; transition: border-color .3s, transform .2s, background .3s; }
.flt { align-items: flex-end; }
.flt a.wa {
    color: var(--ac);
    border: 1px solid rgba(200,245,100,.18);
    background: var(--sf);
    font-size: 1rem;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    position: relative;
    overflow: visible;
    transition: border-color .3s, transform .2s, background .3s;
    flex-shrink: 0;
}
.flt a.wa i { font-size: 1.1rem; color: var(--ac); transition: color .3s; }
.flt .wa-text {
    position: absolute;
    right: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    white-space: nowrap;
    font-family: 'DM Mono', monospace;
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    background: var(--sf);
    color: var(--ac);
    border: 1px solid rgba(200,245,100,.18);
    padding: .45rem 1rem;
    border-radius: 30px;
    pointer-events: none;
    transition: opacity .3s, right .3s;
}
.flt a.wa:hover {
    background: rgba(200,245,100,.06);
    border-color: rgba(200,245,100,.35);
    transform: translateY(-2px);
}
.flt a.wa:hover i { color: var(--ac); }
.flt a.wa:hover .wa-text {
    opacity: 1;
    right: calc(100% + 6px);
}
.flt a.tp { color: var(--ac); border-color: rgba(200,245,100,.18); }
.flt a.tp:hover { background: rgba(200,245,100,.06); transform: translateY(-2px); }

/* ── 15. MODAIS ── */
#m-sobre .mht {
    color: var(--ac4);
}
#m-sobre .mht i {
    color: var(--ac4);
}
.mo { position: fixed; inset: 0; background: rgba(0,0,0,.87); backdrop-filter: blur(7px); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; opacity: 0; pointer-events: none; transition: opacity .3s; }
.mo.op { opacity: 1; pointer-events: all; }
.mb { background: var(--sf); border: 1px solid var(--bd); max-width: 820px; width: 100%; max-height: 90vh; overflow-y: auto; transform: translateY(30px); transition: transform .3s; }
.mo.op .mb { transform: translateY(0); }
.mhd { display: flex; align-items: center; justify-content: space-between; padding: 1.3rem 1.7rem; border-bottom: 1px solid var(--bd); }
.mht { font-family: 'DM Serif Display', serif; font-size: 1.3rem; display: flex; align-items: center; gap: .7rem; }
.mcl { font-size: 1.1rem; background: none; border: none; color: var(--mu); cursor: pointer; transition: color .3s; padding: .25rem; }
.mcl:hover { color: var(--tx); }
.mbd { padding: 1.7rem; }
.mbd p { color: var(--mu); line-height: 1.85; margin-bottom: .9rem; font-size: .93rem; }
.mbd h3 { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ac); margin: 1.3rem 0 .4rem; }
.mbd ul { color: var(--mu); padding-left: 1.1rem; line-height: 1.8; font-size: .86rem; }
.mft { padding: 1.1rem 1.7rem; border-top: 1px solid var(--bd); display: flex; justify-content: flex-end; gap: .7rem; }
.amc { display: grid; grid-template-columns: repeat(3,1fr); gap: .85rem; margin: 1.3rem 0; }
.amcd { background: var(--bg); border: 1px solid var(--bd); padding: 1.3rem; text-align: center; }
.amcd .ic { font-size: 1.5rem; display: block; margin-bottom: .6rem; color: var(--ac); }
.amcd h6 { font-family: 'DM Mono', monospace; font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tx); margin-bottom: .4rem; }
.amcd p { font-size: .9rem; color: var(--mu); line-height: 1.5; }
.skg { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; margin: .85rem 0; }
.ski { display: flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--mu); padding: .35rem 0; border-bottom: 1px solid var(--bd); }

/* ── 16. FOOTER ── */
.site-footer { background: var(--sf); border-top: 1px solid var(--bd); padding: 1.5rem 4vw 1rem; text-align: center; }
.sf-inner { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .6rem; }
.sf-logo { font-family: 'Bebas Neue', sans-serif; font-size: 2rem; letter-spacing: .05em; text-decoration: none; line-height: 1; display: inline-block; }
.sf-logo-white { color: #fff; }
.sf-logo-green { color: var(--ac); }
.sf-tagline { font-family: 'DM Mono', monospace; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mu); line-height: 1.4; margin: 0; }
.sf-desc-center { max-width: 650px; margin: 0 auto; }
.sf-desc-center p { color: var(--mu); font-size: .88rem; line-height: 1.5; margin: 0; }
.sf-social-center { display: flex; gap: .8rem; justify-content: center; margin: .2rem 0; }
.sf-social-center .sf-social-btn { width: 38px; height: 38px; border-radius: 50%; background: var(--sf2); border: 1px solid var(--bd); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; color: var(--mu); text-decoration: none; transition: all .3s; }
.sf-social-center .sf-social-btn:hover { border-color: var(--ac); color: var(--ac); transform: translateY(-2px); }
.sf-copy { font-family: 'DM Mono', monospace; font-size: .6rem; color: var(--mu); display: inline-block; }
.sf-copy-white { color: #fff; }
.sf-copy-green { color: var(--ac); }
.sf-copy-rest { color: var(--mu); }
.sf-visitas { color: var(--ac); display: inline-flex; align-items: center; gap: .3rem; font-family: 'DM Mono', monospace; font-size: .72rem; background: var(--sf2); padding: .2rem .6rem; border-radius: 30px; border: 1px solid var(--bd); }
.sf-visitas i { font-size: .78rem; }
.sf-legal-links { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: .6rem; flex-wrap: wrap; }
.sf-legal-link { color: var(--mu); font-family: 'DM Mono', monospace; font-size: .65rem; text-decoration: none; display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .5rem; border-radius: 20px; border: 1px solid transparent; transition: color .25s, border-color .25s; }
.sf-legal-link:hover { color: var(--ac); border-color: rgba(200,245,100,.25); }
.sf-legal-sep { color: var(--bd); font-size: .7rem; }

/* ── 17. REVEAL & ANIMAÇÕES ── */
.rv { opacity: 0; transform: translateY(20px); transition: opacity .5s ease, transform .5s ease; }
.rv.vs { opacity: 1; transform: translateY(0); }
/* Mobile: reveal suave com threshold menor e sem cortes */
@media (max-width: 900px) {
  .rv { opacity: 0; transform: translateY(14px); transition: opacity .4s ease, transform .4s ease; transition-delay: 0s !important; }
  .rv.vs { opacity: 1; transform: translateY(0); }
  .rv.d1, .rv.d2, .rv.d3 { transition-delay: 0s !important; }
}
@media (max-width: 768px) {
  .rv { opacity: 0; transform: translateY(10px); transition: opacity .35s ease, transform .35s ease; transition-delay: 0s !important; }
  .rv.vs { opacity: 1; transform: translateY(0); }
}
.d1 { transition-delay: .1s; }
.d2 { transition-delay: .2s; }
.d3 { transition-delay: .3s; }

/* ── 18. PÁGINAS SECUNDÁRIAS ── */
.btn-row a:first-child {
    font-family: 'DM Mono', monospace;
    font-size: .64rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .85rem 2rem;
    background: var(--ac);
    color: #0a0a0f;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background .25s;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.btn-row a:first-child:hover {
    background: #d4ff70;
    color: #0a0a0f;
}
.btn-row a:last-child {
    font-family: 'DM Mono', monospace;
    font-size: .64rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .85rem 2rem;
    color: var(--mu);
    border: 1px solid var(--bd);
    background: none;
    text-decoration: none;
    cursor: pointer;
    transition: color .3s, border-color .3s;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.btn-row a:last-child:hover {
    color: var(--ac);
    border-color: rgba(200,245,100,.3);
}
/* Hero comum (serviços, trabalhos, blog) */
.page-hero, .svc-hero, .work-hero {
  padding: 7rem 4vw 4rem;
  position: relative;
  overflow: hidden;
  background: var(--sf);
  border-bottom: 1px solid var(--bd);
}
.page-hero::before, .svc-hero::before, .work-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top right, rgba(86,100,245,.12), transparent 60%);
  pointer-events: none;
}
/* Breadcrumb */
.breadcrumb { font-family: 'DM Mono', monospace; font-size: .56rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mu); margin-bottom: 1.2rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.breadcrumb a { color: var(--mu); text-decoration: none; transition: color .25s; }
.breadcrumb a:hover { color: var(--ac); }
.breadcrumb span { color: var(--ac); }

/* Filtros trabalhos */
.pf { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }

/* ── NOTA INFO CARD (portfolio) ── */
.info-nota-card {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 10px;
  padding: 1rem 1.2rem;
  margin-bottom: 2rem;
  box-shadow: 0 4px 20px rgba(200,245,100,.06);
}
.info-nota-icon {
  font-size: 1.2rem;
  color: var(--ac);
  flex-shrink: 0;
  margin-top: .1rem;
}
.info-nota-card p {
  margin: 0;
  font-family: 'Outfit', sans-serif;
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  line-height: 1.75;
}
html.lm .info-nota-card { background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.1); box-shadow: 0 4px 20px rgba(74,140,0,.06); }
html.lm .info-nota-card p { color: rgba(0,0,0,.45); }

/* blog nota IA */
.blog-ia-nota {
  width: 100%;
  background: var(--sf);
  border: 1px solid var(--bd);
  border-radius: 10px;
  padding: 1rem 1.2rem 1rem 3.2rem;
  position: relative;
  margin-bottom: 1.2rem;
  font-family: 'Outfit', sans-serif;
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  line-height: 1.75;
  display: block;
  box-shadow: 0 4px 20px rgba(200,245,100,.06);
}
.blog-ia-nota i {
  position: absolute;
  left: 1rem;
  top: .9rem;
  font-size: 1.15rem;
  color: var(--ac);
}
html.lm .blog-ia-nota { background: rgba(0,0,0,.04); border-color: rgba(0,0,0,.1); color: rgba(0,0,0,.45); box-shadow: 0 4px 20px rgba(74,140,0,.06); }
.fb { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; padding: .48rem 1.1rem; background: none; border: 1px solid var(--bd); color: var(--mu); cursor: pointer; transition: all .3s; text-decoration: none; display: inline-block; }
.fb:hover, .fb.ac { background: var(--ac); border-color: var(--ac); color: var(--bg); }
.page-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-bottom: 2.5rem; }

/* Página de serviço individual */
.svc-layout { max-width: 1200px; margin: 0 auto; padding: 3.5rem 4vw 5rem; display: grid; grid-template-columns: 1fr 260px; gap: 3.5rem; }
.svc-icon-big { font-size: 4rem; margin-bottom: .9rem; display: block; color: var(--ac); }
.svc-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(3rem,7vw,7rem); line-height: .9; letter-spacing: -.02em; margin-bottom: .8rem; }
.svc-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.svc-desc-title { font-family: 'DM Serif Display', serif; font-size: 1.55rem; margin-bottom: 1rem; }
.svc-desc-title em { color: var(--ac); font-style: italic; }
.svc-desc p { color: var(--mu); line-height: 1.9; font-size: .95rem; margin-bottom: 1rem; }

/* ── Override inline styles copied from external sources ── */
/* Garante que color/background/font inline não corrompem o layout */
.svc-desc *, .post-content *, .svc-desc-area * {
  color: inherit !important;
  background-color: transparent !important;
  font-family: inherit !important;
  font-size: inherit !important;
}
/* Excepções: negrito e itálico mantêm-se */
.svc-desc strong, .svc-desc b, .post-content strong, .post-content b { color: var(--tx) !important; }
.svc-desc em, .svc-desc i, .post-content em, .post-content i { color: inherit !important; }
/* Features (destaques do serviço) — tamanho aumentado */
.features { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin: 2rem 0; }
.feat { background: var(--sf2); border: 1px solid var(--bd); padding: 1.4rem; transition: border-color .3s; }
.feat:hover { border-color: rgba(200,245,100,.25); }
.feat-icon { font-size: 1.4rem; margin-bottom: .6rem; display: block; color: var(--ac); }
.feat-title { font-family: 'DM Mono', monospace; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--tx); margin-bottom: .35rem; }
.feat p { font-size: .9rem; color: var(--mu); line-height: 1.65; }
/* Processo — tamanho aumentado */
.processo { margin: 2.5rem 0; }
.processo-title { font-family: 'DM Serif Display', serif; font-size: 1.35rem; margin-bottom: 1.2rem; }
.pstep { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; background: var(--sf2); border: 1px solid var(--bd); margin-bottom: .6rem; transition: border-color .3s; }
.pstep:hover { border-color: rgba(200,245,100,.2); }
.pstep-num { font-family: 'Bebas Neue', sans-serif; font-size: 1.9rem; color: rgba(200,245,100,.3); line-height: 1; flex-shrink: 0; width: 2.4rem; }
.pstep-text h4 { font-family: 'DM Mono', monospace; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--tx); margin-bottom: .3rem; }
.pstep-text p { font-size: .9rem; color: var(--mu); line-height: 1.65; }
/* Sidebar de serviço/trabalho */
.svc-sidebar, .work-sidebar { position: sticky; top: 80px; align-self: start; }
.info-card, .work-info-card { background: var(--sf); border: 1px solid var(--bd); border-top: 2px solid var(--ac); padding: 1.5rem; margin-bottom: 1rem; }
.info-card-title { font-family: 'DM Mono', monospace; font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; color: var(--mu); margin-bottom: 1rem; }
/* Outros serviços (sidebar) — tamanho aumentado */
.outros-svc { margin-top: .5rem; }
.outro-item { display: flex; align-items: center; gap: .65rem; padding: .65rem 0; border-bottom: 1px solid var(--bd); text-decoration: none; transition: color .25s; }
.outro-item:last-child { border-bottom: none; }
.outro-item:hover .outro-titulo { color: var(--ac); }
.outro-item.ativo .outro-titulo { color: var(--ac); }
.outro-icon { font-size: 1rem; flex-shrink: 0; width: 1.2rem; text-align: center; color: var(--mu); }
.outro-item.ativo .outro-icon { color: var(--ac); }
.outro-titulo { font-size: .85rem; color: var(--tx); transition: color .25s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.3; }
/* CTAs de serviço */
.btn-cta { font-family: 'DM Mono', monospace; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; padding: .82rem 1.4rem; background: var(--ac); color: #0a0a0f; font-weight: 700; text-decoration: none; display: block; text-align: center; transition: background .25s; cursor: pointer; margin-bottom: .65rem; }
.btn-cta:hover { background: #d4ff70; color: #0a0a0f; }
.btn-cta-out { font-family: 'DM Mono', monospace; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; padding: .82rem 1.4rem; color: var(--mu); border: 1px solid var(--bd); background: none; text-decoration: none; display: block; text-align: center; transition: color .3s, border-color .3s; cursor: pointer; }
.btn-cta-out:hover { color: var(--ac); border-color: rgba(200,245,100,.3); }
/* Bottom CTA */
.bottom-cta { background: var(--sf); border-top: 1px solid var(--bd); padding: 4rem 4vw; text-align: center; }
.bottom-cta h2 { font-family: 'DM Serif Display', serif; font-size: clamp(1.7rem,3.5vw,2.6rem); margin-bottom: .7rem; }
.bottom-cta h2 em { color: var(--ac); font-style: italic; }
.bottom-cta p { color: var(--mu); margin-bottom: 1.8rem; font-size: .93rem; }
.btn-row { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }
/* Página de trabalho */
.work-cat-badge, .work-title, .work-client { /* definidos inline */ }
.techs { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
.tech-tag { font-family: 'DM Mono', monospace; font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ac); border: 1px solid rgba(200,245,100,.2); padding: .18rem .55rem; white-space: nowrap; }
.work-layout { display: grid; grid-template-columns: 1fr 320px; gap: 2.5rem; max-width: 1200px; margin: 0 auto; padding: 3rem 4vw 5rem; }
.gallery-main { position: relative; aspect-ratio: 16/9; background: var(--sf); border: 1px solid var(--bd); overflow: hidden; margin-bottom: .8rem; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-main-count { position: absolute; bottom: 1rem; right: 1rem; background: rgba(10,10,15,.85); backdrop-filter: blur(8px); font-family: 'DM Mono', monospace; font-size: .58rem; letter-spacing: .1em; color: var(--ac); padding: .3rem .7rem; border: 1px solid rgba(200,245,100,.2); }
.gallery-zoom-hint { display: none; }
.gallery-thumbs { display: grid; grid-template-columns: repeat(5,1fr); gap: .5rem; }
.gallery-thumb { aspect-ratio: 16/10; overflow: hidden; border: 1px solid var(--bd); cursor: pointer; transition: border-color .25s; position: relative; }
.gallery-thumb:hover, .gallery-thumb.active { border-color: var(--ac); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .25s; }
.gallery-thumb:not(.active) img { filter: brightness(.6); }
.gallery-thumb.active img { filter: brightness(1); }
.thumb-zoom-icon { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .25s; background: rgba(10,10,15,.35); pointer-events: none; }
.thumb-zoom-icon i { font-size: 1.2rem; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.6); }
.gallery-thumb:hover .thumb-zoom-icon { opacity: 1; }
/* Lightbox */
.lb { position: fixed; inset: 0; background: rgba(0,0,0,.95); z-index: 3000; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity .3s; }
.lb.op { opacity: 1; pointer-events: all; }
.lb-img { max-width: 90vw; max-height: 85vh; object-fit: contain; display: block; }
.lb-close { position: fixed; top: 1.5rem; right: 1.5rem; font-size: 1.5rem; background: none; border: none; color: var(--mu); cursor: pointer; transition: color .25s; }
.lb-close:hover { color: var(--tx); }
.lb-nav { position: fixed; top: 50%; transform: translateY(-50%); font-size: 2rem; background: none; border: none; color: var(--mu); cursor: pointer; transition: color .25s; padding: 1rem; }
.lb-nav:hover { color: var(--ac); }
.lb-prev { left: 1rem; }
.lb-next { right: 1rem; }
.lb-count { position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%); font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .2em; color: var(--mu); text-transform: uppercase; }
/* Trabalhos relacionados (página trabalho) */
.rel-section { padding: 4rem 4vw; background: var(--sf); border-top: 1px solid var(--bd); }
.rel-inner { max-width: 1200px; margin: 0 auto; }
.rel-title-sec { font-family: 'DM Mono', monospace; font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--ac); display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.rel-title-sec::before { content: ''; display: inline-block; width: 26px; height: 1px; background: var(--ac); }
.rel-item { border: 1px solid var(--bd); background: var(--bg); text-decoration: none; display: block; transition: border-color .3s; }
.rel-item:hover { border-color: rgba(200,245,100,.28); }
.rel-img { aspect-ratio: 16/10; overflow: hidden; }
.rel-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s, filter .4s; filter: grayscale(20%); }
.rel-item:hover .rel-img img { transform: scale(1.05); filter: grayscale(0%); }
.rel-info { padding: .75rem; }
.rel-nome { font-family: 'DM Serif Display', serif; font-size: .92rem; color: var(--tx); }
/* Info labels trabalho */
.info-label { font-family: 'DM Mono', monospace; font-size: .52rem; letter-spacing: .18em; text-transform: uppercase; color: var(--mu); display: block; margin-bottom: .2rem; }
.info-value { font-size: .9rem; color: var(--tx); display: block; margin-bottom: .9rem; }
.info-value:last-child { margin-bottom: 0; }
.info-value a { color: var(--ac); text-decoration: none; }
.info-value a:hover { text-decoration: underline; }
.btn-visit { font-family: 'DM Mono', monospace; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; padding: .82rem 1.4rem; background: var(--ac); color: #000; font-weight: 700; border: none; text-decoration: none; display: block; text-align: center; transition: background .25s; cursor: pointer; width: 100%; margin-bottom: .7rem; }
.btn-visit:hover { background: #d4ff70; }
.btn-contact { font-family: 'DM Mono', monospace; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; padding: .82rem 1.4rem; background: none; color: var(--mu); border: 1px solid var(--bd); text-decoration: none; display: block; text-align: center; transition: color .25s, border-color .25s; cursor: pointer; width: 100%; margin-bottom: .7rem; }
.btn-contact:hover { color: var(--ac); border-color: rgba(200,245,100,.3); }
.work-desc-title { font-family: 'DM Serif Display', serif; font-size: 1.4rem; margin-bottom: .9rem; }
.work-desc p { color: var(--mu); line-height: 1.85; font-size: .94rem; }
/* Sem serviços */
.sem-servicos { padding: 4rem 0; text-align: center; color: var(--mu); font-family: 'DM Mono', monospace; font-size: .7rem; }

/* ── 19. RESPONSIVE ── */
@media (max-width: 1200px) {
  .scg { grid-template-columns: repeat(2,1fr); }
  .pg, .page-grid { grid-template-columns: repeat(3,1fr); }
  nav .nl, nav .nc { display: none; }
  .bg2 { display: flex; }
}
@media (max-width: 960px) {
  .sg, .ctg { grid-template-columns: 1fr !important; gap: 2.5rem; }
  .svc-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .svc-sidebar { position: static; }
  .work-layout { grid-template-columns: 1fr; }
  .work-sidebar { position: static; }
}
@media (max-width: 900px) {
  .blog-layout { grid-template-columns: 1fr; }
  .post-layout { grid-template-columns: 1fr; }
  .rel-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
  #header { padding: 3.5rem 5vw 0; }
  .ht { font-size: clamp(2.8rem,12vw,5rem); }
  .ba, .bo { font-size: .58rem; padding: .55rem 1rem; }
  .bav, .sind { display: none; }
  .scg { grid-template-columns: 1fr; }
  .pg, .page-grid { grid-template-columns: repeat(2,1fr); }
  .frow { grid-template-columns: 1fr; }
  .amc { grid-template-columns: 1fr; }
  .sr2 { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .sn3 { font-size: 2.2rem; }
  .sla2 { font-size: .78rem; }
  .blog-destaque-grid { grid-template-columns: 1fr; }
  .blog-bar { flex-direction: column; align-items: stretch; gap: .8rem; }
  .blog-search { width: 100%; }
  .blog-filtros-bar { margin-bottom: 1.5rem; }
  .blog-grid { grid-template-columns: 1fr; }
  .gallery-thumbs { grid-template-columns: repeat(3,1fr); }
  .rel-grid { grid-template-columns: 1fr 1fr; }
  .svc-hero, .work-hero { padding: 5.5rem 5vw 3rem; }
  .features { grid-template-columns: 1fr; }
  .wi-cat { font-size: .52rem; }
  .wi-nome { font-size: .75rem; }
  .site-footer { padding: 1.2rem 4vw .8rem; }
  .sf-inner { gap: .5rem; }
  .sf-logo { font-size: 1.8rem; }
  .sf-tagline { font-size: .6rem; }
}
@media (max-width: 600px) {
  .post-list-item { grid-template-columns: 80px 1fr; }
  .blog-bar { padding: 1rem 5vw; }
  .rel-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  #header { padding: 3rem 5vw 0; }
  .ht { font-size: clamp(2.5rem,11vw,4rem); }
  .ba, .bo { width: 100%; justify-content: center; }
  .sr2 { grid-template-columns: 1fr !important; gap: .5rem; }
  .sn3 { font-size: 1.9rem !important; }
  .sla2 { font-size: .75rem !important; }
  section { padding: 4rem 5vw; }
  .flt { bottom: 16px; right: 16px; }
  .blog-destaque-grid { grid-template-columns: 1fr; }
  .sf-logo { font-size: 1.6rem; }
}
@media (max-width: 480px) {
  .pg, .page-grid { grid-template-columns: 1fr 1fr; }
  .rel-grid { grid-template-columns: 1fr; }
  .work-layout { padding: 2rem 4vw 4rem; }
  .sf-social-center .sf-social-btn { width: 32px; height: 32px; font-size: .9rem; }
}
@media (max-width: 400px) {
  .pg, .page-grid, .scg { grid-template-columns: 1fr; }
  .sr2 { grid-template-columns: 1fr !important; }
}


/* ── NAV — layout adicional ──*/
/* Garantir que o menu fique centralizado */
#nav {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

#nav .logo {
    margin-right: auto; /* Empurra o logo para a esquerda */
}

.nl {
    margin: 0 auto; /* Centraliza o menu */
    display: flex;
    justify-content: center;
}

/* Ajuste para mobile */
@media (max-width: 900px) {
    #nav {
        justify-content: space-between;
    }
    
    #nav .logo {
        margin-right: 0;
    }
    
    .nl {
        display: none; /* Menu desktop some no mobile */
    }
}

/* Sidebar partilhar */
.blog-sidebar .sidebar-block a[href*="wa.me"],
.blog-sidebar .sidebar-block a[href*="facebook"] {
    font-family: 'DM Mono', monospace;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: none;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--bd);
    text-decoration: none;
    transition: color .25s;
}
.blog-sidebar .sidebar-block a[href*="wa.me"] { color: #25d366; }
.blog-sidebar .sidebar-block a[href*="facebook"] { color: #4267b2; border-bottom: none; }
.blog-sidebar .sidebar-block a[href*="wa.me"]:hover,
.blog-sidebar .sidebar-block a[href*="facebook"]:hover { opacity: .8; }
/* Sidebar mais posts link */
.blog-sidebar .sidebar-block a[href*="blog.php"]:not(.cat-list li a) {
    font-family: 'DM Mono', monospace;
    font-size: .7rem;
    letter-spacing: .1em;
    text-transform: none;
    color: var(--ac);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: .4rem;
}

/* Post media (imagem/vídeo no layout, não no hero) */
.post-media-wrap {
    margin-bottom: 2rem;
    border: 1px solid var(--bd);
    overflow: hidden;
}
.post-media-img {
    width: 100%;
    display: block;
    max-height: 480px;
    object-fit: cover;
}

/* Blog post header — título maior uniforme */
.post-hero .sl { margin-bottom: .5rem; }
.blog-hero .st2 { font-size: clamp(2.2rem,4.5vw,3.8rem); }
.post-title { font-size: clamp(2.5rem,6vw,5.5rem); }

/* Blog — categoria a branco */
.post-card-cat { color: rgba(255,255,255,.85) !important; }
.post-list-cat { color: rgba(255,255,255,.85) !important; }
.post-cat-badge { color: var(--ac); }

/* Sidebar uniforme */
.info-card-title { font-family: 'DM Mono', monospace; font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ac); margin-bottom: 1rem; }

/* Blog bar — borda top removida */

/* Hero pages secundárias — padding consistente */
.page-hero, .blog-hero { padding: 7rem 4vw 4rem; }

/* ── HERO PÁGINAS SECUNDÁRIAS — efeito igual ao index ── */
.page-hero, .svc-hero, .work-hero, .blog-hero, .post-hero {
    position: relative;
    overflow: hidden;
}
.page-hero .hg, .svc-hero .hg, .work-hero .hg,
.blog-hero .hg, .post-hero .hg {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
    pointer-events: none;
    z-index: 0;
}
.page-hero .ob, .svc-hero .ob, .work-hero .ob,
.blog-hero .ob, .post-hero .ob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
    z-index: 0;
}
.page-hero > *, .svc-hero > *, .work-hero > *,
.blog-hero > *, .post-hero > * {
    position: relative;
    z-index: 1;
}
/* ob1 e ob2 nas páginas secundárias */
.page-hero .ob1, .svc-hero .ob1, .work-hero .ob1,
.blog-hero .ob1, .post-hero .ob1 {
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(86,100,245,.18) 0%, transparent 70%);
    top: -80px; right: -80px;
    animation: fl1 9s ease-in-out infinite;
}
.page-hero .ob2, .svc-hero .ob2, .work-hero .ob2,
.blog-hero .ob2, .post-hero .ob2 {
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(200,245,100,.08) 0%, transparent 70%);
    bottom: 0; left: -40px;
    animation: fl2 11s ease-in-out infinite;
}

/* ── TRABALHO DETALHE — unificado com svc-layout ── */
.svc-layout .gallery-main { margin-bottom: .8rem; }
.svc-layout .gallery-thumbs { display: grid; grid-template-columns: repeat(5,1fr); gap: .5rem; margin-bottom: 1.5rem; }
.svc-layout .gallery-thumb { aspect-ratio: 16/10; overflow: hidden; border: 1px solid var(--bd); cursor: pointer; transition: border-color .25s; position: relative; }
.svc-layout .gallery-thumb:hover, .svc-layout .gallery-thumb.active { border-color: var(--ac); }
.svc-layout .gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .25s; }
.svc-layout .gallery-thumb:not(.active) img { filter: brightness(.6); }
.svc-layout .gallery-thumb.active img { filter: brightness(1); }

/* ── TRABALHOS GRID — 4 col / 2 tablet / 1 mobile ── */
.page-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }

/* ── BLOG — barra de pesquisa ── */

/* ── TESTEMUNHOS — sem margens laterais ── */


/* ── SIDEBAR BLOG — link "Mais Posts" e tags inline maiores ── */
.blog-sidebar .sidebar-block a:not(.cat-list li a):not(.pop-card):not(.tag-pill) { font-size: .75rem; }

/* ── MODAIS — m-priv sobre m-consentimento sem overlay duplo ── */
#m-priv { background: rgba(0,0,0,.92); }
#m-consentimento { background: rgba(0,0,0,.87); }

/* ── RESPONSIVO página de trabalho ── */
@media (max-width: 1100px) {
    .page-grid { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 768px) {
    .page-grid { grid-template-columns: repeat(2,1fr); }
    .svc-layout .gallery-thumbs { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 480px) {
    .page-grid { grid-template-columns: 1fr; }
}

/* ── CURSOR — visível acima de todos os overlays ── */
#cr, #crr { z-index: 99999 !important; }
.mo { cursor: auto; }


/* ── TESTEMUNHOS — tamanho da foto, sem overflow ── */
.cw { max-width: 800px; margin-left: auto; margin-right: auto; }
.cit img { object-fit: contain; max-height: 500px; }

/* ── BOTTOM CTA — card elegante centrado ── */
.bottom-cta-wrap {
    background: var(--bg);
    padding: 4rem 4vw;
    display: flex;
    justify-content: center;
}
.bottom-cta-wrap .bottom-cta,
.bottom-cta {
    background: var(--sf);
    border: 1px solid var(--bd);
    border-top: 3px solid var(--ac);
    border-radius: 12px;
    padding: 3rem 3.5rem;
    text-align: center;
    width: 70%;
    max-width: 720px;
}
@media (max-width: 768px) {
    .bottom-cta-wrap .bottom-cta, .bottom-cta { width: 95%; padding: 2rem 1.5rem; }
}
.bottom-cta h2 { font-family: 'DM Serif Display', serif; font-size: clamp(1.6rem,3.2vw,2.4rem); margin-bottom: .7rem; }
.bottom-cta h2 em { color: var(--ac); font-style: italic; }
.bottom-cta p { color: var(--mu); margin-bottom: 1.8rem; font-size: .93rem; }

/* ── SHARE BAR ── */
.share-bar {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 2rem 0 .5rem;
    border-top: 1px solid var(--bd);
    margin-top: 1.5rem;
    flex-wrap: wrap;
}
.share-label {
    font-family: 'DM Mono', monospace;
    font-size: .58rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--mu);
    margin-right: .3rem;
}
.share-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    text-decoration: none;
    border: 1px solid var(--bd);
    background: var(--sf2);
    cursor: pointer;
    transition: all .25s;
}
.share-btn:hover { transform: translateY(-2px); }
.share-wa { color: #25d366; border-color: rgba(37,211,102,.3); background: rgba(37,211,102,.05); }
.share-wa:hover { background: #25d366; color: #fff !important; border-color: #25d366; }
.share-wa:hover i { color: #fff !important; }
.share-fb { color: #4267b2; border-color: rgba(66,103,178,.3); background: rgba(66,103,178,.05); }
.share-fb:hover { background: #4267b2; color: #fff !important; border-color: #4267b2; }
.share-fb:hover i { color: #fff !important; }
.share-ig { color: #c13584; border-color: rgba(193,53,132,.3); background: rgba(193,53,132,.05); }
.share-ig:hover { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color: #fff !important; border-color: transparent; }
.share-ig:hover i { color: #fff !important; }
.share-email { color: var(--ac); border-color: rgba(200,245,100,.3); background: rgba(200,245,100,.05); }
.share-email:hover { background: var(--ac); color: #0a0a0f !important; border-color: var(--ac); }
.share-email:hover i { color: #0a0a0f !important; }
.share-icons { display: flex; gap: .5rem; flex-wrap: wrap; }

/* ── SIDEBAR — blog-bar ── */

/* ── POPULAR POSTS CARDS na sidebar ── */
.pop-card {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    text-decoration: none;
    padding: .7rem 0;
    border-bottom: 1px solid var(--bd);
    transition: opacity .25s;
}
.pop-card:last-child { border-bottom: none; }
.pop-card:hover { opacity: .8; }
.pop-card-img {
    width: 64px;
    height: 48px;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--sf2);
    border: 1px solid var(--bd);
}
.pop-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pop-card-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--mu); font-size: 1.2rem; }
.pop-card-body { flex: 1; min-width: 0; }
.pop-card-title { font-size: .82rem; color: var(--tx); line-height: 1.4; margin-bottom: .3rem; transition: color .25s; }
.pop-card:hover .pop-card-title { color: var(--ac); }
.pop-card-views { font-family: 'DM Mono', monospace; font-size: .52rem; color: var(--mu); display: flex; align-items: center; gap: .3rem; }





/* ── BLOG HERO header tamanho uniforme ── */
.blog-hero, .page-hero, .svc-hero, .work-hero, .post-hero {
    padding: 7rem 4vw 3.5rem;
    min-height: 220px;
}

/* ── CATEGORIAS SIDEBAR ── */
.cat-list li a .cat-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--sf2);
    border: 1px solid var(--bd);
    font-size: .68rem;
    font-family: 'DM Mono', monospace;
    color: var(--mu);
    flex-shrink: 0;
    padding: 0 4px;
}
.cat-list li a.ativa .cat-count {
    background: var(--ac);
    color: #0a0a0f;
    border-color: var(--ac);
}

/* ── MODAL POLÍTICA COM ACEITAR ── */
#m-priv-aceitar .mft {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
#m-priv-aceitar .mft .bsub {
    width: auto;
    min-width: 200px;
}

/* ── CATEGORIAS SIDEBAR — regra de reforço para blog_post ── */
.blog-sidebar .cat-list li a,
.blog-sidebar .sidebar-block .cat-list li a {
    font-family: 'Outfit', sans-serif !important;
    font-size: .88rem !important;
    font-weight: 300 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--mu) !important;
}
.blog-sidebar .cat-list li a:hover,
.blog-sidebar .sidebar-block .cat-list li a:hover { color: var(--tx) !important; }
.blog-sidebar .cat-list li a.ativa,
.blog-sidebar .sidebar-block .cat-list li a.ativa { color: var(--ac) !important; }

/* ── TAGS DO BLOG POST como links ── */
a.tg { text-decoration: none; cursor: pointer; }
a.tg:hover { background: var(--ac); color: #0a0a0f; border-color: var(--ac); }

/* ── TAGS NO HEADER DO POST ── */
.post-meta-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    padding-bottom: 1.4rem;
}

/* ── SOBRE SECUNDÁRIO (páginas não-index) ── */
.sec-sobre-sec { background: var(--bg); border-top: 1px solid var(--bd); padding: 5rem 4vw; }
html.lm .sec-sobre-sec { background: var(--sf2); }

.sec-sobre-intro-wrap { max-width: 680px; margin: 0 auto 3.5rem; }
.sec-sobre-intro {
  font-family: 'DM Serif Display', serif;
  font-size: clamp(1.1rem,2vw,1.45rem);
  color: var(--tx);
  line-height: 1.8;
  font-style: italic;
  padding-left: 1.4rem;
  border-left: 3px solid var(--ac);
  margin: 0;
}

.sec-sobre-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.2rem; }

.sec-sobre-card {
  position: relative;
  background: var(--sf);
  border: 1px solid var(--bd);
  padding: 2.4rem 2rem 2rem;
  text-align: center;
  overflow: hidden;
  transition: border-color .4s, transform .35s, box-shadow .35s;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sec-sobre-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--gl) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .4s;
}
.sec-sobre-card:hover { border-color: rgba(200,245,100,.35); transform: translateY(-6px); box-shadow: 0 12px 36px rgba(200,245,100,.08); }
.sec-sobre-card:hover::before { opacity: 1; }
html.lm .sec-sobre-card { background: var(--sf); }
html.lm .sec-sobre-card:hover { border-color: rgba(74,140,0,.35); box-shadow: 0 12px 36px rgba(74,140,0,.10); }

.ssc-glow {
  position: absolute;
  top: -40px; right: -40px;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,245,100,.12) 0%, transparent 70%);
  pointer-events: none;
}
html.lm .ssc-glow { background: radial-gradient(circle, rgba(74,140,0,.10) 0%, transparent 70%); }

.ssc-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 3.5rem;
  color: rgba(200,245,100,.06);
  line-height: 1;
  position: absolute;
  top: .6rem; right: 1rem;
  pointer-events: none;
  transition: color .4s;
}
html.lm .ssc-num { color: rgba(74,140,0,.07); }
.sec-sobre-card:hover .ssc-num { color: rgba(200,245,100,.12); }
html.lm .sec-sobre-card:hover .ssc-num { color: rgba(74,140,0,.12); }

.ssc-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: rgba(200,245,100,.08);
  border: 1px solid rgba(200,245,100,.18);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem;
  color: var(--ac);
  margin-bottom: 1.3rem;
  transition: background .35s, border-color .35s, transform .35s;
  position: relative;
}
html.lm .ssc-icon { background: rgba(74,140,0,.08); border-color: rgba(74,140,0,.2); }
.sec-sobre-card:hover .ssc-icon { background: rgba(200,245,100,.14); border-color: rgba(200,245,100,.4); transform: scale(1.08); }
html.lm .sec-sobre-card:hover .ssc-icon { background: rgba(74,140,0,.14); border-color: rgba(74,140,0,.4); }

.sec-sobre-card h4 {
  font-family: 'DM Mono', monospace;
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--tx);
  margin-bottom: .8rem;
  transition: color .35s;
  position: relative;
}
.sec-sobre-card:hover h4 { color: var(--ac); }
.sec-sobre-card p { font-size: .88rem; color: var(--mu); line-height: 1.8; margin: 0; position: relative; }

@media (max-width: 768px) {
  .sec-sobre-cards { grid-template-columns: 1fr; gap: .9rem; }
  .sec-sobre-intro { font-size: clamp(1rem,4vw,1.2rem); }
}
@media (max-width: 540px) { .sec-sobre-sec { padding: 3.5rem 5vw; } }

/* ── BLOG SIDEBAR MOBILE ── */
.sb-cats-toggle { cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: space-between; }
.sb-cats-arrow { transition: transform .3s; font-size: .8rem; }
.sb-cats-arrow.open { transform: rotate(180deg); }
.sb-cats-body { overflow: hidden; transition: max-height .35s ease; }
.sb-cats-body.closed { max-height: 0 !important; }

/* Mobile: ocultar tags, visitados, mais posts */
@media (max-width: 900px) {
  .blog-sb-hidden-mobile { display: none !important; }
  .sb-cats-body { max-height: 0; }
  .sb-cats-body.open { max-height: 600px; }
}
/* Desktop: sempre visível e aberto */
@media (min-width: 901px) {
  .blog-sb-hidden-mobile { display: block !important; }
  .sb-cats-body { max-height: none !important; }
  .sb-cats-toggle { cursor: default; }
  .sb-cats-arrow { display: none; }
}

/* Partilha inline no post (só mobile) */
/* Blog post layout mobile — sidebar abaixo do conteúdo, largura total */
@media (max-width: 900px) {
  .post-layout { display: flex !important; flex-direction: column !important; gap: 0; }
  .post-layout > div:first-child { order: 1; width: 100%; }
  .post-layout .blog-sidebar { order: 2; position: static !important; width: 100% !important; max-width: 100% !important; margin-top: 2.5rem; }
  .rel-posts { margin-top: 2rem; }
  .post-tags { margin-bottom: 2rem; }
}

@media(hover:none){.gallery-thumb .thumb-zoom-icon{opacity:1;}}


/* ============================================================
   SVC-DESC — melhorias tipográficas para conteúdos das soluções
   ============================================================ */

/* Títulos dentro do conteúdo */
.svc-desc h1, .svc-desc h2, .svc-desc h3,
.svc-desc h4, .svc-desc h5, .svc-desc h6 {
  font-family: 'DM Serif Display', serif;
  color: var(--tx);
  margin: 2rem 0 .7rem;
  line-height: 1.25;
  position: relative;
}
.svc-desc h1 { font-size: 1.55rem; }
.svc-desc h2 { font-size: 1.35rem; }
.svc-desc h3 { font-size: 1.18rem; }
.svc-desc h4, .svc-desc h5, .svc-desc h6 {
  font-size: 1rem;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--ac);
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .12em;
  padding-left: 1rem;
}
/* Barra lateral âmbar nos sub-títulos (h4/h5/h6) */
.svc-desc h4::before, .svc-desc h5::before, .svc-desc h6::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 1em;
  background: var(--ac);
  border-radius: 2px;
}

/* Listas */
.svc-desc ul, .svc-desc ol,
.svc-desc .list-circle {
  padding-left: 0;
  margin: 0 0 1.4rem;
  list-style: none;
}
.svc-desc ul li, .svc-desc ol li,
.svc-desc .list-circle li {
  position: relative;
  padding: .45rem .5rem .45rem 2rem;
  color: var(--mu);
  font-size: .93rem;
  line-height: 1.7;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.svc-desc ul li:last-child,
.svc-desc ol li:last-child,
.svc-desc .list-circle li:last-child {
  border-bottom: none;
}
/* Ícone bullet âmbar */
.svc-desc ul li::before,
.svc-desc .list-circle li::before {
  content: '';
  position: absolute;
  left: .55rem;
  top: .75rem;
  width: 6px;
  height: 6px;
  background: var(--ac);
  border-radius: 50%;
  opacity: .75;
}
/* Listas ordenadas */
.svc-desc ol { counter-reset: sol-ol; }
.svc-desc ol li { counter-increment: sol-ol; }
.svc-desc ol li::before {
  content: counter(sol-ol);
  position: absolute;
  left: .35rem;
  top: .4rem;
  width: 18px;
  height: 18px;
  background: rgba(200,245,100,.12);
  border: 1px solid rgba(200,245,100,.25);
  border-radius: 50%;
  font-family: 'DM Mono', monospace;
  font-size: .55rem;
  color: var(--ac);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-align: center;
  padding-top: 1px;
}

/* Links dentro do conteúdo */
.svc-desc a { color: var(--ac); text-decoration: underline; text-underline-offset: 3px; }
.svc-desc a:hover { opacity: .8; }

/* Parágrafo &nbsp; vazio — remover espaço extra */
.svc-desc p:empty,
.svc-desc p br:only-child { display: none; }
