:root{
  --navy-950:#0F172A;
  --navy-900:#1E293B;
  --navy-800:#334155;
  --navy-700:#475569;
  --blue-600:#059669;
  --blue-500:#10B981;
  --orange-solid:#10B981;
  --taupe:#64748B;
  --blue-100:#D1FAE5;
  --blue-50:#ECFDF5;
  --gray-900:#0F172A;
  --gray-800:#1E293B;
  --gray-700:#475569;
  --gray-500:#64748B;
  --gray-400:#94A3B8;
  --gray-300:#CBD5E1;
  --gray-200:#E2E8F0;
  --gray-100:#F1F5F9;
  --gray-50:#F8FAFC;
  --white:#ffffff;
  --line:#E2E8F0;
  --amber:#059669;
  /* ---------- Tipografia ----------
     Serifada de autoridade (títulos) + sans-serif de leitura (corpo).
     Georgia/system-ui seguem como fallback caso a fonte web não carregue. */
  --serif: 'Playfair Display', Georgia, 'Iowan Old Style', 'Times New Roman', 'Noto Serif', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, 'Liberation Mono', monospace;
  /* Escala tipográfica consistente (referência — os componentes já usam
     tamanhos próximos a esta escala; os pesos e o ritmo abaixo é que
     ficam centralizados aqui para todo o site). */
  --lh-heading: 1.24;
  --lh-body: 1.7;
  --ls-heading: -0.006em;
  --fw-heading: 600;
  --fw-heading-strong: 700;
  --fw-body: 400;
  --fw-body-medium: 500;
  --radius: 10px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,0.06), 0 1px 1px rgba(15,23,42,0.04);
  --shadow-md: 0 8px 24px rgba(15,23,42,0.10);
  --shadow-lg: 0 20px 48px rgba(15,23,42,0.16);
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  font-weight:var(--fw-body);
  font-size:16px;
  color:var(--gray-900);
  background:var(--gray-50);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  line-height:1.6;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;}
h1,h2,h3,h4{
  font-family:var(--serif); margin:0; color:var(--navy-900);
  font-weight:var(--fw-heading); line-height:var(--lh-heading); letter-spacing:var(--ls-heading);
}
p{margin:0;}
ul{margin:0;padding:0;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

/* ---------- Skip link ---------- */
.skip-link{position:absolute; left:-999px; top:0; background:var(--navy-900); color:#fff; padding:10px 16px; z-index:999; border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* ---------- Reading progress ---------- */
.progress-bar{position:fixed; top:0; left:0; height:2.5px; width:0%; background:var(--navy-700); z-index:200; transition:width .08s linear;}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:100;
  background:var(--navy-950);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.nav__inner{
  /* Mesmo valor de --maxw (usado no resto do site) — com os itens
     secundários agrupados no menu "Mais" (ver .nav-more), o que sobra
     inline cabe numa linha só bem antes disso. Ver breakpoint do
     hambúrguer logo abaixo, ajustado pro mesmo valor. */
  max-width:1180px; margin:0 auto; padding:0 28px;
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:#fff; flex-shrink:0;}
.brand__logo{height:32px; width:auto; display:block;}
.nav__links{display:flex; gap:4px; align-items:center;}
.nav__links a{
  color:var(--gray-300); text-decoration:none; font-size:13.5px; font-weight:500;
  padding:9px 12px; border-radius:7px; transition:all .15s ease; white-space:nowrap;
}
.nav__links a:hover{color:#fff; background:rgba(255,255,255,0.08);}
.nav__toggle{display:none; background:none; border:none; color:#fff; cursor:pointer; padding:4px 8px;}
.nav__toggle .icon{width:22px; height:22px;}
.nav__right{display:flex; align-items:center; gap:14px;}

/* Ícone de "Minha área" — fica fora de .nav__links de propósito, para não
   sumir dentro do menu hambúrguer colapsado e manter destaque próprio. */
.nav__user{
  flex-shrink:0; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--blue-500) 0%, var(--blue-600) 100%);
  box-shadow:0 0 0 2px rgba(16,185,129,0.28), 0 2px 8px rgba(0,0,0,0.35);
  text-decoration:none; transition:transform .15s ease, box-shadow .15s ease;
}
.nav__user:hover, .nav__user:focus-visible{transform:translateY(-2px); box-shadow:0 0 0 2px rgba(16,185,129,0.45), 0 6px 14px rgba(0,0,0,0.4);}
.nav__user-emoji{font-size:18px; line-height:1;}
.nav__user-avatar{width:100%; height:100%; border-radius:50%; background-size:cover; background-position:center;}
.nav__user-avatar--initials{display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#fff; letter-spacing:0.02em;}

/* 1200px: folga acima do max-width de .nav__inner (1180px) — abaixo
   disso os itens inline (com "Mais" agrupando o resto) não cabem mais
   numa linha só, e vira hambúrguer em vez de vazar (overflow-x). */
@media(max-width:1200px){
  .nav__links{
    position:fixed; top:64px; left:0; right:0; bottom:0;
    background:var(--navy-950); flex-direction:column; align-items:stretch;
    padding:14px; gap:2px; transform:translateX(100%); transition:transform .25s ease;
    overflow-y:auto;
  }
  .nav__links.open{transform:translateX(0);}
  .nav__links a{padding:13px 14px; font-size:15px; border-bottom:1px solid rgba(255,255,255,0.06);}
  .nav__toggle{display:block;}
}

/* ---------- HERO ---------- */
.hero{
  background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-800) 75%, var(--navy-700) 140%);
  color:#fff; padding:64px 0 56px; position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(circle at 82% 18%, rgba(255,255,255,0.08), transparent 42%),
                    radial-gradient(circle at 8% 92%, rgba(255,255,255,0.06), transparent 40%);
  pointer-events:none;
}
.hero__inner{position:relative; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center;}
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11.5px;
  letter-spacing:0.09em; text-transform:uppercase; color:var(--gray-200);
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);
  padding:6px 12px; border-radius:99px; margin-bottom:22px;
}
.hero__eyebrow .dot{width:6px;height:6px;border-radius:50%; background:#6fbf73; box-shadow:0 0 0 3px rgba(111,191,115,0.25);}
.hero h1{font-size:clamp(34px,4.6vw,58px); font-weight:800; color:#fff; line-height:1.08; letter-spacing:-0.02em; margin-bottom:18px;}
.hero h1 em{font-style:normal; color:var(--blue-500);}
.hero__wink{
  font-family:var(--serif); font-style:italic; font-size:14px; color:var(--gray-300);
  margin:-8px 0 18px; opacity:0.9;
}
.hero__lede{font-size:16.5px; font-weight:var(--fw-body); line-height:1.65; color:var(--gray-200); max-width:56ch; margin-bottom:28px;}
.hero__ctas{display:flex; gap:12px; flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px;
  padding:12px 20px; border-radius:8px; text-decoration:none; cursor:pointer; border:1px solid transparent;
  transition:all .15s ease; font-family:var(--sans);
}
.btn--primary{background:#fff; color:var(--navy-900);}
.btn--primary:hover{background:var(--gray-100); transform:translateY(-1px);}
.btn--ghost{background:rgba(255,255,255,0.06); color:#fff; border-color:rgba(255,255,255,0.28);}
.btn--ghost:hover{background:rgba(255,255,255,0.14);}

/* countdown card */
.countdown{
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.16);
  border-radius:14px; padding:22px 24px;
}
.countdown__label{font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-300); margin-bottom:6px;}
.countdown__title{font-family:var(--serif); font-size:18px; font-weight:600; color:#fff; margin-bottom:16px; line-height:1.3;}
.countdown__grid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:14px;}
.countdown__unit{background:rgba(15,23,42,0.35); border-radius:8px; padding:10px 4px; text-align:center;}
.countdown__num{font-family:var(--mono); font-size:22px; font-weight:600; color:#fff;}
.countdown__unitlabel{font-size:9.5px; color:var(--gray-300); text-transform:uppercase; letter-spacing:0.05em; margin-top:2px;}
.countdown__note{font-size:12.5px; color:var(--gray-300); line-height:1.5;}
.countdown__note strong{color:#fff;}

/* ---------- SECTION generic ---------- */
.section{padding:64px 0;}
.section--alt{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section__head{max-width:720px; margin:0 auto 40px; text-align:center;}
.section__eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--navy-800); font-weight:600; margin-bottom:10px; display:block;}
.section__title{font-size:clamp(24px,3vw,32px); margin-bottom:12px;}
.section__desc{color:var(--gray-700); font-size:15.5px;}

/* ---------- REGULATORY CARDS ---------- */
.reg-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.reg-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow-sm); border-top:3px solid var(--navy-800);
}
.reg-card__top{display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:10px; flex-wrap:wrap;}
.reg-card__code{font-family:var(--mono); font-size:11.5px; font-weight:600; color:var(--navy-800); background:var(--gray-100); padding:3px 8px; border-radius:5px;}
.reg-card__date{font-family:var(--mono); font-size:11px; color:var(--gray-500);}
.reg-card__title{font-size:16px; margin-bottom:8px; line-height:1.3;}
.reg-card__desc{font-size:13.5px; color:var(--gray-700); line-height:1.5;}
.reg-card__pdf{
  display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:12px; font-weight:600;
  color:var(--navy-800); text-decoration:none; padding-top:10px; border-top:1px solid var(--gray-100);
}
.reg-card__pdf:hover{color:var(--navy-900);}
.nt-teaser{
  display:flex; align-items:center; justify-content:center; gap:8px; margin-top:20px; padding:14px 20px;
  background:var(--gray-50); border:1px dashed var(--navy-700); border-radius:10px; text-decoration:none;
  color:var(--navy-800); font-size:13.5px; font-weight:600; text-align:center;
}
.nt-teaser:hover{background:var(--gray-100);}
.cst-highlight{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; margin-top:20px; min-height:210px; border-radius:14px; overflow:hidden; text-decoration:none;
  background-image:url('/static/img/cst-card-bg.jpg'); background-size:cover; background-position:center;
  text-align:center; box-shadow:0 4px 16px rgba(15,23,42,0.16); transition:transform .2s ease, box-shadow .2s ease;
}
.cst-highlight:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(15,23,42,0.26);}
.cst-highlight::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,0.35) 0%, rgba(15,23,42,0.6) 55%, rgba(15,23,42,0.92) 100%);
}
.cst-highlight__label{
  position:relative; font-family:var(--serif); font-size:52px; font-weight:700; color:#fff;
  letter-spacing:0.02em; line-height:1;
}
.cst-highlight__tag{
  position:relative; font-family:var(--serif); font-style:italic; font-weight:600; font-size:16px;
  color:var(--gray-200); letter-spacing:0.01em;
}
.cst-highlight__sub{
  position:relative; display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:500;
  color:var(--gray-300); max-width:32ch; margin-top:2px;
}
.cst-highlight__sub .icon{width:15px; height:15px;}
@media(max-width:640px){
  .cst-highlight{min-height:170px;}
  .cst-highlight__label{font-size:38px;}
  .cst-highlight__tag{font-size:14px;}
  .cst-highlight__sub{font-size:12.5px; max-width:26ch;}
}
.nf-highlight{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; margin-top:20px; min-height:210px; border-radius:14px; overflow:hidden; text-decoration:none;
  background-image:url('/static/img/nf-card-bg.jpg'); background-size:cover; background-position:center;
  text-align:center; box-shadow:0 4px 16px rgba(15,23,42,0.16); transition:transform .2s ease, box-shadow .2s ease;
}
.nf-highlight:hover{transform:translateY(-2px); box-shadow:0 10px 26px rgba(15,23,42,0.26);}
.nf-highlight::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,0.35) 0%, rgba(15,23,42,0.6) 55%, rgba(15,23,42,0.92) 100%);
}
.nf-highlight__label{
  position:relative; font-family:var(--serif); font-size:42px; font-weight:700; color:#fff;
  letter-spacing:0.01em; line-height:1.1;
}
.nf-highlight__sub{
  position:relative; display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:500;
  color:var(--gray-300); max-width:32ch;
}
.nf-highlight__sub .icon{width:15px; height:15px;}
@media(max-width:640px){
  .nf-highlight{min-height:170px;}
  .nf-highlight__label{font-size:30px;}
  .nf-highlight__sub{font-size:12.5px; max-width:26ch;}
}
.pill{
  display:inline-block; font-size:12px; font-weight:600; color:var(--navy-800); background:var(--white);
  border:1px solid var(--line); padding:7px 14px; border-radius:99px; text-decoration:none; transition:all .15s ease;
}
.pill:hover{border-color:var(--navy-700); color:var(--navy-800); background:var(--gray-50);}

/* ---------- TIMELINE ---------- */
.timeline{position:relative; padding-left:28px;}
.timeline::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:2px; background:var(--gray-200);}
.tl-item{position:relative; padding-bottom:30px;}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{
  position:absolute; left:-28px; top:6px; width:12px; height:12px; border-radius:50%;
  background:var(--gray-300); border:2px solid var(--white); box-shadow:0 0 0 2px var(--gray-300);
}
.tl-item--done .tl-dot{background:var(--navy-800); box-shadow:0 0 0 2px var(--navy-800);}
.tl-item--current .tl-dot{
  background:var(--navy-900); box-shadow:0 0 0 2px var(--navy-900);
  position:relative;
}
.tl-item--current .tl-dot::after{
  content:""; position:absolute; inset:-5px; border-radius:50%; border:2px solid var(--navy-900);
  opacity:0.5; animation:pulse-ring 2.4s ease-out infinite;
}
@keyframes pulse-ring{0%{transform:scale(0.7); opacity:0.55;}100%{transform:scale(1.7); opacity:0;}}
.tl-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; box-shadow:var(--shadow-sm);}
.tl-item--current .tl-card{border-color:var(--navy-800); box-shadow:var(--shadow-md);}
.tl-badge{
  display:inline-block; background:var(--navy-900); color:#fff; font-family:var(--mono); font-size:10px;
  letter-spacing:0.08em; padding:3px 9px; border-radius:99px; margin-bottom:8px; font-weight:600;
}
.tl-date{font-family:var(--mono); font-size:12px; color:var(--navy-800); font-weight:600; margin-right:10px;}
.tl-tag{font-size:11.5px; color:var(--gray-500); background:var(--gray-100); padding:2px 8px; border-radius:5px;}
.tl-title{font-size:16.5px; margin:8px 0 6px;}
.tl-desc{font-size:13.8px; color:var(--gray-700); line-height:1.55;}

/* ---------- STRUCTURE ---------- */
.struct-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.struct-col{background:var(--white); border:1px solid var(--line); border-radius:12px; padding:24px; box-shadow:var(--shadow-sm);}
.struct-col__title{font-size:17px; margin-bottom:4px; display:flex; align-items:center; gap:8px;}
.struct-col__sub{font-family:var(--mono); font-size:11.5px; color:var(--gray-500); margin-bottom:18px; display:block;}
.book{display:flex; gap:14px; padding:14px 0; border-top:1px solid var(--gray-100);}
.book[hidden]{display:none;}
.book:first-of-type{border-top:none;}
.book__code{
  font-family:var(--mono); font-size:11px; font-weight:600; color:var(--white); background:var(--navy-800);
  padding:5px 8px; border-radius:5px; height:fit-content; flex-shrink:0; letter-spacing:0.03em;
}
.book__title{font-size:14.5px; margin-bottom:4px; color:var(--navy-900);}
.book__desc{font-size:13px; color:var(--gray-700); line-height:1.5;}

/* ---------- Theme search & print ---------- */
.tema-search-wrap{
  display:flex; align-items:center; gap:10px; max-width:640px; margin:0 auto 20px;
  background:var(--white); border:1px solid var(--gray-300); border-radius:9px; padding:0 14px;
}
.tema-search-icon{color:var(--gray-500); flex-shrink:0; display:flex;}
.tema-search-icon .icon{width:17px; height:17px;}
.tema-search{
  flex:1; border:none; outline:none; padding:12px 4px; font-size:14px; font-family:var(--sans);
  background:transparent; color:var(--gray-900); min-width:0;
}
.tema-search::placeholder{color:var(--gray-500);}
.tema-print-btn{
  display:flex; align-items:center; gap:7px; background:none; border:none; border-left:1px solid var(--gray-200);
  padding:10px 4px 10px 14px; font-size:12.5px; font-weight:600; color:var(--navy-800); cursor:pointer;
  font-family:var(--sans); flex-shrink:0; white-space:nowrap;
}
.tema-print-btn .icon{width:16px; height:16px;}
.tema-print-btn:hover{color:var(--navy-900);}
.tema-search-empty{text-align:center; color:var(--gray-500); font-size:13.5px; margin-bottom:20px;}
.theme--hidden, .block--hidden{display:none !important;}
@media(max-width:560px){
  .tema-print-btn span{display:none;}
  .tema-print-btn{border-left:none; padding-left:4px;}
}

/* ---------- BLOCKS / THEMES (accordion) ---------- */
.block{margin-bottom:44px; scroll-margin-top:80px;}
.block__head{display:flex; align-items:center; gap:14px; margin-bottom:20px;}
.block__num{
  font-family:var(--serif); font-size:20px; font-weight:600; color:#fff; background:var(--navy-900);
  width:40px; height:40px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.block__title{font-size:22px;}
.block__themes{display:flex; flex-direction:column; gap:10px;}

.theme{background:var(--white); border:1px solid var(--line); border-radius:10px; overflow:hidden;}
.theme[open]{border-color:var(--navy-700); box-shadow:var(--shadow-sm);}
.theme__summary{
  list-style:none; cursor:pointer; padding:16px 18px; display:flex; align-items:center; gap:14px;
  user-select:none;
}
.theme__summary::-webkit-details-marker{display:none;}
.icon{width:18px; height:18px; stroke:currentColor; fill:none; display:block;}
.theme__icon-wrap{
  width:34px; height:34px; border-radius:9px; background:var(--gray-100); color:var(--navy-800);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.theme__heading{flex:1; display:flex; flex-direction:column; gap:3px; min-width:0;}
.theme__title{font-family:var(--serif); font-weight:600; font-size:15.5px; color:var(--navy-900);}
.theme__tags{font-family:var(--mono); font-size:11px; color:var(--gray-500);}
.theme__chevron{font-size:20px; color:var(--gray-400); transition:transform .2s ease; flex-shrink:0;}
.theme[open] .theme__chevron{transform:rotate(90deg); color:var(--navy-800);}
.theme__body{padding:0 18px 20px 52px;}
.theme__bullets{list-style:none; margin-bottom:16px;}
.theme__bullets li{
  position:relative; padding-left:16px; font-size:13.8px; color:var(--gray-700);
  margin-bottom:6px; line-height:1.5;
}
.theme__bullets li::before{content:"–"; position:absolute; left:0; color:var(--gray-500);}
.theme__details{background:var(--gray-50); border:1px solid var(--gray-200); border-radius:8px; padding:14px 16px;}
.theme__details-label{font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-500); margin-bottom:10px;}
.art{display:flex; gap:12px; padding:9px 0; border-top:1px solid var(--gray-200);}
.art:first-of-type{border-top:none;}
.art__code{
  font-family:var(--mono); font-size:10.8px; font-weight:600; color:var(--navy-800); background:var(--gray-100);
  padding:3px 7px; border-radius:4px; height:fit-content; flex-shrink:0; white-space:nowrap;
}
.art strong{font-size:13px; color:var(--navy-900); display:block; margin-bottom:2px;}
.art p{font-size:12.6px; color:var(--gray-700); line-height:1.5;}

/* ---------- TUTORIALS ---------- */
.tutorial-list{display:flex; flex-direction:column; gap:10px;}
.tutorial .theme__body{padding-left:52px;}
.tutorial__summary{font-size:14px; color:var(--gray-700); font-style:italic; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--gray-200); line-height:1.55;}
.tutorial__content p{font-size:13.8px; color:var(--gray-700); line-height:1.7; margin-bottom:14px;}
.tutorial__content p:last-child{margin-bottom:0;}
.tutorial__content ul{list-style:none; margin:14px 0 0;}
.tutorial__content li{position:relative; padding-left:20px; font-size:13.5px; color:var(--gray-700); margin-bottom:9px; line-height:1.55;}
.tutorial__content li::before{content:""; position:absolute; left:0; top:7px; width:7px; height:7px; border-radius:2px; background:var(--navy-700);}

.hp-field{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}

/* ---------- FOOTER ---------- */
.footer{background:var(--navy-950); color:var(--gray-300); padding:52px 0 26px;}
.footer__top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer__brand{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
.footer__logo{height:30px; width:auto; display:block;}
.footer p{font-size:13px; line-height:1.6; color:var(--gray-300); max-width:42ch;}
.footer h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:14px; font-family:var(--sans); font-weight:600;}
.footer ul{list-style:none;}
.footer li{margin-bottom:9px;}
.footer a{color:var(--gray-300); text-decoration:none; font-size:13.3px;}
.footer a:hover{color:#fff;}
.footer__bottom{
  padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
  font-size:12px; color:var(--gray-500);
}
.footer__credit{font-size:12px; color:var(--gray-500);}
.footer__credit strong{color:var(--gray-200); font-weight:600;}
.footer__disclaimer{font-size:11.5px; color:var(--gray-500); max-width:900px; margin-top:16px; line-height:1.6;}

.back-to-top{
  position:fixed; bottom:24px; right:24px; width:44px; height:44px; border-radius:50%;
  background:var(--navy-900); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
  opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:90;
}
.back-to-top .icon{width:20px; height:20px;}
.back-to-top.show{opacity:1; pointer-events:auto;}
.back-to-top:hover{transform:translateY(-2px);}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .hero__inner{grid-template-columns:1fr;}
  .reg-grid{grid-template-columns:1fr 1fr;}
  .struct-grid{grid-template-columns:1fr;}
  .footer__top{grid-template-columns:1fr; gap:28px;}
}
@media(max-width:640px){
  .wrap{padding:0 18px;}
  .reg-grid{grid-template-columns:1fr;}
  .countdown__grid{grid-template-columns:repeat(4,1fr);}
  .theme__body, .tutorial .theme__body{padding-left:18px;}
  .theme__summary{padding:14px;}
}

/* ---------- PRINT ---------- */
@media print{
  .nav, .progress-bar, .back-to-top, .hero__ctas, .countdown, .hero__eyebrow,
  .tema-search-wrap, .tema-search-empty, #blockNav, .theme__chevron,
  .footer__top ul, .nav__toggle{ display:none !important; }
  body{ background:#fff; color:#000; }
  .hero{ background:#fff !important; color:#000 !important; padding:12px 0 20px; }
  .hero__inner{ grid-template-columns:1fr; }
  .hero h1, .hero h1 em{ color:#000 !important; }
  .hero__lede{ color:#222 !important; }
  .section, .section--alt{ padding:18px 0; border:none; }
  .reg-card, .tl-card, .theme, .struct-col, .course-list{ box-shadow:none !important; border:1px solid #999 !important; }
  .theme{ break-inside:avoid; }
  .art, .book{ break-inside:avoid; }
  a{ color:#000 !important; text-decoration:underline; }
  .footer{ background:#fff !important; color:#000 !important; border-top:1px solid #999; }
  .footer a{ color:#000 !important; }
  .theme__icon-wrap{ background:#eee !important; color:#000 !important; }
  .block__num{ background:#000 !important; }
}

/* ---------- ARTICLE CAROUSEL (dots reused pelo carrossel de fotos em
   app.css — .article-carousel-wrap--photo / .article-slide-photo) ---------- */
.icon--tiny{width:14px; height:14px;}
.icon--back{transform:rotate(180deg);}

.article-carousel-wrap{position:relative;}
.article-dots{display:flex; gap:6px;}
.article-dot{
  width:7px; height:7px; border-radius:50%; background:var(--gray-300); border:none; padding:0;
  cursor:pointer; transition:all .15s ease;
}
.article-dot.active{width:20px; border-radius:4px; background:var(--navy-900);}

/* ---------- ARTICLE READING PAGE ---------- */
.article-hero{
  background:linear-gradient(160deg, var(--navy-950) 0%, var(--navy-800) 80%, var(--navy-700) 150%);
  color:#fff; padding:48px 0 40px; position:relative; overflow:hidden;
}
.article-hero--photo{background-size:cover; background-position:center;}
.article-hero--photo::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,0.55) 0%, rgba(15,23,42,0.75) 55%, rgba(15,23,42,0.94) 100%);
}
.article-hero--photo .wrap{position:relative; z-index:1;}
.article-hero--cst{background-image:url('/static/img/cst-card-bg.jpg');}
.article-hero--notas{background-image:url('/static/img/img-escritorio.jpg');}
.article-hero--glossario{background-image:url('/static/img/img-glossario-livros.jpg');}
.article-hero--calculadora{background-image:url('/static/img/img-calculadora-nova.jpg');}
.article-hero--internacional{
  background-image:url('/static/img/brand/worldmap-internacional.png');
  background-size:cover; background-position:center top;
}
.article-hero--internacional::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,23,42,0.45) 0%, rgba(15,23,42,0.35) 45%, rgba(15,23,42,0.65) 100%);
}
.article-hero--internacional .wrap{position:relative; z-index:1;}
.article-tag{
  display:inline-block; font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--gray-200); background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.18);
  padding:5px 12px; border-radius:99px; margin-bottom:16px;
}
.article-hero h1{color:#fff; font-weight:800; font-size:clamp(30px,4.8vw,44px); line-height:1.12; letter-spacing:-0.018em; margin-bottom:12px; max-width:20ch;}
.article-hero__meta{color:var(--gray-300); font-size:13px;}
.article-wrap{max-width:700px; padding:52px 28px 70px;}
.article-actions{display:flex; gap:10px; margin-bottom:28px;}
.article-actions__btn{
  display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; cursor:pointer;
  background:var(--white); border:1px solid var(--line); border-radius:99px; padding:8px 16px; color:var(--gray-700);
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.article-actions__btn:hover{background:var(--gray-50);}
.article-actions__btn.is-active{background:var(--blue-50); border-color:var(--blue-100); color:var(--blue-600);}
.article-actions__emoji{font-size:15px; line-height:1;}
.article-body h2{font-size:22px; font-weight:600; margin:34px 0 14px; color:var(--navy-900);}
.article-body h2:first-child{margin-top:0;}
.article-body p{font-size:16.5px; font-weight:var(--fw-body); line-height:var(--lh-body); color:var(--gray-800); margin-bottom:18px;}
.article-body ul{list-style:none; margin:0 0 20px;}
.article-body li{
  position:relative; padding-left:22px; font-size:15.5px; color:var(--gray-800); line-height:1.7; margin-bottom:11px;
}
.article-body li::before{content:""; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:2px; background:var(--navy-700);}
.article-figure{margin:30px 0 34px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow-sm); overflow:hidden;}
.article-figure svg, .article-figure img{display:block; width:100%; height:auto;}
.article-figure__caption{padding:13px 20px; font-size:12.5px; line-height:1.5; color:var(--gray-500); border-top:1px solid var(--line); background:var(--gray-50);}
.article-figure__caption strong{color:var(--gray-700); font-weight:600;}
@media(max-width:640px){ .article-figure__caption{padding:12px 16px; font-size:12px;} }
.article-table-wrap{overflow-x:auto; margin:8px 0 6px; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm);}
.article-table{width:100%; border-collapse:collapse; font-size:13.5px;}
.article-table th{
  background:var(--gray-50); color:var(--navy-900); font-family:var(--mono); font-size:11px; letter-spacing:0.04em;
  text-transform:uppercase; text-align:left; padding:12px 16px; border-bottom:1px solid var(--line); white-space:nowrap;
}
.article-table td{padding:14px 16px; border-bottom:1px solid var(--line); color:var(--gray-700); line-height:1.5; vertical-align:top;}
.article-table tr:last-child td{border-bottom:none;}
.article-table td:first-child{font-weight:600; color:var(--navy-900); white-space:nowrap;}
.article-table-note{font-size:12px; color:var(--gray-500); margin:-8px 0 20px; font-style:italic;}
.article-disclaimer{font-size:12px; color:var(--gray-500); line-height:1.6; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-style:italic;}

.article-sources{margin-top:44px; padding-top:26px; border-top:1px solid var(--line);}
.article-sources__title{font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-500); margin-bottom:16px;}
.article-sources__list{list-style:none; margin:0; padding:0;}
.article-sources__list li{font-size:13.5px; line-height:1.55; color:var(--gray-700); padding-left:0; margin-bottom:16px;}
.article-sources__list li:last-child{margin-bottom:0;}
.article-sources__list li::before{content:none;}
.article-sources__link{color:var(--navy-800); font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:7px;}
.article-sources__link .icon{width:14px; height:14px; flex-shrink:0;}
.article-sources__link:hover{text-decoration:underline;}
.article-sources__desc{display:block; color:var(--gray-500); font-size:12.5px; margin-top:3px; padding-left:21px;}
.article-back-btn{margin-top:20px; display:inline-flex;}
.nav-back-link{
  display:inline-flex; align-items:center; gap:7px; color:var(--gray-300); text-decoration:none;
  font-size:13.5px; font-weight:500; padding:9px 12px; border-radius:7px; transition:all .15s ease; white-space:nowrap;
}
.nav-back-link:hover{color:#fff; background:rgba(255,255,255,0.08);}
@media(max-width:480px){ .nav-back-link span{display:none;} }

/* ---------- NOTAS TÉCNICAS (dedicated page) ---------- */
.nt-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:8px;}
.nt-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px; box-shadow:var(--shadow-sm); border-top:3px solid var(--gray-300); display:flex; flex-direction:column;
}
.nt-card__top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:6px;}
.nt-card__code{font-family:var(--mono); font-size:11.5px; font-weight:600; color:var(--navy-800); line-height:1.4;}
.nt-status{
  font-family:var(--mono); font-size:9.5px; letter-spacing:0.04em; text-transform:uppercase; font-weight:600;
  padding:3px 8px; border-radius:99px; white-space:nowrap; flex-shrink:0;
}
.nt-status--ok{background:var(--gray-100); color:var(--navy-800);}
.nt-status--warn{background:var(--gray-100); color:var(--gray-600);}
.nt-card__issuer{font-size:11.5px; color:var(--gray-500); margin-bottom:10px; display:block;}
.nt-card__title{font-size:15.5px; margin-bottom:8px; line-height:1.35; color:var(--navy-900);}
.nt-card__desc{font-size:13px; color:var(--gray-700); line-height:1.55; flex:1;}
@media(max-width:760px){ .nt-grid{grid-template-columns:1fr;} }

/* ---------- CST REFERENCE PAGE ---------- */
.cst-group{margin-bottom:40px; scroll-margin-top:80px;}
.cst-group__head{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:10px;}
.cst-group__title{font-size:22px; margin:0;}
.cst-group__subtitle{font-family:var(--mono); font-size:11.5px; color:var(--gray-500);}
.cst-group__intro{font-size:14.5px; line-height:1.7; color:var(--gray-700); margin-bottom:14px;}
.cst-structure-note{
  display:flex; align-items:flex-start; gap:10px; background:var(--gray-50); border:1px solid var(--gray-200);
  border-radius:10px; padding:14px 16px; margin-bottom:18px;
}
.cst-structure-note .icon{color:var(--navy-800); flex-shrink:0; margin-top:3px;}
.cst-structure-note p{font-size:13.3px; line-height:1.65; color:var(--navy-900); margin:0;}
.cst-structure-note a{color:var(--navy-800); font-weight:600;}
.cst-subgroup{margin-bottom:10px;}
.cst-table{display:flex; flex-direction:column; gap:0;}
.cst-row{display:flex; gap:14px; padding:12px 0; border-top:1px solid var(--gray-100);}
.cst-row:first-child{border-top:none;}
.cst-row__code{
  font-family:var(--mono); font-weight:700; font-size:13px; color:var(--navy-800); background:var(--gray-100);
  padding:4px 9px; border-radius:6px; height:fit-content; flex-shrink:0; min-width:38px; text-align:center;
}
.cst-row__body strong{font-size:13.8px; color:var(--navy-900); display:block; margin-bottom:3px;}
.cst-row__body p{font-size:12.8px; color:var(--gray-700); line-height:1.55; margin:0;}

/* ---------- cClassTrib (recurso TAX PRO dentro de Códigos CST) ---------- */
.cst-clastrib{margin-top:10px; border:1px dashed var(--gray-200); border-radius:8px; padding:2px 10px;}
.cst-clastrib__summary{
  display:flex; align-items:center; gap:8px; padding:8px 2px; cursor:pointer; list-style:none;
  font-size:12px; font-weight:600; color:var(--blue-600);
}
.cst-clastrib__summary::-webkit-details-marker{display:none;}
.cst-clastrib__summary::before{content:"›"; transition:transform 0.15s ease;}
.cst-clastrib[open] .cst-clastrib__summary::before{transform:rotate(90deg);}
.cst-clastrib__count{font-weight:500; color:var(--gray-500); font-family:var(--mono); font-size:11px;}
.cst-clastrib__note{font-size:11.5px; color:var(--gray-500); line-height:1.5; margin:0 0 8px;}
.cst-clastrib__note a{color:var(--blue-600); font-weight:600;}
.cst-clastrib-table{display:flex; flex-direction:column; gap:0; margin-bottom:10px;}
.cst-clastrib-row{
  display:grid; grid-template-columns:70px 1fr 70px 70px; gap:8px; padding:7px 4px;
  border-top:1px solid var(--gray-100); font-size:12px; color:var(--gray-700); align-items:baseline;
}
.cst-clastrib-row--free{grid-template-columns:70px 1fr;}
.cst-clastrib-row--head{font-weight:700; color:var(--navy-800); font-size:11px; text-transform:uppercase; letter-spacing:0.02em;}
.cst-clastrib-row:first-child{border-top:none;}
.cst-clastrib-row__code{font-family:var(--mono); font-weight:600; color:var(--navy-800);}
.cst-clastrib-upsell{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--gray-50); border:1px solid var(--gray-200);
  border-radius:8px; padding:10px 14px; margin-bottom:10px;
}
.cst-clastrib-upsell .icon{color:var(--navy-700); flex-shrink:0;}
.cst-clastrib-upsell p{font-size:12.5px; color:var(--gray-700); margin:0; flex:1; min-width:180px;}
.cst-clastrib-upsell .btn{padding:8px 14px; font-size:12.5px;}
@media(max-width:640px){
  .cst-clastrib-row{grid-template-columns:60px 1fr; grid-template-areas:"code desc" ". pct";}
  .cst-clastrib-row span:nth-child(3), .cst-clastrib-row span:nth-child(4){grid-column:2; font-size:11px; color:var(--gray-500);}
  .cst-clastrib-row--head{display:none;}
}

/* ---------- TUTORIAL "SUA NOTA FISCAL" (dedicated page, público leigo) ---------- */
.nf-hero{
  position:relative; color:#fff; padding:76px 0 60px;
  background-image:linear-gradient(180deg, rgba(15,23,42,0.80) 0%, rgba(15,23,42,0.88) 55%, rgba(30,41,59,0.97) 100%), url('/static/img/tutorial-hero.jpg');
  background-size:cover; background-position:center 60%;
}
.nf-hero__inner{max-width:740px;}
.nf-hero h1{color:#fff; font-weight:700; font-size:clamp(27px,3.8vw,39px); line-height:1.2; letter-spacing:-0.01em; margin:16px 0 16px;}
.nf-hero__lede{color:var(--gray-200); font-size:16.5px; font-weight:var(--fw-body); line-height:1.65; max-width:58ch; margin-bottom:16px;}
@media(max-width:640px){ .nf-hero{padding:56px 0 44px;} }

/* comparison: "como é hoje" x "como será" */
.nf-compare{display:grid; grid-template-columns:1fr auto 1fr; gap:22px; align-items:center; margin:8px 0 10px;}
.nf-vs{
  width:52px; height:52px; border-radius:50%; background:var(--navy-900); color:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); justify-self:center;
}
.nf-vs .icon{width:22px; height:22px;}
.nf-compare-note{
  text-align:center; font-size:13px; color:var(--gray-600); max-width:520px; margin:4px auto 0;
  line-height:1.6;
}
.nf-compare-note strong{color:var(--navy-900);}

.nf-receipt{
  background:#fff; border:1px solid var(--line); padding:22px 22px 30px; font-family:var(--mono);
  box-shadow:var(--shadow-sm);
  clip-path:polygon(0% 0%,100% 0%,100% 100%,96% 94%,92% 100%,88% 94%,84% 100%,80% 94%,76% 100%,72% 94%,68% 100%,64% 94%,60% 100%,56% 94%,52% 100%,48% 94%,44% 100%,40% 94%,36% 100%,32% 94%,28% 100%,24% 94%,20% 100%,16% 94%,12% 100%,8% 94%,4% 100%,0% 94%);
}
.nf-receipt__eyebrow{
  font-family:var(--sans); font-size:10.5px; letter-spacing:0.07em; text-transform:uppercase; font-weight:700;
  padding:4px 10px; border-radius:99px; display:inline-block; margin-bottom:14px;
}
.nf-receipt--old .nf-receipt__eyebrow{background:var(--gray-100); color:var(--gray-700);}
.nf-receipt--new .nf-receipt__eyebrow{background:var(--gray-100); color:var(--navy-800);}
.nf-receipt__store{font-family:var(--serif); font-size:15px; font-weight:700; color:var(--navy-900); margin-bottom:2px;}
.nf-receipt__meta{font-family:var(--sans); font-size:10px; color:var(--gray-500); margin-bottom:16px;}
.nf-receipt__row{display:flex; justify-content:space-between; gap:10px; font-size:12px; color:var(--gray-800); padding:2.5px 0;}
.nf-receipt__row--total{border-top:1px dashed var(--gray-300); margin-top:8px; padding-top:10px; font-weight:700; font-size:14px; color:var(--navy-900);}
.nf-receipt__divider{border-top:1px dashed var(--gray-300); margin:10px 0;}
.nf-receipt__note{font-family:var(--sans); font-size:11px; color:var(--gray-500); line-height:1.55; margin-top:14px; font-style:italic;}
.nf-receipt__tax-block{margin-top:12px; background:var(--gray-50); border:1px dashed var(--navy-700); border-radius:6px; padding:10px 12px;}
.nf-receipt__tax-title{font-family:var(--sans); font-size:9.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--navy-800); font-weight:700; margin-bottom:7px;}
.nf-tag{
  display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:50%;
  background:var(--navy-900); color:#fff; font-family:var(--sans); font-size:9px; font-weight:700; margin-right:6px; flex-shrink:0;
}
.nf-qr{
  width:48px; height:48px; margin-top:16px; border:1px solid var(--gray-300);
  background-image:linear-gradient(45deg,var(--navy-900) 25%,transparent 25%),linear-gradient(-45deg,var(--navy-900) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--navy-900) 75%),linear-gradient(-45deg,transparent 75%,var(--navy-900) 75%);
  background-size:10px 10px; background-position:0 0,0 5px,5px -5px,-5px 0px; opacity:0.82;
}
.nf-qr-label{font-family:var(--sans); font-size:9.5px; color:var(--gray-500); margin-top:5px; letter-spacing:0.03em;}

@media(max-width:760px){
  .nf-compare{grid-template-columns:1fr;}
  .nf-vs{transform:rotate(90deg); margin:2px auto;}
}

/* anatomy / campo-a-campo */
.nf-anatomy{display:grid; grid-template-columns:330px 1fr; gap:40px; align-items:start;}
.nf-legend{list-style:none; display:flex; flex-direction:column; gap:18px; margin:0; padding:0;}
.nf-legend li{display:flex; gap:12px;}
.nf-legend .nf-tag{width:24px; height:24px; font-size:11.5px; margin-right:0;}
.nf-legend__body strong{display:flex; align-items:center; gap:8px; font-size:14.5px; color:var(--navy-900); margin-bottom:4px; font-family:var(--serif);}
.nf-legend__body p{font-size:13px; color:var(--gray-700); line-height:1.6; margin:0;}
.nf-badge-new{
  font-family:var(--mono); font-size:9px; letter-spacing:0.05em; text-transform:uppercase; font-weight:700;
  background:var(--gray-100); color:var(--navy-800); padding:2px 7px; border-radius:99px;
}
@media(max-width:820px){
  .nf-anatomy{grid-template-columns:1fr; gap:28px;}
}

/* ---------- GLOSSARY ---------- */
.glossary-list{display:flex; flex-direction:column;}
.glossary-item{padding:18px 0; border-top:1px solid var(--gray-100);}
.glossary-item:first-child{border-top:none;}
.glossary-item dt{font-family:var(--serif); font-weight:600; font-size:16px; color:var(--navy-900); margin-bottom:6px;}
.glossary-item dd{margin:0; font-size:13.8px; color:var(--gray-700); line-height:1.65;}

/* ---------- COMPARADOR (sector tabs) ---------- */
/* Wrapper: fixa a fade nas bordas enquanto o conteúdo interno rola por baixo. */
.sector-tabs-wrap{position:relative; margin-bottom:26px;}
.sector-tabs-wrap::before, .sector-tabs-wrap::after{
  content:""; position:absolute; top:0; bottom:0; width:28px; pointer-events:none; z-index:2;
}
.sector-tabs-wrap::before{left:0; background:linear-gradient(to right, var(--gray-50), rgba(248,246,241,0));}
.sector-tabs-wrap::after{right:0; background:linear-gradient(to left, var(--gray-50), rgba(248,246,241,0));}
.sector-tabs{
  display:flex; gap:8px; overflow-x:auto; overflow-y:hidden;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.sector-tabs::-webkit-scrollbar{display:none;}
.sector-tab{
  display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--gray-700);
  background:var(--white); border:1px solid var(--line); padding:10px 18px; border-radius:99px; cursor:pointer;
  transition:all .15s ease; font-family:var(--sans); flex-shrink:0; white-space:nowrap;
}
.sector-tab .icon{width:17px; height:17px;}
.sector-tab:hover{border-color:var(--navy-700); color:var(--navy-900);}
.sector-tab.active{background:var(--navy-900); border-color:var(--navy-900); color:#fff;}
.sector-panel{display:none;}
.sector-panel.active{display:block; animation:sectorFade .25s ease;}
@keyframes sectorFade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}
.sector-visual{
  display:flex; align-items:center; gap:16px; margin-bottom:22px; padding:18px 22px;
  background:var(--navy-900); border-radius:14px; color:#fff;
}
.sector-visual__icon{
  width:56px; height:56px; border-radius:12px; background:rgba(255,255,255,0.12);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.sector-visual__icon .icon{width:30px; height:30px; color:#fff;}
.sector-visual__text h3{color:#fff; font-size:18px; margin-bottom:4px;}
.sector-visual__text p{color:rgba(255,255,255,0.78); font-size:13px; line-height:1.5; margin:0;}
.struct-col--before .book__code--before{background:var(--gray-500);}
.struct-col--after{border:1px solid var(--navy-800);}
@media(max-width:640px){
  .sector-visual{flex-direction:column; align-items:flex-start; text-align:left;}
}
.sector-callout{
  display:flex; align-items:flex-start; gap:10px; background:var(--gray-50); border:1px solid var(--gray-200);
  border-radius:10px; padding:16px 18px; margin-top:20px;
}
.sector-callout .icon{color:var(--navy-800); flex-shrink:0; margin-top:2px;}
.sector-callout p{font-size:13.5px; line-height:1.65; color:var(--navy-900); margin:0;}

/* Variante editorial — pull-quote serifado para a frase de maior peso de
   uma seção (ex.: "o que muda na prática" no Comparador). Reaproveita a
   marcação de .sector-callout (ícone + <p><strong>rótulo</strong> texto</p>),
   só troca a apresentação visual — a base continua servindo o uso simples
   (ex.: resumo da calculadora). */
.sector-callout--quote{
  display:block; background:transparent; border:none; border-left:3px solid var(--blue-500);
  padding:2px 0 2px 26px; margin-top:26px; position:relative;
}
.sector-callout--quote .icon{display:none;}
.sector-callout--quote::before{
  content:"\201C"; font-family:var(--serif); font-size:64px; font-weight:700; color:var(--blue-100);
  position:absolute; left:10px; top:-22px; line-height:1; z-index:0;
}
.sector-callout--quote p{
  position:relative; font-family:var(--serif); font-style:italic; font-size:19px; line-height:1.48;
  color:var(--navy-900); font-weight:500;
}
.sector-callout--quote p strong{
  display:block; font-style:normal; font-weight:700; font-size:11px; text-transform:uppercase;
  letter-spacing:0.07em; color:var(--blue-600); margin-bottom:7px; font-family:var(--sans);
}

/* ---------- CALCULADORA ---------- */
.calc-disclaimer{
  display:flex; align-items:flex-start; gap:12px; background:var(--gray-50); border:1px solid var(--gray-300);
  border-left:3px solid var(--navy-800); border-radius:0 10px 10px 0; padding:16px 18px;
}
.calc-disclaimer .icon{color:var(--navy-800); flex-shrink:0; margin-top:2px;}
.calc-disclaimer p{font-size:13.3px; line-height:1.6; color:var(--gray-700); margin:0;}
.calc-form{display:flex; flex-direction:column; gap:16px; background:var(--white); border:1px solid var(--line); border-radius:12px; padding:24px;}
.calc-form__row{display:flex; flex-direction:column; gap:6px;}
.calc-form__row label{font-size:13px; font-weight:600; color:var(--navy-900);}
.calc-form__row input, .calc-form__row select{
  padding:11px 13px; border-radius:8px; border:1px solid var(--line); font-size:14px; font-family:var(--sans);
  background:var(--white); color:var(--gray-900);
}
.calc-form__row input:focus, .calc-form__row select:focus{outline:none; border-color:var(--navy-700); box-shadow:0 0 0 3px rgba(15,23,42,0.08);}
.calc-form__hint{font-size:12px; color:var(--gray-500); line-height:1.55; margin:0;}
.calc-form__hint a{color:var(--blue-600); font-weight:600;}
.calc-advanced{border:1px dashed var(--gray-300); border-radius:8px; padding:12px 14px;}
.calc-advanced summary{font-size:12.5px; font-weight:600; color:var(--navy-800); cursor:pointer;}
.calc-advanced .calc-advanced__note{font-size:12px; color:var(--gray-600); line-height:1.6; margin:10px 0 14px;}
.calc-advanced .calc-form__row{margin-top:10px;}
.calc-result__note{font-size:11.5px; color:var(--gray-500); line-height:1.55; margin:14px 0 0; text-align:center;}
.nf-compare-single{display:flex; justify-content:center; margin:8px 0 6px;}
.nf-receipt--generated{position:relative;}
.nf-receipt__seal{
  position:absolute; top:14px; right:14px; display:flex; flex-direction:column; align-items:center; gap:2px;
  color:var(--navy-700); opacity:0.35; transform:rotate(8deg);
}
.nf-receipt__seal svg{width:34px; height:34px;}
.nf-receipt__seal span{font-family:var(--serif); font-size:9px; font-weight:700; letter-spacing:0.02em;}
.nf-receipt__seal--isento{color:var(--blue-600); opacity:0.85;}
.nf-receipt__seal--isento span{font-family:var(--sans); font-size:10px;}
@media(max-width:640px){
  .nf-receipt__seal{display:none;}
}

/* ---------- TOOLS GRID (Ferramentas) ---------- */
.tools-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;}
.tool-card{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:230px; border-radius:14px; overflow:hidden; text-decoration:none;
  background-color:var(--navy-900); background-size:cover; background-position:center;
  box-shadow:0 4px 16px rgba(15,23,42,0.16); transition:transform .2s ease, box-shadow .2s ease;
}
.tool-card:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(16,185,129,0.2), 0 6px 16px rgba(15,23,42,0.25);}
.tool-card::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 88% 6%, rgba(16,185,129,0.25), transparent 45%),
    linear-gradient(180deg, rgba(15,23,42,0.38) 0%, rgba(15,23,42,0.6) 55%, rgba(15,23,42,0.94) 100%);
}
.tool-card--calculadora{background-image:url('/static/img/img-calculadora-nova.jpg');}
.tool-card--glossario{background-image:url('/static/img/img-glossario-livros.jpg');}
.tool-card--comparador{background-image:url('/static/img/img-tributos-parede.jpg');}
.tool-card__badge{
  position:relative; z-index:1; width:40px; height:40px; margin:20px 0 0 20px; border-radius:10px;
  background:rgba(16,185,129,0.28); border:1px solid rgba(16,185,129,0.4);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.tool-card__badge .icon{width:20px; height:20px;}
.tool-card__body{position:relative; z-index:1; padding:14px 20px 22px;}
.tool-card__title{font-family:var(--serif); font-size:19px; font-weight:700; color:#fff; margin-bottom:8px;}
.tool-card__desc{font-size:13px; line-height:1.55; color:var(--gray-200); margin-bottom:14px;}
.tool-card__cta{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:#fff; border-bottom:1px solid rgba(255,255,255,0.4); padding-bottom:2px;}
@media(max-width:860px){
  .tools-grid{grid-template-columns:1fr;}
}
