/* desktop.css */
/* Reset e estilos gerais */
:root {
   --primary-color: #0066cc;
   --secondary-color: #ff6600;
   --text-color: #333333;
   --background-color: #ffffff;
   --accent-color: #f5f5f5;
   --hover-color: #004499;
   --background-color-footer-line: #696969;
   --border-button-color: #fff;
   --color-icons-contact: #333;
}

.dark {
   --primary-color: #4d94ff;
   --secondary-color: #ff944d;
   --text-color: #f5f5f5;
   --background-color: #1a1a1a;
   --accent-color: #2a2a2a;
   --hover-color: #1265ca;
   --background-color-footer-line: #cacaca;
   --border-button-color: #fff;
   --color-icons-contact: #fff;
}

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

body {
   font-family: 'Poppins', Arial, sans-serif;
   line-height: 1.8;
   color: var(--text-color);
   background-color: var(--background-color);
   transition: background-color 0.3s ease, color 0.3s ease;
   font-size: 18px; /* Aumentado o tamanho da fonte base */
}

.container {
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 20px;
}

/* Header */
header {
   background-color: var(--background-color);
   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
   position: fixed;
   width: 100%;
   z-index: 1000;
   transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

header .container {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 20px 0;
}

.logo img {
   position: relative;
   top: 6px;
   height: 40px;
}

nav {
   display: flex;
   justify-content: center;
   flex-grow: 1;
}

nav ul {
   display: flex;
   list-style: none;
   margin: 0;
   padding: 0;
}

nav ul li {
   margin: 0 15px;
}

nav ul li a {
   text-decoration: none;
   color: var(--text-color);
   font-weight: 500;
   transition: color 0.3s ease;
   white-space: nowrap;
   font-size: 16px; /* Tamanho da fonte ajustado para o menu */
   font-weight: bold;
}

nav ul li a:hover,
nav ul li a.active {
   color: var(--primary-color);
   background-color: var(--accent-color);
   padding: 10px 20px;
   border-radius: 3px;
}

.menu-toggle {
   display: none;
   font-size: 24px;
   cursor: pointer;
}

.mode-toggle {
   font-size: 24px;
   cursor: pointer;
   background: none;
   border: none;
   padding: 0;
   color: var(--text-color);
   transition: color 0.3s ease;
   margin-left: 20px;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 24px;
   height: 24px;
}

.mode-toggle:hover {
   color: var(--primary-color);
}

.mode-toggle i {
   transition: opacity 0.3s ease;
   position: absolute;
}

html:not(.dark) .mode-toggle .fa-moon {
   display: inline-block;
}

html:not(.dark) .mode-toggle .fa-sun {
   display: none;
}

.dark .mode-toggle .fa-sun {
   display: inline-block;
}

.dark .mode-toggle .fa-moon {
   display: none;
}

/* Estilos para as páginas legais */
.legal-content {
   padding-top: 120px;
   padding-bottom: 80px;
   max-width: 800px;
   margin: 0 auto;
   text-align: center;
}

.legal-content h1 {
   font-size: 36px;
   color: var(--primary-color);
   margin-bottom: 30px;
}

.legal-content p {
   margin-bottom: 30px;
   line-height: 1.8;
}

.legal-content section {
   margin-bottom: 60px;
}

.legal-content h2 {
   font-size: 28px;
   color: var(--primary-color);
   margin-bottom: 20px;
}

.legal-content ul {
   list-style-type: none;
   margin-bottom: 30px;
   padding: 0;
}

.legal-content li {
   margin-bottom: 15px;
}

/* Estilos para o banner de cookies */
.cookie-banner {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   background-color: var(--accent-color);
   color: var(--text-color);
   padding: 20px;
   text-align: center;
   z-index: 1000;
   display: none;
   font-size: 16px;
}

.cookie-banner.show {
   display: block;
}

.cookie-banner p {
   margin-bottom: 15px;
}

.cookie-banner a {
   color: var(--primary-color);
   font-weight: bold;
}

.cookie-banner a:hover {
   color: var(--hover-color);
}

.cookie-banner button {
   background-color: var(--primary-color);
   color: var(--background-color);
   border: none;
   padding: 10px 20px;
   cursor: pointer;
   border-radius: 4px;
   font-weight: bold;
   transition: background-color 0.3s ease;
   font-size: 16px;
}

.cookie-banner button:hover {
   background-color: var(--hover-color);
}

/* Hero Section with Typing Animation */
.hero {
   background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('https://images.unsplash.com/photo-1557804506-669a67965ba0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1074&q=80');
   background-size: cover;
   background-position: center;
   height: 100vh;
   display: flex;
   align-items: center;
   text-align: center;
   color: #ffffff;
}

.hero-content {
   max-width: 800px;
   margin: 0 auto;
   display: flex;
   flex-direction: column;
   align-items: center;
}

.hero h1 {
   font-size: 48px;
   font-weight: 700;
   margin-bottom: 20px;
}

.hero .typing-text {
   font-size: 24px;
   margin-bottom: 30px;
   height: 60px; /* Fixed height for two lines of text */
   display: flex;
   align-items: center;
   justify-content: center;
}

.typing-animation {
   max-width: 100%;
   overflow: hidden;
   white-space: normal; /* Allow text to wrap */
   word-wrap: break-word; /* Break long words if necessary */
}

.typing-animation::after {
   content: '|';
   animation: blink 0.7s infinite;
}

@keyframes blink {
   0% { opacity: 1; }
   50% { opacity: 0; }
   100% { opacity: 1; }
}

.cta-button {
   display: inline-block;
   background-color: var(--primary-color);
   color: #ffffff;
   padding: 15px 30px;
   border-radius: 5px;
   text-decoration: none;
   font-weight: bold;
   transition: background-color 0.3s ease;
   font-size: 18px;
   margin-top: 50px; /* Add some space above the button */
}

.cta-button:hover {
   background-color: var(--hover-color);
}

/* Sections */
section {
   padding: 40px 0 100px;
}

section h2 {
   font-size: 36px;
   text-align: center;
   margin-bottom: 50px;
   color: var(--primary-color);
}

/* Services */
.services-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 40px;
}

.service-item {
   text-align: center;
   padding: 40px;
   background-color: var(--accent-color);
   border-radius: 5px;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-item:hover {
   transform: translateY(-10px);
   box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.service-item i {
   font-size: 48px;
   color: var(--primary-color);
   margin-bottom: 20px;
}

.service-item h3 {
   font-size: 24px;
   margin-bottom: 15px;
}

/* About */
#sobre {
   background-color: var(--accent-color);
}

.about-content {
   display: flex;
   align-items: center;
   gap: 50px;
}

.about-text {
   flex: 1;
}

.about-text p {
   margin-bottom: 20px;
}

.about-image {
   flex: 1;
}

.about-image img {
   width: 100%;
   border-radius: 5px;
}

.stats {
   display: flex;
   justify-content: space-between;
   margin-top: 30px;
   margin-bottom: 30px;
}

.stat-item {
   text-align: center;
   margin: 0 4px;
}

.stat-item span:first-child {
   font-size: 36px;
   font-weight: bold;
   color: var(--primary-color);
   display: block;
}


/* Pacotes */
.pacotes-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 40px;
}

.pacote-item {
   background-color: var(--accent-color);
   border-radius: 5px;
   padding: 40px;
   text-align: center;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pacote-item:hover {
   transform: translateY(-10px);
   box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.pacote-item h3 {
   font-size: 24px;
   margin-bottom: 20px;
   color: var(--primary-color);
}

.pacote-item ul {
   list-style-type: none;
   padding: 0;
   margin-bottom: 30px;
}

.pacote-item ul li {
   margin-bottom: 10px;
}

/* Valores */
.valores-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
   gap: 40px;
}

.valor-item {
   text-align: center;
   padding: 40px;
   background-color: var(--accent-color);
   border-radius: 5px;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.valor-item:hover {
   transform: translateY(-10px);
   box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.valor-item i {
   font-size: 48px;
   color: var(--primary-color);
   margin-bottom: 20px;
}

.valor-item h3 {
   font-size: 24px;
   margin-bottom: 15px;
}

.valor-item .price {
   font-weight: bold;
   color: var(--secondary-color);
   margin-top: 15px;
}

/* Portfolio
.portfolio-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 30px;
}
.portfolio-item {
   position: relative;
   overflow: hidden;
   border-radius: 5px;
}
.portfolio-item img {
   width: 100%;
   height: auto;
   transition: transform 0.3s ease;
}
.portfolio-overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(0, 102, 204, 0.8);
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   opacity: 0;
   transition: opacity 0.3s ease;
}
.portfolio-item:hover img {
   transform: scale(1.1);
}
.portfolio-item:hover .portfolio-overlay {
   opacity: 1;
}
.portfolio-overlay h3 {
   color: var(--background-color);
   font-size: 24px;
   margin-bottom: 10px;
}
.portfolio-overlay p {
   color: var(--background-color);
   text-align: center;
   padding: 0 20px;
   margin-bottom: 20px;
}
.portfolio-cta {
   text-align: center;
   margin-top: 40px;
}

.clients-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   gap: 30px;
   align-items: center;
   justify-items: center;
}
.client-logo {
   max-width: 150px;
   filter: grayscale(100%);
   transition: filter 0.3s ease;
}
.client-logo:hover {
   filter: grayscale(0%);
} */

/* Blog */
.blog-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 30px;
}

.blog-post {
   background-color: var(--accent-color);
   border-radius: 5px;
   overflow: hidden;
   box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
   transition: transform 0.3s ease;
}

.blog-post:hover {
   transform: translateY(-5px);
}

.blog-post img {
   width: 100%;
   height: 200px;
   object-fit: cover;
}

.blog-post h3 {
   font-size: 20px;
   margin: 20px;
}

.blog-post p {
   margin: 0 20px 20px;
   color: var(--text-color);
}

.read-more {
   display: inline-block;
   margin: 0 20px 20px;
   color: var(--primary-color);
   text-decoration: none;
   font-weight: bold;
}
.read-more:hover {
   color: var(--hover-color);
}

.blog-cta {
   text-align: center;
   margin-top: 20px;
}

/* Contact Section */
.contact-content {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   gap: 60px;
   max-width: 1200px;
   margin: 0 auto;
}

#contact-form {
   flex: 1;
   max-width: 600px;
}

#contact-form h3 {
   font-size: 28px;
   margin-bottom: 30px;
   color: var(--primary-color);
}

.form-group {
   margin-bottom: 25px;
}

.form-group label {
   display: block;
   margin-bottom: 8px;
   font-weight: 500;
   color: var(--text-color);
   font-size: 16px;
}

#contact-form input,
#contact-form select,
#contact-form textarea {
   width: 100%;
   padding: 12px 15px;
   border: 4px solid var(--accent-color);
   border-radius: 4px;
   font-size: 16px;
   font-weight: bold;
   color: var(--text-color);
   transition: border-color 0.3s ease;
   background-color: var(--accent-color);
   margin: 10px 0;
}

#contact-form input:focus,
#contact-form select:focus,
#contact-form textarea:focus {
   outline: none;
   border-color: var(--primary-color);
}

#contact-form textarea {
   height: 150px;
   resize: none;
}

#contact-form button {
   background-color: var(--primary-color);
   color: #ffffff;
   border: none;
   padding: 14px 28px;
   border-radius: 4px;
   cursor: pointer;
   transition: background-color 0.3s ease;
   font-size: 16px;
   font-weight: 500;
   box-sizing: border-box;
   margin: 0;
   border: 2px solid transparent;
}

#contact-form button:hover {
   background-color: var(--hover-color);
   border-color: var(--border-button-color);
}

.contact-info {
   flex: 1;
   max-width: 400px;
}

.contact-info h3 {
   font-size: 28px;
   margin-bottom: 30px;
   color: var(--primary-color);
}

.contact-info p {
   margin-bottom: 20px;
   display: flex;
   align-items: center;
   font-size: 16px;
}

.contact-info i {
   margin: 0 15px;
   color: var(--primary-color);
   font-size: 24px;
   width: 30px;
}

.contact-info a {
   color: var(--text-color);
   text-decoration: none;
}

.contact-info a:hover {
   text-decoration: underline;
   color: var(--primary-color);
}

.social-icons {
   margin-top: 40px;
}

.social-icons a {
   color: var(--primary-color);
   font-size: 28px;
   margin: 0 10px;
   transition: color 0.3s ease;
}

.social-icons a:hover i {
   color: var(--color-icons-contact);
}

@media (max-width: 1024px) {
   .contact-content {
       flex-direction: column;
       align-items: center;
   }

   #contact-form,
   .contact-info {
       max-width: 100%;
       width: 100%;
   }

   .contact-info {
       margin-top: 60px;
   }
}

@media (max-width: 768px) {
   #contato {
       padding: 60px 0;
   }

   #contact-form h3,
   .contact-info h3 {
       font-size: 24px;
       margin-bottom: 25px;
   }

   .form-group {
       margin-bottom: 20px;
   }

   #contact-form button {
       width: 100%;
   }

   .social-icons {
       margin-top: 30px;
   }

   .social-icons a {
       font-size: 24px;
       margin-right: 20px;
   }
}

/* Footer */
footer {
   background-color: var(--accent-color);
   color: var(--text-color);
   padding: 60px 0 20px;
}

.footer-content {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: 40px;
   margin-bottom: 40px;
}

.footer-logo {
   width: 100%;
   display: flex;
   flex-direction: column;
   align-items: center;
}
.footer-logo img {
   height: 140px;
   margin: 0 auto 16px;
}

.footer-logo p {
   font-size: 16px;
   text-align: center;
}

.footer-links h4,
.footer-services h4,
.footer-newsletter h4 {
   font-size: 20px;
   margin-bottom: 20px;
}

.footer-links ul,
.footer-services ul {
   list-style: none;
}

.footer-links ul li,
.footer-services ul li {
   margin-bottom: 10px;
}

.footer-links ul li a,
.footer-services ul li {
   color: var(--text-color);
   text-decoration: none;
   transition: color 0.3s ease;
   font-size: 16px;
}

.footer-links ul li a:hover {
   color: var(--primary-color);
}

#newsletter-form {
   display: flex;
   margin-top: 15px;
}

#newsletter-form .newslatter-input {
   flex: 1;
   padding: 10px;
   border: none;
   border-radius: 5px 0 0 5px;
   background-color: var(--background-color);
   color: var(--text-color);
   font-size: 16px;
   margin-top: 30px;
   height: 48px;
}
#newsletter-form .cta-button-footer {
   display: inline-block;
   background-color: var(--primary-color);
   color: var(--background-color);
   padding: 12px 30px;
   border-radius: 5px;
   text-decoration: none;
   font-weight: bold;
   transition: background-color 0.3s ease;
   font-size: 18px;
   margin-top: 30px;
   cursor: pointer;
   box-sizing: border-box; 
   border: 2px solid transparent;
}
#newsletter-form .cta-button-footer:hover {
   background-color: var(--hover-color);
   border-color: var(--border-button-color);
}

#newsletter-form button {
   border: none;
   border-radius: 0 5px 5px 0;
   font-size: 16px;
}

.footer-bottom  {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding-top: 20px;
   border-top: 1px solid var(--background-color-footer-line);
}

.footer-bottom p {
   font-size: 14px;
}

.footer-bottom ul {
   display: flex;
   list-style: none;
}

.footer-bottom ul li {
   margin-left: 20px;
}

.footer-bottom ul li a {
   color: var(--text-color);
   text-decoration: none;
   font-size: 14px;
   transition: color 0.3s ease;
}

.footer-bottom ul li a:hover {
   color: var(--primary-color);
}

.footer-bottom .nome-empresa {
   color: var(--primary-color);
   font-weight: bold;
}

/* Scroll-tracking functionality */
.scroll-section {
   position: relative;
}

.scroll-section::before {
   content: '';
   display: block;
   height: 80px; /* Adjust based on your header height */
   margin-top: -80px;
   visibility: hidden;
   pointer-events: none;
}

/* Estilos para as páginas legais */
.legal-content {
   padding-top: 120px;
   padding-bottom: 10px;
   max-width: 800px;
   margin: 0 auto;
   text-align: center;
}

.legal-content h1 {
   font-size: 36px;
   color: var(--primary-color);
   margin-bottom: 10px;
}

.legal-content p {
   margin-bottom: 10px;
   line-height: 1.8;
}

.legal-content section {
   margin-bottom: 10px;
}

.legal-content h2 {
   font-size: 28px;
   color: var(--primary-color);
   margin-bottom: 10px;
}

.legal-content ul {
   list-style-type: none;
   margin-bottom: 10px;
   padding: 0;
}

.legal-content li {
   margin-bottom: 2px;
}

/* Estilos para o banner de cookies */
.cookie-banner {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   background-color: var(--accent-color);
   color: var(--text-color);
   padding: 20px;
   text-align: center;
   z-index: 1000;
   display: none;
   font-size: 16px;
}

.cookie-banner.show {
   display: block;
}

.cookie-banner p {
   margin-bottom: 15px;
}

.cookie-banner button {
   background-color: var(--primary-color);
   color: var(--background-color);
   border: none;
   padding: 10px 20px;
   cursor: pointer;
   border-radius: 4px;
   font-weight: bold;
   transition: background-color 0.3s ease;
   font-size: 16px;
}

.cookie-banner button:hover {
   background-color: var(--hover-color);
}

/* Smooth Scroll */
html {
   scroll-behavior: smooth;
}

/* Responsividade */
@media (max-width: 768px) {
   body {
       font-size: 16px;
   }

   .menu-toggle {
       display: block;
   }

   nav {
       display: none;
       position: absolute;
       top: 80px;
       left: 0;
       width: 100%;
       background-color: var(--background-color);
       box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
   }

   nav.active {
       display: block;
   }

   nav ul {
       flex-direction: column;
   }

   nav ul li {
       margin: 0;
       text-align: center;
   }

   nav ul li a {
       display: block;
       padding: 15px;
   }

   .hero h1 {
       font-size: 36px;
   }

   .hero p {
       font-size: 18px;
   }

   .about-content {
       flex-direction: column;
   }

   .contact-content {
       flex-direction: column;
   }

   .footer-bottom {
       flex-direction: column;
       text-align: center;
   }

   .footer-bottom ul {
       margin-top: 15px;
   }

   .footer-bottom ul li {
       margin: 0 10px;
   }

   .footer-newsletter {
      padding: 15px 20px;
   }

   .legal-content {
       padding-top: 100px;
       /* padding-bottom: 20px; */
   }

   .legal-content h1 {
       font-size: 28px;
   }

   .legal-content h2 {
       font-size: 24px;
   }
}


/* Estilos para animações AOS */
[data-aos] {
   pointer-events: none;
}

[data-aos].aos-animate {
   pointer-events: auto;
}

@media screen and (max-width: 768px) {
   [data-aos] {
       pointer-events: auto;
   }
}

/* WhatsApp Button */
.whatsapp-button {
   position: fixed;
   bottom: 20px;
   right: 20px;
   background-color: #25D366;
   color: #ffffff;
   border-radius: 50%;
   width: 60px;
   height: 60px;
   display: flex;
   justify-content: center;
   align-items: center;
   text-decoration: none;
   box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
   transition: all 0.3s ease;
   z-index: 1000;
}

.whatsapp-button:hover {
   background-color: #128C7E;
   transform: scale(1.1);
}

.whatsapp-button i {
   font-size: 30px;
}

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

/* Mobile responsiveness */
@media screen and (max-width: 768px) {
   .whatsapp-button {
      width: 50px;
      height: 50px;
      bottom: 15px;
      right: 15px;
   }

   .whatsapp-button i {
      font-size: 24px;
   }
}