*, *::before, *::after { box-sizing: border-box; }
    html { overflow-x: hidden; }
    body { font-family: 'Lato', sans-serif; overflow-x: hidden; }

    /* Scrollbar */
    ::-webkit-scrollbar { width: 8px; }
    ::-webkit-scrollbar-track { background: #111827; }
    ::-webkit-scrollbar-thumb { background: #DC2626; border-radius: 4px; }

    /* Hero parallax */
    .hero-parallax { background-attachment: fixed; }
    @media (max-width: 768px) { .hero-parallax { background-attachment: scroll; } }

    /* Glassmorphism card */
    .glass-card {
      background: rgba(255,255,255,0.08);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,0.12);
    }

    /* Gradient text */
    .gradient-text {
      background: linear-gradient(135deg, #DC2626, #f87171);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    /* Glow effect */
    .glow-red { box-shadow: 0 0 30px rgba(220,38,38,0.3); }
    .hover-glow:hover { box-shadow: 0 0 40px rgba(220,38,38,0.4); }

    /* Counter animation */
    .counter-value { transition: all 0.3s ease; }

    /* Service card hover */
    .service-card { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
    .service-card:hover { transform: translateY(-12px); }
    .service-card:hover .service-img { transform: scale(1.08); }
    .service-img { transition: transform 0.6s ease; }

    /* Gallery image */
    .gallery-item { overflow: hidden; cursor: pointer; }
    .gallery-item img { transition: transform 0.5s ease; }
    .gallery-item:hover img { transform: scale(1.1); }
    .gallery-item .gallery-overlay {
      opacity: 0; transition: opacity 0.4s ease;
      background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    }
    .gallery-item:hover .gallery-overlay { opacity: 1; }

    /* FAQ accordion */
    .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease, padding 0.4s ease; }
    .faq-item.active .faq-answer { max-height: 300px; padding-top: 12px; padding-bottom: 4px; }
    .faq-item.active .faq-icon { transform: rotate(180deg); }
    .faq-icon { transition: transform 0.3s ease; }

    /* Timeline */
    .timeline-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: linear-gradient(to bottom, #DC2626, #f8b4b4); transform: translateX(-50%); }
    @media (max-width: 768px) { .timeline-line { left: 24px; } }

    /* Floating animation */
    @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
    .animate-float { animation: float 3s ease-in-out infinite; }

    /* Pulse ring */
    @keyframes pulseRing { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.8); opacity: 0; } }
    .pulse-ring::after {
      content: ''; position: absolute; inset: -6px; border-radius: 50%;
      border: 2px solid #DC2626; animation: pulseRing 1.5s ease-out infinite;
    }

    /* Brand marquee */
    @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
    .marquee-track { animation: marquee 30s linear infinite; }
    .marquee-track:hover { animation-play-state: paused; }

    /* Swiper Hero Carousel */
    .hero-swiper { width: 100%; height: 85vh; min-height: 540px; }
    .hero-swiper .swiper-slide {
      position: relative; overflow: hidden;
      display: flex; align-items: center; justify-content: center;
    }
    .hero-swiper .slide-bg {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      transition: transform 6s ease;
    }
    .hero-swiper .swiper-slide-active .slide-bg { transform: scale(1.08); }
    .hero-swiper .slide-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(10,15,26,0.85) 0%, rgba(10,15,26,0.6) 40%, rgba(153,16,9,0.35) 100%);
    }
    .hero-swiper .slide-content {
      position: relative; z-index: 10; text-align: center;
      max-width: 900px; padding: 0 1.5rem;
      opacity: 0; transform: translateY(40px);
      transition: all 0.8s cubic-bezier(0.4,0,0.2,1) 0.3s;
    }
    .hero-swiper .swiper-slide-active .slide-content {
      opacity: 1; transform: translateY(0);
    }
    .hero-swiper .swiper-button-next,
    .hero-swiper .swiper-button-prev {
      width: 52px; height: 52px; border-radius: 50%;
      background: rgba(255,255,255,0.12); backdrop-filter: blur(8px);
      border: 1px solid rgba(255,255,255,0.2);
      transition: all 0.3s ease;
    }
    .hero-swiper .swiper-button-next:hover,
    .hero-swiper .swiper-button-prev:hover {
      background: rgba(220,38,38,0.8); border-color: rgba(220,38,38,0.9);
    }
    .hero-swiper .swiper-button-next::after,
    .hero-swiper .swiper-button-prev::after {
      font-size: 18px; font-weight: bold; color: #fff;
    }
    .hero-swiper .swiper-pagination-bullet {
      width: 12px; height: 12px; background: rgba(255,255,255,0.4);
      opacity: 1; transition: all 0.3s ease;
    }
    .hero-swiper .swiper-pagination-bullet-active {
      background: #DC2626; width: 36px; border-radius: 6px;
    }

    /* Hero Mobile */
    @media (max-width: 767px) {
      .hero-swiper {
        height: auto;
        min-height: 0;
      }
      .hero-swiper .swiper-slide {
        min-height: calc(100svh - 80px);
        padding: 2.5rem 1rem 5rem;
        align-items: center;
      }
      /* Esconde setas laterais no mobile — navegação fica nos bullets */
      .hero-swiper .swiper-button-next,
      .hero-swiper .swiper-button-prev {
        display: none !important;
      }
      /* Bullets sobem para não sobrepostos */
      .hero-swiper .swiper-pagination {
        bottom: 1rem !important;
      }
      /* Textos menores no mobile para caber na dobra */
      .hero-swiper .slide-content h2 {
        font-size: 1.75rem !important;
        line-height: 1.2 !important;
        margin-bottom: 0.75rem !important;
      }
      .hero-swiper .slide-content p {
        font-size: 0.95rem !important;
        margin-bottom: 1.25rem !important;
      }
      .hero-swiper .slide-content > div:first-child {
        margin-bottom: 0.75rem !important;
        font-size: 0.75rem !important;
        padding: 0.35rem 1rem !important;
      }
      .hero-swiper .slide-content .flex.flex-col {
        gap: 0.625rem !important;
      }
      .hero-swiper .slide-content a {
        padding: 0.75rem 1.5rem !important;
        font-size: 0.9rem !important;
      }
    }

    /* Reveal animations */
    .reveal-up { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
    .reveal-up.revealed { opacity: 1; transform: translateY(0); }

    /* Header sempre fixed */
    #mainHeader {
      position: fixed !important;
      top: 0;
      left: 0;
      right: 0;
      z-index: 50;
    }

    /* Mobile menu */
    .mobile-menu { transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
    .mobile-menu.open { transform: translateX(0); }

    /* Input focus */
    .form-input:focus { border-color: #DC2626; box-shadow: 0 0 0 3px rgba(220,38,38,0.15); }

    /* Shine effect on CTA */
    .btn-shine { position: relative; overflow: hidden; }
    .btn-shine::after {
      content: ''; position: absolute; top: -50%; left: -60%; width: 40%; height: 200%;
      background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
      transform: rotate(25deg); transition: left 0.6s ease;
    }
    .btn-shine:hover::after { left: 120%; }

    /* Section divider */
    .section-divider {
      width: 60px; height: 4px; border-radius: 2px;
      background: linear-gradient(90deg, #DC2626, #f87171);
    }

    /* Garante visibilidade do nav desktop independente do Tailwind */
    @media (min-width: 1024px) {
      #desktopNav { display: flex !important; align-items: center; }
    }

    /* ===== Desktop Nav — Professional Style ===== */

    /* Nav link base */
    .nav-link {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 8px 14px;
      font-size: 14px;
      font-weight: 600;
      letter-spacing: 0.03em;
      color: #374151;
      text-transform: uppercase;
      text-decoration: none;
      transition: color 0.25s ease;
    }

    /* Underline deslizante */
    .nav-link::after {
      content: '';
      position: absolute;
      bottom: 2px;
      left: 14px;
      right: 14px;
      height: 2px;
      background: #DC2626;
      border-radius: 2px;
      transform: scaleX(0);
      transform-origin: center;
      transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .nav-link:hover { color: #DC2626; }
    .nav-link:hover::after { transform: scaleX(1); }

    /* Estado ativo */
    .nav-link.nav-active {
      color: #DC2626;
    }
    .nav-link.nav-active::after {
      transform: scaleX(1);
    }

    /* Separador vertical entre links */
    .nav-separator {
      width: 1px;
      height: 18px;
      background: #e5e7eb;
      margin: 0 4px;
    }

    /* Botão CTA do nav */
    .nav-cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 10px 22px;
      background: #DC2626;
      color: #fff !important;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      border-radius: 6px;
      text-decoration: none;
      transition: background 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
      box-shadow: 0 2px 12px rgba(220,38,38,0.35);
    }
    .nav-cta:hover {
      background: #b91c1c;
      transform: translateY(-1px);
      box-shadow: 0 6px 20px rgba(220,38,38,0.45);
    }
    .nav-cta::after { display: none !important; }

    /* Telefone no nav */
    .nav-phone {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-size: 13px;
      font-weight: 700;
      color: #374151;
      text-decoration: none;
      letter-spacing: 0.02em;
      padding: 8px 12px;
      border: 1.5px solid #e5e7eb;
      border-radius: 6px;
      transition: border-color 0.25s ease, color 0.25s ease;
    }
    .nav-phone:hover { border-color: #DC2626; color: #DC2626; }
    .nav-phone i { color: #DC2626; font-size: 12px; }

    .grecaptcha-badge {
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
  }

    /* ===== Conteúdo rico do CMS (Editor WYSIWYG) ===== */
    .rich-content { color: #374151; font-size: 1rem; line-height: 1.75; }

    .rich-content h1,
    .rich-content h2,
    .rich-content h3,
    .rich-content h4,
    .rich-content h5,
    .rich-content h6 {
      font-weight: 800;
      color: #111827;
      line-height: 1.3;
      margin-top: 1.75em;
      margin-bottom: 0.6em;
    }
    .rich-content h1 { font-size: 2rem; }
    .rich-content h2 { font-size: 1.6rem; }
    .rich-content h3 { font-size: 1.35rem; }
    .rich-content h4 { font-size: 1.15rem; }
    .rich-content h5,
    .rich-content h6 { font-size: 1rem; }

    .rich-content p { margin-bottom: 1.1em; }

    .rich-content ul,
    .rich-content ol {
      padding-left: 1.6em;
      margin-bottom: 1.1em;
    }
    .rich-content ul { list-style-type: disc; }
    .rich-content ol { list-style-type: decimal; }
    .rich-content li { margin-bottom: 0.4em; }
    .rich-content li > ul,
    .rich-content li > ol { margin-top: 0.3em; margin-bottom: 0.3em; }

    .rich-content strong,
    .rich-content b { font-weight: 700; color: #111827; }
    .rich-content em,
    .rich-content i { font-style: italic; }

    .rich-content a {
      color: #DC2626;
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: color 0.2s;
    }
    .rich-content a:hover { color: #b91c1c; }

    .rich-content blockquote {
      border-left: 4px solid #DC2626;
      padding: 0.75em 1.25em;
      margin: 1.5em 0;
      background: #fef2f2;
      color: #374151;
      border-radius: 0 8px 8px 0;
      font-style: italic;
    }

    .rich-content hr {
      border: none;
      border-top: 2px solid #e5e7eb;
      margin: 2em 0;
    }

    .rich-content img {
      max-width: 100%;
      height: auto;
      border-radius: 8px;
      margin: 1em 0;
    }

    .rich-content table {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 1.5em;
      font-size: 0.95rem;
    }
    .rich-content th,
    .rich-content td {
      border: 1px solid #e5e7eb;
      padding: 0.6em 0.9em;
      text-align: left;
    }
    .rich-content th {
      background: #f3f4f6;
      font-weight: 700;
      color: #111827;
    }
    .rich-content tr:nth-child(even) td { background: #f9fafb; }