#imPage { display: grid; grid-template-columns: minmax(0, 1fr) 1150px minmax(0, 1fr); grid-template-rows: 100px auto 100px; }
#imHeader { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
#imFooter { display: block; grid-column: 2 / 3; grid-row: 3 / 4; }
#imSideBar { display: none; }
#imContent { display: block; grid-column: 1 / 4; grid-row: 2 / 3; }
#imContentGraphics { display: block; grid-column: 2 / 3; grid-row: 2 / 3; }
@media (max-width: 1149.9px) and (min-width: 720.0px) {
	#imPage { display: grid; grid-template-columns: minmax(0, 1fr) 720px minmax(0, 1fr); grid-template-rows: 100px auto 100px; }
	#imHeader { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imFooter { display: block; grid-column: 2 / 3; grid-row: 3 / 4; }
	#imSideBar { display: none; }
	#imContent { display: block; grid-column: 1 / 4; grid-row: 2 / 3; }
	#imContentGraphics { display: block; grid-column: 2 / 3; grid-row: 2 / 3; }
	
}
@media (max-width: 719.9px) and (min-width: 480.0px) {
	#imPage { display: grid; grid-template-columns: minmax(0, 1fr) 480px minmax(0, 1fr); grid-template-rows: 100px auto 100px; }
	#imHeader { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imFooter { display: block; grid-column: 2 / 3; grid-row: 3 / 4; }
	#imSideBar { display: none; }
	#imContent { display: block; grid-column: 1 / 4; grid-row: 2 / 3; }
	#imContentGraphics { display: block; grid-column: 2 / 3; grid-row: 2 / 3; }
	
}
@media (max-width: 479.9px)  {
	#imPage { display: grid; grid-template-columns: 0 minmax(0, 1fr) 0; grid-template-rows: 100px auto 100px; }
	#imHeader { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imFooter { display: block; grid-column: 2 / 3; grid-row: 3 / 4; }
	#imSideBar { display: none; }
	#imContent { display: block; grid-column: 1 / 4; grid-row: 2 / 3; }
	#imContentGraphics { display: block; grid-column: 2 / 3; grid-row: 2 / 3; }
	
}
#imContent { display: grid; grid-template-columns: minmax(0, 1fr) 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px 47.917px minmax(0, 1fr); grid-template-rows: auto auto auto auto; }
#imGoToCont { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
#imCell_1 { display: grid; grid-column: 2 / 26; grid-row: 1 / 5; }
#imPageRow_1 { display: block; grid-column: 2 / 26; grid-row: 1 / 5; }
@media (max-width: 1149.9px) and (min-width: 720.0px) {
	#imContent { display: grid; grid-template-columns: minmax(0, 1fr) 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px 30px minmax(0, 1fr); grid-template-rows: auto auto auto auto; }
	#imGoToCont { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imCell_1 { display: grid; grid-column: 2 / 26; grid-row: 1 / 5; }
	#imPageRow_1 { display: block; grid-column: 2 / 26; grid-row: 1 / 5; }
	
}
@media (max-width: 719.9px) and (min-width: 480.0px) {
	#imContent { display: grid; grid-template-columns: minmax(0, 1fr) 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px 20px minmax(0, 1fr); grid-template-rows: auto auto auto auto; }
	#imGoToCont { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imCell_1 { display: grid; grid-column: 2 / 26; grid-row: 1 / 5; }
	#imPageRow_1 { display: block; grid-column: 2 / 26; grid-row: 1 / 5; }
	
}
@media (max-width: 479.9px)  {
	#imContent { display: grid; grid-template-columns: 0 minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 0; grid-template-rows: auto; }
	#imGoToCont { display: block; grid-column: 2 / 3; grid-row: 1 / 2; }
	#imCell_1 { display: grid; grid-column: 2 / 26; grid-row: 1 / 2; }
	#imPageRow_1 { display: block; grid-column: 2 / 26; grid-row: 1 / 2; }
	
}
.imPageRow { position: relative;  }
#imCell_1 { grid-template-columns: 100%; position: relative; box-sizing: border-box; }
#imHTMLObject_01 { position: relative; align-self: start; justify-self: center; max-width: 100%; box-sizing: border-box; z-index: 3; }
#imCellStyleGraphics_1 { grid-row: 1 / -1; grid-column: 1 / -1; background-color: transparent;  }
#imCellStyleBorders_1 { grid-row: 1 / -1; grid-column: 1 / -1; z-index: 2; }

<!-- ============================================================
  GAMA & FILHOS — Landing + Simulador da Reforma Tributária IBS/CBS
  Cole este código inteiro no "Objeto código HTML" do WebSite X5
  (Largura: 100% | Altura: desmarcada)
============================================================ -->
<style>

:root{
  --wine:#6b1e35;
  --wine-dark:#4a1225;
  --wine-mid:#8a2a47;
  --wine-light:#c4637d;
  --rose:#f9eff2;
  --rose-mid:#f0d5dc;
  --text:#1e1014;
  --gray:#6b5a5f;
  --border:#e8d5da;
  --white:#fff;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Segoe UI',system-ui,sans-serif;color:var(--text);background:var(--white);}
/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 6%;height:68px;transition:.3s;
  max-width:100%;width:100%;
}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.logo-box{display:flex;align-items:center;}
.logo-box img{height:44px;width:auto;object-fit:contain;display:block;}
.logo-txt{font-size:15px;font-weight:700;color:var(--wine-dark);line-height:1.2;}
.logo-txt small{display:block;font-weight:400;font-size:11px;color:var(--gray);}
.nav-links{display:flex;gap:28px;list-style:none;}
.nav-links a{color:var(--gray);text-decoration:none;font-size:13.5px;font-weight:500;transition:.2s;}
.nav-links a:hover{color:var(--wine);}
.nav-cta{background:var(--wine);color:var(--white);padding:10px 22px;border-radius:6px;text-decoration:none;font-size:13px;font-weight:600;transition:.2s;}
.nav-cta:hover{background:var(--wine-mid);}
/* HERO SLIDESHOW */
#hero{
  min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:120px 6% 80px;position:relative;overflow:hidden;
}
.hero-slides{position:absolute;inset:0;z-index:0;}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.4s ease-in-out;
}
.hero-slide.active{opacity:1;}
.hero-slide::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(74,18,37,0.62) 0%,rgba(107,30,53,0.5) 55%,rgba(138,42,71,0.42) 100%);
}
.hero-slide:nth-child(1){background-image:url('https://i.ibb.co/xqJM2xT9/photo-1556742049-0cfed4f6a45d.jpg');}
.hero-slide:nth-child(2){background-image:url('https://images.unsplash.com/photo-1554224155-6726b3ff858f?w=1600&q=80');}
.hero-slide:nth-child(3){background-image:url('https://images.unsplash.com/photo-1450101499163-c8848c66ca85?w=1600&q=80');}
.hero-slide:nth-child(4){background-image:url('https://images.unsplash.com/photo-1507679799987-c73779587ccf?w=1600&q=80');}
.hero-content-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;}
.hero-dots{display:flex;gap:8px;justify-content:center;margin-top:24px;}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.35);border:none;cursor:pointer;transition:.3s;padding:0;}
.hero-dot.active{background:#fff;width:24px;border-radius:4px;}
.hero-label{
  display:inline-block;
  border:1px solid rgba(255,255,255,0.35);color:rgba(255,255,255,0.85);
  font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;
  padding:6px 18px;border-radius:30px;margin-bottom:28px;
}
#hero h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:900;color:var(--white);line-height:1.15;max-width:820px;margin:0 auto 22px;}
#hero h1 em{font-style:normal;color:var(--rose-mid);}
#hero p{font-size:18px;color:rgba(255,255,255,0.7);line-height:1.7;max-width:580px;margin:0 auto 42px;}
.hero-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn-white{background:var(--white);color:var(--wine);padding:14px 30px;border-radius:7px;text-decoration:none;font-weight:700;font-size:15px;transition:.2s;}
.btn-white:hover{background:var(--rose-mid);}
.btn-simulador{
  background:var(--white);color:var(--wine);
  padding:16px 34px;border-radius:8px;text-decoration:none;
  font-weight:800;font-size:16px;transition:.25s;
  display:inline-flex;align-items:center;gap:10px;
  box-shadow:0 6px 24px rgba(0,0,0,0.25);
}
.btn-simulador:hover{background:var(--rose-mid);transform:translateY(-2px);box-shadow:0 10px 32px rgba(0,0,0,0.35);}
.btn-outline-white{border:2px solid rgba(255,255,255,0.4);color:var(--white);padding:13px 28px;border-radius:7px;text-decoration:none;font-weight:600;font-size:15px;transition:.2s;}
.btn-outline-white:hover{border-color:var(--white);background:rgba(255,255,255,0.08);}
.hero-stats{display:flex;gap:48px;justify-content:center;flex-wrap:wrap;margin-top:64px;padding-top:48px;border-top:1px solid rgba(255,255,255,0.12);}
.hs{text-align:center;}
.hs-num{font-size:2rem;font-weight:900;color:var(--white);}
.hs-lbl{font-size:12px;color:rgba(255,255,255,0.5);letter-spacing:.5px;margin-top:4px;}
/* PQEC STRIP */
#pqec-strip{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:40px;
  padding:40px 6%;background:var(--white);
  border-top:3px solid var(--wine);border-bottom:1px solid var(--border);
}
.pqec-left{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:900;color:var(--wine-dark);line-height:1.2;}
.pqec-left span{color:var(--wine);}
.pqec-center a{display:block;transition:.3s;}
.pqec-center a:hover{transform:translateY(-6px);filter:drop-shadow(0 12px 20px rgba(107,30,53,0.25));}
.pqec-center img{height:110px;width:auto;object-fit:contain;display:block;}
.pqec-right{font-size:15px;color:var(--gray);line-height:1.75;}
.pqec-right strong{color:var(--wine-dark);}
/* DORES */
#dores{padding:88px 6%;background:var(--white);}
.dores-header{text-align:center;max-width:640px;margin:0 auto 56px;}
.section-tag{font-size:11.5px;font-weight:700;color:var(--wine);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px;}
.section-h2{font-size:clamp(1.7rem,3vw,2.6rem);font-weight:800;color:var(--wine-dark);line-height:1.25;margin-bottom:16px;}
.section-p{font-size:15.5px;color:var(--gray);line-height:1.75;}
.dores-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.dore-card{border:1.5px solid var(--border);border-radius:14px;padding:32px 28px;transition:.3s;cursor:default;}
.dore-card:hover{border-color:var(--wine-light);box-shadow:0 12px 32px rgba(107,30,53,0.08);transform:translateY(-4px);}
.dore-icon{font-size:32px;margin-bottom:16px;}
.dore-title{font-size:17px;font-weight:700;color:var(--wine-dark);margin-bottom:10px;}
.dore-desc{font-size:14px;color:var(--gray);line-height:1.65;}
/* BENEFÍCIOS */
#beneficios{padding:88px 6%;background:#3d0a1a;}
.benef-layout{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.benef-left .section-tag{color:#fff;opacity:.75;font-weight:700;}
.benef-left .section-h2{color:#ffffff !important;font-weight:900;}
.benef-left .section-p{color:rgba(255,255,255,0.75);margin-bottom:36px;}
.benef-items{display:flex;flex-direction:column;gap:20px;}
.benef-item{display:flex;align-items:flex-start;gap:14px;}
.benef-bullet{width:44px;height:44px;min-width:44px;border-radius:10px;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;font-size:20px;}
.benef-item h4{font-size:15px;font-weight:700;color:var(--white);margin-bottom:4px;}
.benef-item p{font-size:13.5px;color:rgba(255,255,255,0.6);line-height:1.55;}
.benef-right{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:20px;padding:44px 36px;}
.pqec-big{text-align:center;margin-bottom:36px;}
.pqec-big .icon{font-size:56px;margin-bottom:12px;}
.pqec-big h3{font-size:22px;font-weight:800;color:var(--white);margin-bottom:8px;}
.pqec-big p{font-size:14px;color:rgba(255,255,255,0.6);line-height:1.65;}
.benef-checks{display:flex;flex-direction:column;gap:12px;border-top:1px solid rgba(255,255,255,0.1);padding-top:28px;}
.bcheck{display:flex;align-items:center;gap:10px;font-size:14px;color:rgba(255,255,255,0.8);font-weight:500;}
.bcheck::before{content:'✓';color:var(--rose-mid);font-weight:900;font-size:14px;}
/* SOBRE */
#sobre{padding:88px 6%;background:var(--rose);}
.sobre-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:36px;align-items:stretch;}
.sobre-img{
  background:linear-gradient(145deg,#4a1225,#6b1e35);
  border-radius:18px;padding:44px 36px;
  display:flex;flex-direction:column;justify-content:center;gap:28px;
  position:relative;overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
.sobre-img *{color:#ffffff !important;}
.sobre-img::before{content:'\201C';position:absolute;top:-20px;left:16px;font-size:180px;color:rgba(255,255,255,0.08);font-family:Georgia,serif;line-height:1;}
.sobre-img::after{content:'';position:absolute;bottom:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.06) 0%,transparent 70%);}
.sobre-img:hover{box-shadow:0 20px 48px rgba(74,18,37,0.4);transform:translateY(-3px);transition:.35s;}
.sobre-img-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.45);padding:7px 14px;border-radius:20px;font-size:13px;font-weight:800;letter-spacing:.8px;position:relative;z-index:1;width:fit-content;}
.sobre-quote{font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:800;line-height:1.75;font-style:italic;position:relative;z-index:1;text-shadow:0 0 20px rgba(255,255,255,0.15);}
.sobre-meta{font-size:12.5px;font-weight:700;border-top:1px solid rgba(255,255,255,0.35);padding-top:18px;letter-spacing:.3px;position:relative;z-index:1;line-height:1.6;}
.sobre-text{display:flex;flex-direction:column;gap:0;}
.sobre-text-header{margin-bottom:16px;}
.sobre-text p{font-size:15px;color:var(--gray);line-height:1.8;margin-bottom:14px;}
.sobre-text strong{color:var(--wine-dark);}
.sobre-valores{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;}
.val{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;}
.val .vi{font-size:22px;margin-bottom:6px;}
.val strong{font-size:13px;color:var(--wine-dark);display:block;margin-bottom:2px;}
.val span{font-size:12px;color:var(--gray);}
/* SERVIÇOS */
#servicos{padding:88px 0;background:var(--white);}
#servicos .serv-header{text-align:center;padding:0 6% 48px;}
#servicos .serv-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0 20px;}
#servicos .serv-divider::before,#servicos .serv-divider::after{content:'';height:1px;width:80px;background:var(--border);}
#servicos .serv-divider span{color:var(--wine);font-size:14px;}
.serv-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);}
.serv-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;gap:14px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:.25s;cursor:default;background:var(--white);}
.serv-card:nth-child(even){background:#f3f3f3;}
.serv-card:hover{background:var(--rose);}
.serv-card:nth-child(3n){border-right:none;}
.serv-card:nth-child(n+4){border-bottom:none;}
.serv-ico{width:72px;height:72px;object-fit:contain;transition:.35s;display:block;border-radius:50%;border:3px solid var(--border);box-shadow:0 4px 16px rgba(107,30,53,0.12);}
.serv-card:hover .serv-ico{transform:translateY(-8px) scale(1.06);box-shadow:0 14px 28px rgba(107,30,53,0.22);border-color:var(--wine-light);}
.serv-title{font-size:14px;font-weight:600;color:var(--wine);line-height:1.4;}
.serv-btn-wrap{text-align:center;padding:36px 6% 0;}
.serv-saiba{display:inline-block;border:2px solid var(--wine-dark);color:var(--wine-dark);padding:12px 36px;border-radius:6px;font-size:15px;font-weight:700;text-decoration:none;transition:.2s;background:var(--white);}
.serv-saiba:hover{background:var(--wine-dark);color:var(--white);}
/* DEPOIMENTOS */
#depoimentos{padding:88px 6%;background:var(--rose);}
.dep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.dep-card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:32px;transition:.2s;}
.dep-card:hover{box-shadow:0 8px 24px rgba(107,30,53,0.08);}
.dep-stars{color:#c87941;font-size:13px;letter-spacing:2px;margin-bottom:16px;}
.dep-text{font-size:14.5px;color:var(--gray);line-height:1.75;font-style:italic;margin-bottom:24px;}
.dep-author{display:flex;align-items:center;gap:12px;}
.dep-av{width:42px;height:42px;border-radius:50%;background:var(--wine);color:var(--white);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;}
.dep-name{font-size:14px;font-weight:700;color:var(--wine-dark);}
.dep-co{font-size:12px;color:var(--gray);}
/* FAQ */
#faq{padding:88px 6%;background:var(--white);}
.faq-wrap{max-width:720px;margin:0 auto;}
.faq-item{border-bottom:1.5px solid var(--border);}
.faq-q{width:100%;background:none;border:none;padding:22px 0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;text-align:left;font-size:15.5px;font-weight:600;color:var(--wine-dark);gap:16px;}
.faq-icon{font-size:22px;color:var(--wine-light);transition:.3s;min-width:22px;}
.faq-a{max-height:0;overflow:hidden;transition:.35s ease;font-size:14.5px;color:var(--gray);line-height:1.75;}
.faq-item.open .faq-a{max-height:200px;padding-bottom:22px;}
.faq-item.open .faq-icon{transform:rotate(45deg);color:var(--wine);}
/* CONTATO */
#contato{padding:88px 6%;background:var(--rose);}
.contato-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:start;}
.contato-info{display:flex;flex-direction:column;gap:0;}
.c-item{padding:24px 0;border-bottom:1px solid var(--border);display:flex;gap:16px;}
.c-item:last-child{border-bottom:none;}
.c-icon{font-size:22px;min-width:28px;}
.c-item h4{font-size:12.5px;font-weight:700;color:var(--wine);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px;}
.c-item p{font-size:14.5px;color:var(--wine-dark);font-weight:500;line-height:1.6;}
.contato-form{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:40px;display:flex;flex-direction:column;gap:16px;}
.contato-form h3{font-size:20px;font-weight:800;color:var(--wine-dark);margin-bottom:4px;}
.contato-form p{font-size:14px;color:var(--gray);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fg{display:flex;flex-direction:column;gap:6px;}
.fg label{font-size:12.5px;font-weight:600;color:var(--wine-dark);}
.fg input,.fg select,.fg textarea{border:1.5px solid var(--border);border-radius:7px;padding:11px 14px;font-size:14px;color:var(--text);background:var(--white);outline:none;transition:.2s;font-family:inherit;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(107,30,53,0.08);}
.fg textarea{resize:vertical;min-height:90px;}
.btn-send{background:var(--wine);color:var(--white);border:none;padding:14px;border-radius:7px;font-size:15px;font-weight:700;cursor:pointer;transition:.2s;}
.btn-send:hover{background:var(--wine-mid);}
/* CTA STRIP */
#cta-strip{background:var(--wine-dark);padding:72px 6%;text-align:center;}
#cta-strip h2{font-size:clamp(1.6rem,3vw,2.6rem);font-weight:900;color:var(--white);max-width:640px;margin:0 auto 28px;line-height:1.3;}
#cta-strip p{font-size:16px;color:rgba(255,255,255,0.6);max-width:480px;margin:0 auto 36px;}
.btn-cta{background:var(--white);color:var(--wine-dark);padding:15px 34px;border-radius:7px;text-decoration:none;font-weight:800;font-size:15px;transition:.2s;display:inline-block;}
.btn-cta:hover{background:var(--rose-mid);}
/* FOOTER */
footer{background:#1e060d;color:rgba(255,255,255,0.5);padding:64px 6% 32px;}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;}
.fc h5{color:rgba(255,255,255,0.85);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px;}
.fc p{font-size:13px;line-height:1.7;}
.fc ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.fc a{color:rgba(255,255,255,0.5);text-decoration:none;font-size:13px;transition:.2s;}
.fc a:hover{color:var(--rose-mid);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.07);padding-top:28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;}
/* COOKIE BANNER */
#cookie-banner{
  position:fixed;bottom:0;left:0;right:0;z-index:9999;
  background:#1e060d;color:rgba(255,255,255,0.85);
  padding:16px 6%;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
  border-top:3px solid var(--wine);
  box-shadow:0 -4px 24px rgba(0,0,0,0.3);
  transition:transform .4s ease,opacity .4s ease;
}
#cookie-banner.hidden{transform:translateY(100%);opacity:0;pointer-events:none;}
#cookie-banner p{font-size:13.5px;line-height:1.6;flex:1;min-width:240px;}
#cookie-banner p a{color:var(--rose-mid);text-decoration:underline;}
#cookie-banner p a:hover{color:#fff;}
.cookie-btn{
  background:var(--wine);color:#fff;
  border:none;padding:10px 24px;border-radius:6px;
  font-size:13px;font-weight:700;cursor:pointer;
  white-space:nowrap;transition:.2s;flex-shrink:0;
}
.cookie-btn:hover{background:var(--wine-mid);}
/* WA FLOAT */
.wa{position:fixed;bottom:28px;right:28px;z-index:999;width:54px;height:54px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.45);text-decoration:none;transition:.2s;animation:wapulse 2.5s infinite;}
.wa:hover{transform:scale(1.1);}
@keyframes wapulse{0%,100%{box-shadow:0 4px 20px rgba(37,211,102,.45);}50%{box-shadow:0 4px 32px rgba(37,211,102,.75);}}
.wa svg{width:26px;height:26px;fill:white;}
/* RESPONSIVO */
@media(max-width:900px){.dores-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:680px){
  #pqec-strip{grid-template-columns:1fr;text-align:center;gap:24px;}
  .pqec-left{font-size:1.8rem;}
  .pqec-center{display:flex;justify-content:center;}
  .pqec-right{font-size:14px;}
}
@media(max-width:640px){
  .serv-grid{grid-template-columns:repeat(2,1fr);}
  .serv-card:nth-child(3n){border-right:1px solid var(--border);}
  .serv-card:nth-child(2n){border-right:none;}
  .serv-card:nth-child(n+4){border-bottom:1px solid var(--border);}
  .serv-card:nth-child(n+5){border-bottom:none;}
  .serv-card{padding:28px 16px;gap:12px;}
  .serv-ico{width:52px;height:52px;}
  .serv-title{font-size:13px;}
  #servicos .serv-header{padding:0 4% 36px;}
}
@media(max-width:540px){.dores-grid{grid-template-columns:1fr;}}
@media(max-width:768px){
  .nav-links{display:none;}
  .benef-layout,.sobre-layout,.contato-layout,.footer-top{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .sobre-valores{grid-template-columns:1fr;}
  .btn-simulador{font-size:14px;padding:14px 22px;text-align:center;}
}

/* ===== SIMULADOR DA REFORMA (escopo #sim-view) ===== */
:root{
  /* Paleta vinho — identidade visual de gamacontabil.com.br */
  --azul:#38101f;        /* vinho profundo (fundo header/footer) */
  --azul-2:#5a1230;      /* vinho principal (títulos, cards) */
  --azul-3:#7a2040;      /* vinho médio */
  --verde:#6b1737;       /* vinho dos botões (CTA do site) */
  --verde-esc:#50102a;
  --dourado:#c9964b;     /* dourado de destaque (troféu/certificação) */
  --cinza-bg:#f6f2f4;
  --cinza-borda:#e4dade;
  --texto:#2e2228;
  --texto-suave:#6d5a62;
  --erro:#c0392b;
  --alerta:#b9770e;
  --ok:#1e8449;
  --branco:#ffffff;
  --radius:12px;
  --sombra:0 2px 12px rgba(15,43,70,.08);
}
#sim-view *{box-sizing:border-box;margin:0;padding:0}
#sim-view{font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--cinza-bg);color:var(--texto);line-height:1.55}
#sim-view a{color:var(--azul-3)}
#sim-view .container{max-width:1080px;margin:0 auto;padding:0 16px}
#sim-view /* Header */
header{background:linear-gradient(135deg,var(--azul) 0%,var(--azul-2) 60%,var(--azul-3) 100%);color:#fff;padding:28px 0 22px}
#sim-view .header-flex{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
#sim-view .header-flex img{height:58px}
#sim-view .header-titulos h1{font-size:1.45rem;font-weight:700;letter-spacing:.2px}
#sim-view .header-titulos p{opacity:.85;font-size:.95rem}
#sim-view .badges{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
#sim-view .badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:4px 12px;border-radius:99px;font-size:.78rem}
#sim-view .badge.destaque{background:var(--dourado);border-color:var(--dourado);color:#38101f;font-weight:700}
#sim-view /* Tabs */
nav.tabs{background:#fff;border-bottom:1px solid var(--cinza-borda);position:sticky;top:0;z-index:50;box-shadow:var(--sombra)}
#sim-view .tabs-inner{display:flex;gap:4px;overflow-x:auto}
#sim-view .tab-btn{flex:0 0 auto;background:none;border:none;padding:14px 20px;font-size:.95rem;font-weight:600;color:var(--texto-suave);cursor:pointer;border-bottom:3px solid transparent;font-family:inherit}
#sim-view .tab-btn:hover{color:var(--azul)}
#sim-view .tab-btn.ativa{color:var(--azul-2);border-bottom-color:var(--dourado)}
#sim-view main{padding:28px 0 40px}
#sim-view .painel{display:none}
#sim-view .painel.ativa{display:block}
#sim-view /* Cards e formulários */
.card{background:#fff;border:1px solid var(--cinza-borda);border-radius:var(--radius);box-shadow:var(--sombra);padding:22px;margin-bottom:20px}
#sim-view .card h2{font-size:1.15rem;color:var(--azul);margin-bottom:6px}
#sim-view .card h3{font-size:1rem;color:var(--azul);margin:14px 0 8px}
#sim-view .card .sub{color:var(--texto-suave);font-size:.9rem;margin-bottom:14px}
#sim-view .grid{display:grid;gap:14px}
#sim-view .grid.c2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
#sim-view .grid.c3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
#sim-view .campo label{display:block;font-size:.82rem;font-weight:600;color:var(--texto-suave);margin-bottom:4px}
#sim-view .campo input,#sim-view .campo select,#sim-view .campo textarea{width:100%;padding:10px 12px;border:1px solid var(--cinza-borda);border-radius:8px;font-size:.95rem;background:#fff;font-family:inherit;color:var(--texto)}
#sim-view .campo input:focus,#sim-view .campo select:focus,#sim-view .campo textarea:focus{outline:2px solid var(--azul-3);outline-offset:-1px}
#sim-view .campo .dica{font-size:.75rem;color:var(--texto-suave);margin-top:3px}
#sim-view .btn{display:inline-block;background:var(--verde);color:#fff;border:none;padding:12px 26px;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;text-decoration:none}
#sim-view .btn:hover{background:var(--verde-esc)}
#sim-view .btn.sec{background:#fff;color:var(--azul);border:1.5px solid var(--azul-2)}
#sim-view .btn.sec:hover{background:var(--cinza-bg)}
#sim-view .btn.mini{padding:7px 14px;font-size:.83rem}
#sim-view .btn:disabled{opacity:.55;cursor:not-allowed}
#sim-view .acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
#sim-view /* Itens da calculadora */
.item-box{border:1px dashed var(--cinza-borda);border-radius:10px;padding:14px;margin-bottom:12px;background:#fbfcfe;position:relative}
#sim-view .item-box .titulo-item{font-weight:700;color:var(--azul-2);font-size:.85rem;margin-bottom:10px}
#sim-view .remover-item{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--erro);cursor:pointer;font-size:.8rem;font-weight:600;font-family:inherit}
#sim-view /* Resultados */
.result-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}
#sim-view .rc{border-radius:10px;padding:14px;color:#fff}
#sim-view .rc .rotulo{font-size:.75rem;opacity:.85;text-transform:uppercase;letter-spacing:.5px}
#sim-view .rc .valor{font-size:1.5rem;font-weight:800;margin-top:2px}
#sim-view .rc .aliq{font-size:.8rem;opacity:.9}
#sim-view .rc.cbs{background:var(--azul-2)}
#sim-view .rc.ibsuf{background:var(--azul-3)}
#sim-view .rc.ibsmun{background:var(--dourado)}
#sim-view .rc.total{background:var(--azul)}
#sim-view .memoria{background:var(--cinza-bg);border-left:4px solid var(--azul-3);padding:10px 14px;border-radius:0 8px 8px 0;font-size:.83rem;color:var(--texto-suave);margin:8px 0}
#sim-view .fonte-calculo{font-size:.8rem;color:var(--texto-suave);margin-top:8px}
#sim-view table.tabela-itens{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:10px}
#sim-view table.tabela-itens th{background:var(--azul);color:#fff;padding:8px;text-align:left;font-weight:600}
#sim-view table.tabela-itens td{padding:8px;border-bottom:1px solid var(--cinza-borda)}
#sim-view table.tabela-itens tr:nth-child(even){background:#f8fafc}
#sim-view /* Avisos */
.aviso{padding:12px 16px;border-radius:8px;font-size:.88rem;margin:12px 0}
#sim-view .aviso.info{background:#f9eef2;border:1px solid #e0c3ce;color:#5a1230}
#sim-view .aviso.warn{background:#fdf3e3;border:1px solid #f0d59b;color:#8a5a08}
#sim-view .aviso.err{background:#fdecea;border:1px solid #f2b8b2;color:#922b21}
#sim-view .aviso.okz{background:#e9f7ef;border:1px solid #a9dfbf;color:#196f3d}
#sim-view /* Validador — laudo */
.check{border:1px solid var(--cinza-borda);border-radius:10px;margin-bottom:10px;overflow:hidden}
#sim-view .check summary{padding:12px 16px;cursor:pointer;font-weight:600;display:flex;align-items:center;gap:10px;background:#fff;list-style:none}
#sim-view .check summary::-webkit-details-marker{display:none}
#sim-view .check .corpo{padding:4px 16px 14px;font-size:.87rem;background:#fbfcfe}
#sim-view .check .corpo ul{margin-left:18px}
#sim-view .check .corpo li{margin:4px 0}
#sim-view .pill{font-size:.72rem;font-weight:800;padding:3px 10px;border-radius:99px;letter-spacing:.4px}
#sim-view .pill.ok{background:#e9f7ef;color:var(--ok)}
#sim-view .pill.erro{background:#fdecea;color:var(--erro)}
#sim-view .pill.alerta{background:#fdf3e3;color:var(--alerta)}
#sim-view .pill.na{background:#eef1f4;color:var(--texto-suave)}
#sim-view .resumo-arquivo{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--cinza-borda);margin-bottom:14px}
#sim-view .resumo-arquivo strong{color:var(--azul)}
#sim-view .dropzone{border:2px dashed var(--azul-3);border-radius:12px;padding:26px;text-align:center;color:var(--texto-suave);background:#fbf3f6;cursor:pointer;transition:background .15s}
#sim-view .dropzone.arrastando{background:#f4e3ea}
#sim-view .contador-uso{font-size:.8rem;color:var(--texto-suave)}
#sim-view /* Timeline educativa */
.timeline{border-left:3px solid var(--verde);margin:14px 0 6px 8px;padding-left:20px}
#sim-view .tl-item{margin-bottom:16px;position:relative}
#sim-view .tl-item::before{content:"";position:absolute;left:-27px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--verde)}
#sim-view .tl-item .ano{font-weight:800;color:var(--azul)}
#sim-view .tl-item p{font-size:.9rem;color:var(--texto-suave)}
#sim-view /* FAQ */
details.faq{border-bottom:1px solid var(--cinza-borda);padding:10px 0}
#sim-view details.faq summary{font-weight:600;cursor:pointer;color:var(--azul)}
#sim-view details.faq p{padding:8px 0 4px;font-size:.9rem;color:var(--texto-suave)}
#sim-view /* Modal cadastro */
.modal-fundo{position:fixed;inset:0;background:rgba(10,25,41,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:16px}
#sim-view .modal-fundo.aberto{display:flex}
#sim-view .modal{background:#fff;border-radius:14px;max-width:440px;width:100%;padding:26px;max-height:92vh;overflow:auto}
#sim-view .modal h3{color:var(--azul);margin-bottom:4px}
#sim-view .modal .sub{font-size:.85rem;color:var(--texto-suave);margin-bottom:14px}
#sim-view .lgpd{font-size:.72rem;color:var(--texto-suave);margin-top:10px}
#sim-view /* CTA e footer */
.cta{background:linear-gradient(135deg,var(--azul-2),var(--azul));color:#fff;border-radius:var(--radius);padding:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:8px}
#sim-view .cta h3{font-size:1.1rem;margin-bottom:4px}
#sim-view .cta p{font-size:.88rem;opacity:.85}
#sim-view footer{background:var(--azul);color:#e8d3dc;padding:26px 0;font-size:.82rem;margin-top:30px}
#sim-view footer a{color:#fff}
#sim-view .disclaimer{font-size:.75rem;opacity:.75;margin-top:10px;line-height:1.5}
#sim-view .spinner{display:inline-block;width:16px;height:16px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:gira .7s linear infinite;vertical-align:-3px;margin-right:6px}
@keyframes gira{to{transform:rotate(360deg)}}
@media print{
#sim-view header,#sim-view nav.tabs,#sim-view .acoes,#sim-view .dropzone,#sim-view .cta,#sim-view footer,#sim-view .no-print{display:none!important}
#sim-view{background:#fff}
#sim-view .card{box-shadow:none;border:none;padding:0}
#sim-view .check{break-inside:avoid}
#sim-view .print-cabecalho{display:block!important;border-bottom:2px solid #000;margin-bottom:14px;padding-bottom:8px}


}
#sim-view .print-cabecalho{display:none}
#sim-view /* ===== Laudo de validação — modelo Gama & Filhos ===== */
.laudo-doc{margin-bottom:36px}
#sim-view .laudo-capa{background:linear-gradient(160deg,#38101f 0%,#5a1230 65%,#6b1737 100%);color:#fff;border-radius:12px;padding:44px 40px;display:flex;flex-direction:column;justify-content:space-between;min-height:400px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#sim-view .laudo-capa img{height:58px;align-self:flex-start;margin-bottom:20px}
#sim-view .lc-tag{font-size:.78rem;letter-spacing:3px;font-weight:700;opacity:.85;margin-bottom:10px}
#sim-view .laudo-capa h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:2.6rem;line-height:1.15;margin:0 0 20px}
#sim-view .lc-arquivo{font-size:.95rem;opacity:.95;word-break:break-all;margin-bottom:8px}
#sim-view .lc-sub{font-size:.95rem;opacity:.9}
#sim-view .lc-rodape{font-size:.78rem;opacity:.75;margin-top:32px}
#sim-view .laudo-corpo{padding:28px 4px 0}
#sim-view .lr-h2{font-family:Georgia,'Times New Roman',serif;font-weight:500;color:#232323;font-size:1.8rem;margin-bottom:18px}
#sim-view .lr-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
#sim-view .lr-card{background:#f4f4f5;border-radius:10px;padding:16px 18px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#sim-view .lr-big{font-family:Georgia,'Times New Roman',serif;font-size:1.55rem;color:#333;line-height:1.2}
#sim-view .lr-vermelho{color:#b03a2e}
#sim-view .lr-ambar{color:#b9770e}
#sim-view .lr-verde{color:#1e8449}
#sim-view .lr-lbl{font-size:.66rem;letter-spacing:1.5px;color:#7a7a7a;margin-top:4px}
#sim-view .lr-meta{font-size:.83rem;color:#3d3d3d;margin-bottom:24px;word-break:break-all;line-height:1.7}
#sim-view .lr-sec{margin-bottom:24px;break-inside:avoid}
#sim-view .lr-sec h3{font-size:1.02rem;color:#2e2e2e;margin-bottom:6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#sim-view .lr-resumo{font-size:.87rem;color:#555}
#sim-view .lr-box{border-left:4px solid;border-radius:0 6px 6px 0;padding:10px 14px;font-size:.83rem;margin-top:8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#sim-view .lr-box-erro{border-color:#b03a2e;background:#fdf0ee;color:#7d2d23}
#sim-view .lr-box-alerta{border-color:#b9770e;background:#fdf6e8;color:#7d5408}
#sim-view .lr-tab{margin-top:14px}
#sim-view .lr-tab th{background:#fff!important;color:#666!important;border-bottom:2px solid #333;font-size:.66rem;letter-spacing:1px;text-transform:uppercase;font-weight:700}
#sim-view .lr-tab td{font-size:.78rem;vertical-align:top}
#sim-view .lr-hr{border:none;border-top:1px solid var(--cinza-borda);margin:28px 0 14px}
#sim-view .lr-disclaimer{font-size:.8rem;color:#666;margin-bottom:20px;line-height:1.7}
#sim-view .lr-cta{background:#38101f;color:#fff;border-radius:12px;padding:24px 28px;font-size:.92rem;line-height:1.9;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#sim-view .lr-pagefoot{font-size:.72rem;color:#999;margin-top:22px}
@media print{
#sim-view .laudo-capa{border-radius:0;min-height:95vh;page-break-after:always;margin:0}
#sim-view .laudo-doc{page-break-after:always}
#sim-view #card-laudo>h2{display:none}
#sim-view .print-cabecalho{display:none!important}
#sim-view .laudo-corpo{padding:0}


}


#sim-view{font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--cinza-bg);color:var(--texto);line-height:1.55;min-height:100vh;position:relative}
#sim-view nav.tabs{position:sticky !important;height:auto !important;display:block !important;padding:0 !important;left:auto !important;right:auto !important;max-width:none !important;width:auto !important}
#sim-view footer{padding:26px 0 !important;display:block !important}
#sim-view header{position:static !important;display:block !important;height:auto !important;padding:28px 0 22px !important;border:none !important}
/* Botão de retorno ao site */
.sim-voltar-wrap{position:absolute;top:18px;right:18px;z-index:60}
.btn-voltar-site{display:inline-flex;align-items:center;gap:9px;background:#ffffff;color:#5a1230 !important;font-weight:800;font-size:.88rem;padding:11px 22px;border-radius:99px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.3);border:2px solid #ffffff;transition:all .2s ease;font-family:'Segoe UI',system-ui,sans-serif}
.btn-voltar-site:hover{background:#f0d5dc;border-color:#f0d5dc;transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.35)}
.btn-voltar-site .bv-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#5a1230;color:#fff;font-size:.85rem;line-height:1}
@media(max-width:640px){
  .sim-voltar-wrap{position:static;padding:12px 16px 0;text-align:center}
  .btn-voltar-site{font-size:.82rem;padding:9px 18px}
}
@media print{.sim-voltar-wrap{display:none}}


</style>

<div id="site-view">
<!-- NAV -->
<nav id="nav">
  <a href="#hero" class="logo">
    <div class="logo-box"><img src="https://gamacontabil.com.br/images/Gama_Filhos-SF.png" alt="Gama & Filhos" onerror="this.outerHTML='<span style=\'background:var(--wine);color:var(--white);font-weight:900;font-size:13px;padding:8px 11px;border-radius:7px\'>G&F</span>'"></div>
    <div class="logo-txt">Gama & Filhos <small>Contabilidade</small></div>
  </a>
  <ul class="nav-links">
    <li><a href="#sobre">Sobre nós</a></li>
    <li><a href="#servicos">Serviços</a></li>
    <li><a href="#depoimentos">Depoimentos</a></li>
    <li><a href="#faq">FAQ</a></li>
    <li><a href="#contato">Contato</a></li>
  </ul>
  <a href="https://wa.me/5581996356958" class="nav-cta">Fale com nossa equipe</a>
</nav>
<!-- HERO -->
<section id="hero">
  <div class="hero-slides">
    <div class="hero-slide active"></div>
    <div class="hero-slide"></div>
    <div class="hero-slide"></div>
    <div class="hero-slide"></div>
  </div>
  <div class="hero-content-wrap">
    <img src="https://gamacontabil.com.br/images/GF_Logo_Branca-removebg-preview.png" alt="Gama & Filhos" style="height:90px;width:auto;object-fit:contain;margin-bottom:20px;">
    <h1>A contabilidade deve ser <em>prioridade</em> para sua empresa!</h1>
    <p>Apresentamos uma nova maneira de fazer contabilidade: tecnologia, eficiência e sem perder o contato direto com o seu contador.</p>
    <div class="hero-btns">
      <a href="#simulador" class="btn-simulador" onclick="mostrarSimulador();return false;">🧮 Simulador da Reforma Tributária — IBS e CBS</a>
    </div>
    <div class="hero-stats">
      <div class="hs"><div class="hs-num">30+</div><div class="hs-lbl">Anos de experiência</div></div>
      <div class="hs"><div class="hs-num">200+</div><div class="hs-lbl">Clientes ativos</div></div>
      <div class="hs"><div class="hs-num">PQEC</div><div class="hs-lbl">Certificação nacional</div></div>
      <div class="hs"><div class="hs-num">100%</div><div class="hs-lbl">Conformidade fiscal</div></div>
    </div>
    <div class="hero-dots">
      <button class="hero-dot active" onclick="goSlide(0)"></button>
      <button class="hero-dot" onclick="goSlide(1)"></button>
      <button class="hero-dot" onclick="goSlide(2)"></button>
      <button class="hero-dot" onclick="goSlide(3)"></button>
    </div>
  </div>
</section>
<!-- PQEC STRIP -->
<div id="pqec-strip">
  <div class="pqec-left">Qualidade<br>Comprovada <span>!</span></div>
  <div class="pqec-center">
    <a href="https://fenacon.org.br/rede-de-noticias/sescap-pe-confira-as-empresas-certificadas-no-pqec/" target="_blank" title="Ver empresas certificadas no PQEC">
      <img src="https://gamacontabil.com.br/images/PQEC-removebg-preview.png" alt="Selo PQEC FENACON"
           onerror="this.outerHTML='<div style=\'background:var(--white);border:2px solid var(--border);border-radius:10px;padding:18px 22px;text-align:center\'><div style=\'font-size:11px;font-weight:800;color:#003f7f\'>PQEC</div></div>'">
    </a>
  </div>
  <div class="pqec-right">
    Sim, a Gama &amp; Filhos é uma empresa certificada pelo <strong>PQEC (Programa de Qualificação de Excelência Contábil)</strong> do sistema <strong>FENACON</strong>.
  </div>
</div>
<!-- DORES -->
<section id="dores">
  <div class="dores-header">
    <div class="section-tag">Reconhece alguma situação?</div>
    <h2 class="section-h2">Nós podemos ajudar a resolver</h2>
    <p class="section-p">Empresas enfrentam desafios contábeis que exigem atenção especializada. Veja se alguma dessas situações é familiar para você.</p>
  </div>
  <div class="dores-grid">
    <div class="dore-card">
      <div class="dore-icon">😔</div>
      <div class="dore-title">Falta de atenção do seu contador atual?</div>
      <p class="dore-desc">Tenha um contador especialista sempre próximo da sua empresa, com atendimento ágil e direto via WhatsApp — sem intermediários.</p>
    </div>
    <div class="dore-card">
      <div class="dore-icon">⚠️</div>
      <div class="dore-title">Contabilidade com erros frequentes?</div>
      <p class="dore-desc">Tenha o suporte de um time que tem como missão a excelência, com processos auditados e conformes com toda a legislação vigente.</p>
    </div>
    <div class="dore-card">
      <div class="dore-icon">💡</div>
      <div class="dore-title">Quer uma nova realidade para seu negócio?</div>
      <p class="dore-desc">Contabilidade que une tecnologia com personalização — relatórios em tempo real, plataforma digital e acesso direto ao seu contador.</p>
    </div>
    <div class="dore-card">
      <div class="dore-icon">📊</div>
      <div class="dore-title">Dificuldade em entender os resultados?</div>
      <p class="dore-desc">Transformamos dados contábeis em informações claras e estratégicas para que você tome decisões seguras e com confiança.</p>
    </div>
  </div>
</section>
<!-- BENEFÍCIOS -->
<section id="beneficios">
  <div class="benef-layout">
    <div class="benef-left">
      <div class="section-tag">Benefícios</div>
      <h2 class="section-h2" style="color:#ffffff !important;">Nós podemos ajudar a sua empresa crescer</h2>
      <p class="section-p">Confira os benefícios que sua empresa terá em ser nossa parceira!</p>
      <div class="benef-items">
        <div class="benef-item"><div class="benef-bullet">🏢</div><div><h4>Atuação próxima</h4><p>Presença real no dia a dia da sua empresa, seja presencialmente ou de forma digital — sempre ao seu lado.</p></div></div>
        <div class="benef-item"><div class="benef-bullet">🤝</div><div><h4>Proximidade com você</h4><p>Acesso direto ao seu contador. Atendimento sem burocracia, sem intermediários e com respostas ágeis.</p></div></div>
        <div class="benef-item"><div class="benef-bullet">💻</div><div><h4>Alta tecnologia</h4><p>Plataformas digitais modernas para envio de documentos, gestão financeira e visibilidade total do seu negócio.</p></div></div>
        <div class="benef-item"><div class="benef-bullet">📈</div><div><h4>Foco no crescimento</h4><p>Somos parceiros estratégicos. Nosso objetivo é que sua empresa cresça com mais controle e segurança.</p></div></div>
      </div>
    </div>
    <div class="benef-right">
      <div class="pqec-big">
        <div class="icon">🏆</div>
        <h3>Certificação PQEC · FENACON</h3>
        <p>A Gama & Filhos é certificada pelo Programa de Qualificação de Excelência Contábil, um dos mais importantes reconhecimentos do setor contábil brasileiro.</p>
      </div>
      <div class="benef-checks">
        <div class="bcheck">Mais controle tributário</div>
        <div class="bcheck">Melhor organização fiscal</div>
        <div class="bcheck">Redução de riscos e multas</div>
        <div class="bcheck">Apoio em planejamento financeiro</div>
        <div class="bcheck">Clareza sobre os resultados</div>
        <div class="bcheck">Gestão segura e estratégica</div>
      </div>
    </div>
  </div>
</section>
<!-- SOBRE -->
<section id="sobre">
  <div class="sobre-layout">
    <div class="sobre-img">
      <div class="sobre-img-badge" style="color:#fff !important;">✦ Nossa filosofia</div>
      <div class="sobre-quote" style="color:#fff !important;">"Fazer diferente é <span style="color:#ffe0ea !important;">pensar no próximo</span>, vibrar com o crescimento e estar junto nos momentos de dificuldade."</div>
      <div class="sobre-meta" style="color:#fff !important;">Gama & Filhos Contabilidade · Camaragibe, PE · CNPJ 10.826.825/0001-13</div>
    </div>
    <div class="sobre-text">
      <div class="sobre-text-header">
        <div class="section-tag">Sobre a Gama & Filhos</div>
        <h2 class="section-h2">Um pouco sobre nós</h2>
      </div>
      <p>A <strong>Gama & Filhos</strong> é uma empresa com espírito de excelência que busca fazer a diferença na vida das pessoas, sejam clientes, parceiros ou colaboradores. Fazer diferente é usar mais criatividade, pensar no próximo e vibrar com o crescimento de cada empresa que atendemos.</p>
      <p>Fundada há mais de 30 anos em Camaragibe, Pernambuco, conquistamos a <strong>Certificação PQEC da FENACON</strong> — reconhecimento nacional de qualidade e competência. Atendemos empresas em todo o Brasil de forma presencial e 100% digital.</p>
      <div class="sobre-valores">
        <div class="val"><div class="vi">🎯</div><strong>Missão</strong><span>Ser parceiro estratégico das empresas</span></div>
        <div class="val"><div class="vi">👁️</div><strong>Visão</strong><span>Referência em contabilidade digital</span></div>
        <div class="val"><div class="vi">⚖️</div><strong>Ética</strong><span>Transparência em todas as relações</span></div>
        <div class="val"><div class="vi">🚀</div><strong>Inovação</strong><span>Tecnologia a favor do cliente</span></div>
      </div>
    </div>
  </div>
</section>
<!-- SERVIÇOS -->
<section id="servicos">
  <div class="serv-header">
    <h2 class="section-h2">Nossos Serviços</h2>
    <div class="serv-divider"><span>◇</span></div>
    <p class="section-p" style="margin:0 auto;max-width:640px;">Apresentamos aos nossos clientes uma nova maneira de fazer contabilidade: tecnologia, eficiência e sem perder o contato direto com o contador.</p>
  </div>
  <div class="serv-grid">
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/contabilidade--1-.png" alt="Fiscal & Tributária" onerror="this.outerHTML='<span style=\'font-size:52px\'>📊</span>'">
      <div class="serv-title">Fiscal &amp; Tributária</div>
    </div>
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/populacao.png" alt="Departamento Pessoal" onerror="this.outerHTML='<span style=\'font-size:52px\'>👥</span>'">
      <div class="serv-title">Departamento Pessoal</div>
    </div>
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/despesas.png" alt="Contabilidade Geral" onerror="this.outerHTML='<span style=\'font-size:52px\'>📒</span>'">
      <div class="serv-title">Contabilidade Geral</div>
    </div>
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/companhia--1-.png" alt="Abertura de Empresas" onerror="this.outerHTML='<span style=\'font-size:52px\'>🏢</span>'">
      <div class="serv-title">Abertura, Alteração e<br>Encerramento de Empresas</div>
    </div>
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/consultor--5-.png" alt="Assessoria e Consultoria" onerror="this.outerHTML='<span style=\'font-size:52px\'>🤝</span>'">
      <div class="serv-title">Serviços de Assessoria<br>e Consultoria</div>
    </div>
    <div class="serv-card">
      <img class="serv-ico" src="https://gamacontabil.com.br/images/servico-de-entrega.png" alt="Obrigações Acessórias" onerror="this.outerHTML='<span style=\'font-size:52px\'>📋</span>'">
      <div class="serv-title">Obrigações Acessórias<br>e Declarações</div>
    </div>
  </div>
  <div class="serv-btn-wrap">
    <a href="https://wa.me/5581996356958" class="serv-saiba">Saiba Mais.....</a>
  </div>
</section>
<!-- DEPOIMENTOS -->
<section id="depoimentos">
  <div style="text-align:center;max-width:600px;margin:0 auto 56px;">
    <div class="section-tag">Depoimentos</div>
    <h2 class="section-h2">O que nossos clientes falam sobre nós</h2>
    <p class="section-p">A satisfação dos nossos clientes é o maior reconhecimento do nosso trabalho.</p>
  </div>
  <div class="dep-grid">
    <div class="dep-card">
      <div class="dep-stars">★★★★★</div>
      <p class="dep-text">"A Gama & Filhos transformou completamente a gestão contábil da minha empresa. Atendimento ágil, profissional e sempre disponível para tirar dúvidas. Recomendo muito!"</p>
      <div class="dep-author"><div class="dep-av">MS</div><div><div class="dep-name">Marcos Silva</div><div class="dep-co">Comércio · Camaragibe</div></div></div>
    </div>
    <div class="dep-card">
      <div class="dep-stars">★★★★★</div>
      <p class="dep-text">"Desde que contratei a Gama & Filhos, nunca mais me preocupei com impostos e obrigações. Eles cuidam de tudo com competência e nos mantêm sempre informados."</p>
      <div class="dep-author"><div class="dep-av">AC</div><div><div class="dep-name">Ana Costa</div><div class="dep-co">Serviços · Recife</div></div></div>
    </div>
    <div class="dep-card">
      <div class="dep-stars">★★★★★</div>
      <p class="dep-text">"A certificação PQEC diz tudo sobre o padrão de qualidade desta empresa. Profissionalismo, pontualidade e assessoria de alto nível. Parceiros de negócio de verdade."</p>
      <div class="dep-author"><div class="dep-av">RF</div><div><div class="dep-name">Ricardo Ferreira</div><div class="dep-co">Indústria · Grande Recife</div></div></div>
    </div>
  </div>
</section>
<!-- FAQ -->
<section id="faq">
  <div style="text-align:center;max-width:600px;margin:0 auto 56px;">
    <div class="section-tag">Dúvidas frequentes</div>
    <h2 class="section-h2">Perguntas Frequentes</h2>
    <p class="section-p">Respostas rápidas para as principais dúvidas sobre nossos serviços.</p>
  </div>
  <div class="faq-wrap">
    <div class="faq-item">
      <button class="faq-q" onclick="toggleFaq(this)">Quais tipos de empresa vocês atendem?<span class="faq-icon">+</span></button>
      <div class="faq-a">Atendemos MEI, ME, EPP, médias e grandes empresas nos regimes Simples Nacional, Lucro Presumido e Lucro Real, em todos os segmentos. Também atendemos profissionais liberais e autônomos.</div>
    </div>
    <div class="faq-item">
      <button class="faq-q" onclick="toggleFaq(this)">Como funciona a migração do meu contador atual?<span class="faq-icon">+</span></button>
      <div class="faq-a">O processo é simples e tranquilo. Nossa equipe realiza toda a transição, solicitando os documentos necessários do escritório anterior. Você não precisa se preocupar com nada — cuidamos de tudo.</div>
    </div>
    <div class="faq-item">
      <button class="faq-q" onclick="toggleFaq(this)">Vocês atendem empresas fora de Camaragibe?<span class="faq-icon">+</span></button>
      <div class="faq-a">Sim! Atendemos empresas em todo o Brasil de forma 100% digital. Nossa plataforma permite envio de documentos e comunicação direta com o seu contador de qualquer lugar.</div>
    </div>
    <div class="faq-item">
      <button class="faq-q" onclick="toggleFaq(this)">O que é a certificação PQEC?<span class="faq-icon">+</span></button>
      <div class="faq-a">O PQEC (Programa de Qualificação de Excelência Contábil) é uma certificação da FENACON que reconhece escritórios com altos padrões de qualidade, gestão e processos — um dos mais importantes selos do setor contábil brasileiro.</div>
    </div>
    <div class="faq-item">
      <button class="faq-q" onclick="toggleFaq(this)">Qual o horário de atendimento?<span class="faq-icon">+</span></button>
      <div class="faq-a">Atendimento de segunda a sexta, das 08h às 17h. Para demandas urgentes, disponibilizamos atendimento via WhatsApp com tempo de resposta ágil.</div>
    </div>
  </div>
</section>
<!-- CONTATO -->
<section id="contato">
  <div style="max-width:600px;margin:0 auto 56px;">
    <div class="section-tag">Fale Conosco</div>
    <h2 class="section-h2">Fale já com nossos especialistas</h2>
    <p class="section-p">Entre em contato pelos canais abaixo. Nossa equipe está pronta para orientar sua empresa.</p>
  </div>
  <div class="contato-layout">
    <div class="contato-info">
      <div class="c-item"><span class="c-icon">📞</span><div><h4>Telefone</h4><p>(81) 3458-1079 / 3458-1033</p></div></div>
      <div class="c-item"><span class="c-icon">💬</span><div><h4>WhatsApp</h4><p>(81) 99635-6958</p></div></div>
      <div class="c-item"><span class="c-icon">📧</span><div><h4>E-mail</h4><p>contato@gamacontabil.com.br</p></div></div>
      <div class="c-item"><span class="c-icon">📍</span><div><h4>Endereço</h4><p>Rua das Tulipas, 40 — Bairro Novo<br>Camaragibe, Pernambuco</p></div></div>
      <div class="c-item"><span class="c-icon">🕐</span><div><h4>Horário</h4><p>Seg–Sex: 08h às 17h</p></div></div>
    </div>
    <div class="contato-form">
      <h3>Envie uma mensagem</h3>
      <p>Preencha o formulário e retornaremos em breve.</p>
      <div class="form-row">
        <div class="fg"><label>Nome *</label><input type="text" placeholder="Seu nome"></div>
        <div class="fg"><label>E-mail *</label><input type="email" placeholder="seu@email.com"></div>
      </div>
      <div class="fg"><label>Telefone</label><input type="text" placeholder="(81) 99999-9999"></div>
      <div class="fg"><label>Departamento</label>
        <select>
          <option value="">Selecione o serviço</option>
          <option>Fiscal / Tributário</option>
          <option>Departamento Pessoal</option>
          <option>Contabilidade Geral</option>
          <option>Planejamento Tributário</option>
          <option>Assessoria & Consultoria</option>
          <option>Abertura / Regularização</option>
        </select>
      </div>
      <div class="fg"><label>Mensagem</label><textarea placeholder="Como podemos ajudar?"></textarea></div>
      <button class="btn-send" onclick="alert('✅ Mensagem enviada! Nossa equipe entrará em contato em breve.')">Enviar mensagem</button>
    </div>
  </div>
</section>
<!-- CTA STRIP -->
<section id="cta-strip">
  <h2>Conheça todo o nosso time em uma reunião</h2>
  <p>Vamos impulsionar os resultados da sua empresa com uma contabilidade que entende do seu negócio.</p>
  <a href="https://wa.me/5581996356958" class="btn-cta">Fale com nossos especialistas</a>
</section>
<!-- FOOTER -->
<footer>
  <div class="footer-top">
    <div class="fc">
      <h5>Gama & Filhos</h5>
      <p>A Gama & Filhos é uma empresa com espírito de excelência que busca fazer a diferença na vida das pessoas, sejam clientes, parceiros ou colaboradores.</p>
      <div style="margin-top:18px;display:flex;gap:14px;">
        <a href="https://www.instagram.com/gamaefilhos/" target="_blank">Instagram</a>
        <a href="https://www.facebook.com/gamafilhos" target="_blank">Facebook</a>
        <a href="https://wa.me/5581996356958" target="_blank">WhatsApp</a>
      </div>
    </div>
    <div class="fc">
      <h5>Navegação</h5>
      <ul>
        <li><a href="#sobre">Sobre nós</a></li>
        <li><a href="#servicos">Serviços</a></li>
        <li><a href="#depoimentos">Depoimentos</a></li>
        <li><a href="#faq">FAQ</a></li>
        <li><a href="#contato">Contato</a></li>
        <li><a href="#simulador" onclick="mostrarSimulador();return false;">Simulador da Reforma Tributária — IBS e CBS</a></li>
      </ul>
    </div>
    <div class="fc">
      <h5>Serviços</h5>
      <ul>
        <li><a href="#servicos">Fiscal &amp; Tributária</a></li>
        <li><a href="#servicos">Departamento Pessoal</a></li>
        <li><a href="#servicos">Contabilidade Geral</a></li>
        <li><a href="#servicos">Abertura, Alteração e Encerramento de Empresas</a></li>
        <li><a href="#servicos">Serviços de Assessoria e Consultoria</a></li>
        <li><a href="#servicos">Obrigações Acessórias e Declarações</a></li>
      </ul>
    </div>
    <div class="fc">
      <h5>Encontre-nos</h5>
      <ul>
        <li><a href="#">Rua das Tulipas, 40 — Camaragibe, PE</a></li>
        <li><a href="tel:8134581079">(81) 3458-1079</a></li>
        <li><a href="https://wa.me/5581996356958">(81) 99635-6958</a></li>
        <li><a href="#">contato@gamacontabil.com.br</a></li>
        <li><a href="#">CNPJ: 10.826.825/0001-13</a></li>
      </ul>
    </div>
  </div>
  <div class="footer-bottom">
    <span>© 2025 Gama & Filhos Contabilidade — Todos os direitos reservados.</span>
    <span>Qualidade técnica, tecnologia e atendimento.</span>
  </div>
</footer>
</div><!-- /site-view -->

<!-- ===== SIMULADOR DA REFORMA TRIBUTÁRIA (view única) ===== -->
<div id="sim-view" style="display:none">
<div class="sim-voltar-wrap"><a href="#" class="btn-voltar-site" onclick="mostrarSite();return false;"><span class="bv-ico">←</span> Voltar ao site</a></div>


<header>
  <div class="container">
    <div class="header-flex">
      <img src="https://gamacontabil.com.br/images/GF_Logo_Branca-removebg-preview.png" alt="Gama &amp; Filhos Contabilidade" onerror="this.style.display='none'">
      <div class="header-titulos">
        <h1>Simulador da Reforma Tributária — IBS e CBS</h1>
        <p>Ferramenta gratuita da Gama &amp; Filhos Contabilidade · LC 214/2025</p>
      </div>
    </div>
    <div class="badges">
      <span class="badge destaque">100% Gratuito</span>
      <span class="badge">API oficial · Receita Federal (piloto)</span>
      <span class="badge">LC 214/2025 · EC 132/2023</span>
      <span class="badge">Ano-teste 2026: CBS 0,9% · IBS 0,1%</span>
    </div>
  </div>
</header>

<nav class="tabs">
  <div class="container tabs-inner">
    <button class="tab-btn ativa" data-tab="calc">🧮 Calculadora IBS/CBS</button>
    <button class="tab-btn" data-tab="valida">📄 Validador de XML</button>
    <button class="tab-btn" data-tab="sobre">📚 Entenda a Reforma</button>
  </div>
</nav>

<main class="container">

<!-- ============ CALCULADORA ============ -->
<section id="painel-calc" class="painel ativa">
  <div class="card">
    <h2>Calculadora de IBS e CBS por operação</h2>
    <p class="sub">Informe os dados da operação e calcule os novos tributos com o motor oficial da Receita Federal (ambiente piloto). Alíquotas de referência por UF e município.</p>

    <div class="grid c3">
      <div class="campo">
        <label for="c-data">Data da operação</label>
        <input type="date" id="c-data">
      </div>
      <div class="campo">
        <label for="c-uf">UF</label>
        <select id="c-uf"></select>
      </div>
      <div class="campo">
        <label for="c-mun">Município</label>
        <select id="c-mun"><option value="">Selecione a UF primeiro</option></select>
        <div class="dica" id="c-mun-dica">Lista carregada da base oficial (IBGE).</div>
      </div>
    </div>

    <h3>Itens da operação</h3>
    <div id="lista-itens"></div>
    <button class="btn sec mini" id="btn-add-item" type="button">+ Adicionar item</button>

    <div class="acoes">
      <button class="btn" id="btn-calcular" type="button">Calcular IBS e CBS</button>
      <button class="btn sec" id="btn-limpar" type="button">Limpar</button>
    </div>
    <div id="calc-status"></div>
  </div>

  <div class="card" id="card-resultado" style="display:none">
    <h2>Resultado da simulação</h2>
    <div id="res-cards" class="result-cards"></div>
    <div id="res-tabela"></div>
    <div id="res-memorias"></div>
    <p class="fonte-calculo" id="res-fonte"></p>
    <div class="acoes no-print">
      <button class="btn sec mini" onclick="window.print()">🖨️ Imprimir / salvar PDF</button>
    </div>
  </div>

  <div class="cta">
    <div>
      <h3>Quer saber o impacto real da Reforma na sua empresa?</h3>
      <p>A Gama &amp; Filhos analisa seu regime, seus produtos e projeta a carga tributária na transição 2026–2033.</p>
    </div>
    <a class="btn" href="https://wa.me/5581996356958?text=Ol%C3%A1!%20Usei%20o%20Simulador%20da%20Reforma%20Tribut%C3%A1ria%20e%20quero%20uma%20an%C3%A1lise%20para%20minha%20empresa." target="_blank" rel="noopener">Falar no WhatsApp</a>
  </div>
</section>

<!-- ============ VALIDADOR ============ -->
<section id="painel-valida" class="painel">
  <div class="card">
    <h2>Validador de XML — NF-e e NFS-e</h2>
    <p class="sub">Desde janeiro de 2026, toda nota deveria destacar o grupo <strong>IBSCBS</strong> com as alíquotas-teste. Cole ou arraste seus XMLs e receba um laudo com 7 checagens, item por item — como o fisco vai conferir.</p>
    <div class="aviso warn">⚠️ <strong>Atenção ao prazo:</strong> a partir de <strong>3 de agosto de 2026</strong>, a SEFAZ passa a rejeitar NF-e sem os campos de IBS/CBS. Empresas do Simples Nacional entram na obrigação em janeiro de 2027.</div>

    <div id="area-validador">
      <div class="dropzone" id="dropzone">
        <strong>Arraste até 10 arquivos XML aqui</strong><br>ou clique para selecionar
        <input type="file" id="input-xml" accept=".xml,text/xml" multiple style="display:none">
      </div>
      <div class="campo" style="margin-top:14px">
        <label for="xml-colado">…ou cole o conteúdo do XML</label>
        <textarea id="xml-colado" rows="6" placeholder="&lt;NFe&gt;...&lt;/NFe&gt;" spellcheck="false"></textarea>
      </div>
      <div class="acoes">
        <button class="btn" id="btn-validar" type="button">Validar notas</button>
        <button class="btn sec" id="btn-hist" type="button">📜 Histórico</button>
        <span class="contador-uso" id="contador-uso"></span>
      </div>
    </div>
  </div>

  <div class="card" id="card-laudo" style="display:none">
    <div class="print-cabecalho">
      <strong>Gama &amp; Filhos Contabilidade</strong> — Laudo de conformidade IBS/CBS · gamacontabil.com.br · (81) 99635-6958
    </div>
    <h2>Laudo de conformidade IBS/CBS</h2>
    <div id="laudo-conteudo"></div>
    <div class="acoes no-print">
      <button class="btn sec mini" onclick="window.print()">🖨️ Imprimir laudo / salvar PDF</button>
    </div>
  </div>

  <div class="card" id="card-historico" style="display:none">
    <h2>Histórico de validações</h2>
    <div id="hist-conteudo"></div>
  </div>

  <div class="cta">
    <div>
      <h3>Nota com problema? Nós corrigimos com você.</h3>
      <p>Nossa equipe fiscal ajusta o cadastro de produtos, CSTs e cClassTrib do seu ERP antes que as notas sejam rejeitadas.</p>
    </div>
    <a class="btn" href="https://wa.me/5581996356958?text=Ol%C3%A1!%20Validei%20meus%20XMLs%20no%20simulador%20da%20Gama%20e%20preciso%20de%20ajuda%20com%20os%20campos%20de%20IBS%2FCBS." target="_blank" rel="noopener">Falar no WhatsApp</a>
  </div>
</section>

<!-- ============ EDUCATIVO ============ -->
<section id="painel-sobre" class="painel">
  <div class="card">
    <h2>O que muda com a Reforma Tributária do Consumo</h2>
    <p class="sub">A EC 132/2023, regulamentada pela LC 214/2025, cria o IVA Dual brasileiro: dois tributos substituem cinco.</p>
    <div class="grid c2">
      <div>
        <h3>CBS — Contribuição sobre Bens e Serviços</h3>
        <p style="font-size:.9rem;color:var(--texto-suave)">Tributo <strong>federal</strong>, administrado pela Receita Federal. Substitui <strong>PIS e Cofins</strong>. Alíquota-teste em 2026: <strong>0,9%</strong>.</p>
      </div>
      <div>
        <h3>IBS — Imposto sobre Bens e Serviços</h3>
        <p style="font-size:.9rem;color:var(--texto-suave)">Tributo <strong>estadual e municipal</strong>, gerido pelo Comitê Gestor do IBS. Substitui <strong>ICMS e ISS</strong>. Alíquota-teste em 2026: <strong>0,1%</strong>.</p>
      </div>
    </div>

    <h3>Linha do tempo da transição</h3>
    <div class="timeline">
      <div class="tl-item"><span class="ano">2026</span><p>Ano-teste: CBS 0,9% e IBS 0,1% destacados nos documentos fiscais. A partir de <strong>3/8/2026</strong>, NF-e sem grupo IBSCBS é rejeitada.</p></div>
      <div class="tl-item"><span class="ano">2027</span><p>CBS entra em vigor integral; extinção de PIS/Cofins; IPI zerado para a maioria dos produtos. Simples Nacional passa a destacar IBS/CBS.</p></div>
      <div class="tl-item"><span class="ano">2029–2032</span><p>Transição gradual: ICMS e ISS são reduzidos ano a ano enquanto o IBS sobe proporcionalmente.</p></div>
      <div class="tl-item"><span class="ano">2033</span><p>Modelo completo: somente IBS + CBS (e Imposto Seletivo sobre bens prejudiciais à saúde e ao meio ambiente).</p></div>
    </div>

    <h3>Perguntas frequentes</h3>
    <details class="faq"><summary>As alíquotas definitivas do IBS e da CBS já estão definidas?</summary><p>Não. As alíquotas de referência definitivas ainda dependem de resolução do Senado e dos entes federativos. Esta ferramenta usa as alíquotas do ambiente piloto oficial da Receita Federal e as alíquotas-teste de 2026 (CBS 0,9% e IBS 0,1%).</p></details>
    <details class="faq"><summary>O que são CST e cClassTrib?</summary><p>O CST (Código de Situação Tributária) indica a natureza da operação (tributação integral, alíquota reduzida, isenção, imunidade etc.). O cClassTrib (Classificação Tributária, 6 dígitos) detalha o enquadramento legal na LC 214/2025. Os dois campos são obrigatórios no grupo IBSCBS de cada item da nota.</p></details>
    <details class="faq"><summary>Minha empresa é do Simples Nacional. Preciso me preocupar?</summary><p>Sim. A partir de janeiro de 2027 as empresas do Simples também passam a destacar IBS/CBS nos documentos fiscais, e há decisões estratégicas a tomar (Simples regular × Simples híbrido) que afetam os créditos dos seus clientes.</p></details>
    <details class="faq"><summary>Este simulador substitui a orientação de um contador?</summary><p>Não. É uma ferramenta educativa com dados do ambiente piloto. Cada empresa tem particularidades de regime, benefícios e cadeia de créditos — fale com a equipe da Gama &amp; Filhos para uma análise personalizada.</p></details>
  </div>

  <div class="cta">
    <div>
      <h3>Prepare sua empresa para 2026–2033 com quem entende</h3>
      <p>Gama &amp; Filhos Contabilidade · 30+ anos · Certificação PQEC/FENACON · Camaragibe-PE, atendimento em todo o Brasil.</p>
    </div>
    <a class="btn" href="https://wa.me/5581996356958?text=Ol%C3%A1!%20Quero%20preparar%20minha%20empresa%20para%20a%20Reforma%20Tribut%C3%A1ria." target="_blank" rel="noopener">Falar com a Gama</a>
  </div>
</section>

</main>

<!-- Modal de cadastro (gate do validador) -->
<div class="modal-fundo" id="modal-cadastro">
  <div class="modal">
    <h3>Crie seu acesso gratuito ao Validador</h3>
    <p class="sub">Leva 30 segundos. Você ganha <strong>10 validações gratuitas</strong> com laudo completo e histórico.</p>
    <div class="grid">
      <div class="campo"><label for="l-nome">Nome completo *</label><input id="l-nome" type="text" autocomplete="name"></div>
      <div class="campo"><label for="l-email">E-mail *</label><input id="l-email" type="email" autocomplete="email"></div>
      <div class="campo"><label for="l-fone">WhatsApp *</label><input id="l-fone" type="tel" placeholder="(81) 9XXXX-XXXX" autocomplete="tel"></div>
      <div class="campo"><label for="l-insta">Instagram</label><input id="l-insta" type="text" placeholder="@suaempresa"></div>
      <div class="campo"><label for="l-empresa">Empresa / CNPJ (opcional)</label><input id="l-empresa" type="text"></div>
    </div>
    <div id="l-erro" class="aviso err" style="display:none"></div>
    <div class="acoes">
      <button class="btn" id="btn-cadastrar" type="button">Liberar meu acesso</button>
      <button class="btn sec" id="btn-fechar-modal" type="button">Agora não</button>
    </div>
    <p class="lgpd">Ao continuar, você concorda com o uso dos seus dados para contato da Gama &amp; Filhos Contabilidade, conforme nossa <a href="https://gamacontabil.com.br" target="_blank" rel="noopener">Política de Privacidade (LGPD)</a>. Você pode revogar o consentimento a qualquer momento.</p>
  </div>
</div>

<footer>
  <div class="container">
    <strong>Gama &amp; Filhos Contabilidade</strong> · CNPJ 10.826.825/0001-13 · Rua das Tulipas, 40 — Bairro Novo, Camaragibe-PE<br>
    (81) 3458-1079 · WhatsApp (81) 99635-6958 · contato@gamacontabil.com.br · <a href="https://www.instagram.com/gamaefilhos/" target="_blank" rel="noopener">@gamaefilhos</a>
    <p class="disclaimer">Ferramenta gratuita de simulação e conferência com finalidade educativa. Os cálculos usam o ambiente piloto oficial da Receita Federal (piloto-cbs.tributos.gov.br) e as alíquotas de referência vigentes, que podem ser alteradas pela legislação. Os resultados não constituem parecer fiscal nem substituem a orientação de um profissional habilitado. Os XMLs enviados são processados no seu navegador e usados apenas para gerar o seu laudo.</p>
  </div>
</footer>


</div><!-- /sim-view -->

<!-- MODAL PRIVACIDADE -->
<div id="privacy-modal" style="display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.6);overflow-y:auto;padding:40px 16px;">
  <div style="background:#fff;max-width:820px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.3);">
    <!-- HEADER -->
    <div style="background:var(--wine-dark);padding:28px 36px;display:flex;justify-content:space-between;align-items:center;">
      <div>
        <div style="font-size:11px;font-weight:700;color:rgba(255,255,255,0.6);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;">Gama & Filhos Contabilidade</div>
        <h2 style="color:#fff;font-size:20px;font-weight:800;">Política de Privacidade e Proteção de Dados</h2>
      </div>
      <button onclick="closePrivacy()" style="background:rgba(255,255,255,0.1);border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;">✕</button>
    </div>
    <!-- FICHA -->
    <div style="padding:0 36px;">
      <table style="width:100%;border-collapse:collapse;font-size:12.5px;margin-top:0;">
        <tr style="background:#f9eff2;">
          <td style="padding:10px 14px;border:1px solid #e8d5da;color:#4a1225;font-weight:600;">Título</td>
          <td style="padding:10px 14px;border:1px solid #e8d5da;" colspan="3">Política de Privacidade e Proteção de Dados</td>
          <td style="padding:10px 14px;border:1px solid #e8d5da;font-weight:600;white-space:nowrap;">Código<br><strong>PPD.001</strong></td>
        </tr>
        <tr>
          <td style="padding:8px 14px;border:1px solid #e8d5da;font-weight:600;">Data de Emissão</td>
          <td style="padding:8px 14px;border:1px solid #e8d5da;">01/07/2026</td>
          <td style="padding:8px 14px;border:1px solid #e8d5da;font-weight:600;">Revisão</td>
          <td style="padding:8px 14px;border:1px solid #e8d5da;">01/07/2026</td>
          <td style="padding:8px 14px;border:1px solid #e8d5da;">Versão 1 · Público</td>
        </tr>
      </table>
    </div>
    <!-- CONTEÚDO -->
    <div style="padding:32px 36px;font-size:14.5px;color:#2d1a22;line-height:1.8;">
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">1. INTRODUÇÃO</h3>
      <p style="margin-bottom:14px;">A <strong>Gama & Filhos Contabilidade</strong>, no âmbito de suas responsabilidades, evidencia seu irrestrito comprometimento para com os pressupostos legais, morais e éticos afins ao tratamento de dados pessoais de seus colaboradores, clientes, fornecedores, parceiros e terceiros.</p>
      <p style="margin-bottom:28px;">Entende, ainda, que o tratamento de dados pessoais realizado de forma legítima, correta e conforme é um fator crítico para o sucesso de seus objetivos organizacionais, devendo ser observado por todos os seus colaboradores.</p>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">2. FINALIDADE</h3>
      <p style="margin-bottom:12px;">A presente política explicita as práticas de privacidade e direitos assegurados aos titulares de dados, em atenção às disposições da Lei nº 13.709/2018 (LGPD), orientada aos seguintes pontos:</p>
      <ol style="padding-left:20px;margin-bottom:28px;display:flex;flex-direction:column;gap:8px;">
        <li>Proteger os direitos fundamentais e as liberdades civis pertinentes à privacidade dos colaboradores, clientes, fornecedores, parceiros e terceiros;</li>
        <li>Adotar processos e regras que assegurem o cumprimento de normas e boas práticas relativas à proteção de dados pessoais;</li>
        <li>Promover a transparência quanto à forma de tratamento de dados pessoais;</li>
        <li>Contribuir para o aprimoramento da segurança organizacional e a proteção de dados pessoais.</li>
      </ol>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">3. DISPOSIÇÕES GERAIS</h3>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">3.1. Legislação de referência</h4>
      <p style="margin-bottom:6px;">Lei nº 12.965/2014 – Marco Civil da Internet;</p>
      <p style="margin-bottom:6px;">Lei nº 13.709/2018 – Lei Geral de Proteção de Dados Pessoais (LGPD);</p>
      <p style="margin-bottom:20px;">Lei nº 13.853/2019 – Responsável por alterar a Lei Geral de Proteção de Dados Pessoais (LGPD).</p>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 10px;">3.2. Definições</h4>
      <div style="display:flex;flex-direction:column;gap:10px;margin-bottom:20px;">
        <p><strong>a. ANPD:</strong> Autoridade Nacional de Proteção de Dados — órgão responsável pela fiscalização do cumprimento da LGPD no território nacional;</p>
        <p><strong>b. COMPARTILHAMENTO DE DADOS:</strong> comunicação, difusão ou transferência de dados pessoais entre órgãos, entidades públicas ou entes privados;</p>
        <p><strong>c. CONSENTIMENTO:</strong> manifestação livre, informada e inequívoca pela qual o titular concorda com o tratamento de seus dados para uma finalidade determinada;</p>
        <p><strong>d. CONTROLADOR:</strong> a quem competem as decisões referentes ao tratamento de dados pessoais, representada nesta política pela <strong>Gama & Filhos Contabilidade</strong>;</p>
        <p><strong>e. DADO ANONIMIZADO:</strong> dado relativo ao titular que não possa ser identificado, considerando meios técnicos razoáveis disponíveis;</p>
        <p><strong>f. DADOS PESSOAIS:</strong> qualquer informação relacionada a pessoa natural identificada ou identificável, como nome, CPF, RG, endereço, telefone, e-mail, geolocalização, entre outros;</p>
        <p><strong>g. DADOS PESSOAIS SENSÍVEIS:</strong> dado sobre origem racial ou étnica, convicção religiosa, opinião política, saúde, vida sexual, dado genético ou biométrico;</p>
        <p><strong>h. INCIDENTES DE SEGURANÇA:</strong> qualquer evento que viabilize a quebra dos princípios de Confidencialidade, Integridade e Disponibilidade de informações;</p>
        <p><strong>i. TITULAR DOS DADOS:</strong> pessoa natural a quem se referem os dados pessoais objeto de tratamento;</p>
        <p><strong>j. TRATAMENTO:</strong> qualquer operação efetuada com dados pessoais, como coleta, registro, organização, conservação, consulta, utilização, divulgação ou eliminação;</p>
        <p><strong>k. VIOLAÇÃO DE DADOS PESSOAIS:</strong> qualquer acesso, uso, modificação, divulgação, perda ou dano não autorizado que envolva dados pessoais.</p>
      </div>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">3.3. Âmbito da aplicação</h4>
      <p style="margin-bottom:12px;">Esta política se aplica à <strong>Gama & Filhos Contabilidade</strong> e a todos os seus colaboradores que possam ter contato com dados pessoais tratados pela empresa, especialmente quando:</p>
      <ol style="padding-left:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:6px;">
        <li>A operação de tratamento tenha sido ou almeje ser realizada no território nacional brasileiro;</li>
        <li>A atividade objetivar a oferta ou fornecimento de serviços localizados no Brasil;</li>
        <li>Os dados pessoais tenham sido coletados dentro do território nacional brasileiro.</li>
      </ol>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 10px;">3.4. Princípios norteadores da proteção de dados</h4>
      <ol style="padding-left:20px;margin-bottom:28px;display:flex;flex-direction:column;gap:8px;">
        <li><strong>Boa-fé:</strong> todas as operações de tratamento deverão ser pautadas em boas intenções e nos bons costumes aceitos pela sociedade;</li>
        <li><strong>Finalidade e adequação:</strong> o tratamento deve se limitar aos propósitos legítimos, específicos e informados ao titular;</li>
        <li><strong>Necessidade:</strong> a coleta de dados deve ser limitada ao mínimo necessário para o cumprimento das finalidades;</li>
        <li><strong>Livre acesso e qualidade:</strong> aos titulares deverá ser garantida consulta facilitada e gratuita sobre o tratamento de seus dados;</li>
        <li><strong>Transparência:</strong> os titulares terão acesso a informações claras e precisas sobre o tratamento realizado;</li>
        <li><strong>Segurança e prevenção:</strong> medidas técnicas e organizacionais serão adotadas para prevenir incidentes com dados pessoais;</li>
        <li><strong>Não discriminação:</strong> o tratamento de dados jamais poderá objetivar fins discriminatórios, ilícitos ou abusivos;</li>
        <li><strong>Responsabilização:</strong> a Gama & Filhos armazenará registros de todas as atividades de tratamento, comprovando sua conformidade.</li>
      </ol>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">4. DO TRATAMENTO DE DADOS</h3>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">4.1. Fundamentos para a coleta de informações</h4>
      <p style="margin-bottom:12px;">O processamento de informações pessoais é necessário para:</p>
      <ol style="padding-left:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:6px;">
        <li>Viabilizar processos de seleção, recrutamento e contratação de colaboradores;</li>
        <li>Viabilizar processos relativos ao ciclo de vida profissional dos colaboradores;</li>
        <li>Viabilizar interações profissionais e contratuais com clientes, fornecedores e parceiros;</li>
        <li>Viabilizar processos de prospecção, comercialização e execução de serviços contábeis;</li>
        <li>Viabilizar o acesso e navegação em plataformas informatizadas;</li>
        <li>Viabilizar o cumprimento de obrigações legais e regulatórias;</li>
        <li>Viabilizar o tratamento de dados decorrentes de legítimo interesse.</li>
      </ol>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">4.2. Direitos dos usuários</h4>
      <ol style="padding-left:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:6px;">
        <li>Receber confirmação de que suas informações pessoais estão ou não sendo processadas;</li>
        <li>Receber cópia de seus dados pessoais em formato legível e estruturado;</li>
        <li>Solicitar retificação de suas informações pessoais;</li>
        <li>Solicitar a exclusão de suas informações pessoais;</li>
        <li>Negar o processamento de suas informações pessoais;</li>
        <li>Solicitar restrição ao processamento de suas informações;</li>
        <li>Proceder reclamações junto à ANPD.</li>
      </ol>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">4.3. Consentimento</h4>
      <p style="margin-bottom:12px;">A <strong>Gama & Filhos</strong> realiza o tratamento de dados pessoais prioritariamente a partir do consentimento de seu titular (Art. 7 e 9 da LGPD). Os titulares são questionados quanto ao consentimento nas seguintes situações:</p>
      <ol style="padding-left:20px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px;">
        <li>Formalização de contratos de prestação de serviços contábeis;</li>
        <li>Primeiro acesso às plataformas digitais da Gama & Filhos;</li>
        <li>Preenchimento de formulários de contato no website;</li>
        <li>Envio de currículos ou solicitações de parceria;</li>
        <li>Confirmação de recebimento de comunicações e newsletters.</li>
      </ol>
      <p style="margin-bottom:20px;">A qualquer momento e sem custo, o titular poderá solicitar a revogação do seu consentimento.</p>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">4.4. Armazenamento e compartilhamento de dados</h4>
      <p style="margin-bottom:12px;">Os dados pessoais coletados pela Gama & Filhos são armazenados em servidores próprios e/ou terceirizados com padrões de segurança adequados. Documentos físicos são armazenados em espaços físicos controlados.</p>
      <p style="margin-bottom:12px;">Os dados poderão ser compartilhados excepcionalmente nas seguintes condições:</p>
      <ol style="padding-left:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:6px;">
        <li>Determinação legal, requerimento ou ordem judicial de autoridades competentes;</li>
        <li>No caso de movimentações societárias, como fusão ou aquisição;</li>
        <li>Proteção de direitos, privacidade, segurança ou propriedade em conflitos judiciais;</li>
        <li>Para cumprimento dos termos de acordo ou dos termos de uso do site.</li>
      </ol>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">4.5. Transferência internacional de dados</h4>
      <p style="margin-bottom:28px;">Caso algum destinatário de dados esteja localizado fora do território nacional, os dados pessoais serão transmitidos apenas para países aprovados pelo Conselho e pela ANPD e/ou pela Comissão Europeia (quando aplicável ao GDPR).</p>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">5. SEGURANÇA DOS DADOS PESSOAIS</h3>
      <p style="margin-bottom:14px;">O tratamento de dados pessoais constitui-se prioridade de segurança para a <strong>Gama & Filhos Contabilidade</strong>. Medidas e soluções técnicas são adotadas para garantir a confidencialidade, integridade e inviolabilidade dos dados.</p>
      <h4 style="font-size:13.5px;font-weight:700;color:#6b1e35;margin:0 0 8px;">5.1. Respostas a incidentes</h4>
      <p style="margin-bottom:12px;">Em caso de incidentes de segurança, a Gama & Filhos comunicará os afetados e a ANPD e adotará medidas de contingenciamento. Os procedimentos são:</p>
      <ol style="padding-left:20px;margin-bottom:28px;display:flex;flex-direction:column;gap:6px;">
        <li>Recepção da denúncia pelos canais de comunicação da empresa;</li>
        <li>Classificação do evento quanto à natureza dos dados, quantidade afetada e análise de riscos;</li>
        <li>Planejamento e implementação de ações corretivas para contenção do prejuízo;</li>
        <li>Comunicação aos afetados dentro de prazo hábil após as primeiras medidas.</li>
      </ol>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">6. COMO ENTRAR EM CONTATO</h3>
      <p style="margin-bottom:8px;">O titular de dados poderá utilizar os canais abaixo para quaisquer requisições:</p>
      <ol style="padding-left:20px;margin-bottom:28px;display:flex;flex-direction:column;gap:6px;">
        <li><strong>Responsável pelo DPO:</strong> Gama & Filhos Contabilidade</li>
        <li><strong>Telefone:</strong> (81) 3458-1079 / 3458-1033</li>
        <li><strong>E-mail:</strong> contato@gamacontabil.com.br</li>
        <li><strong>Endereço:</strong> Rua das Tulipas, 40 — Bairro Novo, Camaragibe, PE</li>
      </ol>
      <h3 style="font-size:15px;font-weight:800;color:#4a1225;margin:0 0 12px;">7. ALTERAÇÕES</h3>
      <p style="margin-bottom:32px;">Este documento está sujeito a alterações a qualquer momento, sempre visando aperfeiçoar nossos serviços. Toda alteração se adequará às eventuais modificações em nosso site, novas tecnologias, bem como a novos requisitos legais, regulatórios ou contratuais.</p>
      <div style="background:#f9eff2;border-radius:10px;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:32px;">
        <div style="font-size:13px;color:#6b5a5f;">© 2025 Gama & Filhos Contabilidade · CNPJ: 10.826.825/0001-13 · Camaragibe, PE</div>
        <button onclick="closePrivacy()" style="background:var(--wine);color:#fff;border:none;padding:10px 24px;border-radius:6px;font-weight:700;font-size:13px;cursor:pointer;">Fechar</button>
      </div>
    </div>
  </div>
</div>
<!-- COOKIE BANNER -->
<div id="cookie-banner">
  <p>As configurações de cookies neste site são definidas para que possamos dar-lhe a melhor experiência enquanto estiver aqui. Ao continuar navegando você concorda com a nossa <a href="#" onclick="openPrivacy();return false;">política de privacidade</a>.</p>
  <button class="cookie-btn" onclick="closeCookie()">Aceitar e fechar</button>
</div>
<!-- WA FLOAT -->
<a href="https://wa.me/5581996356958" class="wa" target="_blank">
  <svg viewBox="0 0 24 24"><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/></svg>
</a>
<script>
// COOKIE
function closeCookie(){
  document.getElementById('cookie-banner').classList.add('hidden');
  localStorage.setItem('cookieAccepted','true');
}
if(localStorage.getItem('cookieAccepted')==='true'){
  document.getElementById('cookie-banner').classList.add('hidden');
}
// PRIVACY MODAL
function openPrivacy(){
  document.getElementById('privacy-modal').style.display='block';
  document.body.style.overflow='hidden';
}
function closePrivacy(){
  document.getElementById('privacy-modal').style.display='none';
  document.body.style.overflow='';
}
document.getElementById('privacy-modal').addEventListener('click',function(e){
  if(e.target===this) closePrivacy();
});
function toggleFaq(btn){
  const item=btn.parentElement;
  const isOpen=item.classList.contains('open');
  document.querySelectorAll('.faq-item').forEach(i=>i.classList.remove('open'));
  if(!isOpen) item.classList.add('open');
}
window.addEventListener('scroll',()=>{
  document.getElementById('nav').style.boxShadow=window.scrollY>20?'0 2px 20px rgba(107,30,53,0.1)':'none';
});
let currentSlide=0;
const slides=document.querySelectorAll('.hero-slide');
const dots=document.querySelectorAll('.hero-dot');
function goSlide(n){
  slides[currentSlide].classList.remove('active');
  dots[currentSlide].classList.remove('active');
  currentSlide=n;
  slides[currentSlide].classList.add('active');
  dots[currentSlide].classList.add('active');
}
setInterval(()=>goSlide((currentSlide+1)%slides.length),5000);
</script>

<script>

"use strict";
/* ================== CONFIGURAÇÃO ================== */
const API_BASE = "https://piloto-cbs.tributos.gov.br/servico/calculadora-consumo/api/calculadora";
const LEAD_WEBHOOK_URL = ""; // opcional: URL de webhook/CRM para receber os cadastros (POST JSON)
const LIMITE_VALIDACOES_GRATIS = 10;
const LIMITE_ARQUIVOS_POR_VEZ = 10;

/* Alíquotas-teste do ano de 2026 (LC 214/2025, art. 348) */
const ALIQ_TESTE = { pIBSUF: 0.10, pIBSMun: 0.00, pCBS: 0.90 };

const UFS = [["AC",12],["AL",27],["AP",16],["AM",13],["BA",29],["CE",23],["DF",53],["ES",32],["GO",52],["MA",21],["MT",51],["MS",50],["MG",31],["PA",15],["PB",25],["PR",41],["PE",26],["PI",22],["RJ",33],["RN",24],["RS",43],["RO",11],["RR",14],["SC",42],["SP",35],["SE",28],["TO",17]];

/* CSTs IBS/CBS — fallback local (atualizado via API quando disponível) */
let CSTS = [
  ["000","Tributação integral"],
  ["010","Tributação com alíquotas uniformes"],
  ["011","Tributação com alíquotas uniformes reduzidas"],
  ["200","Alíquota reduzida"],
  ["210","Alíquota reduzida com redutor de base de cálculo"],
  ["220","Alíquota fixa"],
  ["221","Alíquota fixa proporcional"],
  ["400","Isenção"],
  ["410","Imunidade e não incidência"],
  ["510","Diferimento"],
  ["550","Suspensão"],
  ["620","Tributação monofásica"],
  ["800","Transferência de crédito"],
  ["810","Ajustes"],
  ["820","Tributação em declaração de regime específico"],
  ["830","Exclusão de base de cálculo"]
];
const CST_COM_DEBITO = ["000","010","011","620"];
const CST_SEM_DEBITO = ["200","210","400","410","510","550","800","810","820","830"];

/* ================== UTILIDADES ================== */
const $ = (id) => document.getElementById(id);
const fmtBRL = (v) => Number(v||0).toLocaleString("pt-BR",{style:"currency",currency:"BRL"});
const fmtNum = (v,d=2) => Number(v||0).toLocaleString("pt-BR",{minimumFractionDigits:d,maximumFractionDigits:d});
function esc(s){ return String(s==null?"":s).replace(/[&<>"']/g, c=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[c])); }
async function apiGet(path){
  const r = await fetch(API_BASE + path, {headers:{"Accept":"application/json"}});
  if(!r.ok) throw new Error("HTTP "+r.status);
  return r.json();
}
async function apiPost(path, body){
  const r = await fetch(API_BASE + path, {method:"POST",headers:{"Content-Type":"application/json","Accept":"application/json"},body:JSON.stringify(body)});
  if(!r.ok){ let d=""; try{d=(await r.json()).detail||""}catch(e){} throw new Error("HTTP "+r.status+(d?" — "+d:"")); }
  return r.json();
}

/* ================== NAVEGAÇÃO POR ABAS ================== */
document.querySelectorAll(".tab-btn").forEach(btn=>{
  btn.addEventListener("click", ()=>{
    document.querySelectorAll(".tab-btn").forEach(b=>b.classList.remove("ativa"));
    document.querySelectorAll(".painel").forEach(p=>p.classList.remove("ativa"));
    btn.classList.add("ativa");
    $("painel-"+btn.dataset.tab).classList.add("ativa");
    if(btn.dataset.tab==="valida") exigirCadastroSePreciso();
  });
});

/* ================== CALCULADORA ================== */
let itemSeq = 0;
function addItem(){
  itemSeq++;
  const n = document.querySelectorAll(".item-box").length + 1;
  const div = document.createElement("div");
  div.className = "item-box";
  div.dataset.id = itemSeq;
  div.innerHTML = `
    <div class="titulo-item">ITEM ${n}</div>
    ${n>1?'<button type="button" class="remover-item">✕ remover</button>':""}
    <div class="grid c3">
      <div class="campo"><label>Descrição (opcional)</label><input type="text" class="i-desc" placeholder="Ex.: Serviço de consultoria"></div>
      <div class="campo"><label>Tipo</label>
        <select class="i-tipo"><option value="ncm">Mercadoria (NCM)</option><option value="nbs">Serviço (NBS)</option></select>
      </div>
      <div class="campo"><label>Código NCM/NBS (opcional)</label><input type="text" class="i-cod" placeholder="Ex.: 85171231" inputmode="numeric"></div>
      <div class="campo"><label>CST IBS/CBS</label><select class="i-cst">${CSTS.map(c=>`<option value="${c[0]}">${c[0]} — ${c[1]}</option>`).join("")}</select></div>
      <div class="campo"><label>cClassTrib</label><input type="text" class="i-cclass" value="000001" maxlength="6" inputmode="numeric"><div class="dica">Classificação tributária (6 dígitos). Padrão: 000001.</div></div>
      <div class="campo"><label>Valor da operação (R$)</label><input type="number" class="i-valor" min="0" step="0.01" placeholder="0,00"></div>
      <div class="campo"><label>Quantidade</label><input type="number" class="i-qtd" min="0" step="any" value="1"></div>
      <div class="campo"><label>Unidade</label><input type="text" class="i-un" value="UN" maxlength="6"></div>
    </div>`;
  $("lista-itens").appendChild(div);
  const rm = div.querySelector(".remover-item");
  if(rm) rm.addEventListener("click", ()=>{ div.remove(); renumerarItens(); });
}
function renumerarItens(){
  document.querySelectorAll(".item-box .titulo-item").forEach((t,i)=>t.textContent="ITEM "+(i+1));
}
$("btn-add-item").addEventListener("click", addItem);

function popularUFs(){
  $("c-uf").innerHTML = '<option value="">—</option>' + UFS.map(u=>`<option value="${u[0]}" data-cod="${u[1]}">${u[0]}</option>`).join("");
}
async function carregarMunicipios(sigla){
  const sel = $("c-mun");
  sel.innerHTML = '<option value="">Carregando…</option>';
  try{
    const lista = await apiGet("/dados-abertos/ufs/municipios?siglaUf="+encodeURIComponent(sigla));
    const arr = Array.isArray(lista) ? lista : [lista];
    arr.sort((a,b)=>String(a.nome).localeCompare(String(b.nome),"pt-BR"));
    sel.innerHTML = '<option value="">Selecione…</option>' + arr.map(m=>`<option value="${m.codigo}">${esc(m.nome)}</option>`).join("");
    $("c-mun-dica").textContent = arr.length + " municípios carregados da base oficial.";
  }catch(e){
    sel.innerHTML = '<option value="">(indisponível — informe o código IBGE)</option><option value="manual">Digitar código IBGE…</option>';
    $("c-mun-dica").textContent = "API indisponível no momento. Você ainda pode calcular com as alíquotas-teste.";
  }
}
$("c-uf").addEventListener("change", e=>{ if(e.target.value) carregarMunicipios(e.target.value); });

async function atualizarCSTsViaAPI(){
  try{
    const hoje = $("c-data").value || new Date().toISOString().slice(0,10);
    const lista = await apiGet("/dados-abertos/situacoes-tributarias/cbs-ibs?data="+hoje);
    const arr = Array.isArray(lista) ? lista : [lista];
    if(arr.length){
      CSTS = arr.map(c=>[String(c.codigo), String(c.descricao)]);
      document.querySelectorAll(".i-cst").forEach(sel=>{
        const atual = sel.value;
        sel.innerHTML = CSTS.map(c=>`<option value="${c[0]}">${c[0]} — ${esc(c[1])}</option>`).join("");
        if([...sel.options].some(o=>o.value===atual)) sel.value = atual;
      });
    }
  }catch(e){ /* mantém fallback local */ }
}

function coletarItens(){
  const itens = [];
  document.querySelectorAll(".item-box").forEach((box,i)=>{
    const valor = parseFloat(box.querySelector(".i-valor").value);
    if(!(valor>0)) return;
    const tipo = box.querySelector(".i-tipo").value;
    const cod = box.querySelector(".i-cod").value.replace(/\D/g,"");
    const item = {
      numero: i+1,
      cst: box.querySelector(".i-cst").value,
      cClassTrib: box.querySelector(".i-cclass").value.trim() || "000001",
      baseCalculo: valor,
      quantidade: parseFloat(box.querySelector(".i-qtd").value)||1,
      unidade: (box.querySelector(".i-un").value||"UN").trim(),
      _desc: box.querySelector(".i-desc").value.trim()
    };
    if(cod){ if(tipo==="ncm") item.ncm = cod; else item.nbs = cod; }
    itens.push(item);
  });
  return itens;
}

function calculoLocal(itens){
  /* Fallback com alíquotas-teste quando a API não responde */
  const objetos = itens.map(it=>{
    const debito = CST_COM_DEBITO.includes(it.cst);
    const p = debito ? ALIQ_TESTE : {pIBSUF:0,pIBSMun:0,pCBS:0};
    const v = (pc)=> +(it.baseCalculo * pc/100).toFixed(2);
    const memo = debito
      ? `Cálculo local estimado: base de ${fmtBRL(it.baseCalculo)} com alíquotas-teste de 2026 (IBS UF ${fmtNum(p.pIBSUF)}%, IBS Mun ${fmtNum(p.pIBSMun)}%, CBS ${fmtNum(p.pCBS)}%).`
      : `CST ${it.cst} — operação sem débito de IBS/CBS no cálculo simplificado local. Confirme o enquadramento (cClassTrib ${it.cClassTrib}).`;
    return { nObj: it.numero, tribCalc:{ IBSCBS:{ CST: it.cst, cClassTrib: it.cClassTrib, gIBSCBS:{
      vBC: it.baseCalculo.toFixed(2),
      gIBSUF:{pIBSUF:p.pIBSUF.toFixed(2), vIBSUF:v(p.pIBSUF).toFixed(2), memoriaCalculo:memo},
      gIBSMun:{pIBSMun:p.pIBSMun.toFixed(2), vIBSMun:v(p.pIBSMun).toFixed(2), memoriaCalculo:""},
      gCBS:{pCBS:p.pCBS.toFixed(2), vCBS:v(p.pCBS).toFixed(2), memoriaCalculo:""}
    }}}};
  });
  return { objetos, _local:true };
}

function renderResultado(resp, itens, fonte){
  let tUF=0,tMun=0,tCBS=0,tBC=0;
  const linhas = [];
  const memorias = [];
  (resp.objetos||[]).forEach((o,idx)=>{
    const g = o.tribCalc && o.tribCalc.IBSCBS && o.tribCalc.IBSCBS.gIBSCBS;
    if(!g) return;
    const vUF=parseFloat(g.gIBSUF&&g.gIBSUF.vIBSUF||0), vMun=parseFloat(g.gIBSMun&&g.gIBSMun.vIBSMun||0), vCBS=parseFloat(g.gCBS&&g.gCBS.vCBS||0), vBC=parseFloat(g.vBC||0);
    tUF+=vUF; tMun+=vMun; tCBS+=vCBS; tBC+=vBC;
    const it = itens[idx]||{};
    linhas.push(`<tr><td>${o.nObj}</td><td>${esc(it._desc||"Item "+o.nObj)}</td><td>${esc(o.tribCalc.IBSCBS.CST)} / ${esc(o.tribCalc.IBSCBS.cClassTrib)}</td><td>${fmtBRL(vBC)}</td><td>${fmtNum(g.gCBS&&g.gCBS.pCBS)}% · ${fmtBRL(vCBS)}</td><td>${fmtNum(g.gIBSUF&&g.gIBSUF.pIBSUF)}% · ${fmtBRL(vUF)}</td><td>${fmtNum(g.gIBSMun&&g.gIBSMun.pIBSMun)}% · ${fmtBRL(vMun)}</td></tr>`);
    const memo = (g.gIBSUF&&g.gIBSUF.memoriaCalculo)||"";
    if(memo) memorias.push(`<div class="memoria"><strong>Item ${o.nObj}:</strong> ${esc(memo)}</div>`);
  });
  const tIBS = tUF+tMun, total = tIBS+tCBS;
  $("res-cards").innerHTML = `
    <div class="rc cbs"><div class="rotulo">CBS (Federal)</div><div class="valor">${fmtBRL(tCBS)}</div><div class="aliq">substitui PIS/Cofins</div></div>
    <div class="rc ibsuf"><div class="rotulo">IBS Estadual</div><div class="valor">${fmtBRL(tUF)}</div><div class="aliq">substitui ICMS</div></div>
    <div class="rc ibsmun"><div class="rotulo">IBS Municipal</div><div class="valor">${fmtBRL(tMun)}</div><div class="aliq">substitui ISS</div></div>
    <div class="rc total"><div class="rotulo">Total IBS + CBS</div><div class="valor">${fmtBRL(total)}</div><div class="aliq">sobre base de ${fmtBRL(tBC)}</div></div>`;
  $("res-tabela").innerHTML = `<table class="tabela-itens"><thead><tr><th>#</th><th>Item</th><th>CST/cClassTrib</th><th>Base</th><th>CBS</th><th>IBS UF</th><th>IBS Mun</th></tr></thead><tbody>${linhas.join("")}</tbody></table>`;
  $("res-memorias").innerHTML = memorias.join("");
  $("res-fonte").innerHTML = fonte;
  $("card-resultado").style.display = "block";
  $("card-resultado").scrollIntoView({behavior:"smooth"});
}

$("btn-calcular").addEventListener("click", async ()=>{
  const itens = coletarItens();
  const st = $("calc-status");
  if(!itens.length){ st.innerHTML = '<div class="aviso err">Informe o valor de pelo menos um item.</div>'; return; }
  const data = $("c-data").value || new Date().toISOString().slice(0,10);
  const uf = $("c-uf").value;
  const mun = $("c-mun").value;
  if(!uf){ st.innerHTML = '<div class="aviso err">Selecione a UF da operação.</div>'; return; }
  st.innerHTML = '<div class="aviso info"><span class="spinner" style="border-color:rgba(90,18,48,.3);border-top-color:#5a1230"></span>Consultando o motor de cálculo oficial da Receita Federal…</div>';
  $("btn-calcular").disabled = true;
  const payload = {
    versao: "0.0.1",
    dataHoraEmissao: data + "T12:00:00-03:00",
    uf: uf,
    municipio: (mun && mun!=="manual") ? Number(mun) : undefined,
    itens: itens.map(({_desc, ...i})=>i)
  };
  if(mun==="manual"){
    const cod = prompt("Digite o código IBGE do município (7 dígitos):","");
    if(cod && /^\d{7}$/.test(cod.trim())) payload.municipio = Number(cod.trim());
  }
  try{
    const resp = await apiPost("/regime-geral", payload);
    st.innerHTML = "";
    renderResultado(resp, itens, "Fonte: motor de cálculo oficial — ambiente piloto da Receita Federal (piloto-cbs.tributos.gov.br), consultado em " + new Date().toLocaleString("pt-BR") + ". Alíquotas de referência sujeitas a alteração pela legislação.");
  }catch(e){
    const resp = calculoLocal(itens);
    st.innerHTML = '<div class="aviso warn">Não foi possível consultar a API oficial agora ('+esc(e.message)+'). Exibindo <strong>cálculo local estimado</strong> com as alíquotas-teste de 2026.</div>';
    renderResultado(resp, itens, "Fonte: cálculo local estimado com as alíquotas-teste de 2026 (CBS 0,9% · IBS 0,1%) — a API oficial estava indisponível. Repita a consulta mais tarde para valores oficiais por UF/município.");
  }finally{
    $("btn-calcular").disabled = false;
  }
});
$("btn-limpar").addEventListener("click", ()=>{
  $("lista-itens").innerHTML=""; addItem();
  $("card-resultado").style.display="none"; $("calc-status").innerHTML="";
});

/* ================== CADASTRO (GATE DO VALIDADOR) ================== */
function leadSalvo(){ try{ return JSON.parse(localStorage.getItem("gama_lead")||"null"); }catch(e){ return null; } }
function usosRestantes(){
  const u = parseInt(localStorage.getItem("gama_valid_usos")||"0",10);
  return Math.max(0, LIMITE_VALIDACOES_GRATIS - u);
}
function registrarUso(qtd){
  const u = parseInt(localStorage.getItem("gama_valid_usos")||"0",10);
  localStorage.setItem("gama_valid_usos", String(u+qtd));
  atualizarContador();
}
function atualizarContador(){
  const lead = leadSalvo();
  $("contador-uso").textContent = lead ? `Olá, ${lead.nome.split(" ")[0]}! Validações gratuitas restantes: ${usosRestantes()} de ${LIMITE_VALIDACOES_GRATIS}` : "";
}
function exigirCadastroSePreciso(){ if(!leadSalvo()) $("modal-cadastro").classList.add("aberto"); }
$("btn-fechar-modal").addEventListener("click", ()=> $("modal-cadastro").classList.remove("aberto"));
$("btn-cadastrar").addEventListener("click", async ()=>{
  const nome=$("l-nome").value.trim(), email=$("l-email").value.trim(), fone=$("l-fone").value.trim(), insta=$("l-insta").value.trim(), empresa=$("l-empresa").value.trim();
  const err=$("l-erro");
  if(nome.length<3 || !/^\S+@\S+\.\S+$/.test(email) || fone.replace(/\D/g,"").length<10){
    err.style.display="block"; err.textContent="Preencha nome, e-mail válido e WhatsApp com DDD."; return;
  }
  err.style.display="none";
  const lead = {nome,email,fone,insta,empresa,origem:"simulador-reforma",data:new Date().toISOString()};
  localStorage.setItem("gama_lead", JSON.stringify(lead));
  if(LEAD_WEBHOOK_URL){
    try{ fetch(LEAD_WEBHOOK_URL,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(lead)}); }catch(e){}
  }
  $("modal-cadastro").classList.remove("aberto");
  atualizarContador();
});

/* ================== VALIDADOR DE XML ==================
   Sete checagens no navegador — os XMLs não saem do seu computador. */
/*CORE-START*/
function _tags(el, nome){
  const out=[]; const lista = el.getElementsByTagName(nome);
  for(let i=0;i<lista.length;i++) out.push(lista[i]);
  return out;
}
function _txt(el, nome){
  if(!el) return null;
  const lista = el.getElementsByTagName(nome);
  return lista.length ? String(lista[0].textContent).trim() : null;
}
function _num(el, nome){
  const t = _txt(el, nome);
  if(t==null || t==="") return null;
  const n = parseFloat(t);
  return isNaN(n) ? null : n;
}
function _aprox(a,b,tol){ return Math.abs(a-b) <= (tol==null?0.011:tol); }

const CFOPS_VENDA = ["5101","5102","5103","5104","5105","5106","5109","5110","5111","5112","5113","5114","5115","5116","5117","5118","5119","5120","5122","5123","5401","5403","5405","5651","5652","5653","5654","5655","5656","6101","6102","6103","6104","6105","6106","6107","6108","6109","6110","6111","6112","6113","6114","6115","6116","6118","6119","6120","6122","6123","6401","6403","6404","6651","6652","6653","6654","6655","6656","7101","7102","7105","7106","7127"];
const CFOPS_REMESSA = ["5901","5902","5903","5904","5905","5906","5907","5908","5909","5910","5911","5912","5913","5914","5915","5916","5917","5920","5921","5923","5924","5925","5934","5949","6901","6902","6903","6904","6905","6906","6907","6908","6909","6910","6911","6912","6913","6914","6915","6916","6917","6920","6921","6923","6924","6925","6934","6949"];
const CFOPS_TRANSF = ["5151","5152","5153","5155","5156","5408","5409","6151","6152","6153","6155","6156","6408","6409"];
const CFOPS_DEVOL = ["5201","5202","5205","5206","5207","5208","5209","5210","5410","5411","5412","5413","5503","5553","5555","5556","5660","5661","5662","6201","6202","6205","6206","6207","6208","6209","6210","6410","6411","6412","6413","6503","6553","6555","6556","6660","6661","6662"];
const NCM_MONITORADOS_PREFIXOS = ["27101","27102","3403","2712","2713"]; /* óleos e lubrificantes */
const CST_COM_DEBITO_V = ["000","010","011","620"];
const ALIQ_TESTE_V = { pIBSUF: 0.10, pIBSMun: 0.00, pCBS: 0.90 };

function validarXML(xmlDoc){
  const checks = [];
  const add = (id,nome,status,msgs)=>checks.push({id,nome,status,mensagens:msgs||[]});

  /* Detecta tipo do documento */
  const raiz = xmlDoc.documentElement ? xmlDoc.documentElement.nodeName : "";
  const temInfNFe = _tags(xmlDoc,"infNFe").length>0;
  const temNFSe = /NFSe|DPS|infDPS|infNFSe/i.test(raiz) || _tags(xmlDoc,"infDPS").length>0 || _tags(xmlDoc,"infNFSe").length>0;
  const tipo = temInfNFe ? "NF-e" : (temNFSe ? "NFS-e" : "desconhecido");

  const dets = _tags(xmlDoc,"det");
  const itens = []; /* {n, cfop, ncm, cst, cclass, vBC, pIBSUF, vIBSUF, pIBSMun, vIBSMun, pCBS, vCBS, temGrupo} */

  if(tipo==="NF-e"){
    dets.forEach((det,ix)=>{
      const n = det.getAttribute("nItem") || String(ix+1);
      const prod = _tags(det,"prod")[0];
      const ibscbs = _tags(det,"IBSCBS")[0];
      const g = ibscbs ? _tags(ibscbs,"gIBSCBS")[0] : null;
      const icmsEl = _tags(det,"ICMS")[0];
      itens.push({
        n, el:det,
        cstIcms: icmsEl ? (_txt(icmsEl,"CST")||_txt(icmsEl,"CSOSN")||"") : "",
        pIcms: icmsEl ? _num(icmsEl,"pICMS") : null,
        cfop: prod ? (_txt(prod,"CFOP")||"") : "",
        ncm: prod ? (_txt(prod,"NCM")||"") : "",
        xprod: prod ? (_txt(prod,"xProd")||"") : "",
        vprod: prod ? _num(prod,"vProd") : null,
        temGrupo: !!ibscbs,
        cst: ibscbs ? (_txt(ibscbs,"CST")||"") : "",
        cclass: ibscbs ? (_txt(ibscbs,"cClassTrib")||"") : "",
        vBC: g ? _num(g,"vBC") : null,
        pIBSUF: g ? _num(g,"pIBSUF") : null,  vIBSUF: g ? _num(g,"vIBSUF") : null,
        pIBSMun: g ? _num(g,"pIBSMun") : null, vIBSMun: g ? _num(g,"vIBSMun") : null,
        pCBS: g ? _num(g,"pCBS") : null,       vCBS: g ? _num(g,"vCBS") : null
      });
    });
  } else if(tipo==="NFS-e"){
    /* NFS-e nacional: grupo IBSCBS dentro dos valores do serviço */
    const grupos = _tags(xmlDoc,"IBSCBS");
    grupos.forEach((ibscbs,ix)=>{
      const g = _tags(ibscbs,"gIBSCBS")[0];
      itens.push({
        n:String(ix+1), el:ibscbs, cfop:"", ncm:"", xprod:"Serviço "+(ix+1), vprod:null,
        temGrupo:true,
        cst:_txt(ibscbs,"CST")||"", cclass:_txt(ibscbs,"cClassTrib")||"",
        vBC: g?_num(g,"vBC"):null,
        pIBSUF: g?_num(g,"pIBSUF"):null, vIBSUF: g?_num(g,"vIBSUF"):null,
        pIBSMun: g?_num(g,"pIBSMun"):null, vIBSMun: g?_num(g,"vIBSMun"):null,
        pCBS: g?_num(g,"pCBS"):null, vCBS: g?_num(g,"vCBS"):null
      });
    });
  }

  /* ---- Metadados do documento (capa e cabeçalho do laudo) ---- */
  function _attrId(nome){
    const l=_tags(xmlDoc,nome);
    return l.length ? (l[0].getAttribute("Id")||l[0].getAttribute("id")||"") : "";
  }
  const emitEl = _tags(xmlDoc,"emit")[0] || _tags(xmlDoc,"prest")[0];
  const ideEl = _tags(xmlDoc,"ide")[0];
  const meta = {
    emitente: emitEl ? (_txt(emitEl,"xNome")||_txt(emitEl,"xFant")||"") : "",
    cnpj: emitEl ? (_txt(emitEl,"CNPJ")||_txt(emitEl,"CPF")||"") : "",
    numero: (ideEl?_txt(ideEl,"nNF"):null) || _txt(xmlDoc,"nNFSe") || _txt(xmlDoc,"nDPS") || "",
    serie: (ideEl?_txt(ideEl,"serie"):null) || _txt(xmlDoc,"serie") || "",
    emissao: ((ideEl?(_txt(ideEl,"dhEmi")||_txt(ideEl,"dEmi")):null) || _txt(xmlDoc,"dhEmi") || _txt(xmlDoc,"dhProc") || "").slice(0,10),
    chave: (_attrId("infNFe")||_attrId("infNFSe")||_attrId("infDPS")).replace(/^\D+/,"")
  };

  /* ---- Checagem 1: existência dos campos ---- */
  (function(){
    const msgs=[];
    if(tipo==="desconhecido"){ add("existencia","Existência dos campos de IBS/CBS","erro",["Documento não reconhecido como NF-e ou NFS-e. Verifique se o XML está completo."]); return; }
    if(tipo==="NF-e" && dets.length===0){ add("existencia","Existência dos campos de IBS/CBS","erro",["Nenhum item (<det>) encontrado na nota."]); return; }
    if(itens.length===0){ add("existencia","Existência dos campos de IBS/CBS","erro",["Nenhum grupo IBSCBS encontrado no documento. A partir de 3/8/2026 a nota será rejeitada sem esses campos."]); return; }
    let falhas=0;
    itens.forEach(it=>{
      if(!it.temGrupo){ falhas++; msgs.push(`Item ${it.n} (${it.xprod||"sem descrição"}): grupo IBSCBS ausente.`); }
      else{
        if(!it.cst){ falhas++; msgs.push(`Item ${it.n}: CST do IBS/CBS não informado.`); }
        else if(!/^\d{3}$/.test(it.cst)){ falhas++; msgs.push(`Item ${it.n}: CST "${it.cst}" inválido (deve ter 3 dígitos).`); }
        if(!it.cclass){ falhas++; msgs.push(`Item ${it.n}: cClassTrib não informado.`); }
        else if(!/^\d{6}$/.test(it.cclass)){ falhas++; msgs.push(`Item ${it.n}: cClassTrib "${it.cclass}" inválido (deve ter 6 dígitos).`); }
      }
    });
    add("existencia","Existência dos campos de IBS/CBS", falhas?"erro":"ok", falhas?msgs:[`${itens.length} item(ns) com grupo IBSCBS, CST e cClassTrib preenchidos.`]);
  })();

  /* ---- Checagem 2: CST e cClassTrib pelo CFOP ---- */
  (function(){
    if(tipo!=="NF-e"){ add("cstcfop","CST e cClassTrib esperados pelo CFOP","na",["Aplicável apenas a NF-e (NFS-e não possui CFOP)."]); return; }
    const msgs=[]; let erros=0, alertas=0;
    itens.forEach(it=>{
      if(!it.temGrupo || !it.cst) return;
      const cfop = it.cfop;
      if(!cfop) return;
      if(CFOPS_VENDA.indexOf(cfop)>=0){
        if(CST_COM_DEBITO_V.indexOf(it.cst)<0 && ["200","210","400","410","510","550"].indexOf(it.cst)<0){
          erros++; msgs.push(`Item ${it.n}: CFOP ${cfop} (venda) com CST ${it.cst} — combinação não esperada.`);
        } else if(it.cst==="000" && it.cclass && it.cclass!=="000001"){
          alertas++; msgs.push(`Item ${it.n}: CFOP ${cfop} com CST 000 e cClassTrib ${it.cclass} — o padrão para tributação integral é 000001. Confirme o enquadramento.`);
        }
      } else if(CFOPS_REMESSA.indexOf(cfop)>=0){
        if((it.vIBSUF||0)+(it.vIBSMun||0)+(it.vCBS||0) > 0){
          alertas++; msgs.push(`Item ${it.n}: CFOP ${cfop} (remessa/operação sem venda) com débito de IBS/CBS destacado — confirme se a operação é onerosa.`);
        }
      } else if(CFOPS_TRANSF.indexOf(cfop)>=0){
        alertas++; msgs.push(`Item ${it.n}: CFOP ${cfop} (transferência) — o tratamento de transferências no IBS/CBS tem regras próprias (transferência de crédito). Revise com seu contador.`);
      } else if(CFOPS_DEVOL.indexOf(cfop)>=0){
        alertas++; msgs.push(`Item ${it.n}: CFOP ${cfop} (devolução) — o CST/cClassTrib deve espelhar o documento original referenciado. Confira o vínculo (refNFe).`);
      }
    });
    add("cstcfop","CST e cClassTrib esperados pelo CFOP", erros?"erro":(alertas?"alerta":"ok"),
      msgs.length?msgs:["Combinações de CFOP × CST dentro do esperado para os CFOPs verificados."]);
  })();

  /* ---- Checagem 3: alíquotas de teste ---- */
  (function(){
    const msgs=[]; let erros=0;
    itens.forEach(it=>{
      if(!it.temGrupo || !it.cst) return;
      const debito = CST_COM_DEBITO_V.indexOf(it.cst)>=0;
      if(debito){
        if(it.pCBS==null || !_aprox(it.pCBS, ALIQ_TESTE_V.pCBS, 0.001)){ erros++; msgs.push(`Item ${it.n}: pCBS ${it.pCBS==null?"ausente":it.pCBS.toFixed(2)+"%"} difere da alíquota de teste ${ALIQ_TESTE_V.pCBS.toFixed(2)}%.`); }
        if(it.pIBSUF==null || !_aprox(it.pIBSUF, ALIQ_TESTE_V.pIBSUF, 0.001)){ erros++; msgs.push(`Item ${it.n}: pIBSUF ${it.pIBSUF==null?"ausente":it.pIBSUF.toFixed(2)+"%"} difere da alíquota de teste ${ALIQ_TESTE_V.pIBSUF.toFixed(2)}%.`); }
        if(it.pIBSMun!=null && !_aprox(it.pIBSMun, ALIQ_TESTE_V.pIBSMun, 0.001)){ erros++; msgs.push(`Item ${it.n}: pIBSMun ${it.pIBSMun.toFixed(2)}% difere do esperado ${ALIQ_TESTE_V.pIBSMun.toFixed(2)}% para 2026.`); }
      } else {
        ["pIBSUF","pIBSMun","pCBS"].forEach(c=>{
          if(it[c]!=null && it[c]>0){ erros++; msgs.push(`Item ${it.n}: CST ${it.cst} (sem débito integral) com ${c} = ${it[c].toFixed(2)}% — esperado 0% ou alíquota reduzida conforme o cClassTrib. Revise.`); }
        });
      }
    });
    add("aliquotas","Alíquotas de teste do IBS e da CBS", erros?"erro":"ok",
      msgs.length?msgs:["Alíquotas compatíveis com o ano-teste de 2026 em todos os itens tributados."]);
  })();

  /* ---- Checagem 4: recálculo dos valores ---- */
  (function(){
    const msgs=[]; let erros=0;
    itens.forEach(it=>{
      if(!it.temGrupo || it.vBC==null) return;
      const pares = [["pIBSUF","vIBSUF","IBS UF"],["pIBSMun","vIBSMun","IBS Mun"],["pCBS","vCBS","CBS"]];
      pares.forEach(([pc,vc,nomeT])=>{
        if(it[pc]!=null && it[vc]!=null){
          const esperado = it.vBC * it[pc] / 100;
          if(!_aprox(esperado, it[vc])){
            erros++; msgs.push(`Item ${it.n}: ${nomeT} — ${it.vBC.toFixed(2)} × ${it[pc].toFixed(2)}% = ${esperado.toFixed(2)}, mas o XML informa ${it[vc].toFixed(2)}.`);
          }
        }
      });
      if(it.vprod!=null && it.vBC!=null && it.vBC > it.vprod + 0.011){
        msgs.push(`Item ${it.n}: vBC do IBS/CBS (${it.vBC.toFixed(2)}) maior que o valor do produto (${it.vprod.toFixed(2)}) — confirme a composição da base.`);
      }
    });
    add("recalculo","Recálculo dos valores de IBS e CBS", erros?"erro":"ok",
      msgs.length?msgs:["Valores de IBS UF, IBS Mun e CBS conferem com base × alíquota em todos os itens."]);
  })();

  /* ---- Checagem 5: totais IBSCBSTot ---- */
  (function(){
    const tot = _tags(xmlDoc,"IBSCBSTot")[0];
    if(!tot){
      if(tipo==="NFS-e"){ add("totais","Totalizador IBSCBSTot","na",["NFS-e não possui o grupo IBSCBSTot (estrutura própria da NF-e)."]); return; }
      const status = itens.some(it=>it.temGrupo) ? "erro" : "na";
      add("totais","Totalizador IBSCBSTot", status, status==="erro"?["Grupo IBSCBSTot ausente no total da nota, embora existam itens com IBSCBS."]:["Sem itens IBSCBS para totalizar."]);
      return;
    }
    const msgs=[]; let erros=0;
    const somaBC = itens.reduce((s,it)=>s+(it.vBC||0),0);
    const somaUF = itens.reduce((s,it)=>s+(it.vIBSUF||0),0);
    const somaMun = itens.reduce((s,it)=>s+(it.vIBSMun||0),0);
    const somaCBS = itens.reduce((s,it)=>s+(it.vCBS||0),0);
    const vBCt = _num(tot,"vBCIBSCBS");
    const gIBS = _tags(tot,"gIBS")[0];
    const vIBSt = gIBS ? _num(gIBS,"vIBS") : null;
    const gIBSUFt = gIBS ? _tags(gIBS,"gIBSUF")[0] : null;
    const gIBSMunt = gIBS ? _tags(gIBS,"gIBSMun")[0] : null;
    const vUFt = gIBSUFt ? _num(gIBSUFt,"vIBSUF") : null;
    const vMunt = gIBSMunt ? _num(gIBSMunt,"vIBSMun") : null;
    const gCBSt = _tags(tot,"gCBS")[0];
    const vCBSt = gCBSt ? _num(gCBSt,"vCBS") : null;
    const tol = Math.max(0.011, itens.length*0.006);
    if(vBCt!=null && !_aprox(vBCt, somaBC, tol)){ erros++; msgs.push(`vBCIBSCBS total ${vBCt.toFixed(2)} ≠ soma das bases dos itens ${somaBC.toFixed(2)}.`); }
    if(vUFt!=null && !_aprox(vUFt, somaUF, tol)){ erros++; msgs.push(`vIBSUF total ${vUFt.toFixed(2)} ≠ soma dos itens ${somaUF.toFixed(2)}.`); }
    if(vMunt!=null && !_aprox(vMunt, somaMun, tol)){ erros++; msgs.push(`vIBSMun total ${vMunt.toFixed(2)} ≠ soma dos itens ${somaMun.toFixed(2)}.`); }
    if(vCBSt!=null && !_aprox(vCBSt, somaCBS, tol)){ erros++; msgs.push(`vCBS total ${vCBSt.toFixed(2)} ≠ soma dos itens ${somaCBS.toFixed(2)}.`); }
    if(vIBSt!=null && !_aprox(vIBSt, somaUF+somaMun, tol)){ erros++; msgs.push(`vIBS total ${vIBSt.toFixed(2)} ≠ vIBSUF + vIBSMun dos itens (${(somaUF+somaMun).toFixed(2)}).`); }
    add("totais","Totalizador IBSCBSTot", erros?"erro":"ok",
      msgs.length?msgs:["Totais do grupo IBSCBSTot conferem com a soma dos itens."]);
  })();

  /* ---- Checagem 6: ICMS interestadual ---- */
  (function(){
    if(tipo!=="NF-e"){ add("icms","ICMS: alíquotas de saída interestadual","na",["Aplicável apenas a NF-e."]); return; }
    const ide = _tags(xmlDoc,"ide")[0];
    const idDest = ide ? _txt(ide,"idDest") : null;
    if(idDest!=="2"){ add("icms","ICMS: alíquotas de saída interestadual","na",["Operação não é interestadual (idDest ≠ 2)."]); return; }
    const msgs=[]; let alertas=0;
    dets.forEach((det,ix)=>{
      const n = det.getAttribute("nItem")||String(ix+1);
      const icms = _tags(det,"ICMS")[0];
      if(!icms) return;
      const orig = _txt(icms,"orig");
      const pICMS = _num(icms,"pICMS");
      if(pICMS==null) return;
      const importado = ["1","2","3","8"].indexOf(orig)>=0;
      if(importado && !_aprox(pICMS,4,0.001)){
        alertas++; msgs.push(`Item ${n}: produto de origem importada (orig=${orig}) em operação interestadual com pICMS ${pICMS.toFixed(2)}% — esperado 4% (Res. SF 13/2012).`);
      } else if(!importado && [4,7,12].every(a=>!_aprox(pICMS,a,0.001))){
        alertas++; msgs.push(`Item ${n}: pICMS ${pICMS.toFixed(2)}% fora das alíquotas interestaduais usuais (4%, 7% ou 12%). Verifique benefício/ST aplicável.`);
      }
    });
    add("icms","ICMS: alíquotas de saída interestadual", alertas?"alerta":"ok",
      msgs.length?msgs:["Alíquotas de ICMS interestadual dentro do esperado."]);
  })();

  /* ---- Checagem 7: NCMs monitorados (óleos e lubrificantes) ---- */
  (function(){
    if(tipo!=="NF-e"){ add("ncm","Óleos lubrificantes: NCM monitorado, CST x CFOP","na",["Aplicável apenas a NF-e."]); return; }
    const msgs=[]; let alertas=0;
    itens.forEach(it=>{
      const ncm = (it.ncm||"").replace(/\D/g,"");
      if(!ncm) return;
      const monitorado = NCM_MONITORADOS_PREFIXOS.some(p=>ncm.indexOf(p)===0);
      if(monitorado){
        alertas++;
        msgs.push(`Item ${it.n} (NCM ${it.ncm} — ${it.xprod||"óleo/lubrificante"}): NCM monitorado. Confira o par CST ${it.cst||"?"} × CFOP ${it.cfop||"?"} conforme as regras de combustíveis/lubrificantes (tributação monofásica no IBS/CBS — CST 620 quando aplicável) e a validação de ICMS.`);
      }
    });
    add("ncm","Óleos lubrificantes: NCM monitorado, CST x CFOP", alertas?"alerta":"ok",
      msgs.length?msgs:["Nenhum NCM monitorado (óleos/lubrificantes) encontrado na nota."]);
  })();

  const erros = checks.filter(c=>c.status==="erro").length;
  const alertas = checks.filter(c=>c.status==="alerta").length;
  const itensTab = itens.map(it=>({
    n: it.n, desc: it.xprod||"", ncm: it.ncm||"", cfop: it.cfop||"",
    icms: it.cstIcms ? (it.cstIcms + (it.pIcms!=null ? " · "+it.pIcms.toFixed(2)+"%" : "")) : "",
    ibscbs: it.temGrupo ? ((it.cst||"?")+" · "+(it.cclass||"?")) : "ausente",
    aliq: (it.temGrupo && it.pCBS!=null) ? ("IBS "+(it.pIBSUF!=null?it.pIBSUF.toFixed(2):"–")+" + "+(it.pIBSMun!=null?it.pIBSMun.toFixed(2):"–")+" · CBS "+it.pCBS.toFixed(2)) : "",
    val: (it.temGrupo && it.vCBS!=null) ? ("IBS "+(((it.vIBSUF||0)+(it.vIBSMun||0)).toFixed(2))+" · CBS "+it.vCBS.toFixed(2)) : ""
  }));
  return { tipo, itens: itens.length, checks, erros, alertas, meta, itensTab,
    veredito: erros ? "reprovado" : (alertas ? "aprovado_com_ressalvas" : "aprovado") };
}
/*CORE-END*/

function validarXMLString(str){
  const parser = new DOMParser();
  const doc = parser.parseFromString(str, "text/xml");
  if(_tags(doc,"parsererror").length){
    return { tipo:"inválido", itens:0, erros:1, alertas:0, veredito:"reprovado",
      checks:[{id:"parse",nome:"Leitura do XML",status:"erro",mensagens:["O arquivo não é um XML válido (erro de sintaxe). Verifique se o conteúdo foi copiado por completo."]}] };
  }
  return validarXML(doc);
}

/* ---- UI do validador — laudo no modelo Gama & Filhos ---- */
const PILL_TXT = {ok:["SEM INCONSISTÊNCIAS","ok"], erro:["INCONSISTÊNCIAS","erro"], alerta:["PONTOS DE ATENÇÃO","alerta"], na:["NÃO SE APLICA","na"]};
function renderLaudo(resultados){
  const lead = leadSalvo()||{};
  const agora = new Date();
  const dataStr = agora.toLocaleDateString("pt-BR");
  const horaStr = agora.toLocaleTimeString("pt-BR",{hour:"2-digit",minute:"2-digit"});
  const blocos = resultados.map(r=>{
    const res = r.res, m = res.meta||{};
    const situacao = res.erros ? ["Inconsistências","lr-vermelho"] : (res.alertas ? ["Pontos de atenção","lr-ambar"] : ["Sem inconsistências","lr-verde"]);
    const subCapa = [res.tipo!=="desconhecido"?res.tipo:null,
                     m.numero?("nº "+m.numero+(m.serie?" série "+m.serie:"")):null,
                     m.emitente||null].filter(Boolean).join(" · ");
    const tabela = (res.itensTab && res.itensTab.length) ? `
      <table class="tabela-itens lr-tab"><thead><tr><th>Item</th><th>NCM</th><th>CFOP</th><th>ICMS (CST · alíq.)</th><th>IBS/CBS (CST · cClassTrib)</th><th>Alíquotas %</th><th>Valores R$</th></tr></thead><tbody>
      ${res.itensTab.map(t=>`<tr><td>${esc(t.n)} · ${esc((t.desc||"").slice(0,160))}</td><td>${esc(t.ncm)}</td><td>${esc(t.cfop)}</td><td>${esc(t.icms)}</td><td>${esc(t.ibscbs)}</td><td>${esc(t.aliq)}</td><td>${esc(t.val)}</td></tr>`).join("")}
      </tbody></table>` : "";
    const secoes = res.checks.map((c,ix)=>{
      const p = PILL_TXT[c.status]||PILL_TXT.na;
      const corpo = (c.status==="erro"||c.status==="alerta")
        ? `<p class="lr-resumo">${c.mensagens.length} apontamento(s):</p>` +
          c.mensagens.map(msg=>`<div class="lr-box ${c.status==="erro"?"lr-box-erro":"lr-box-alerta"}">${esc(msg)}</div>`).join("")
        : `<p class="lr-resumo">${c.mensagens.map(esc).join(" ")}</p>`;
      return `<div class="lr-sec"><h3>${esc(c.nome)} <span class="pill ${p[1]}">${p[0]}</span></h3>${corpo}${ix===0?tabela:""}</div>`;
    }).join("");
    return `
    <div class="laudo-doc">
      <div class="laudo-capa">
        <img src="https://gamacontabil.com.br/images/GF_Logo_Branca-removebg-preview.png" alt="Gama &amp; Filhos" onerror="this.style.display='none'">
        <div class="lc-meio">
          <div class="lc-tag">VERIFICADOR IBS/CBS</div>
          <h1>Laudo de validação</h1>
          <div class="lc-arquivo">${esc(r.nome)}</div>
          ${subCapa?`<div class="lc-sub">${esc(subCapa)}</div>`:""}
        </div>
        <div class="lc-rodape">contato@gamacontabil.com.br · gerado em ${dataStr} às ${horaStr}${lead.nome?` para ${esc(lead.nome)}`:""}</div>
      </div>
      <div class="laudo-corpo">
        <h2 class="lr-h2">Resultado</h2>
        <div class="lr-cards">
          <div class="lr-card"><div class="lr-big ${situacao[1]}">${situacao[0]}</div><div class="lr-lbl">SITUAÇÃO GERAL</div></div>
          <div class="lr-card"><div class="lr-big ${res.erros?"lr-vermelho":""}">${res.erros}</div><div class="lr-lbl">ERROS</div></div>
          <div class="lr-card"><div class="lr-big lr-ambar">${res.alertas}</div><div class="lr-lbl">PONTOS DE ATENÇÃO</div></div>
        </div>
        <p class="lr-meta">${m.cnpj?`<strong>CNPJ do emitente:</strong> ${esc(m.cnpj)} · `:""}${m.emissao?`<strong>Emissão:</strong> ${esc(m.emissao)} · `:""}${m.chave?`<strong>Chave:</strong> ${esc(m.chave)} · `:""}<strong>Verificado em:</strong> ${dataStr} ${horaStr}</p>
        ${secoes}
        <hr class="lr-hr">
        <p class="lr-disclaimer">Alíquotas de teste conforme a LC 214/2025 (reforma tributária do consumo). Este laudo é um apoio de conferência gerado pelo Verificador IBS/CBS da Gama &amp; Filhos Contabilidade e não substitui a assessoria do seu contador.</p>
        <div class="lr-cta"><strong>Precisa de ajuda para corrigir esta nota?</strong><br>Fale com a Gama &amp; Filhos Contabilidade: contato@gamacontabil.com.br · WhatsApp (81) 99635-6958</div>
        <div class="lr-pagefoot">Gama &amp; Filhos Contabilidade · Verificador IBS/CBS · gamacontabil.com.br</div>
      </div>
    </div>`;
  });
  $("laudo-conteudo").innerHTML = blocos.join("");
  $("card-laudo").style.display="block";
  $("card-historico").style.display="none";
  $("card-laudo").scrollIntoView({behavior:"smooth"});
}
function salvarHistorico(resultados){
  let h=[]; try{ h=JSON.parse(localStorage.getItem("gama_valid_hist")||"[]"); }catch(e){}
  resultados.forEach(r=>h.unshift({data:new Date().toISOString(), nome:r.nome, tipo:r.res.tipo, itens:r.res.itens, erros:r.res.erros, alertas:r.res.alertas, veredito:r.res.veredito}));
  localStorage.setItem("gama_valid_hist", JSON.stringify(h.slice(0,200)));
}
$("btn-hist").addEventListener("click", ()=>{
  let h=[]; try{ h=JSON.parse(localStorage.getItem("gama_valid_hist")||"[]"); }catch(e){}
  $("hist-conteudo").innerHTML = h.length
    ? `<table class="tabela-itens"><thead><tr><th>Data</th><th>Arquivo</th><th>Tipo</th><th>Itens</th><th>Erros</th><th>Alertas</th><th>Veredito</th></tr></thead><tbody>${
        h.map(x=>`<tr><td>${new Date(x.data).toLocaleString("pt-BR")}</td><td>${esc(x.nome)}</td><td>${esc(x.tipo)}</td><td>${x.itens}</td><td>${x.erros}</td><td>${x.alertas}</td><td>${x.veredito==="reprovado"?"❌":x.veredito==="aprovado_com_ressalvas"?"⚠️":"✅"}</td></tr>`).join("")
      }</tbody></table>`
    : '<p class="sub">Nenhuma validação realizada ainda.</p>';
  $("card-historico").style.display = $("card-historico").style.display==="none" ? "block" : "none";
});

let arquivosSelecionados = [];
const dz = $("dropzone");
dz.addEventListener("click", ()=>$("input-xml").click());
dz.addEventListener("dragover", e=>{e.preventDefault(); dz.classList.add("arrastando");});
dz.addEventListener("dragleave", ()=>dz.classList.remove("arrastando"));
dz.addEventListener("drop", e=>{
  e.preventDefault(); dz.classList.remove("arrastando");
  receberArquivos(e.dataTransfer.files);
});
$("input-xml").addEventListener("change", e=>receberArquivos(e.target.files));
function receberArquivos(fileList){
  arquivosSelecionados = Array.from(fileList).slice(0, LIMITE_ARQUIVOS_POR_VEZ);
  dz.innerHTML = `<strong>${arquivosSelecionados.length} arquivo(s) selecionado(s)</strong><br>${arquivosSelecionados.map(f=>esc(f.name)).join(" · ")}<br><span style="font-size:.8rem">Clique em “Validar notas”.</span>`;
}

$("btn-validar").addEventListener("click", async ()=>{
  if(!leadSalvo()){ $("modal-cadastro").classList.add("aberto"); return; }
  const colado = $("xml-colado").value.trim();
  const fontes = [];
  if(arquivosSelecionados.length){
    for(const f of arquivosSelecionados){ fontes.push({nome:f.name, texto: await f.text()}); }
  }
  if(colado) fontes.push({nome:"XML colado", texto:colado});
  if(!fontes.length){ alert("Cole um XML ou selecione arquivos primeiro."); return; }
  if(usosRestantes() < fontes.length){
    alert("Suas validações gratuitas acabaram. Fale com a Gama & Filhos pelo WhatsApp (81) 99635-6958 para liberar mais análises.");
    return;
  }
  const resultados = fontes.map(f=>({nome:f.nome, res: validarXMLString(f.texto)}));
  registrarUso(fontes.length);
  salvarHistorico(resultados);
  renderLaudo(resultados);
});

/* ================== INICIALIZAÇÃO ================== */
(function init(){
  $("c-data").value = new Date().toISOString().slice(0,10);
  popularUFs();
  addItem();
  atualizarContador();
  atualizarCSTsViaAPI();
})();

</script>
<script>
/* Alternância site ↔ simulador (arquivo único) */
function mostrarSimulador(){
  document.getElementById('site-view').style.display='none';
  document.getElementById('sim-view').style.display='block';
  window.scrollTo(0,0);
  try{history.replaceState(null,'','#simulador');}catch(e){}
}
function mostrarSite(){
  document.getElementById('sim-view').style.display='none';
  document.getElementById('site-view').style.display='block';
  window.scrollTo(0,0);
  try{history.replaceState(null,'','#');}catch(e){}
}
if(location.hash==='#simulador') mostrarSimulador();
window.addEventListener('hashchange',()=>{ if(location.hash==='#simulador') mostrarSimulador(); });
</script>@media (min-width: 1150.0px) {
	#imCell_1 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 10px; padding-inline-end: 10px; }
	#imCell_1 { grid-template-rows: [row-content] auto ; }
	#imHTMLObject_01 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 10px; padding-inline-end: 10px; grid-row: row-content / span 1; grid-column: 1 / -1; }
	#imCellStyleBorders_1 {  border-top: 0; border-bottom: 0; border-inline-start-width: 0px;  border-inline-end-width: 0px;  }
	
}

@media (max-width: 1149.9px) and (min-width: 720.0px) {
	#imCell_1 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 6px; padding-inline-end: 6px; }
	#imCell_1 { grid-template-rows: [row-content] auto ; }
	#imHTMLObject_01 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 10px; padding-inline-end: 10px; grid-row: row-content / span 1; grid-column: 1 / -1; }
	#imCellStyleBorders_1 {  border-top: 0; border-bottom: 0; border-inline-start-width: 0px;  border-inline-end-width: 0px;  }
	
}

@media (max-width: 719.9px) and (min-width: 480.0px) {
	#imCell_1 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 4px; padding-inline-end: 4px; }
	#imCell_1 { grid-template-rows: [row-content] auto ; }
	#imHTMLObject_01 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 10px; padding-inline-end: 10px; grid-row: row-content / span 1; grid-column: 1 / -1; }
	#imCellStyleBorders_1 {  border-top: 0; border-bottom: 0; border-inline-start-width: 0px;  border-inline-end-width: 0px;  }
	
}

@media (max-width: 479.9px)  {
	#imCell_1 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 5px; padding-inline-end: 5px; }
	#imCell_1 { grid-template-rows: [row-content] auto ; }
	#imHTMLObject_01 { padding-top: 10px; padding-bottom: 10px; padding-inline-start: 10px; padding-inline-end: 10px; grid-row: row-content / span 1; grid-column: 1 / -1; }
	#imCellStyleGraphics_1 { box-sizing: border-box; }
	
}

#imPage.without-id_animation-in-progress { overflow: hidden }
