html, body { 
      max-width: 100%; 
      overflow-x: hidden;
      scroll-behavior: smooth;
    }

    [data-aos] { overflow-x: clip; }
    #sobre, #galeria { overflow-x: clip; }

    :root{
      --color-primary: #38A169;
      --color-secondary: #2F855A;
      --color-text-dark: #2D3748;
      --color-text-light: #4A5568;
      --color-background-light: #FDFDFD;
      --color-card-bg: #FFFFFF;
      --color-footer-bg: #EAF0EB;
      --color-accent-yellow: #F6E05E;
      --color-accent-blue: #63B3ED;
      --navbar-height: 80px;
    }

    body{
      font-family: 'Raleway', sans-serif;
      background-color: var(--color-background-light);
      color: var(--color-text-light);
      padding-top: var(--navbar-height);
    }
    
    h1, h2, h3, h4, h5, h6{ 
      font-family: 'Playfair Display', serif; 
      color: var(--color-text-dark); 
    }

    .header-sticky{ 
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background-color: rgba(255, 255, 255, 0.98);
      backdrop-filter: blur(10px);
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
      height: var(--navbar-height);
      display: flex; 
      align-items: center; 
      justify-content: space-between; 
      padding: 0 2rem;
      transition: all 0.3s ease;
    }

    .header-sticky.scrolled {
      box-shadow: 0 6px 25px rgba(0, 0, 0, 0.12);
      background-color: rgba(255, 255, 255, 1);
    }

    .header-sticky .logo-container {
        height: 100%; 
        display: flex;
        align-items: center;
        padding: 0.5rem 0;
    }
    
    .header-sticky .logo-container img {
        height: 80px;
        max-height: 130%;
        width: auto;
        object-fit: contain;
        transition: transform 0.3s ease;
    }

    .header-sticky .logo-container:hover img {
        transform: scale(1.05);
    }

    .nav-link {
      position: relative;
      color: var(--color-text-dark);
      text-decoration: none;
      font-weight: 500;
      transition: color 0.3s ease;
    }

    .nav-link::after {
      content: '';
      position: absolute;
      bottom: -5px;
      left: 0;
      width: 0;
      height: 2px;
      background-color: var(--color-primary);
      transition: width 0.3s ease;
    }

    .nav-link:hover {
      color: var(--color-primary);
    }

    .nav-link:hover::after {
      width: 100%;
    }

    @keyframes pulse-glow {
      0% { box-shadow: 0 4px 15px rgba(56, 161, 105, 0.3); }
      50% { box-shadow: 0 6px 25px rgba(56, 161, 105, 0.6); }
      100% { box-shadow: 0 4px 15px rgba(56, 161, 105, 0.3); }
    }
    
    .cta-button{
      background-color: var(--color-primary);
      color: #fff;
      padding: 0.75rem 2rem;
      border-radius: 2rem;
      font-weight: 600;
      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      position: relative;
      overflow: hidden;
      z-index: 1;
      animation: pulse-glow 2.5s infinite ease-in-out;
      text-decoration: none;
      display: inline-block;
    }
    
    .cta-button:hover{ 
      background-color: var(--color-secondary); 
      box-shadow: 0 6px 20px rgba(56, 161, 105, 0.4); 
      transform: translateY(-2px); 
      animation: none; 
    }
    
    .cta-button::after{ 
      content: '';
      position: absolute;
      top: 0;
      left: -100%;
      width: 100%;
      height: 100%;
      background: rgba(255, 255, 255, 0.2);
      transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
      transform: skewX(-20deg);
      z-index: -1;
    }
    
    .cta-button:hover::after{ 
      left: 100%; 
    }

    .text-highlight{ 
      color: var(--color-primary); 
    }
    
    .card-bg{ 
      background: var(--color-card-bg); 
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); 
      transition: 0.3s; 
    }
    
    .card-bg:hover{ 
      transform: translateY(-8px); 
      box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12); 
    }
    
    .footer-bg{ 
      background: var(--color-footer-bg); 
      color: var(--color-text-dark); 
    }

    .hero-section{
      position: relative;
      min-height: 85vh;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: #fff;
      padding: 4rem 1.5rem 2rem;
      overflow: hidden;
      margin-top: calc(-1 * var(--navbar-height));
    }
    
    .hero-slider-inner{ 
      position: absolute; 
      top: 0; 
      left: 0; 
      height: 100%; 
      width: 300%; 
      display: flex; 
      transition: transform 1.2s cubic-bezier(0.7, 0, 0.3, 1); 
      z-index: -2; 
    }
    
    .hero-slide{ 
      width: 33.3333%; 
      height: 100%; 
      background-size: cover; 
      background-position: center; 
      background-repeat: no-repeat; 
    }
    
    .hero-overlay{ 
      position: absolute; 
      inset: 0; 
      background: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.65)); 
      z-index: -1; 
    }
    
    .hero-content{ 
      position: relative; 
      z-index: 1; 
      max-width: 900px; 
      margin: 0 auto; 
    }
    
    .hero-dots{ 
      position: absolute; 
      bottom: 1.5rem; 
      left: 50%; 
      transform: translateX(-50%); 
      display: flex; 
      gap: 0.6rem; 
      z-index: 2; 
    }
    
    .hero-dot{ 
      width: 10px;
      height: 10px;
      border-radius: 9999px;
      background: rgba(255, 255, 255, 0.55);
      border: 2px solid transparent;
      transition: 0.3s;
      cursor: pointer; 
    }
    
    .hero-dot.active, .hero-dot:hover{ 
      background: #fff;
      border-color: rgba(255, 255, 255, 0.7); 
      transform: scale(1.05); 
    }
    
    .text-shadow{ 
      text-shadow: 0 2px 5px rgba(0, 0, 0, 0.6); 
    }
    
    .gallery-item{ 
      position: relative; 
      overflow: hidden; 
      border-radius: 0.75rem; 
      cursor: pointer; 
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); 
    }
    
    .gallery-item img{ 
      transition: transform 0.5s ease; 
      filter: brightness(0.9); 
    }
    
    .gallery-item:hover img{ 
      transform: scale(1.05); 
      filter: brightness(1); 
    }
    
    .gallery-item::after{ 
      content: '+'; 
      position: absolute; 
      inset: auto; 
      top: 50%; 
      left: 50%; 
      transform: translate(-50%, -50%); 
      font-size: 3rem; 
      color: #fff; 
      opacity: 0; 
      transition: opacity 0.3s; 
      text-shadow: 0 0 10px rgba(0, 0, 0, 0.5); 
    }
    
    .gallery-item:hover::after{ 
      opacity: 1; 
    }

    .section-heading-underline{ 
      position: relative; 
      display: inline-block; 
      padding-bottom: 0.5rem; 
    }
    
    .section-heading-underline::after{ 
      content: ''; 
      position: absolute; 
      left: 50%; 
      bottom: 0; 
      transform: translateX(-50%); 
      width: 80px; 
      height: 3px; 
      background: var(--color-primary); 
      border-radius: 9999px; 
    }

    section[id]{ 
      scroll-margin-top: calc(var(--navbar-height) + 1rem); 
    }

    #mobile-menu {
      position: fixed;
      inset: 0;
      background: white;
      z-index: 999;
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2rem;
    }

    #mobile-menu.active {
      display: flex;
    }

    .mobile-link {
      font-size: 1.5rem;
      font-weight: 500;
      color: var(--color-text-dark);
      text-decoration: none;
      transition: color 0.3s ease;
    }

    .mobile-link:hover {
      color: var(--color-primary);
    }

    #hamburger-btn {
      display: none;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0.5rem;
      z-index: 1001;
    }

    @media (max-width: 768px) {
      #hamburger-btn {
        display: block;
      }

      .header-sticky {
        padding: 0 1rem;
      }

      .header-sticky .logo-container img {
        height: 60px;
      }

      body {
        padding-top: 70px;
      }

      .header-sticky {
        height: 70px;
      }

      :root {
        --navbar-height: 70px;
      }
    }

    #lightbox {
      position: fixed;
      inset: 0;
      background-color: rgba(0, 0, 0, 0.9);
      z-index: 9999;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    #lightbox.active {
      display: flex;
      opacity: 1;
    }

    #lightbox-close {
      position: absolute;
      top: 1rem;
      right: 2rem;
      color: white;
      font-size: 3rem;
      font-weight: bold;
      cursor: pointer;
      z-index: 10000;
      background: none;
      border: none;
      transition: transform 0.2s ease;
    }

    #lightbox-close:hover {
      transform: scale(1.1);
    }

    #lightbox-img {
      max-width: 90vw;
      max-height: 90vh;
      width: auto;
      height: auto;
      object-fit: contain;
      border-radius: 0.5rem;
    }

    ::-webkit-scrollbar{ 
      width: 8px; 
    }
    
    ::-webkit-scrollbar-track{ 
      background: var(--color-footer-bg); 
    }
    
    ::-webkit-scrollbar-thumb{ 
      background: var(--color-primary); 
      border-radius: 10px; 
    }
    
    ::-webkit-scrollbar-thumb:hover{ 
      background: var(--color-secondary); 
    }