/* ===================== TOKENS ===================== */
:root{
  --paper: #F0EEE7;
  --paper-alt: #E7E3D8;
  --paper-ink: #F4F1E9;
  --navy-deep: #0B1A26;
  --navy: #122130;
  --navy-mid: #1C3349;
  --gold: #A78053;
  --gold-light: #CBA876;
  --gold-deep: #85663F;
  --ink: #17222C;
  --ink-soft: #4C5762;
  --line: #CFC8B6;
  --line-on-navy: rgba(244,241,233,0.16);
  --line-on-pale: rgba(18,33,48,0.12);
  --radius: 2px;
  --ease: cubic-bezier(.22,1,.36,1);
  --display: 'Archivo', sans-serif;
  --body: 'IBM Plex Sans', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--body);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
.gold-text{color:var(--gold-deep);}
.ital{font-style:italic; font-weight:500;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* focus visibility */
a:focus-visible, button:focus-visible{
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* ===================== REVEAL ===================== */
.reveal{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.in{
  opacity:1;
  transform: translateY(0);
}

/* ===================== NAV ===================== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; justify-content:center;
  padding: 22px 32px;
  transition: padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
}
.nav.scrolled{
  padding: 12px 32px;
  background: rgba(240,238,231,0.86);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--line);
}
.nav-inner{
  width:100%; max-width:1320px;
  display:flex; align-items:center; justify-content:space-between;
  gap: 24px;
}
.nav-brand{
  display:flex; align-items:center; gap:12px;
  color: var(--navy);
}
.nav.scrolled .nav-brand{ color: var(--navy); }
.brand-mark{ width:34px; height: auto; color: var(--navy); flex-shrink:0; }
.brand-word{
  font-family: var(--display); font-weight:800; font-size:15px;
  letter-spacing:.06em;
}
.brand-word b{font-weight:900;}

.nav-links{
  display:flex; gap:36px;
  font-family: var(--mono); font-size:12.5px; letter-spacing:.04em;
  color: var(--ink);
}
.nav-links a{ position:relative; padding: 4px 0; }
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background: var(--gold); transition: right .35s var(--ease);
}
.nav-links a:hover::after{ right:0; }

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px;
}
.nav-toggle span{ width:22px; height:2px; background: var(--navy); transition: transform .3s, opacity .3s; }

.nav-mobile{
  display:none;
}

/* ===================== HERO ===================== */
.hero{
  position:relative;
  min-height: 100svh;
  background: radial-gradient(120% 100% at 78% 6%, var(--paper) 0%, var(--paper-alt) 60%, var(--paper-alt) 100%);
  color: var(--ink);
  display:flex; flex-direction:column; justify-content:center;
  padding: 140px 32px 90px;
  overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }

.hero-illustrations{ position:absolute; inset:0; overflow:hidden; }
.illus{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:0; will-change: opacity, transform;
  animation: illusCycle 27s ease-in-out infinite;
}
.illus.i2{ animation-delay: 9s; }
.illus.i3{ animation-delay: 18s; }
@keyframes illusCycle{
  0%{     opacity:0;   transform:scale(1.03); }
  4%{     opacity:1; }
  27%{    opacity:1;   transform:scale(1.09); }
  33%{    opacity:0;   transform:scale(1.09); }
  100%{   opacity:0; }
}
.illus-line{
  fill:none;
  stroke: rgba(18,33,48,0.14);
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.illus-line rect,
.illus-line polygon{ fill: rgba(18,33,48,0.025); }
.illus-thin{ stroke-width: 1; opacity:.75; }
.illus-gold{ stroke: rgba(133,102,63,0.5); }
.illus-dim{ stroke-dasharray: 1 7; opacity:.6; }
.illus-label{
  font-family: var(--mono); font-size:15px;
  fill: rgba(18,33,48,0.4); stroke:none;
}

.contour{ position:absolute; inset:0; width:100%; height:100%; opacity:.55; }
.contour-line{ fill:none; stroke: rgba(18,33,48,0.10); stroke-width:1.2; }
.contour-line.c1{ animation: drift 34s ease-in-out infinite; }
.contour-line.c2{ animation: drift 40s ease-in-out infinite reverse; }
.contour-line.c3{ animation: drift 46s ease-in-out infinite; }
.contour-line.c4{ animation: drift 38s ease-in-out infinite reverse; }
.contour-line.c5{ animation: drift 50s ease-in-out infinite; }
@keyframes drift{
  0%,100%{ transform: translateX(0); }
  50%{ transform: translateX(28px); }
}
.hero-grain{
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(18,33,48,0.045) 1px, transparent 1px);
  background-size: 3px 3px;
  opacity:.35;
}

.hero-inner{
  position:relative; z-index:1;
  width:100%; max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns: 1.05fr .95fr;
  gap: 60px; align-items:center;
}

.eyebrow{
  font-family: var(--mono); font-size:12px; letter-spacing:.14em;
  color: var(--gold-deep);
  margin-bottom: 22px;
}
.about .eyebrow{ color:var(--gold-deep); margin-bottom:14px; }
.attend-panel.local .eyebrow{ color: var(--gold-deep); margin-bottom:14px; }
.attend-panel.online .eyebrow{ color: var(--gold-deep); margin-bottom:14px; }
.cta .eyebrow{ color: var(--gold-deep); }

.hero-title{
  font-family: var(--display); font-weight:900;
  font-size: clamp(2.4rem, 4.6vw, 4.1rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin-bottom: 26px;
  max-width: 15ch;
  color: var(--navy);
}
.hero-sub{
  font-size: 17px; line-height:1.7;
  color: var(--ink-soft);
  max-width: 46ch;
  margin-bottom: 38px;
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

.btn{
  font-family: var(--mono); font-size:13px; letter-spacing:.03em;
  padding: 15px 28px; border-radius: var(--radius);
  display:inline-flex; align-items:center; gap:10px;
  transition: transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.btn-primary{
  background: var(--gold); color: var(--navy-deep); font-weight:600;
}
.btn-primary:hover{ background: var(--gold-light); transform: translateY(-2px); }
.btn-ghost{
  border: 1px solid var(--line); color: var(--navy);
}
.btn-ghost:hover{ border-color: var(--gold-deep); color: var(--gold-deep); transform: translateY(-2px); }
.btn-large{ padding: 18px 38px; font-size:14px; }

/* --- hero plot signature --- */
.hero-plot{ position:relative; display:flex; flex-direction:column; align-items:center; }
.plot-svg{ width:100%; max-width:440px; }
.tick-line{ stroke: rgba(18,33,48,0.14); stroke-width:1; stroke-dasharray:2 6; }
.plot-shape{
  fill: rgba(167,128,83,0.10);
  stroke: var(--gold-deep);
  stroke-width: 2;
  stroke-linejoin: round;
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  animation: draw 2.6s var(--ease) .3s forwards;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
.plot-points .pin{
  opacity:0; transform: scale(.4); transform-origin: center;
  transform-box: fill-box;
  animation: pin-in .5s var(--ease) forwards;
  animation-delay: calc(1.6s + var(--d) * .12s);
}
@keyframes pin-in{ to{ opacity:1; transform: scale(1); } }
.plot-points circle{ fill: var(--gold-deep); }
.plot-points text{
  font-family: var(--mono); font-size:12px; fill: rgba(18,33,48,0.68);
}
.plot-caption{
  font-family: var(--mono); font-size:10.5px; letter-spacing:.12em;
  color: rgba(18,33,48,0.45); margin-top:18px; text-align:center;
}

.hero-scroll{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  z-index:1;
}
.hero-scroll span{
  width:1px; height:38px;
  background: linear-gradient(var(--gold), transparent);
  animation: scrolldrop 2s ease-in-out infinite;
}
@keyframes scrolldrop{
  0%{ opacity:0; transform: scaleY(.4); transform-origin: top;}
  50%{ opacity:1; transform: scaleY(1); transform-origin: top;}
  100%{ opacity:0; transform: scaleY(.4); transform-origin: bottom;}
}
.hero-scroll p{
  font-family: var(--mono); font-size:10px; letter-spacing:.16em;
  color: rgba(18,33,48,0.45);
}

/* ===================== TICKER ===================== */
.ticker{
  background: var(--gold); color: var(--navy-deep);
  overflow:hidden; white-space:nowrap;
  padding: 13px 0;
}
.ticker-track{
  display:inline-flex; gap:14px;
  font-family: var(--mono); font-size:12.5px; letter-spacing:.08em; font-weight:500;
  animation: ticker 34s linear infinite;
}
@keyframes ticker{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* ===================== SECTIONS shared ===================== */
.section-inner{ max-width:1320px; margin:0 auto; padding: 130px 32px; }
.section-head{ max-width:640px; margin-bottom:64px; }
.section-title{
  font-family: var(--display); font-weight:800;
  font-size: clamp(1.9rem, 3.2vw, 2.7rem);
  line-height:1.15; letter-spacing:-0.01em;
  color: var(--navy);
}
.section-head.light .section-title{ color: var(--paper-ink); }

/* ===================== SERVICES — layered cadastral stack ===================== */
.services{ background: var(--paper); }
.section-sub{
  font-size:15.5px; line-height:1.7; color: var(--ink-soft);
  max-width:52ch; margin-top:14px;
}

.layer-grid{
  display:grid; grid-template-columns: repeat(2, 1fr); gap: 54px;
}
.layer-card-wrap{ position:relative; }
.layer-card-wrap::before, .layer-card-wrap::after{
  content:""; position:absolute; inset:0;
  background: var(--paper); border:1px solid var(--line);
  pointer-events:none; transition: transform .4s var(--ease);
}
.layer-card-wrap::before{ transform: translate(8px,8px); z-index:0; }
.layer-card-wrap::after{ transform: translate(16px,16px); z-index:-1; opacity:.65; }
.layer-card-wrap:hover::before{ transform: translate(11px,11px); }
.layer-card-wrap:hover::after{ transform: translate(22px,20px); }

.layer-card{
  position:relative; z-index:1;
  background: var(--paper); border:1px solid var(--line);
  padding: 42px 34px 38px; height:100%;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.layer-card-wrap:hover .layer-card, .layer-card-wrap:focus-within .layer-card{
  transform: translate(-5px,-5px);
  box-shadow: 0 22px 40px -22px rgba(18,33,48,0.4);
}
.layer-index{
  font-family: var(--mono); font-size:11px; letter-spacing:.14em;
  color: var(--gold-deep); margin-bottom:26px;
}
.card-tag{
  font-family: var(--mono); font-size:11px; letter-spacing:.1em;
  color: var(--gold-deep); margin-bottom:20px;
}
.layer-card h3{
  font-family: var(--display); font-weight:800; font-size:1.5rem;
  color: var(--navy); margin-bottom:16px; letter-spacing:-0.01em;
}
.layer-card .card-text{ font-size:15px; line-height:1.75; color: var(--ink-soft); }

.pattern-hatch{
  background-image: repeating-linear-gradient(135deg, rgba(18,33,48,0.05) 0 1px, transparent 1px 11px);
}
.pattern-grid{
  background-image:
    repeating-linear-gradient(0deg, rgba(18,33,48,0.06) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(18,33,48,0.06) 0 1px, transparent 1px 24px);
}
.pattern-stamp{ position:relative; }
.stamp-mark{
  position:absolute; right:30px; bottom:28px; width:64px; height:64px;
  color: var(--gold); opacity:.75;
}
.stamp-mark text{ fill: var(--gold-deep); }

@media (max-width: 900px){
  .layer-grid{ grid-template-columns:1fr; gap:40px; max-width:480px; margin:0 auto; }
}

/* ===================== PROCESS ===================== */
.process{ background: var(--paper-alt); color: var(--ink); border-top: 1px solid var(--line); }
.timeline{
  position:relative;
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
}
.timeline-line{
  position:absolute; top:8px; left:0; right:0; width:100%; height:34px;
  overflow:visible;
}
.timeline-line polyline{
  fill:none; stroke: var(--gold-deep); stroke-width:1.4;
  stroke-dasharray: 2000; stroke-dashoffset: 2000;
  animation: drawLine 1.8s var(--ease) forwards;
  animation-play-state: paused;
}
.process.in-view .timeline-line polyline{ animation-play-state: running; }
@keyframes drawLine{ to{ stroke-dashoffset:0; } }
.timeline-ticks line{ stroke: var(--line-on-pale); stroke-width:1; }
.step{ position:relative; padding-top:52px; }
.step-num{
  position:absolute; top:-2px; left:0;
  font-family: var(--mono); font-size:13px; letter-spacing:.05em; color: #6C5335;
  background: var(--paper-alt); padding-right:10px;
}
.step h4{
  font-family: var(--display); font-weight:700; font-size:1.15rem;
  margin-bottom:12px; letter-spacing:-0.005em; color: var(--navy);
}
.step p{ font-size:14.5px; line-height:1.7; color: var(--ink-soft); }

/* ===================== ATENDIMENTO ===================== */
.attend{ display:grid; grid-template-columns:1fr 1fr; border-top: 1px solid var(--line); }
.attend-panel{
  padding: 100px 60px; position:relative; overflow:hidden;
}
.attend-panel.local{ background: var(--paper); color: var(--navy); }
.attend-panel.online{ background: var(--paper-alt); color: var(--navy); border-left:1px solid var(--line); }
.attend-panel.online .eyebrow{ color: var(--gold-deep); }
.attend-icon{ width:40px; height:40px; margin-bottom:26px; color: var(--gold); }
.attend-panel h3{
  font-family: var(--display); font-weight:800; font-size:1.7rem; margin-bottom:16px;
}
.attend-panel p:last-child{ font-size:15px; line-height:1.7; max-width:34ch; opacity:.82; }

/* ===================== ABOUT ===================== */
.about{ background: var(--paper); border-top: 1px solid var(--line); }
.about-inner{
  display:grid; grid-template-columns: 1.2fr .8fr; gap:70px; align-items:center;
}
.about-p{ font-size:15.5px; line-height:1.8; color: var(--ink-soft); margin-top:16px; max-width:52ch; }
.about-badge{
  position:relative; width:220px; height:220px; margin:0 auto;
}
.badge-ring{ fill:none; stroke: var(--navy); stroke-width:1; opacity:.25; }
.badge-ring-inner{ fill:none; stroke: var(--gold); stroke-width:1; stroke-dasharray:3 5; }
.badge-text{ fill: var(--navy); }
.about-badge svg{ animation: spin 40s linear infinite; }
@keyframes spin{ to{ transform: rotate(360deg); } }
.badge-center{
  position:absolute; top:50%; left:50%; transform: translate(-50%,-50%);
  font-family: var(--display); font-weight:900; font-size:15px; letter-spacing:.06em;
  color: var(--navy);
}

/* ===================== CTA ===================== */
.cta{
  background: var(--paper-alt);
  color: var(--navy);
  text-align:center;
  padding: 150px 32px;
  position:relative;
  border-top: 1px solid var(--line);
}
.cta-inner{ max-width:640px; margin:0 auto; }
.cta-title{
  font-family: var(--display); font-weight:900;
  font-size: clamp(2rem, 4vw, 3.1rem);
  margin-bottom:20px; letter-spacing:-0.01em;
  color: var(--navy);
}
.cta-sub{ font-size:16px; color: var(--ink-soft); margin-bottom:40px; }

/* ===================== FOOTER ===================== */
.footer{ background: var(--paper); color: var(--ink-soft); border-top:1px solid var(--line); }
.footer-inner{
  max-width:1320px; margin:0 auto; padding: 80px 32px 50px;
  display:grid; grid-template-columns: 1fr 1.6fr; gap:60px;
}
.footer-brand{ display:flex; align-items:center; gap:12px; color: var(--navy); height:fit-content; }
.footer-brand .brand-mark{ width:36px; color: var(--navy); }
.footer-cols{ display:grid; grid-template-columns: repeat(3,1fr); gap:30px; }
.footer-label{
  font-family: var(--mono); font-size:10.5px; letter-spacing:.1em;
  color: var(--gold-deep); margin-bottom:16px;
}
.footer-col{ display:flex; flex-direction:column; gap:11px; font-size:14px; color: var(--ink-soft); }
.footer-col a:hover{ color: var(--gold-deep); }
.footer-static{ opacity:.86; }
.footer-bottom{
  max-width:1320px; margin:0 auto; padding: 24px 32px 40px;
  border-top: 1px solid var(--line);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-family: var(--mono); font-size:11px; letter-spacing:.03em;
  color: var(--ink-soft); opacity:.86;
}

/* ===================== RESPONSIVE ===================== */
@media (max-width: 980px){
  .nav-links{ display:none; }
  .nav-toggle{ display:flex; }
  .nav{ flex-wrap:wrap; }
  .nav-mobile{
    flex:0 0 calc(100% + 64px); margin:0 -32px;
    display:flex; flex-direction:column; gap:2px;
    max-height:0; overflow:hidden;
    background: var(--paper);
    transition: max-height .4s var(--ease);
  }
  .nav-mobile.open{ max-height:560px; border-top:1px solid var(--line); margin:22px -32px -22px; }
  .nav.scrolled .nav-mobile.open{ margin-top:12px; margin-bottom:-12px; }
  .nav:has(.nav-mobile.open){ background: var(--paper); }
  .nav-mobile a{
    padding: 16px 32px; font-family: var(--mono); font-size:13px; letter-spacing:.04em;
    border-bottom:1px solid var(--line);
    color: var(--navy);
  }

  .hero-inner{ grid-template-columns:1fr; }
  .hero-plot{ margin-top:20px; }
  .hero-title{ max-width:none; }

  .cards{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:1fr; gap:44px; }
  .timeline-line{ display:none; }

  .attend{ grid-template-columns:1fr; }
  .attend-panel{ padding: 70px 32px; }

  .about-inner{ grid-template-columns:1fr; text-align:left; }
  .about-badge{ order:-1; }

  .footer-inner{ grid-template-columns:1fr; gap:40px; }
  .footer-cols{ grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px){
  .section-inner{ padding:90px 22px; }
  .hero{ padding:120px 22px 70px; }
  .footer-cols{ grid-template-columns:1fr; }
  .cta{ padding:110px 22px; }
}

.faq{ background: var(--paper); border-top: 1px solid var(--line); }
.faq-list{ max-width: 780px; margin: 0 auto; display:flex; flex-direction:column; gap:0; }
.faq-item{
  border-bottom: 1px solid var(--line);
  padding: 26px 4px;
}
.faq-item summary{
  font-family: var(--display); font-weight:700; font-size:1.05rem;
  color: var(--navy); cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-family: var(--mono); font-size:22px; color: var(--gold-deep);
  flex-shrink:0; transition: transform .3s var(--ease);
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{
  font-size:15px; line-height:1.75; color: var(--ink-soft);
  margin-top:16px; max-width:65ch;
}


/* ===================== LINK DE CARD (home) ===================== */
.card-link{
  display:inline-block; margin-top:22px; padding-bottom:2px;
  font-family: var(--mono); font-size:12.5px; letter-spacing:.04em;
  color: var(--gold-deep); border-bottom:1px solid var(--gold);
  transition: color .3s var(--ease), border-color .3s var(--ease);
}
.card-link:hover{ color: var(--navy); border-color: var(--navy); }

/* ===================== PÁGINAS INTERNAS ===================== */
.step h3{
  font-family: var(--display); font-weight:700; font-size:1.15rem;
  margin-bottom:12px; letter-spacing:-0.005em; color: var(--navy);
}

.page-hero{
  position:relative; overflow:hidden;
  background: radial-gradient(120% 100% at 78% 6%, var(--paper) 0%, var(--paper-alt) 60%, var(--paper-alt) 100%);
  padding: 150px 32px 100px;
}
.page-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image: radial-gradient(rgba(18,33,48,0.045) 1px, transparent 1px);
  background-size: 3px 3px; opacity:.35;
}
.page-hero .hero-title{ max-width:16ch; font-size: clamp(2.2rem, 4.2vw, 3.5rem); }
.breadcrumb{
  display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px;
  font-family: var(--mono); font-size:12px; letter-spacing:.03em; color: var(--ink-soft);
}
.breadcrumb a{ color: var(--gold-deep); border-bottom:1px solid transparent; transition: border-color .3s var(--ease); }
.breadcrumb a:hover{ border-bottom-color: var(--gold-deep); }
.hero-sign{
  margin-top:30px;
  font-family: var(--mono); font-size:12px; letter-spacing:.03em; color: var(--ink-soft);
}

.cases{ background: var(--paper); }
.case-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:28px; }
.case-card{
  background: var(--paper-ink); border:1px solid var(--line); border-top:2px solid var(--gold);
  padding: 34px 30px 32px;
}
.case-num{
  font-family: var(--mono); font-size:12px; letter-spacing:.14em;
  color: var(--gold-deep); margin-bottom:18px;
}
.case-card h3{
  font-family: var(--display); font-weight:800; font-size:1.2rem; line-height:1.25;
  letter-spacing:-0.005em; color: var(--navy); margin-bottom:12px;
}
.case-card p{ font-size:15px; line-height:1.7; color: var(--ink-soft); }

.docs{ background: var(--paper); border-top: 1px solid var(--line); }
.docs .section-inner{ padding-bottom:90px; }
.doc-list{ display:grid; grid-template-columns: repeat(3, 1fr); gap:32px; list-style:none; }
.doc-item{ border-top:1px solid var(--line); padding-top:22px; }
.doc-num{
  font-family: var(--mono); font-size:12px; letter-spacing:.14em;
  color: var(--gold-deep); margin-bottom:14px;
}
.doc-item h3{
  font-family: var(--display); font-weight:700; font-size:1.1rem; line-height:1.3;
  color: var(--navy); margin-bottom:10px;
}
.doc-item p{ font-size:15px; line-height:1.7; color: var(--ink-soft); }
.docs-note{ margin-top:40px; max-width:62ch; font-size:15.5px; line-height:1.75; color: var(--ink-soft); }

@media (max-width: 980px){
  .case-grid{ grid-template-columns:1fr 1fr; }
  .doc-list{ grid-template-columns:1fr; gap:26px; }
  .page-hero .hero-plot{ display:none; }
  .page-hero .hero-title{ max-width:none; }
}
@media (max-width: 640px){
  .case-grid{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .page-hero{ padding:120px 22px 70px; }
}

/* ===================== BOTÃO FLUTUANTE DE WHATSAPP ===================== */
:root{ --bottom-offset: 0px; }
body{ padding-bottom: var(--bottom-offset); } /* --bottom-offset = altura do banner de cookies enquanto visível */
.wa-float{
  position:fixed; z-index:90; right:20px;
  bottom: calc(20px + var(--bottom-offset) + env(safe-area-inset-bottom, 0px));
  display:inline-flex; align-items:center; gap:10px;
  padding: 14px 20px 14px 16px; border-radius:999px;
  background: var(--navy); color: var(--paper-ink);
  font-family: var(--mono); font-size:12.5px; letter-spacing:.03em; white-space:nowrap;
  box-shadow: 0 10px 28px -10px rgba(11,26,38,0.55);
  transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s, background .3s var(--ease), bottom .5s var(--ease);
}
.wa-float:hover{ background: var(--navy-mid); transform: translateY(-2px); }
.wa-float svg{ width:22px; height:22px; flex-shrink:0; color: var(--gold-light); }
.wa-float.is-hidden{ opacity:0; visibility:hidden; transform: translateY(12px); pointer-events:none; }
@media (max-width: 640px){
  .wa-float{ right:16px; padding:15px; }
  .wa-float span{
    position:absolute; width:1px; height:1px; overflow:hidden;
    clip: rect(0 0 0 0); white-space:nowrap;
  }
}

/* ===================== BOTÕES <button> ===================== */
button.btn-primary{ border:1px solid transparent; }
button.btn-ghost{ background:transparent; }

/* ===================== BANNER DE COOKIES ===================== */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:95;
  background: var(--paper-ink); border-top:1px solid var(--line);
  box-shadow: 0 -12px 32px -18px rgba(11,26,38,0.35);
  padding: 18px 32px calc(18px + env(safe-area-inset-bottom, 0px));
  transform: translateY(100%);
  transition: transform .5s var(--ease);
}
.cookie-banner.is-visible{ transform: none; }
.cookie-inner{
  max-width:1320px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:28px;
}
.cookie-text{ max-width:78ch; font-size:14px; line-height:1.65; color: var(--ink); }
.cookie-text a{ color: var(--gold-deep); border-bottom:1px solid var(--gold); white-space:nowrap; }
.cookie-actions{ display:flex; gap:12px; flex-shrink:0; }
.cookie-actions .btn{ padding:12px 24px; }
@media (max-width: 720px){
  .cookie-banner{ padding: 16px 20px calc(16px + env(safe-area-inset-bottom, 0px)); }
  .cookie-inner{ flex-direction:column; align-items:stretch; gap:14px; }
  .cookie-actions .btn{ flex:1; justify-content:center; }
}

/* ===================== PÁGINA LEGAL (privacidade) ===================== */
.page-hero.compact{ padding-bottom:70px; }
.legal{ background: var(--paper); }
.legal .section-inner{ padding-top:90px; padding-bottom:110px; }
.legal-body{ max-width:760px; }
.legal-body h2{
  font-family: var(--display); font-weight:800; font-size:1.35rem; line-height:1.25;
  letter-spacing:-0.01em; color: var(--navy); margin:46px 0 14px;
}
.legal-body h2:first-child{ margin-top:0; }
.legal-body p, .legal-body li{ font-size:15.5px; line-height:1.8; color: var(--ink-soft); }
.legal-body p + p{ margin-top:12px; }
.legal-body ul{ margin:12px 0 0 22px; display:flex; flex-direction:column; gap:8px; }
.legal-body a:not(.btn){ color: var(--gold-deep); border-bottom:1px solid var(--gold); }
.legal-body .btn{ margin-top:20px; }

/* ===================== SEÇÕES INFORMATIVAS (Receita Federal, Averbação) ===================== */
.info{ background: var(--paper-alt); border-top: 1px solid var(--line); }
.info.on-paper{ background: var(--paper); }
.info-inner{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:70px; align-items:start;
}
.info-text .section-title{ margin-bottom:6px; }
.info-text p:not(.eyebrow){ margin-top:16px; max-width:58ch; font-size:16px; line-height:1.8; color: var(--ink-soft); }
.info-cards{ display:flex; flex-direction:column; gap:24px; }
.info-card{
  background: var(--paper-ink); border:1px solid var(--line); border-top:2px solid var(--gold);
  padding: 32px 30px 30px;
}
.info-card h3{
  font-family: var(--display); font-weight:800; font-size:1.15rem; line-height:1.25;
  letter-spacing:-0.005em; color: var(--navy); margin-bottom:16px;
}
.info-card ul, .info-card ol{ list-style:none; display:flex; flex-direction:column; gap:14px; }
.info-card li{ font-size:15px; line-height:1.65; color: var(--ink-soft); }
.info-card li strong{ color: var(--navy); font-weight:600; }
.info-card ol{ counter-reset: flow; }
.info-card ol li{ position:relative; padding-left:40px; counter-increment: flow; }
.info-card ol li::before{
  content: counter(flow, decimal-leading-zero);
  position:absolute; left:0; top:1px;
  font-family: var(--mono); font-size:12px; letter-spacing:.1em; color: var(--gold-deep);
}
.info-card ul li{ position:relative; padding-left:20px; }
.info-card ul li::before{
  content:""; position:absolute; left:0; top:.7em; width:8px; height:1px; background: var(--gold-deep);
}
.info-note{ margin-top:22px; font-size:14px; line-height:1.7; color: var(--ink-soft); }
.related{ margin-top:34px; max-width:62ch; font-size:15.5px; line-height:1.75; color: var(--ink-soft); }
.related a{ color: var(--gold-deep); border-bottom:1px solid var(--gold); }
@media (max-width: 980px){
  .info-inner{ grid-template-columns:1fr; gap:44px; }
}

/* Botão flutuante: sem deslocamento para quem prefere menos movimento (fica só o fade) */
@media (prefers-reduced-motion: reduce){
  .wa-float, .wa-float:hover, .wa-float.is-hidden{ transform:none; }
}
