 /* RESET & BASE */

 *,

 *::before,

 *::after {

     margin: 0;

     padding: 0;

     box-sizing: border-box;

 }



 body {

     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

     background-color: #f0f4f0;

     color: #2d3436;

     line-height: 1.6;

     scroll-behavior: smooth;

 }



 html {

     scroll-behavior: smooth;

 }



 /* NAV */

 .nav {

     position: fixed;

     top: 0;

     left: 0;

     right: 0;

     z-index: 50;

     display: grid;

     grid-template-columns: 1fr auto 1fr;

     align-items: center;

     justify-content: space-between;

     padding: 0.9rem 2rem;

     background: rgba(13, 94, 58, 0);

     backdrop-filter: blur(0);

     transition: background 0.4s ease, backdrop-filter 0.4s ease, box-shadow 0.4s ease, padding 0.4s ease;

 }



 .nav.nav-scrolled {

     background: rgba(13, 94, 58, 0.92);

     backdrop-filter: blur(8px);

     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);

     padding: 0.6rem 2rem;

 }



 .nav-brand {

     color: #fff;

     font-weight: 800;

     font-size: 1.15rem;

     letter-spacing: 0.5px;

     text-decoration: none;

     text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);

 }



 .nav-links {

     display: flex;

     gap: 1.6rem;

     list-style: none;

 }



 .nav-links a {

     color: #fff;

     text-decoration: none;

     font-weight: 600;

     font-size: 0.95rem;

     position: relative;

     padding: 0.25rem 0;

     text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);

     transition: color 0.25s;

 }



 .nav-links a::after {

     content: '';

     position: absolute;

     left: 0;

     bottom: -2px;

     width: 0;

     height: 2px;

     background: #a5d6a7;

     transition: width 0.3s ease;

 }



 .nav-links a:hover {

     color: #c8e6c9;

 }



 .nav-links a:hover::after {

     width: 100%;

 }



 /* SCROLL PROGRESS */

 .scroll-progress {

     position: fixed;

     top: 0;

     left: 0;

     height: 3px;

     width: 0%;

     background: linear-gradient(90deg, #4caf50, #81c784, #c5e1a5);

     z-index: 60;

     transition: width 0.1s linear;

     box-shadow: 0 0 8px rgba(76, 175, 80, 0.6);

 }



 /* HERO */

 .hero {

     background: linear-gradient(135deg, #0a8f3c 0%, #1e6f50 40%, #0d5e3a 100%);

     min-height: 100vh;

     height: 100vh;

     display: flex;

     align-items: center;

     justify-content: center;

     text-align: center;

     position: relative;

     overflow: hidden;

     will-change: transform, opacity;

 }



 .hero::before {

     content: '';

     position: absolute;

     inset: 0;

     background: url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1920&q=80') center/cover no-repeat;

     opacity: 0.55;

     z-index: 0;

     will-change: transform;

 }



 .hero-forest {

     position: absolute;

     inset: 0;

     background: url('https://images.unsplash.com/photo-1542202229-7d93c33f5d07?w=1920&q=80') center/cover no-repeat;

     opacity: 0.45;

     mix-blend-mode: multiply;

     z-index: 0;

     will-change: transform;

 }



 .hero-blend {

     position: absolute;

     inset: 0;

     background:

         radial-gradient(ellipse at 30% 20%, rgba(10, 143, 60, 0.35) 0%, transparent 60%),

         radial-gradient(ellipse at 70% 80%, rgba(13, 94, 58, 0.5) 0%, transparent 65%),

         linear-gradient(180deg, rgba(10, 143, 60, 0.35) 0%, rgba(13, 94, 58, 0.55) 60%, rgba(240, 244, 240, 0.95) 100%);

     z-index: 1;

     pointer-events: none;

 }



 .hero-overlay {

     position: relative;

     z-index: 2;

     padding: 2rem;

     will-change: transform, opacity;

 }



 .hero-title {

     font-size: clamp(2rem, 6vw, 4.2rem);

     color: #fff;

     text-shadow: 2px 4px 18px rgba(0, 0, 0, 0.5);

     margin-bottom: 1rem;

     animation: heroTitleIn 1.1s cubic-bezier(0.2, 0.9, 0.2, 1) both;

 }



 .hero-subtitle {

     font-size: clamp(1rem, 1.8vw, 1.4rem);

     color: #e0f5e0;

     max-width: 640px;

     margin: 0 auto 2rem;

     animation: heroSubtitleIn 1.2s 0.25s cubic-bezier(0.2, 0.9, 0.2, 1) both;

 }



 .hero-cta {

     display: inline-block;

     padding: 0.9rem 2.4rem;

     background: rgba(255, 255, 255, 0.95);

     color: #1b5e20;

     font-weight: 700;

     letter-spacing: 0.5px;

     border-radius: 50px;

     text-decoration: none;

     box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);

     transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;

     animation: heroSubtitleIn 1.2s 0.5s cubic-bezier(0.2, 0.9, 0.2, 1) both;

 }



 .hero-cta:hover {

     transform: translateY(-3px) scale(1.04);

     box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3);

     background: #fff;

 }



 @keyframes heroTitleIn {

     0% {

         opacity: 0;

         transform: translateY(30px) scale(0.96);

         filter: blur(8px);

     }



     100% {

         opacity: 1;

         transform: translateY(0) scale(1);

         filter: blur(0);

     }

 }



 @keyframes heroSubtitleIn {

     0% {

         opacity: 0;

         transform: translateY(20px);

     }



     100% {

         opacity: 1;

         transform: translateY(0);

     }

 }



 /* SCROLL INDICATOR */

 .scroll-indicator {

     position: absolute;

     bottom: 2.5rem;

     left: 50%;

     transform: translateX(-50%);

     display: flex;

     flex-direction: column;

     align-items: center;

     gap: 0.6rem;

     color: #fff;

     text-decoration: none;

     z-index: 4;

     animation: bobUp 2.4s ease-in-out infinite;

     opacity: 0.9;

     transition: opacity 0.3s;

 }



 .scroll-indicator:hover {

     opacity: 1;

 }



 .scroll-indicator-text {

     font-size: 0.85rem;

     letter-spacing: 1.5px;

     text-transform: uppercase;

     text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);

 }



 .scroll-indicator-arrow {

     width: 26px;

     height: 26px;

     border-right: 2px solid #fff;

     border-bottom: 2px solid #fff;

     transform: rotate(45deg);

     filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));

 }



 @keyframes bobUp {



     0%,

     100% {

         transform: translate(-50%, 0);

     }



     50% {

         transform: translate(-50%, -10px);

     }

 }









 /* SECTIONS */

 .section {

     padding: 4rem 2rem;

     max-width: 1200px;

     margin: 0 auto;

 }



 .section-alt {

     background-color: #e8f5e9;

     max-width: 100%;

     padding-left: calc((100% - 1200px) / 2 + 2rem);

     padding-right: calc((100% - 1200px) / 2 + 2rem);

 }



 .section-title {

     text-align: center;

     font-size: 2rem;

     color: #1b5e20;

     margin-bottom: 1rem;

 }



 .section-desc {

     text-align: center;

     color: #555;

     max-width: 600px;

     margin: 0 auto 2rem;

 }



 /* SOBRE */

 .sobre-content {

     max-width: 800px;

     margin: 0 auto;

 }



 .sobre-text {

     margin-bottom: 1.2rem;

     font-size: 1.05rem;

     text-align: justify;

 }



 .sobre-badges {

     display: flex;

     flex-wrap: wrap;

     gap: 0.75rem;

     justify-content: center;

     margin-top: 1.5rem;

 }



 .badge {

     background: #1b5e20;

     color: #fff;

     padding: 0.4rem 1.2rem;

     border-radius: 50px;

     font-size: 0.9rem;

     font-weight: 600;

     letter-spacing: 0.5px;

 }



 /* CARDS GRID */

 .cards-grid {

     display: grid;

     grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

     gap: 1.5rem;

     max-width: 1200px;

     margin: 0 auto;

 }



 .card {

     background: #fff;

     border-radius: 12px;

     padding: 2rem 1.5rem;

     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);

     transition: transform 0.4s cubic-bezier(0.2, 0.9, 0.2, 1), box-shadow 0.4s ease;

     border-top: 4px solid #1b5e20;

     position: relative;

     overflow: hidden;

     cursor: pointer;

 }



 .card::before {

     content: '';

     position: absolute;

     inset: 0;

     background: linear-gradient(135deg, rgba(76, 175, 80, 0) 0%, rgba(76, 175, 80, 0.08) 100%);

     opacity: 0;

     transition: opacity 0.4s ease;

     pointer-events: none;

 }



 .card:hover {

     transform: translateY(-10px) scale(1.02);

     box-shadow: 0 18px 40px rgba(27, 94, 32, 0.18);

 }



 .card:hover::before {

     opacity: 1;

 }



 .card:hover .card-icon {

     transform: scale(1.15) rotate(-6deg);

 }



 .card-icon {

     font-size: 2.5rem;

     margin-bottom: 0.75rem;

     display: inline-block;

     transition: transform 0.4s cubic-bezier(0.2, 0.9, 0.2, 1);

 }



 .card h3 {

     color: #1b5e20;

     margin-bottom: 0.5rem;

     font-size: 1.25rem;

 }



 .card p {

     color: #555;

     font-size: 0.95rem;

 }



 .card-eolica {

     border-top-color: #4fc3f7;

 }



 .card-hidro {

     border-top-color: #0288d1;

 }



 .card-bio {

     border-top-color: #66bb6a;

 }



 .card-ondas {

     border-top-color: #5c6bc0;

 }



 .card-solar {

     border-top-color: #f9a825;

 }



 /* CALCULADORA */

 .calc-wrapper {

     display: flex;

     flex-wrap: wrap;

     gap: 2rem;

     justify-content: center;

 }



 .calc-form {

     background: #fff;

     padding: 2rem;

     border-radius: 12px;

     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);

     flex: 1 1 360px;

     max-width: 420px;

 }



 .form-group {

     margin-bottom: 1.25rem;

 }



 .form-group label {

     display: block;

     font-weight: 600;

     margin-bottom: 0.3rem;

     color: #1b5e20;

 }



 .form-group input,

 .form-group select {

     width: 100%;

     padding: 0.65rem 0.75rem;

     border: 2px solid #c8e6c9;

     border-radius: 8px;

     font-size: 1rem;

     transition: border-color 0.3s;

 }



 .form-group input:focus,

 .form-group select:focus {

     outline: none;

     border-color: #1b5e20;

 }



 .btn-calc {

     width: 100%;

     padding: 0.8rem;

     background: #1b5e20;

     color: #fff;

     border: none;

     border-radius: 8px;

     font-size: 1.1rem;

     font-weight: 700;

     cursor: pointer;

     transition: background 0.3s;

 }



 .btn-calc:hover {

     background: #145218;

 }



 /* RESULTADOS */

 .resultados {

     flex: 1 1 400px;

     max-width: 600px;

     background: #fff;

     padding: 2rem;

     border-radius: 12px;

     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);

 }



 .resultados h3 {

     color: #1b5e20;

     margin-bottom: 1rem;

     font-size: 1.4rem;

 }



 .result-cards {

     display: grid;

     grid-template-columns: 1fr 1fr;

     gap: 1rem;

     margin-bottom: 1.5rem;

 }



 .result-card {

     background: #e8f5e9;

     border-radius: 10px;

     padding: 1rem;

     text-align: center;

 }



 .result-label {

     display: block;

     font-size: 0.85rem;

     color: #555;

     margin-bottom: 0.3rem;

 }



 .result-value {

     display: block;

     font-size: 1.3rem;

     font-weight: 700;

     color: #1b5e20;

 }



 .result-note {

     font-size: 0.8rem;

     color: #888;

     margin-bottom: 1.5rem;

 }



 .chart-container {

     width: 100%;

     max-width: 900px;

     margin: 0 auto;

     position: relative;

     display: flex;

     justify-content: center;

     align-items: center;

     min-height: 300px;

 }



 /* HIDDEN */

 .hidden {

     display: none !important;

 }



 /* MAPA CO2 */

 .mapa-co2-container {

     display: flex;

     flex-wrap: wrap;

     gap: 2rem;

     justify-content: center;

     margin-top: 2rem;

 }



 .mapa-info {

     flex: 1 1 300px;

     max-width: 400px;

     background: #fff;

     padding: 2rem;

     border-radius: 12px;

     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);

 }



 .mapa-info h3 {

     color: #1b5e20;

     margin-bottom: 1rem;

     font-size: 1.3rem;

 }



 .co2-value {

     display: flex;

     align-items: baseline;

     gap: 0.5rem;

     margin-bottom: 0.5rem;

 }



 .co2-value #co2-global {

     font-size: 3rem;

     font-weight: 800;

     color: #e53935;

 }



 .co2-unit {

     font-size: 1.2rem;

     color: #666;

     font-weight: 600;

 }



 .co2-description {

     color: #555;

     margin-bottom: 1.5rem;

     font-size: 0.95rem;

 }



 .co2-legend {

     display: flex;

     flex-direction: column;

     gap: 0.75rem;

     margin-bottom: 1.5rem;

 }



 .legend-item {

     display: flex;

     align-items: center;

     gap: 0.75rem;

     font-size: 0.9rem;

     color: #555;

 }



 .legend-color {

     width: 20px;

     height: 20px;

     border-radius: 50%;

     flex-shrink: 0;

 }



 .legend-low {

     background-color: #4caf50;

 }



 .legend-medium {

     background-color: #ff9800;

 }



 .legend-high {

     background-color: #f44336;

 }



 .mapa-note {

     font-size: 0.8rem;

     color: #888;

     font-style: italic;

 }



 .mapa-mundi {

     flex: 1 1 500px;

     height: 500px;

     border-radius: 12px;

     overflow: hidden;

     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);

 }



 /* RESPONSIVE */

 @media (max-width: 768px) {

     .hero-title {

         font-size: 2rem;

     }



     .hero-subtitle {

         font-size: 1rem;

     }



     .section {

         padding: 2.5rem 1rem;

     }



     .section-alt {

         padding-left: 1rem;

         padding-right: 1rem;

     }



     .calc-wrapper {

         flex-direction: column;

         align-items: center;

     }



     .calc-form,

     .resultados {

         max-width: 100%;

     }



     .result-cards {

         grid-template-columns: 1fr;

     }



     .mapa-co2-container {

         flex-direction: column;

     }



     .mapa-info,

     .mapa-mundi {

         max-width: 100%;

     }



     .mapa-mundi {

         height: 400px;

     }



     .nav {
          display: flex;
          flex-wrap: wrap;
          justify-content: space-between;
          align-items: center;
          padding: 0.8rem 1.2rem;
          gap: 0.7rem 0; /* Espaçamento vertical entre as linhas */
          grid-template-columns: none; /* Desativa o grid do desktop */
     }



     .nav.nav-scrolled {
          padding: 0.6rem 1.2rem;
     }



     .nav-links {
          width: 100%; /* Força a lista a ocupar a linha de baixo */
          order: 3;    /* Garante o posicionamento abaixo do topo */
          justify-content: center;
          gap: 1.2rem;
     }



     .nav-links a {
          font-size: 0.9rem;
     }

     .dark-toggle {
          margin-left: 0; /* Remove a margem desnecessária no mobile */
     }

     .nav-brand {
          font-size: 1.1rem;
     }



     .scroll-indicator {

         bottom: 1.4rem;

     }



     .scroll-indicator-text {

         display: none;

     }

 }



 /* FALLING LEAVES TRANSITION */

 .leaves-container {

     position: absolute;

     inset: 0;

     overflow: hidden;

     pointer-events: none;

     z-index: 3;

 }



 .leaf {

     position: absolute;

     top: -40px;

     width: 28px;

     height: 28px;

     opacity: 0;

     will-change: transform, opacity;

     filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.2));

     background-repeat: no-repeat;

     background-position: center;

     background-size: contain;

 }



 .leaf-a {

     background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><path d='M32 4C18 14 8 28 10 44c10 14 30 18 44 8 4-18-6-36-22-48z' fill='%234caf50'/><path d='M32 4C28 20 26 34 30 52' stroke='%231b5e20' stroke-width='2' fill='none'/></svg>");

 }



 .leaf-b {

     background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><path d='M32 6C16 16 6 30 12 46c8 12 26 16 40 6 4-16-6-32-20-46z' fill='%2381c784'/><path d='M32 6C30 22 30 36 34 52' stroke='%232e7d32' stroke-width='2' fill='none'/></svg>");

 }



 .leaf-c {

     background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><path d='M32 4C20 12 10 26 14 42c10 14 28 18 40 8 6-16-4-34-22-46z' fill='%23a5d6a7'/><path d='M32 4C30 20 28 34 32 50' stroke='%231b5e20' stroke-width='2' fill='none'/></svg>");

 }



 .leaf-d {

     background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><path d='M32 6C18 18 8 32 12 48c10 10 28 14 40 4 4-18-6-34-20-46z' fill='%23388e3c'/><path d='M32 6C30 22 30 36 34 50' stroke='%23145218' stroke-width='2' fill='none'/></svg>");

 }



 .leaves-falling .leaf {

     animation: leafFall linear forwards;

 }



 @keyframes leafFall {

     0% {

         transform: translate3d(0, -10vh, 0) rotate(0deg);

         opacity: 0;

     }



     10% {

         opacity: 1;

     }



     50% {

         transform: translate3d(40px, 50vh, 0) rotate(220deg);

     }



     100% {

         transform: translate3d(-30px, 110vh, 0) rotate(540deg);

         opacity: 0;

     }

 }



 @keyframes leafSway {



     0%,

     100% {

         margin-left: 0;

     }



     50% {

         margin-left: 30px;

     }

 }



 /* REVEAL ON SCROLL */

 .reveal {

     opacity: 0;

     transform: translateY(40px);

     transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.9, 0.2, 1);

 }



 .reveal.is-visible {

     opacity: 1;

     transform: translateY(0);

 }



 .reveal .card,

 .reveal .badge,

 .reveal .sobre-text,

 .reveal .calc-form {

     opacity: 0;

     transform: translateY(20px);

     transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.9, 0.2, 1);

 }



 .reveal.is-visible .card,

 .reveal.is-visible .badge,

 .reveal.is-visible .sobre-text,

 .reveal.is-visible .calc-form {

     opacity: 1;

     transform: translateY(0);

 }



 .reveal.is-visible .card:nth-child(1) {

     transition-delay: 0.05s;

 }



 .reveal.is-visible .card:nth-child(2) {

     transition-delay: 0.15s;

 }



 .reveal.is-visible .card:nth-child(3) {

     transition-delay: 0.25s;

 }



 .reveal.is-visible .card:nth-child(4) {

     transition-delay: 0.35s;

 }



 .reveal.is-visible .card:nth-child(5) {

     transition-delay: 0.45s;

 }



 .reveal.is-visible .badge:nth-child(1) {

     transition-delay: 0.1s;

 }



 .reveal.is-visible .badge:nth-child(2) {

     transition-delay: 0.2s;

 }



 .reveal.is-visible .badge:nth-child(3) {

     transition-delay: 0.3s;

 }



 .reveal.is-visible .badge:nth-child(4) {

     transition-delay: 0.4s;

 }



 @media (prefers-reduced-motion: reduce) {



     .reveal,

     .reveal .card,

     .reveal .badge,

     .reveal .sobre-text,

     .reveal .calc-form {

         opacity: 1 !important;

         transform: none !important;

         transition: none !important;

     }



     .scroll-indicator,

     .hero-title,

     .hero-subtitle,

     .hero-cta {

         animation: none !important;

     }

 }


 /* ANÁLISE DE VIABILIDADE */

 .analise-viabilidade {
     margin-top: 2rem;
     padding: 1.5rem;
     background: linear-gradient(135deg, #fff9c4 0%, #ffecb3 100%);
     border-radius: 12px;
     border-left: 4px solid #f9a825;
 }

 .analise-viabilidade h4 {
     color: #f57f17;
     font-size: 1.2rem;
     margin-bottom: 1rem;
     font-weight: 600;
 }

 .analise-viabilidade.fonte-solar {
     background: linear-gradient(135deg, #fff9c4 0%, #ffecb3 100%);
     border-left-color: #f9a825;
 }

 .analise-viabilidade.fonte-solar h4 {
     color: #f57f17;
 }

 .analise-viabilidade.fonte-eolica {
     background: linear-gradient(135deg, #e1f5fe 0%, #b3e5fc 100%);
     border-left-color: #4fc3f7;
 }

 .analise-viabilidade.fonte-eolica h4 {
     color: #0277bd;
 }

 .analise-viabilidade.fonte-hidro {
     background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
     border-left-color: #0288d1;
 }

 .analise-viabilidade.fonte-hidro h4 {
     color: #01579b;
 }

 .analise-viabilidade.fonte-bio {
     background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
     border-left-color: #66bb6a;
 }

 .analise-viabilidade.fonte-bio h4 {
     color: #2e7d32;
 }

 .viabilidade-cards {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
     gap: 1rem;
 }

 .viabilidade-card {
     background: white;
     padding: 1rem;
     border-radius: 8px;
     text-align: center;
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
 }

 .viabilidade-label {
     display: block;
     font-size: 0.85rem;
     color: #666;
     margin-bottom: 0.5rem;
     font-weight: 500;
 }

 .viabilidade-value {
     display: block;
     font-size: 1.1rem;
     font-weight: 700;
     color: #333;
 }

 .viabilidade-value.viabilidade-alta {
     color: #2e7d32;
 }

 .viabilidade-value.viabilidade-media {
     color: #f9a825;
 }

 .viabilidade-value.viabilidade-baixa {
     color: #f57c00;
 }

 .viabilidade-value.viabilidade-nao-recomendada {
     color: #c62828;
 }

 .hidden {
     display: none !important;
 }


 /* DIAGNÓSTICO PERSONALIZADO */


 .diagnostico {
     margin-top: 2rem;
     padding: 1.5rem;
     background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
     border-radius: 12px;
     border-left: 4px solid #43a047;
 }

 .diagnostico h4 {
     color: #2e7d32;
     font-size: 1.2rem;
     margin-bottom: 1rem;
     font-weight: 600;
 }

 .diagnostico-text {
     font-size: 1rem;
     color: #333;
     line-height: 1.6;
     margin-bottom: 1rem;
     padding: 1rem;
     background: rgba(255, 255, 255, 0.7);
     border-radius: 8px;
 }

 .plano-acao h5 {
     color: #2e7d32;
     font-size: 1.1rem;
     margin-bottom: 0.75rem;
     font-weight: 600;
 }

 .recomendacoes {
     list-style: none;
     padding: 0;
 }

 .recomendacoes li {
     padding: 0.75rem 1rem;
     margin-bottom: 0.5rem;
     background: white;
     border-radius: 6px;
     border-left: 3px solid #66bb6a;
     font-size: 0.95rem;
     color: #333;
     transition: transform 0.2s ease, box-shadow 0.2s ease;
 }

 .recomendacoes li:hover {
     transform: translateX(4px);
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
 }

 @media (prefers-reduced-motion: reduce) {

     .reveal,
     .reveal .card,
     .reveal .badge,
     .reveal .sobre-text,
     .reveal .calc-form {
         opacity: 1 !important;
         transform: none !important;
         transition: none !important;
     }

     .scroll-indicator,
     .hero-title,
     .hero-subtitle,
     .hero-cta {
         animation: none !important;
     }
 }

 /* RECOMENDAÇÃO DE FONTE */
 .recomendacao-fonte {
     margin-top: 2rem;
     padding: 1.5rem;
     background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
     border-radius: 12px;
     border-left: 4px solid #1976d2;
 }

 .recomendacao-fonte h4 {
     color: #0d47a1;
     font-size: 1.2rem;
     margin-bottom: 1rem;
     font-weight: 600;
 }

 .recomendacao-content {
     display: flex;
     flex-direction: column;
     gap: 1rem;
 }

 .recomendacao-destaque {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 1rem;
     background: white;
     border-radius: 8px;
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
 }

 .recomendacao-info {
     display: flex;
     justify-content: space-between;
     align-items: center;
     padding: 0.75rem 1rem;
     background: rgba(255, 255, 255, 0.7);
     border-radius: 6px;
 }

 .recomendacao-label {
     font-size: 0.95rem;
     color: #555;
     font-weight: 500;
 }

 .recomendacao-valor {
     font-size: 1.1rem;
     font-weight: 700;
     color: #1976d2;
 }

 .recomendacao-justificativa {
     font-size: 0.95rem;
     color: #333;
     line-height: 1.6;
     padding: 1rem;
     background: rgba(255, 255, 255, 0.7);
     border-radius: 8px;
     margin: 0;
 }

/* ===== FOOTER ===== */
.footer {
    background: #1b5e20;
    color: #e8f5e9;
    text-align: center;
    padding: 2rem;
}

.footer p {
    margin: 0.3rem 0;
    font-size: 0.9rem;
    opacity: 0.9;
}

/* ===== DARK MODE TOGGLE BUTTON ===== */
.dark-toggle {
    background: transparent;
    border: 1.5px solid rgba(255, 255, 255, 0.55);
    color: #fff;
    border-radius: 50px;
    padding: 0.28rem 0.8rem;
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.25s, border-color 0.25s, transform 0.2s;
    line-height: 1.4;
    margin-left: 0.6rem;
    flex-shrink: 0;
    justify-self: end;
}

.dark-toggle:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.9);
    transform: scale(1.08);
}

.dark-toggle:active {
    transform: scale(0.95);
}

/* ===== RAIN CONTAINER ===== */
.rain-container {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
    opacity: 0;
    transition: opacity 1.6s ease;
}

body.dark-mode .rain-container {
    opacity: 1;
}

.rain-drop {
    position: absolute;
    top: -20px;
    width: 1.5px;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(160, 205, 245, 0.55) 40%,
        rgba(140, 185, 230, 0.3) 100%
    );
    border-radius: 1px;
    animation: rainDrop linear infinite;
    will-change: transform, opacity;
}

@keyframes rainDrop {
    0% {
        transform: translateY(-2vh) skewY(-18deg);
        opacity: 0;
    }
    8% {
        opacity: var(--rain-op, 0.4);
    }
    92% {
        opacity: var(--rain-op, 0.4);
    }
    100% {
        transform: translateY(108vh) skewY(-18deg);
        opacity: 0;
    }
}

/* ===== LIGHTNING OVERLAY ===== */
.lightning-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(200, 230, 255, 1);
    opacity: 0;
}

/* ===== SMOOTH THEME TRANSITIONS ===== */
body {
    transition: background-color 0.6s ease, color 0.5s ease;
}

.hero {
    transition: background 1.6s ease;
}

.hero::before,
.hero-forest {
    transition: filter 1.8s ease, opacity 1.8s ease;
}

.hero-blend {
    transition: background 1.8s ease;
}

.section-alt {
    transition: background-color 0.6s ease;
}

.card,
.calc-form,
.resultados,
.result-card,
.viabilidade-card,
.diagnostico,
.analise-viabilidade,
.recomendacao-fonte,
.recomendacao-destaque,
.diagnostico-text,
.recomendacoes li {
    transition: background-color 0.5s ease, background 0.5s ease,
                color 0.5s ease, border-color 0.5s ease, box-shadow 0.5s ease;
}

/* ===== DARK MODE — BASE ===== */
body.dark-mode {
    background-color: #0d1117;
    color: #c9d1d9;
}

/* ===== DARK MODE — NAV ===== */
body.dark-mode .nav.nav-scrolled {
    background: rgba(3, 8, 5, 0.96);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.55);
}

/* ===== DARK MODE — HERO (NIGHT FOREST WITH RAIN) ===== */
body.dark-mode .hero {
    background: linear-gradient(135deg, #050d08 0%, #071512 40%, #040a07 100%);
}

body.dark-mode .hero::before {
    filter: brightness(0.11) saturate(0.5) hue-rotate(195deg);
    opacity: 0.82;
}

body.dark-mode .hero-forest {
    filter: brightness(0.07) saturate(0.4) hue-rotate(205deg);
    mix-blend-mode: screen;
    opacity: 0.65;
}

body.dark-mode .hero-blend {
    background:
        radial-gradient(ellipse at 50% 0%, rgba(20, 40, 70, 0.55) 0%, transparent 55%),
        radial-gradient(ellipse at 20% 50%, rgba(5, 30, 55, 0.65) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(5, 25, 40, 0.5) 0%, transparent 50%),
        linear-gradient(180deg,
            rgba(4, 8, 16, 0.65) 0%,
            rgba(5, 12, 22, 0.8) 50%,
            rgba(13, 17, 23, 0.99) 100%);
}

body.dark-mode .hero-title {
    text-shadow: 2px 4px 22px rgba(0, 0, 0, 0.85), 0 0 50px rgba(80, 180, 130, 0.18);
}

body.dark-mode .hero-subtitle {
    color: #8ec8a8;
}

body.dark-mode .hero-cta {
    background: rgba(0, 0, 0, 0.45);
    color: #8dd8ad;
    border: 1px solid rgba(70, 170, 120, 0.5);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.55), 0 0 22px rgba(50, 130, 90, 0.15);
}

body.dark-mode .hero-cta:hover {
    background: rgba(15, 55, 35, 0.6);
    color: #b2e8c8;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.65), 0 0 32px rgba(50, 130, 90, 0.25);
}

/* ===== DARK MODE — SECTIONS ===== */
body.dark-mode .section-title {
    color: #6fcf97;
}

body.dark-mode .section-alt {
    background-color: #0a0f0a;
}

body.dark-mode .section-desc {
    color: #8b949e;
}

body.dark-mode .sobre-text {
    color: #b0bec5;
}

body.dark-mode .badge {
    background: #0e291a;
    color: #6fcf97;
    border: 1px solid #1e4d2e;
}

/* ===== DARK MODE — CARDS ===== */
body.dark-mode .card {
    background: #161b22;
    border-top-color: #2a5c30;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.45);
}

body.dark-mode .card:hover {
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
}

body.dark-mode .card h3 {
    color: #6fcf97;
}

body.dark-mode .card p {
    color: #8b949e;
}

/* ===== DARK MODE — CALCULATOR ===== */
body.dark-mode .calc-form {
    background: #161b22;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.45);
}

body.dark-mode .form-group label {
    color: #6fcf97;
}

body.dark-mode .form-group input,
body.dark-mode .form-group select {
    background: #0d1117;
    border-color: #2a4a2e;
    color: #c9d1d9;
    color-scheme: dark;
}

body.dark-mode .form-group input:focus,
body.dark-mode .form-group select:focus {
    border-color: #4caf70;
}

body.dark-mode .form-group input::placeholder {
    color: #6e7681;
}

body.dark-mode .form-group select option {
    background: #161b22;
    color: #c9d1d9;
}

body.dark-mode .btn-calc {
    background: #1c5e25;
}

body.dark-mode .btn-calc:hover {
    background: #145218;
}

/* ===== DARK MODE — RESULTS ===== */
body.dark-mode .resultados {
    background: #161b22;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.45);
}

body.dark-mode .resultados h3 {
    color: #6fcf97;
}

body.dark-mode .result-card {
    background: #0d2012;
}

body.dark-mode .result-label {
    color: #8b949e;
}

body.dark-mode .result-value {
    color: #6fcf97;
}

body.dark-mode .result-note {
    color: #6e7681;
}

/* ===== DARK MODE — VIABILITY ANALYSIS ===== */
body.dark-mode .analise-viabilidade {
    background: linear-gradient(135deg, #191800 0%, #1f1e00 100%);
    border-left-color: #c0820c;
}

body.dark-mode .analise-viabilidade h4 {
    color: #e5a93a;
}

body.dark-mode .analise-viabilidade.fonte-solar {
    background: linear-gradient(135deg, #191800 0%, #1f1e00 100%);
    border-left-color: #c0820c;
}

body.dark-mode .analise-viabilidade.fonte-solar h4 {
    color: #e5a93a;
}

body.dark-mode .analise-viabilidade.fonte-eolica {
    background: linear-gradient(135deg, #001520 0%, #001c2e 100%);
    border-left-color: #2d9dc8;
}

body.dark-mode .analise-viabilidade.fonte-eolica h4 {
    color: #4fc3f7;
}

body.dark-mode .analise-viabilidade.fonte-hidro {
    background: linear-gradient(135deg, #00111e 0%, #00182c 100%);
    border-left-color: #1672ae;
}

body.dark-mode .analise-viabilidade.fonte-hidro h4 {
    color: #4aa8d8;
}

body.dark-mode .analise-viabilidade.fonte-bio {
    background: linear-gradient(135deg, #071507 0%, #0a1c0a 100%);
    border-left-color: #3b8840;
}

body.dark-mode .analise-viabilidade.fonte-bio h4 {
    color: #66bb6a;
}

body.dark-mode .viabilidade-card {
    background: #1e2530;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

body.dark-mode .viabilidade-label {
    color: #8b949e;
}

body.dark-mode .viabilidade-value {
    color: #b0bec5;
}

body.dark-mode .viabilidade-value.viabilidade-alta {
    color: #66bb6a;
}

body.dark-mode .viabilidade-value.viabilidade-media {
    color: #e5a93a;
}

body.dark-mode .viabilidade-value.viabilidade-baixa {
    color: #f08030;
}

body.dark-mode .viabilidade-value.viabilidade-nao-recomendada {
    color: #e06060;
}

/* ===== DARK MODE — DIAGNOSIS ===== */
body.dark-mode .diagnostico {
    background: linear-gradient(135deg, #071507 0%, #0a1c0c 100%);
    border-left-color: #2c6832;
}

body.dark-mode .diagnostico h4 {
    color: #6fcf97;
}

body.dark-mode .diagnostico-text {
    background: rgba(0, 0, 0, 0.38);
    color: #b0bec5;
}

body.dark-mode .plano-acao h5 {
    color: #6fcf97;
}

body.dark-mode .recomendacoes li {
    background: #1e2530;
    color: #b0bec5;
    border-left-color: #2c6832;
}

body.dark-mode .recomendacoes li:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

/* ===== DARK MODE — RECOMMENDATION ===== */
body.dark-mode .recomendacao-fonte {
    background: linear-gradient(135deg, #081320 0%, #0b1b2e 100%);
    border-left-color: #18588e;
}

body.dark-mode .recomendacao-fonte h4 {
    color: #58a6ff;
}

body.dark-mode .recomendacao-destaque {
    background: #1e2530;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

body.dark-mode .recomendacao-info {
    background: rgba(0, 0, 0, 0.32);
}

body.dark-mode .recomendacao-label {
    color: #8b949e;
}

body.dark-mode .recomendacao-valor {
    color: #58a6ff;
}

body.dark-mode .recomendacao-justificativa {
    background: rgba(0, 0, 0, 0.32);
    color: #b0bec5;
}

/* ===== DARK MODE — FOOTER ===== */
body.dark-mode .footer {
    background: #040c04;
    color: #6e7681;
    border-top: 1px solid #182018;
}

/* ===== DARK MODE — SCROLL PROGRESS ===== */
body.dark-mode .scroll-progress {
    background: linear-gradient(90deg, #2e7d52, #58b875, #8dd5a8);
    box-shadow: 0 0 8px rgba(88, 184, 117, 0.55);
}