
/* 1. Fontes ---------------------------------------------------------------- */
@font-face {
  font-family: "Montserrat";
  src: url("../fonts/montserrat-var.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Nunito Sans";
  src: url("../fonts/nunito-sans-var.woff2") format("woff2");
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}

/* 2. Tokens --------------------------------------------------------------- */
:root {
  /* Marca */
  --laranja: #ff5c00;
  --laranja-claro: #ff7a2b;
  --laranja-texto: #b34700;
  --laranja-numero: #c24e00;

  /* Neutros */
  --carvao-0: #111111;
  --carvao-1: #161616;
  --carvao-2: #1b1b1b;
  --carvao-3: #242424;
  --carvao-4: #2c2c2c;
  --linha-escura: #3a3a3a;
  --areia: #f4f1ec;
  --areia-2: #ebe6dd;
  --linha-clara: #e3ded6;
  --branco: #ffffff;

  /* Texto */
  --texto: #1b1b1b;
  --texto-2: #333333;
  --texto-suave: #4d4d4d;
  --texto-claro: #f2f2f2;
  --texto-claro-2: #c9c9c9;

  /* Regiões do mapa */
  --r-cerrado: #ff5c00;
  --r-leste: #b84a00;
  --r-nordeste: #7a3000;
  --r-sul: #ffb27a;
  --r-fora: #e6e3de;

  /* Tipografia */
  --fonte-display: "Montserrat", "Segoe UI", system-ui, sans-serif;
  --fonte-texto: "Nunito Sans", "Segoe UI", system-ui, sans-serif;

  /* Layout */
  --largura: 1200px;
  --gutter: clamp(16px, 4vw, 24px);
  --secao: clamp(72px, 9vw, 112px);
  --raio: 12px;
  --raio-g: 16px;
  --altura-header: 76px;

  --ease: cubic-bezier(.2, .8, .2, 1);
  --mola: cubic-bezier(.2, .8, .2, 1);
  --mola-pop: cubic-bezier(.34, 1.4, .64, 1);

  --simbolo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='1025 1098 1920 1920' fill='%23FF5C00'%3E%3Cg transform='translate(0,4200) scale(.1,-.1)'%3E%3Cpath d='M20928 30784 c-36 -19 -54 -55 -78 -158 -11 -46 -31 -104 -45 -128 -14 -25 -34 -87 -45 -139 -27 -131 -37 -163 -76 -250 -18 -41 -40 -109 -49 -150 -25 -120 -54 -217 -79 -267 -13 -26 -36 -108 -51 -182 -15 -74 -40 -165 -56 -203 -15 -37 -33 -95 -39 -130 -15 -84 -56 -229 -86 -299 -13 -32 -36 -115 -50 -186 -15 -75 -39 -158 -59 -202 -18 -41 -38 -102 -44 -135 -13 -72 -63 -245 -86 -301 -9 -21 -34 -112 -56 -202 -22 -90 -51 -185 -64 -212 -14 -27 -41 -117 -60 -200 -20 -83 -47 -175 -59 -205 -13 -29 -31 -78 -40 -109 -40 -137 -104 -124 -125 24 -7 46 -21 110 -31 144 -10 33 -24 90 -30 125 -6 35 -20 91 -31 125 -11 33 -35 147 -54 251 -20 105 -48 231 -64 280 -16 50 -41 155 -57 235 -15 80 -40 179 -55 221 -15 42 -32 112 -38 155 -14 95 -67 326 -87 374 -8 19 -24 93 -34 163 -26 172 -45 247 -76 308 -18 36 -29 80 -36 143 -11 106 -22 151 -77 340 -22 77 -45 182 -51 235 -23 191 -121 484 -170 508 -34 17 -165 16 -285 -3 -55 -8 -163 -21 -240 -29 -111 -10 -157 -19 -220 -44 -101 -38 -177 -56 -340 -76 -75 -9 -160 -27 -200 -41 -114 -41 -235 -73 -317 -84 -56 -8 -112 -26 -201 -65 -68 -29 -148 -58 -178 -63 -171 -32 -192 -116 -100 -399 16 -48 43 -160 61 -248 38 -194 84 -392 115 -500 13 -44 29 -114 36 -155 6 -41 24 -111 40 -155 45 -127 69 -232 78 -345 6 -67 17 -125 31 -160 44 -109 78 -237 89 -335 8 -66 25 -139 52 -217 27 -80 46 -162 60 -255 12 -86 33 -176 54 -239 19 -56 35 -116 35 -135 0 -19 5 -50 10 -69 6 -19 17 -79 25 -132 8 -53 28 -132 44 -175 40 -106 59 -182 77 -317 8 -63 23 -139 34 -170 25 -73 87 -325 99 -403 5 -34 28 -126 49 -205 22 -79 48 -181 57 -228 10 -48 33 -115 52 -154 19 -37 48 -107 65 -155 81 -231 301 -526 553 -741 150 -128 448 -291 625 -343 47 -14 112 -37 146 -51 195 -82 849 -82 1069 1 22 8 87 32 145 53 166 59 424 196 535 285 22 18 66 49 98 69 35 23 76 62 104 99 26 34 81 96 124 137 144 141 389 587 453 827 13 49 31 104 40 122 9 17 26 71 36 119 24 107 61 237 90 316 11 32 38 126 60 210 21 83 52 193 69 244 17 52 40 139 51 195 11 56 34 131 50 167 29 65 61 170 86 286 7 33 23 85 35 115 38 94 69 202 79 274 6 39 33 136 60 218 27 81 56 180 64 220 9 39 25 99 36 132 31 90 67 222 80 295 7 36 25 89 43 120 22 38 42 103 68 215 20 88 55 212 78 275 22 63 45 149 52 190 6 41 24 109 39 150 15 41 30 93 34 115 16 91 58 214 92 268 39 62 52 119 80 342 24 190 9 220 -117 236 -52 6 -100 22 -171 55 -62 29 -123 49 -166 56 -134 20 -209 40 -304 85 -92 42 -107 46 -240 59 -117 11 -164 21 -259 54 -124 42 -195 52 -494 69 -119 7 -149 12 -198 35 -65 29 -127 33 -169 10z M25868 28572 c-26 -15 -175 -151 -330 -303 -156 -152 -342 -331 -415 -398 -73 -67 -153 -147 -179 -177 -27 -31 -68 -70 -93 -87 -75 -50 -217 -174 -258 -223 -20 -25 -111 -110 -202 -189 -91 -79 -247 -223 -346 -322 -98 -98 -192 -188 -207 -199 -16 -12 -140 -129 -276 -261 -136 -132 -295 -282 -353 -334 -58 -52 -161 -143 -229 -204 -252 -223 -461 -418 -653 -608 -26 -27 -72 -85 -102 -130 -29 -45 -76 -108 -103 -141 -28 -32 -65 -88 -83 -125 -18 -36 -48 -91 -67 -121 -33 -50 -63 -121 -112 -256 -23 -65 -65 -296 -81 -439 -21 -202 -22 -237 -5 -301 9 -34 16 -100 16 -148 0 -107 47 -325 91 -422 17 -38 56 -128 85 -201 96 -238 245 -427 565 -715 140 -127 371 -262 601 -352 319 -125 1054 -123 1453 5 50 15 120 33 156 39 76 11 209 49 289 80 29 11 89 25 134 31 120 15 258 45 376 84 58 19 141 39 185 44 107 13 157 25 240 57 95 36 117 42 212 53 115 14 285 57 362 91 37 15 89 31 116 35 115 15 315 57 380 79 39 13 88 27 110 31 153 25 333 69 377 91 28 14 94 35 146 45 51 10 97 21 101 24 4 2 38 9 76 15 37 6 94 22 126 35 32 14 91 30 131 36 123 20 329 69 388 94 30 12 80 26 110 30 30 3 100 17 155 31 55 13 121 24 146 24 58 0 203 70 234 113 51 71 22 311 -62 512 -16 38 -28 91 -32 145 -6 61 -23 134 -63 260 -31 96 -66 211 -78 255 -12 44 -33 107 -47 140 -14 33 -37 105 -52 160 -17 64 -40 122 -64 161 -23 37 -50 102 -68 165 -91 321 -166 368 -442 280 -143 -45 -275 -78 -370 -91 -37 -6 -86 -19 -108 -30 -21 -11 -82 -29 -135 -40 -53 -11 -99 -22 -104 -25 -4 -2 -48 -12 -99 -20 -50 -9 -115 -27 -143 -40 -29 -13 -87 -28 -128 -35 -41 -6 -91 -15 -110 -20 -19 -5 -73 -14 -118 -19 -67 -9 -98 -19 -155 -50 -81 -44 -170 -66 -330 -80 -68 -6 -121 -16 -153 -30 -53 -24 -202 -63 -326 -87 -45 -9 -99 -24 -119 -35 -39 -19 -272 -70 -412 -88 -43 -6 -95 -20 -117 -31 -72 -36 -220 -71 -342 -79 -88 -6 -125 -13 -151 -28 -79 -47 -157 -50 -157 -6 0 22 207 234 315 323 44 36 111 94 151 130 39 36 109 98 155 139 166 145 457 420 659 621 211 211 593 573 666 632 44 35 150 132 368 336 224 211 288 270 378 349 131 115 143 167 64 261 -106 126 -246 300 -298 371 -31 42 -81 98 -111 124 -30 26 -77 80 -103 119 -53 81 -577 609 -744 751 -145 123 -197 139 -282 89z M13702 28558 c-93 -69 -181 -141 -186 -153 -3 -8 -41 -39 -86 -70 -54 -38 -118 -99 -194 -184 -63 -69 -144 -152 -180 -185 -37 -32 -82 -80 -100 -107 -18 -27 -84 -104 -148 -171 -179 -191 -291 -319 -326 -369 -17 -26 -61 -79 -96 -118 -158 -171 -160 -214 -19 -363 43 -46 91 -100 107 -121 15 -21 57 -61 92 -88 35 -28 99 -92 142 -142 44 -51 225 -239 403 -418 178 -179 378 -382 444 -450 66 -69 227 -235 357 -370 130 -135 254 -268 276 -295 22 -28 69 -77 105 -109 36 -33 83 -82 105 -110 22 -27 132 -146 246 -263 201 -208 236 -251 236 -291 0 -73 -172 -66 -330 14 -46 23 -97 39 -159 49 -51 8 -160 37 -244 64 -84 28 -195 62 -247 77 -52 15 -121 38 -153 51 -32 14 -92 32 -133 40 -42 9 -126 34 -187 56 -62 22 -159 52 -217 68 -58 15 -154 46 -214 69 -61 22 -117 41 -126 41 -32 0 -331 80 -353 95 -13 8 -59 24 -104 35 -44 11 -125 36 -179 56 -55 20 -135 46 -179 56 -44 11 -154 44 -245 73 -91 29 -195 60 -232 68 -36 9 -110 33 -165 53 -120 46 -180 50 -217 15 -32 -30 -121 -256 -177 -446 -23 -77 -49 -156 -59 -175 -10 -20 -29 -74 -43 -120 -14 -47 -41 -126 -60 -176 -20 -49 -38 -101 -41 -115 -33 -151 -81 -330 -97 -361 -17 -33 -33 -107 -92 -408 -8 -41 -24 -102 -37 -135 -52 -141 1 -193 276 -270 71 -20 190 -56 265 -80 75 -24 183 -53 240 -65 57 -12 123 -32 146 -45 53 -29 180 -71 255 -84 31 -5 82 -21 115 -34 32 -13 114 -41 183 -61 69 -20 168 -50 220 -67 53 -17 163 -47 245 -68 83 -21 191 -53 240 -71 50 -18 137 -45 195 -60 58 -15 155 -46 217 -68 62 -22 136 -45 165 -52 29 -7 85 -25 123 -40 39 -16 131 -42 205 -60 74 -18 160 -41 190 -52 30 -10 98 -34 150 -53 52 -18 131 -40 175 -48 44 -8 129 -33 189 -56 59 -22 136 -46 170 -52 33 -6 95 -24 136 -40 41 -15 131 -44 200 -63 69 -19 186 -55 260 -81 118 -40 151 -47 265 -55 72 -6 190 -20 263 -32 115 -19 143 -20 205 -11 94 15 261 38 364 52 47 6 120 25 175 46 51 20 129 49 172 66 115 42 311 160 429 259 57 47 131 105 165 128 72 52 161 158 244 291 34 53 75 116 93 141 18 25 56 92 85 150 29 58 61 117 71 132 20 28 56 162 83 309 9 47 24 111 35 140 52 152 61 446 18 599 -15 52 -36 144 -48 204 -21 114 -44 178 -126 361 -85 188 -124 258 -183 330 -32 39 -79 105 -105 148 -37 61 -104 137 -299 335 -138 141 -280 288 -316 326 -36 38 -221 227 -411 420 -190 193 -379 387 -419 431 -41 44 -94 100 -119 125 -26 25 -93 100 -150 168 -57 67 -125 138 -151 157 -26 19 -66 62 -91 97 -24 35 -123 144 -220 243 -394 401 -580 594 -647 670 -77 88 -247 262 -332 340 -31 28 -111 110 -180 184 -160 172 -236 208 -318 149z M23640 21239 c-66 -6 -143 -25 -250 -59 -85 -27 -184 -56 -219 -65 -82 -21 -137 -49 -269 -138 -59 -40 -131 -87 -160 -106 -135 -85 -412 -395 -512 -571 -30 -52 -74 -125 -98 -162 -51 -77 -143 -339 -167 -472 -8 -45 -21 -114 -29 -154 -40 -184 -4 -768 53 -880 32 -63 71 -164 87 -227 18 -68 47 -123 115 -213 26 -35 68 -103 94 -153 52 -100 166 -231 464 -531 91 -91 213 -219 271 -283 58 -64 125 -134 150 -155 105 -89 364 -357 517 -536 34 -39 85 -95 114 -125 60 -61 161 -175 200 -225 28 -37 364 -387 742 -774 131 -135 242 -249 245 -253 4 -4 50 -49 102 -100 52 -51 119 -120 149 -152 127 -142 369 -389 528 -541 186 -177 197 -183 258 -145 92 56 774 729 846 834 22 31 50 64 64 73 13 8 52 50 87 92 34 42 90 104 123 138 104 108 180 197 223 261 23 34 46 65 52 68 22 13 50 86 50 128 0 65 -36 113 -237 315 -98 99 -242 246 -321 328 -79 82 -346 354 -594 604 -248 250 -471 480 -496 510 -26 30 -125 136 -222 235 -97 99 -209 219 -249 267 -39 48 -88 100 -108 115 -79 61 -117 100 -145 150 -16 29 -83 107 -149 174 -198 201 -163 243 127 149 67 -22 152 -47 189 -55 37 -9 120 -38 184 -65 79 -33 145 -53 209 -64 82 -13 162 -36 477 -141 44 -15 143 -45 220 -67 77 -21 167 -50 200 -63 78 -31 251 -85 271 -85 9 0 60 -13 113 -29 53 -17 146 -44 206 -61 61 -17 193 -58 295 -90 102 -33 210 -65 240 -71 30 -6 98 -28 150 -49 52 -21 131 -45 175 -54 44 -9 109 -30 145 -46 297 -136 407 -100 486 157 13 41 41 105 63 142 24 41 50 104 66 166 47 175 63 225 144 466 74 221 106 340 129 486 6 33 24 93 42 132 19 45 34 100 40 149 5 42 14 99 20 127 35 155 12 234 -74 256 -97 24 -185 53 -246 79 -36 16 -94 34 -130 40 -36 6 -110 27 -165 46 -55 19 -156 50 -225 68 -69 19 -170 50 -225 70 -55 20 -158 51 -230 67 -71 17 -189 50 -260 75 -72 24 -138 44 -148 44 -9 0 -90 24 -179 54 -90 30 -176 57 -193 60 -37 8 -333 101 -515 163 -74 25 -178 58 -230 73 -52 14 -144 45 -203 68 -62 24 -143 46 -188 52 -44 6 -137 31 -207 55 -70 23 -147 48 -172 55 -25 6 -128 37 -230 69 -102 32 -216 67 -255 79 -38 11 -99 32 -134 47 -35 15 -114 37 -175 50 -61 13 -161 40 -222 59 -191 62 -223 67 -524 71 -151 2 -318 -1 -370 -6z M15655 21001 c-156 -11 -175 -15 -270 -61 -72 -35 -96 -41 -243 -59 -89 -12 -188 -30 -220 -42 -103 -37 -235 -71 -353 -89 -75 -12 -134 -27 -167 -44 -48 -25 -177 -54 -337 -76 -44 -7 -100 -21 -125 -31 -71 -31 -261 -77 -347 -84 -59 -5 -95 -15 -149 -40 -39 -19 -102 -39 -140 -45 -38 -6 -88 -15 -111 -21 -24 -5 -75 -14 -113 -19 -39 -6 -88 -19 -108 -29 -52 -26 -252 -78 -347 -90 -57 -7 -103 -21 -155 -45 -50 -24 -100 -39 -150 -46 -181 -23 -272 -40 -317 -59 -63 -27 -236 -68 -343 -82 -70 -9 -97 -18 -151 -50 -56 -34 -80 -41 -150 -49 -240 -26 -294 -37 -369 -75 -62 -31 -89 -39 -169 -46 -130 -12 -200 -32 -230 -65 -33 -39 -27 -181 12 -264 28 -62 60 -208 82 -377 11 -86 20 -122 40 -153 28 -45 71 -183 81 -262 3 -29 19 -87 34 -128 16 -41 45 -127 65 -190 20 -63 53 -155 74 -205 21 -49 46 -117 56 -150 9 -32 27 -80 40 -105 12 -25 41 -92 65 -150 47 -117 54 -128 88 -141 54 -21 397 33 518 81 38 16 99 33 135 39 201 36 269 53 414 105 39 14 85 26 103 26 18 0 61 6 95 14 34 8 91 19 127 25 36 6 94 22 129 37 35 14 87 28 115 31 66 7 297 65 406 102 53 18 118 31 172 35 104 8 177 26 268 66 39 17 137 44 236 64 93 19 207 48 253 65 54 20 111 34 160 37 83 6 228 42 331 81 81 30 252 55 292 41 72 -25 6 -128 -167 -263 -81 -64 -225 -196 -449 -417 -116 -113 -233 -225 -261 -248 -27 -24 -61 -57 -75 -75 -14 -17 -68 -71 -120 -120 -52 -49 -115 -109 -140 -134 -55 -55 -159 -145 -214 -185 -23 -16 -108 -98 -191 -181 -156 -159 -307 -297 -410 -376 -33 -26 -82 -70 -110 -100 -27 -29 -131 -128 -230 -220 -387 -359 -392 -371 -225 -534 29 -27 66 -70 83 -95 17 -25 52 -70 77 -100 26 -30 80 -98 119 -150 205 -270 1009 -1058 1097 -1074 71 -14 200 94 683 574 58 58 158 152 221 210 63 58 158 148 211 200 164 161 360 343 436 403 39 31 138 122 220 203 137 135 282 269 436 403 34 29 199 187 367 351 168 163 330 319 361 346 31 27 69 64 85 83 16 19 61 58 100 87 40 30 97 81 126 114 29 34 87 89 128 123 363 299 602 635 722 1015 16 53 41 126 54 162 38 104 46 170 51 420 8 335 -8 423 -138 781 -27 75 -55 157 -63 183 -15 50 -110 196 -186 286 -25 30 -83 105 -128 165 -82 111 -94 121 -330 307 -185 146 -399 246 -727 339 -154 43 -445 59 -740 40z M19889 18820 c-99 -9 -277 -44 -364 -71 -33 -10 -107 -29 -164 -43 -128 -32 -274 -95 -353 -153 -33 -25 -86 -61 -118 -81 -143 -91 -195 -135 -354 -296 -195 -197 -242 -256 -286 -361 -17 -42 -46 -104 -65 -138 -19 -34 -50 -105 -71 -157 -20 -52 -51 -125 -70 -161 -23 -47 -39 -101 -53 -176 -10 -60 -35 -155 -54 -211 -20 -56 -43 -139 -51 -185 -17 -88 -52 -201 -80 -255 -9 -17 -25 -66 -35 -109 -42 -171 -73 -281 -95 -338 -13 -33 -27 -80 -31 -105 -9 -64 -53 -215 -81 -282 -13 -32 -33 -96 -44 -143 -11 -47 -38 -141 -59 -208 -22 -67 -49 -160 -60 -207 -11 -47 -27 -116 -36 -154 -9 -38 -24 -85 -35 -106 -10 -20 -30 -78 -44 -127 -14 -50 -46 -151 -70 -224 -25 -74 -50 -156 -56 -184 -18 -85 -62 -238 -82 -285 -11 -25 -26 -83 -35 -130 -19 -111 -51 -225 -75 -273 -10 -21 -30 -93 -43 -160 -34 -163 -51 -220 -86 -282 -16 -29 -36 -86 -44 -126 -26 -135 -45 -207 -74 -281 -103 -257 -81 -305 182 -398 65 -23 157 -48 204 -56 48 -9 111 -28 142 -43 83 -42 136 -58 237 -70 50 -6 130 -25 177 -41 48 -17 95 -30 105 -30 11 0 54 -9 98 -21 43 -11 134 -25 202 -29 99 -7 134 -14 179 -35 56 -25 76 -29 314 -61 228 -30 298 -8 333 105 28 94 56 198 71 269 8 40 24 90 35 112 11 22 41 114 65 206 25 91 52 178 59 192 23 45 64 186 76 259 6 37 24 106 40 153 16 47 40 128 55 180 29 102 48 163 88 275 14 39 37 125 51 193 15 68 37 145 51 171 27 54 34 83 66 256 15 88 32 142 60 200 21 44 45 114 54 155 31 143 54 226 85 313 17 49 40 130 51 180 11 51 29 112 40 137 11 25 38 115 60 200 40 158 60 197 92 184 29 -11 35 -28 97 -259 12 -44 32 -121 46 -171 13 -49 24 -104 24 -121 0 -18 13 -67 29 -110 16 -43 34 -116 40 -163 6 -47 16 -101 21 -120 6 -19 20 -78 31 -130 12 -52 29 -115 39 -140 19 -49 50 -197 75 -360 9 -58 27 -139 40 -180 60 -192 75 -253 89 -345 9 -55 24 -127 35 -160 45 -140 72 -254 78 -330 4 -51 19 -124 43 -200 21 -66 52 -187 69 -270 16 -82 44 -189 60 -237 16 -48 39 -147 51 -219 23 -145 28 -158 65 -187 56 -45 239 -35 530 26 128 27 368 68 465 80 43 5 98 20 130 35 30 14 120 40 200 57 137 28 230 55 485 138 354 114 364 124 316 315 -11 41 -25 122 -31 179 -16 148 -25 188 -61 263 -20 43 -34 93 -40 143 -11 85 -73 362 -88 390 -9 16 -59 264 -76 372 -4 25 -18 71 -31 103 -14 32 -31 105 -39 163 -15 105 -33 179 -86 354 -16 52 -34 129 -39 170 -16 121 -30 178 -66 271 -23 59 -38 124 -48 201 -9 62 -24 143 -35 178 -55 185 -83 298 -92 377 -6 48 -27 149 -46 223 -20 74 -44 176 -55 225 -53 243 -83 366 -103 430 -13 39 -26 97 -30 130 -52 457 -318 1041 -590 1294 -44 41 -87 82 -95 91 -133 151 -552 403 -736 445 -38 9 -152 37 -254 62 -202 50 -333 61 -521 43z'/%3E%3C/g%3E%3C/svg%3E");

  --grao: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

@supports (transition-timing-function: linear(0, 1)) {
  :root {
    --mola: linear(0, .08, .251, .443, .618, .759, .864, .935, .98, 1.005, 1.016, 1.02, 1.019, 1.016, 1.012, 1.008, 1.005, 1.003, 1.001, 1.001, 1);
    --mola-pop: linear(0, .13, .405, .692, .918, 1.057, 1.118, 1.123, 1.096, 1.06, 1.026, 1.002, .988, .984, .986, .99, .994, .998, 1.001, 1.002, 1);
  }
}

/* 3. Base ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--altura-header) + 8px);
}

html, body { overflow-x: hidden; }
@supports (overflow: clip) {
  html, body { overflow-x: clip; }
}

body {
  margin: 0;
  font-family: var(--fonte-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--texto);
  background: var(--branco);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }
img { height: auto; }

h1, h2, h3, p { margin: 0; }
h1, h2, h3 {
  font-family: var(--fonte-display);
  text-wrap: balance;
}
p, li { text-wrap: pretty; }

a { color: inherit; }
a:hover { color: var(--laranja-texto); }

:focus-visible {
  outline: 3px solid var(--laranja);
  outline-offset: 3px;
  border-radius: 4px;
}

::selection { background: var(--laranja); color: var(--carvao-2); }

/* 4. Utilitários ---------------------------------------------------------- */
.container {
  width: 100%;
  max-width: calc(var(--largura) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.pular-link {
  position: absolute;
  left: 16px; top: -100px;
  z-index: 100;
  padding: 12px 18px;
  background: var(--laranja);
  color: var(--carvao-2);
  font-weight: 700;
  border-radius: 6px;
  text-decoration: none;
}
.pular-link:focus { top: 12px; }

/* 5. Componentes ---------------------------------------------------------- */

.rotulo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--fonte-display);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--laranja-texto);
}
.rotulo::before {
  content: "";
  width: 14px; height: 14px;
  flex: none;
  background: currentColor;
  -webkit-mask: var(--simbolo) center / contain no-repeat;
  mask: var(--simbolo) center / contain no-repeat;
}
.tema-escuro .rotulo { color: var(--laranja); }

.titulo-secao {
  font-weight: 800;
  font-size: clamp(2rem, 1.35rem + 2.2vw, 2.6rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.destaque { color: var(--laranja-numero); }
.tema-escuro .destaque { color: var(--laranja); }

.cabecalho-secao {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 760px;
}

/* Botões */
.botao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 26px;
  border-radius: 8px;
  font-family: var(--fonte-texto);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.botao svg { width: 18px; height: 18px; transition: transform .2s ease; }
.botao:hover svg { transform: translateX(3px); }

.botao--primario {
  background: var(--laranja);
  color: var(--carvao-2);
}
.botao--primario:hover {
  color: var(--carvao-2);
  background: var(--laranja-claro);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -6px rgba(255, 92, 0, .45);
}

.botao--contorno {
  border-color: #6a6a6a;
  color: var(--branco);
  font-weight: 600;
}
.botao--contorno:hover {
  color: var(--branco);
  border-color: var(--branco);
  background: rgba(255, 255, 255, .06);
}

/* Lista numerada */
.lista-num {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
  counter-reset: item var(--inicio, 0);
}
.lista-num > li {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 16px;
  counter-increment: item;
}
.lista-num > li::before {
  content: counter(item, decimal-leading-zero);
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--laranja-texto);
}
.lista-num strong {
  display: block;
  font-family: var(--fonte-display);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.35;
  margin-bottom: 2px;
}
.lista-num span { color: var(--texto-suave); }

.sol {
  position: absolute;
  pointer-events: none;
  user-select: none;
}
.sol img { width: 100%; height: 100%; }

/* 6. Seções --------------------------------------------------------------- */

/* Cabeçalho -------------------------------------------------------------- */
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(22, 22, 22, .9);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  color: var(--branco);
  transition: box-shadow .3s ease, background-color .3s ease;
}
.header.is-scrolled {
  background: rgba(17, 17, 17, .94);
  box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .6);
}
.header__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: var(--altura-header);
}
.header__logo { display: block; flex: none; }
.header__logo img { height: 48px; width: auto; }

.nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 32px);
  font-size: .9375rem;
  font-weight: 600;
}
.nav a:not(.botao) {
  position: relative;
  color: #e2e2e2;
  text-decoration: none;
  padding: 8px 0;
}
.nav a:not(.botao)::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 2px;
  height: 2px;
  background: var(--laranja);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s var(--ease);
}
.nav a:not(.botao):hover { color: var(--branco); }
.nav a:not(.botao):hover::after,
.nav a[aria-current="true"]::after { transform: scaleX(1); }
.nav .botao { min-height: 44px; padding: 10px 20px; font-size: .9375rem; }

.menu-botao {
  display: none;
  width: 46px; height: 46px;
  padding: 0;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  background: transparent;
  color: var(--branco);
  cursor: pointer;
}
.menu-botao span,
.menu-botao span::before,
.menu-botao span::after {
  display: block;
  width: 20px; height: 2px;
  margin-inline: auto;
  background: currentColor;
  border-radius: 2px;
  transition: transform .25s var(--ease), opacity .2s ease;
}
.menu-botao span { position: relative; }
.menu-botao span::before,
.menu-botao span::after { content: ""; position: absolute; left: 0; }
.menu-botao span::before { top: -6px; }
.menu-botao span::after { top: 6px; }
.menu-botao[aria-expanded="true"] span { background: transparent; }
.menu-botao[aria-expanded="true"] span::before { transform: translateY(6px) rotate(45deg); background: var(--branco); }
.menu-botao[aria-expanded="true"] span::after { transform: translateY(-6px) rotate(-45deg); background: var(--branco); }

@media (max-width: 920px) {
  :root { --altura-header: 68px; }
  .header__logo img { height: 38px; }
  .js .menu-botao { display: grid; place-items: center; }
  .js .nav {
    position: absolute;
    top: 100%; left: 0; right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px var(--gutter) 24px;
    background: var(--carvao-1);
    border-bottom: 1px solid #2a2a2a;
    box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .7);
    font-size: 1.0625rem;
    max-height: calc(100vh - var(--altura-header));
    max-height: calc(100dvh - var(--altura-header));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .js .nav:not(.is-open) { display: none; }
  .js .nav a:not(.botao) {
    padding: 16px 0;
    border-bottom: 1px solid #2a2a2a;
  }
  .js .nav a:not(.botao)::after { display: none; }
  .js .nav .botao { margin-top: 20px; min-height: 52px; font-size: 1.0625rem; }

  html:not(.js) .header { position: static; }
  html:not(.js) .header__barra { flex-wrap: wrap; padding-block: 10px; }
  html:not(.js) .nav { flex-wrap: wrap; gap: 4px 20px; }
}

/* Hero ------------------------------------------------------------------- */
.tema-escuro {
  position: relative;
  isolation: isolate;
  background: var(--carvao-2);
  color: var(--branco);
  overflow: hidden;
}
.tema-escuro::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--grao);
  opacity: .05;
  pointer-events: none;
}

.hero {
  padding: clamp(80px, 11vw, 136px) 0 clamp(140px, 15vw, 190px);
  background:
    radial-gradient(40% 30% at 76% 42%, rgba(255, 110, 20, .28), transparent 70%),
    linear-gradient(180deg, #131313 0%, #2a160a 42%, #160f0b 42.2%, #0f0d0c 100%);
}
@media (min-width: 641px) and (max-height: 760px) {
  .hero { padding-top: clamp(48px, 8vh, 72px); }
  .hero__conteudo { gap: 20px; }
}

.hero__cena {
  position: absolute;
  inset: 0;
  z-index: -1;
  --horizonte: 42%;
}
.hero__campo,
.hero__sol {
  transform: translate3d(0, calc(var(--rolagem, 0) * .35px), 0);
}
.hero__campo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1.4s ease;
}
.hero__campo.is-pronto { opacity: 1; }
.hero__luz {
  position: absolute;
  inset: 0;
  background: radial-gradient(34% 40% at 76% var(--horizonte), rgba(255, 140, 40, .5), rgba(255, 92, 0, .16) 45%, transparent 72%);
  mix-blend-mode: screen;
  animation: amanhecer 3s ease-out .3s both;
}
.hero .hero__sol {
  left: 0;
  right: 0;
  top: 0;
  height: var(--horizonte);
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent);
  mask-image: linear-gradient(180deg, #000 82%, transparent);
}
.hero__astro {
  position: absolute;
  left: 76%;
  bottom: 0;
  width: clamp(240px, 30vw, 440px);
  aspect-ratio: 1;
  margin-left: calc(clamp(240px, 30vw, 440px) / -2);
  margin-bottom: calc(clamp(240px, 30vw, 440px) / -2);
  transform: translate3d(0, calc(var(--rolagem, 0) * .22px), 0) rotate(calc(var(--rolagem, 0) * .05deg));
}
.hero__nascer {
  width: 100%;
  height: 100%;
  opacity: .62;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 40px rgba(255, 92, 0, .55));
  animation: nascer 2.8s cubic-bezier(.16, 1, .3, 1) .15s both;
}
.hero__nascer .girar,
.hero__nascer img { width: 100%; height: 100%; }

.hero__veu {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, var(--carvao-1) 0%, rgba(22, 22, 22, 0) 34%),
    linear-gradient(90deg, rgba(22, 22, 22, .9) 0%, rgba(22, 22, 22, .72) 36%, rgba(22, 22, 22, .12) 62%, rgba(22, 22, 22, 0) 100%);
}

.hero__conteudo {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: 800px;
}
.hero h1 {
  font-weight: 800;
  font-size: clamp(2rem, 1.1rem + 4.4vw, 3.85rem);
  line-height: 1.06;
  letter-spacing: -.03em;
}
.hero h1 em {
  font-style: normal;
  color: var(--laranja);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .hero h1 em {
    color: transparent;
    background: linear-gradient(90deg, var(--laranja) 0 50%, var(--branco) 50% 100%) 100% 0 / 200% 100% no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    animation: pintar .9s cubic-bezier(.65, 0, .35, 1) both;
    animation-delay: calc(1.15s + var(--i, 0) * 120ms);
  }
  .hero h1 .p:nth-child(6) em { --i: 1; }
}
.hero__lead {
  font-size: clamp(1.125rem, 1rem + .5vw, 1.3rem);
  color: var(--texto-claro-2);
  max-width: 600px;
}
.hero__acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 4px;
}

@media (max-width: 640px) {
  .hero__cena { --horizonte: 17%; }
  .hero__astro { left: 74%; width: 200px; margin-left: -100px; margin-bottom: -100px; }
  .hero__nascer { opacity: .45; }
  .hero__veu {
    background:
      linear-gradient(0deg, var(--carvao-1) 0%, rgba(22, 22, 22, 0) 30%),
      linear-gradient(180deg, rgba(22, 22, 22, .2) 0%, rgba(22, 22, 22, .55) 40%, rgba(22, 22, 22, .78) 100%);
  }
  .hero__acoes .botao { flex: 1 1 100%; }
}

.cinetico .p,
.dividido .p {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  padding: .06em .04em .16em;
  margin: -.06em -.04em -.16em;
}
.cinetico .p > span,
.dividido .p > span {
  display: inline-block;
  transform-origin: 0 100%;
}
.cinetico .p > span {
  animation: palavra 1.1s var(--mola) both;
  animation-delay: calc(.25s + var(--i) * 60ms);
}
.js .dividido .p > span {
  transform: translateY(108%) rotate(3deg);
  transition: transform 1.1s var(--mola);
  transition-delay: calc(.12s + var(--i) * 45ms);
}
.js .is-visivel .dividido .p > span { transform: none; }

/* Números ---------------------------------------------------------------- */
.numeros {
  position: relative;
  z-index: 2;
  margin-top: clamp(-96px, -8vw, -72px);
}
.numeros__grade {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  background: var(--branco);
  border-radius: var(--raio-g);
  box-shadow: 0 30px 60px -30px rgba(17, 17, 17, .35), 0 0 0 1px rgba(17, 17, 17, .04);
  overflow: hidden;
}
.numeros__item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 30px 26px;
  background: var(--areia);
}
.numeros__item + .numeros__item { border-left: 1px solid var(--linha-clara); }
.numeros__valor {
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: clamp(1.8rem, 1.4rem + 1.1vw, 2.15rem);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--laranja-numero);
  font-variant-numeric: tabular-nums;
}
.numeros__desc { color: var(--texto-suave); font-size: 1rem; line-height: 1.45; }

@media (max-width: 1040px) {
  .numeros__grade { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .numeros__item { grid-column: span 2; }
  .numeros__item:nth-child(n + 4) { grid-column: span 3; border-top: 1px solid var(--linha-clara); }
  .numeros__item:nth-child(4) { border-left: 0; }
}
@media (max-width: 640px) {
  .numeros__grade { grid-template-columns: 1fr 1fr; }
  .numeros__item,
  .numeros__item:nth-child(n + 4) { grid-column: span 1; border-left: 0; border-top: 1px solid var(--linha-clara); padding: 22px 18px; }
  .numeros__item:nth-child(1) { border-top: 0; }
  .numeros__item:nth-child(2) { border-top: 0; }
  .numeros__item:nth-child(odd) { border-left: 0; }
  .numeros__item:nth-child(even) { border-left: 1px solid var(--linha-clara); }
  .numeros__item:last-child { grid-column: 1 / -1; border-left: 0; }
}

/* Abrangência ------------------------------------------------------------ */
.abrangencia { padding-top: var(--secao); }
.abrangencia__grade {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 6vw, 72px);
}
.abrangencia__texto {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.abrangencia__texto > p:not(.rotulo) { color: var(--texto-suave); font-size: 1.125rem; }

.mapa__svg {
  width: 100%;
  max-width: 560px;
  height: auto;
  margin-inline: auto;
  overflow: visible;
}
.uf {
  stroke: var(--branco);
  stroke-width: 1.2;
  stroke-linejoin: round;
}
.uf--cerrado { fill: var(--r-cerrado); }
.uf--leste { fill: var(--r-leste); }
.uf--nordeste { fill: var(--r-nordeste); }
.uf--sul { fill: var(--r-sul); }
.uf--fora { fill: var(--r-fora); }
.mapa__siglas text {
  font-family: var(--fonte-display);
  font-weight: 700;
  font-size: 10px;
  text-anchor: middle;
  fill: var(--carvao-2);
  pointer-events: none;
}
.mapa__siglas text.claro { fill: var(--branco); }
@media (max-width: 560px) {
  .mapa__siglas { display: none; }
}

.uf {
  transform-box: fill-box;
  transform-origin: 50% 70%;
  transition: transform .55s var(--mola-pop), filter .3s ease, opacity .3s ease;
}
.uf.is-alto {
  transform: translateY(-8px) scale(1.06);
  filter: drop-shadow(0 10px 7px rgba(27, 27, 27, .3)) brightness(1.08);
}
.mapa__siglas text,
.mapa__pinos .pino {
  transition: transform .55s var(--mola-pop);
}
.mapa__pinos { pointer-events: none; }
.mapa__siglas text.is-alto,
.mapa__pinos .pino.is-alto { transform: translateY(-8px); }

.mapa[data-foco] .uf:where(:not(.uf--fora)) { opacity: .22; animation: none; }
.mapa[data-foco="cerrado"] .uf--cerrado,
.mapa[data-foco="leste"] .uf--leste,
.mapa[data-foco="nordeste"] .uf--nordeste,
.mapa[data-foco="sul"] .uf--sul { opacity: 1; }

.legenda {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
html:not(.js) .legenda button { pointer-events: none; cursor: default; }
.legenda button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px 8px 10px;
  border: 1px solid var(--linha-clara);
  border-radius: 999px;
  background: var(--branco);
  font-family: var(--fonte-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--texto);
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}
.legenda button:hover,
.legenda button:focus-visible,
.legenda button[aria-pressed="true"] { border-color: var(--texto); background: var(--areia); }
.legenda i {
  width: 16px; height: 16px;
  border-radius: 4px;
  background: var(--cor);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25);
}

@media (max-width: 860px) {
  .abrangencia__grade { grid-template-columns: 1fr; }
  .abrangencia__mapa { order: 2; }
}

/* Parceiros -------------------------------------------------------------- */
.parceiros {
  margin-top: clamp(48px, 6vw, 72px);
  padding-block: 28px;
  border-block: 1px solid var(--linha-clara);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 48px;
}
.parceiros .rotulo { flex: 0 1 auto; line-height: 1.5; }
.marquee {
  flex: 1 1 480px;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee__trilho {
  display: flex;
  width: max-content;
  animation: marquee 32s linear infinite;
}
.marquee:hover .marquee__trilho { animation-play-state: paused; }
.marquee__lista {
  list-style: none;
  margin: 0;
  padding: 0 32px 0 0;
  display: flex;
  align-items: center;
  gap: 64px;
}
.marquee__lista li { flex: none; display: flex; align-items: center; height: 72px; }
.marquee__lista img {
  width: var(--w);
  height: var(--h);
  object-fit: contain;
  opacity: .78;
  transition: opacity .2s ease;
}
.marquee__lista li:hover img { opacity: 1; }

/* Quem somos ------------------------------------------------------------- */
.quem-somos { padding-block: var(--secao); }
.quem-somos__grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 80px);
}
.quem-somos__intro {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.quem-somos__intro p:not(.rotulo) { font-size: 1.1875rem; color: var(--texto-2); }
.porque {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: clamp(28px, 4vw, 40px);
  background: var(--areia);
  border-radius: var(--raio-g);
}
@media (max-width: 860px) {
  .quem-somos__grade { grid-template-columns: 1fr; }
}

/* O que entregamos ------------------------------------------------------- */
.entregamos {
  padding-block: var(--secao);
  background: var(--areia);
}
.entregamos__topo {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 44px;
}
.entregamos__topo > p { color: var(--texto-suave); max-width: 420px; }
.entregamos__topo .cabecalho-secao { max-width: 680px; }
.cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px 24px 30px;
  background: var(--branco);
  border-radius: var(--raio);
  border: 1px solid transparent;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease;
}
.card::after {
  content: "";
  position: absolute;
  left: 24px; right: 24px; bottom: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--laranja);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .35s var(--ease);
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -22px rgba(17, 17, 17, .35);
}
.card:hover::after { transform: scaleX(1); }
.card__icone {
  width: 34px; height: 34px;
  fill: none;
  stroke: var(--laranja-numero);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.card__num {
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: .875rem;
  color: var(--laranja-numero);
}
.card h3 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.card p { color: var(--texto-suave); font-size: 1rem; }

@media (max-width: 1100px) {
  .cards { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .card { grid-column: span 2; }
  .card:nth-child(n + 4) { grid-column: span 3; }
}
@media (max-width: 640px) {
  .cards { grid-template-columns: 1fr; }
  .card, .card:nth-child(n + 4) { grid-column: auto; }
}

/* Diferenciais ----------------------------------------------------------- */
.diferenciais { padding-block: var(--secao); }
.diferenciais .sol {
  right: -320px;
  top: -360px;
  width: 980px;
  height: 980px;
  opacity: .05;
  z-index: -1;
  filter: grayscale(1) brightness(3);
}
.diferenciais .cabecalho-secao { margin-bottom: 56px; }
.pilar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: clamp(28px, 4vw, 48px);
  padding-block: 48px;
  border-top: 1px solid var(--linha-escura);
}
.pilar:first-of-type { border-top: 0; padding-top: 0; }
.pilar:last-child { padding-bottom: 0; }
.pilar__intro {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pilar__num {
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: 1.125rem;
  color: var(--laranja);
}
.pilar h3 {
  font-size: clamp(1.6rem, 1.3rem + 1vw, 1.9rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.015em;
}
.pilar__intro p { color: var(--texto-claro-2); }
.pilar__itens {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
  align-content: start;
}
.pilar__itens li {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px;
  background: var(--carvao-3);
  border: 1px solid #303030;
  border-radius: var(--raio);
  transition: border-color .25s ease, background-color .25s ease;
}
.pilar__itens li:hover { border-color: rgba(255, 92, 0, .55); background-color: var(--carvao-4); }
.pilar__itens strong { font-size: 1.0625rem; font-weight: 700; }
.pilar__itens span { color: var(--texto-claro-2); font-size: .9375rem; }
.pilar:last-child .pilar__itens { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }

@media (max-width: 1100px) {
  .pilar { grid-template-columns: 1fr; }
}
@media (min-width: 700px) and (max-width: 1100px) {
  .pilar__itens,
  .pilar:last-child .pilar__itens { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Segurança -------------------------------------------------------------- */
.seguranca { padding-block: var(--secao); }
.seguranca .cabecalho-secao { margin-bottom: 44px; }
.seguranca__grade {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 24px;
}
.painel {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(26px, 4vw, 36px);
  background: var(--areia);
  border-radius: var(--raio-g);
}
.painel h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.3;
}
.painel h3 small {
  font-size: .9375rem;
  font-weight: 600;
  color: var(--texto-suave);
}
.painel .lista-num { gap: 16px; }
.painel .lista-num > li { grid-template-columns: 32px 1fr; color: var(--texto-2); }
.painel .lista-num > li::before { font-size: 1rem; }

@media (max-width: 920px) {
  .seguranca__grade { grid-template-columns: 1fr; }
}

/* Depoimento ------------------------------------------------------------- */
.depoimento {
  padding-block: var(--secao);
  background: var(--areia);
}
.depoimento figure {
  position: relative;
  max-width: 920px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.depoimento__aspas {
  width: 48px; height: 48px;
  fill: none;
  stroke: var(--laranja-numero);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.depoimento blockquote { margin: 0; }
.depoimento blockquote p {
  font-family: var(--fonte-display);
  font-weight: 600;
  font-size: clamp(1.35rem, 1rem + 1.3vw, 1.8rem);
  line-height: 1.42;
  letter-spacing: -.01em;
}
.depoimento figcaption {
  display: flex;
  align-items: center;
  gap: 14px;
}
.depoimento figcaption::before {
  content: "";
  width: 40px; height: 2px;
  background: var(--laranja);
}
.depoimento figcaption strong { display: block; }
.depoimento figcaption span { color: var(--texto-suave); font-size: .9375rem; }

/* Como funciona ---------------------------------------------------------- */
.como-funciona { padding-block: var(--secao); }
.como-funciona .cabecalho-secao { margin-bottom: 52px; }
.passos {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  counter-reset: passo;
}
.passos::before {
  content: "";
  position: absolute;
  top: 24px;
  left: 24px;
  right: calc((100% - 84px) / 4 - 24px);
  height: 2px;
  background: repeating-linear-gradient(90deg, var(--linha-clara) 0 10px, transparent 10px 18px);
}
.passo {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  counter-increment: passo;
}
.passo::before {
  content: counter(passo);
  display: grid;
  place-items: center;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--carvao-2);
  color: var(--laranja);
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: 1.25rem;
  box-shadow: 0 0 0 8px var(--branco);
  transition: background-color .25s ease, color .25s ease;
}
.passo:hover::before { background: var(--laranja); color: var(--carvao-2); }
.passo h3 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin-top: 6px; }
.passo p { color: var(--texto-suave); font-size: 1rem; }

@media (max-width: 920px) {
  .passos { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .passos::before { display: none; }
}
@media (max-width: 560px) {
  .passos { grid-template-columns: 1fr; row-gap: 0; }
  .passo {
    display: grid;
    grid-template-columns: 48px 1fr;
    column-gap: 20px;
    row-gap: 6px;
    padding-bottom: 32px;
  }
  .passo::before { grid-row: span 2; }
  .passo h3 { margin-top: 10px; }
  .passo:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 23px; top: 60px; bottom: 6px;
    width: 2px;
    background: repeating-linear-gradient(180deg, var(--linha-clara) 0 8px, transparent 8px 14px);
  }
}

/* Contato ---------------------------------------------------------------- */
.contato { padding-block: var(--secao); }
.contato .sol {
  left: -300px;
  bottom: -340px;
  width: 860px;
  height: 860px;
  opacity: .08;
  z-index: -1;
}
.contato__grade {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(40px, 6vw, 72px);
  align-items: start;
}
.contato__texto {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.contato__texto > p:not(.rotulo) { color: var(--texto-claro-2); font-size: 1.125rem; }
.contato__canais {
  list-style: none;
  margin: 14px 0 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--linha-escura);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.contato__canais li:first-child {
  font-family: var(--fonte-display);
  font-weight: 700;
  font-size: 1.125rem;
  margin-bottom: 2px;
}
.contato__canais a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #e2e2e2;
  text-decoration: none;
}
.contato__canais a:hover { color: var(--laranja); }
.contato__canais address {
  font-style: normal;
  line-height: 1.5;
}
.contato__canais a:has(address) { align-items: flex-start; }
.contato__canais a:has(address) svg { margin-top: 3px; flex: none; }
.contato__canais svg {
  width: 18px; height: 18px;
  fill: none;
  stroke: var(--laranja);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 16px;
  padding: clamp(24px, 4vw, 36px);
  background: var(--branco);
  color: var(--texto);
  border-radius: var(--raio-g);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8);
}
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo--cheio { grid-column: 1 / -1; }
.campo label { font-size: .875rem; font-weight: 700; }
.campo input,
.campo select,
.campo textarea {
  width: 100%;
  min-height: 48px;
  padding: 10px 14px;
  border: 1px solid #8c8c8c;
  border-radius: 8px;
  background: var(--branco);
  color: var(--texto);
  font: inherit;
  font-size: 1rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.campo textarea { resize: vertical; min-height: 104px; }
.campo select {
  appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231b1b1b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}
.campo input:hover,
.campo select:hover,
.campo textarea:hover { border-color: #5c5c5c; }
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
  outline: none;
  border-color: var(--laranja);
  box-shadow: 0 0 0 3px rgba(255, 92, 0, .22);
}
.campo input:user-invalid,
.campo textarea:user-invalid { border-color: #c62828; }
.form .botao { grid-column: 1 / -1; width: 100%; margin-top: 4px; border: 0; text-wrap: balance; }
.form__aviso { grid-column: 1 / -1; font-size: .875rem; color: var(--texto-suave); }
.obrig { color: #c62828; }
.form__nota {
  grid-column: 1 / -1;
  font-size: .875rem;
  color: var(--texto-suave);
  text-align: center;
}
.form__nota:empty { margin-top: -18px; }

@media (max-width: 920px) {
  .contato__grade { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .form { grid-template-columns: 1fr; }
}

/* Rodapé ----------------------------------------------------------------- */
.rodape {
  background: var(--carvao-0);
  color: #a9a9a9;
  font-size: .9375rem;
}
.rodape__topo {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 24px 40px;
  padding-block: 44px 32px;
}
.rodape__logo img { height: 40px; width: auto; }
.rodape nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
}
.rodape nav a { color: #c9c9c9; text-decoration: none; }
.rodape nav a:hover { color: var(--laranja); }
.rodape__base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 24px;
  padding-block: 22px 28px;
  border-top: 1px solid #242424;
  font-size: .875rem;
}
.rodape__endereco {
  font-style: normal;
  color: #8f8f8f;
}
.rodape__base a,
.rodape__dominio {
  font-family: var(--fonte-display);
  font-weight: 800;
  letter-spacing: .08em;
  color: var(--laranja);
  text-decoration: none;
}

/* 7. Animações ------------------------------------------------------------ */
@keyframes girar { to { transform: rotate(360deg); } }
@keyframes nascer {
  from { opacity: 0; transform: translateY(55%) scale(.8) rotate(-50deg); }
  to { opacity: .62; transform: none; }
}
@keyframes amanhecer { from { opacity: 0; } to { opacity: 1; } }
@keyframes pintar { to { background-position: 0 0; } }
@keyframes palavra {
  from { transform: translateY(108%) rotate(3deg); }
  to { transform: none; }
}
@keyframes pino { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes onda {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(3.8); opacity: 0; }
}
@keyframes pop { from { transform: scale(.78); } to { transform: none; } }
@keyframes subir {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes pulsar { 0%, 100% { opacity: 1; } 50% { opacity: .8; } }

.girar { animation: girar 90s linear infinite; }
.girar--reverso { animation: girar 160s linear infinite reverse; }
.subir { animation: subir .9s var(--ease) both; animation-delay: calc(var(--d, 0) * 140ms); }

.mapa .uf--cerrado { animation: pulsar 6s ease-in-out infinite; }
.mapa .uf--leste { animation: pulsar 6s ease-in-out 1.5s infinite; }
.mapa .uf--nordeste { animation: pulsar 6s ease-in-out 3s infinite; }
.mapa .uf--sul { animation: pulsar 6s ease-in-out 4.5s infinite; }

.js [data-revelar] {
  transition: opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay: calc(var(--d, 0) * 90ms);
}
.js [data-revelar]:not(.is-visivel) {
  opacity: 0;
  transform: translateY(24px);
}
.js [data-revelar]:not(.is-visivel):focus-within {
  opacity: 1;
  transform: none;
  transition-duration: .15s;
  transition-delay: 0s;
}

/* Motion por seção ------------------------------------------------------ */

.js [data-revelar] .rotulo::before {
  transform: rotate(-200deg) scale(.2);
  transition: transform 1.2s var(--mola-pop) .1s;
}
.js .is-visivel .rotulo::before { transform: none; }

.numeros__valor { transition: filter .35s ease; }
.numeros__valor.contando { filter: blur(.7px); }

.js .mapa .uf { transition: fill .8s ease, opacity .3s ease, transform .55s var(--mola-pop), filter .3s ease; }
.js .mapa:not(.is-visivel) .uf { fill: var(--r-fora); }
.js .mapa .uf--cerrado { transition-delay: .25s, 0s, 0s, 0s; }
.js .mapa .uf--leste { transition-delay: .6s, 0s, 0s, 0s; }
.js .mapa .uf--nordeste { transition-delay: .95s, 0s, 0s, 0s; }
.js .mapa .uf--sul { transition-delay: 1.3s, 0s, 0s, 0s; }

.mapa__pinos circle {
  transform-box: fill-box;
  transform-origin: center;
}
.pino__ponto {
  fill: var(--branco);
  stroke: var(--carvao-2);
  stroke-width: 1.5;
}
.pino__onda {
  fill: none;
  stroke: var(--branco);
  stroke-width: 1.2;
  opacity: 0;
}
.js .mapa .pino__ponto { transform: scale(0); }
.js .mapa.is-visivel .pino__ponto {
  animation: pino .8s var(--mola-pop) both;
  animation-delay: calc(1.5s + var(--i) * 70ms);
}
.mapa.is-visivel .pino__onda {
  animation: onda 3.4s cubic-bezier(.2, .6, .35, 1) infinite;
  animation-delay: calc(2.4s + var(--i) * 230ms);
}

.pilar { position: relative; }
.pilar::before {
  content: attr(data-num);
  position: absolute;
  left: -.04em;
  top: 22px;
  z-index: -1;
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: clamp(7rem, 4rem + 8vw, 11.5rem);
  line-height: 1;
  letter-spacing: -.04em;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 255, 255, .08);
  pointer-events: none;
  transition: opacity 1.2s ease, transform 1.4s var(--mola);
}
.js .pilar[data-revelar]:not(.is-visivel)::before {
  opacity: 0;
  transform: translateX(-40px);
}

.passos-trilha { position: relative; }
.passos { position: relative; }
.passos__trilho {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  display: none;
}
.passos-trilha.tem-trilho .passos__trilho { display: block; }
.passos-trilha.tem-trilho .passos::before { opacity: .9; }
.passos__progresso {
  position: absolute;
  left: 0;
  top: 0;
  background: var(--laranja);
  border-radius: 2px;
}
.passos__viajante {
  position: absolute;
  left: 0;
  top: 0;
  width: 30px;
  height: 30px;
  margin: -15px 0 0 -15px;
  will-change: transform;
}
.passos__viajante img { width: 100%; height: 100%; }
.passo::before { position: relative; z-index: 1; }
.passo.is-ativo::before {
  background: var(--laranja);
  color: var(--carvao-2);
  animation: pop .7s var(--mola-pop);
}

.header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg, var(--laranja), #ffb27a);
  transform-origin: 0 50%;
  transform: scaleX(var(--progresso, 0));
}

.card {
  background-image: radial-gradient(280px circle at var(--mx, -999px) var(--my, -999px), rgba(255, 92, 0, .1), transparent 65%);
}
.pilar__itens li {
  background-image: radial-gradient(260px circle at var(--mx, -999px) var(--my, -999px), rgba(255, 92, 0, .16), transparent 65%);
}
.js .card.is-visivel { transition: transform .5s var(--mola), box-shadow .3s var(--mola), border-color .3s ease; transition-delay: 0s; }
.js .card.inclina {
  transition: transform .15s linear, box-shadow .3s var(--mola), border-color .3s ease;
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-4px);
}

.faixa-cinetica {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: clamp(48px, 7vw, 88px);
  background: var(--carvao-2);
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
.faixa-cinetica__linha {
  display: flex;
  align-items: center;
  gap: .4em;
  width: max-content;
  white-space: nowrap;
  font-family: var(--fonte-display);
  font-weight: 800;
  font-size: clamp(2.6rem, 1.4rem + 5vw, 6rem);
  line-height: 1.08;
  letter-spacing: -.035em;
  color: var(--laranja);
  transform: translate3d(var(--x, 0px), 0, 0);
  will-change: transform;
}
.faixa-cinetica__linha--vazada {
  color: var(--carvao-2);
  -webkit-text-stroke: 3px rgba(255, 255, 255, .32);
  paint-order: stroke fill;
}
.faixa-cinetica i {
  flex: none;
  width: .55em;
  height: .55em;
  background: currentColor;
  -webkit-mask: var(--simbolo) center / contain no-repeat;
  mask: var(--simbolo) center / contain no-repeat;
}
.faixa-cinetica__linha--vazada i { background: rgba(255, 255, 255, .32); }
.faixa-cinetica + .diferenciais { padding-top: clamp(56px, 7vw, 88px); }

.depoimento .w { transition: color .3s ease; }
.depoimento.leitura blockquote .w { color: #9a9083; }
.depoimento.leitura blockquote .w.on { color: var(--texto); }

/* 8. Movimento reduzido --------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0s !important;
  }
  .hero__campo, .hero__sol, .hero__astro { transform: none !important; }
  .faixa-cinetica__linha { transform: none !important; }
  .passos__trilho { display: none !important; }
  .js [data-revelar] { opacity: 1; transform: none; }
  .marquee { -webkit-mask-image: none; mask-image: none; }
  .marquee__trilho { width: auto; animation: none; }
  .marquee__lista { flex-wrap: wrap; justify-content: center; gap: 24px 48px; padding: 0; }
  .marquee__lista[aria-hidden="true"] { display: none; }
}

/* 9. Impressão ------------------------------------------------------------ */
@media print {
  .js [data-revelar],
  .js .dividido .p > span { opacity: 1 !important; transform: none !important; transition: none !important; }
  .header { position: static; }
  .menu-botao, .passos__trilho, .sol, .hero__cena { display: none !important; }
  .tema-escuro,
  .legenda i { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .faixa-cinetica { display: none !important; }
  .marquee { -webkit-mask-image: none; mask-image: none; }
  .marquee__trilho { width: auto; animation: none; }
  .marquee__lista { flex-wrap: wrap; justify-content: center; gap: 24px 48px; padding: 0; }
  .marquee__lista[aria-hidden="true"] { display: none; }
  .js .mapa .pino__ponto { transform: none !important; animation: none !important; }
  .js .mapa .uf { transition: none !important; }
}
