/* ========================================
   MELHORIAS DE RESPONSIVIDADE MOBILE
   ======================================== */

/* Melhorias gerais para mobile */
@media (max-width: 480px) {
    /* Ajusta o container para telas muito pequenas */
    .container {
        padding: 0 15px;
    }

    /* Navbar melhorada */
    .navbar {
        padding: 12px 0;
    }

    .nav-container {
        padding: 0 15px;
    }

    .logo img {
        height: 50px;
    }

    /* Hero melhorado */
    .hero {
        padding: 100px 15px 30px;
        min-height: auto;
    }

    .hero-content h1 {
        font-size: 1.5rem;
        line-height: 1.2;
    }

    .hero-subtitle {
        font-size: 1rem;
    }

    .hero-text {
        font-size: 0.95rem;
    }

    .cta-main,
    .cta-secondary {
        padding: 14px 24px;
        font-size: 0.9rem;
        width: 100%;
    }

    .location-text {
        font-size: 0.85rem;
        margin-top: 15px;
    }

    .hero-banner-img {
        max-width: 320px;
        transform: scale(1.35);
    }

    /* Services grid */
    .services-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .service-card {
        border-radius: 12px;
    }

    .services-header-refined {
        gap: 20px;
    }

    .header-left h2 {
        font-size: 1.5rem;
    }

    .header-right p {
        font-size: 0.95rem;
    }

    /* Video grid */
    .video-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .video-card {
        aspect-ratio: 9 / 16;
        border-radius: 16px;
    }

    /* Footer */
    .footer-top {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .footer-brand h4,
    .footer-links h4,
    .footer-contact-info h4,
    .footer-map h4 {
        font-size: 1rem;
    }

    .footer-brand p,
    .footer-links a,
    .footer-contact-info p {
        font-size: 0.9rem;
    }

    .footer-map iframe {
        height: 250px;
    }

    /* FAQ */
    .faq-item summary {
        font-size: 0.95rem;
        padding: 12px 15px;
    }

    .faq-item p {
        font-size: 0.9rem;
        padding: 0 15px 15px;
    }

    /* Seções gerais */
    .section-title h2 {
        font-size: 1.8rem;
    }

    .section-subtitle {
        font-size: 1rem;
    }

    /* Botão WhatsApp - Ajustes adicionais */
    .floating-wa {
        bottom: 15px;
        right: 15px;
        width: 50px;
        height: 50px;
        font-size: 24px;
    }

    /* Marquee */
    .marquee-track span {
        font-size: 0.9rem;
        padding: 0 15px;
    }

    /* Método cards */
    .method-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .method-card {
        padding: 30px 20px;
    }

    /* Gallery grid */
    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* About section */
    .about-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .about-info h2 {
        font-size: 1.8rem;
    }

    /* Process section */
    .process-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .process-step {
        padding: 25px 20px;
    }

    .process-step h3 {
        font-size: 1.1rem;
    }

    /* Why choose section */
    .why-choose-section {
        padding: 40px 15px;
    }

    .why-choose-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* Final CTA */
    .final-cta-section {
        padding: 40px 15px;
    }

    .final-cta-section h2 {
        font-size: 1.6rem;
    }

    .final-cta-section p {
        font-size: 0.95rem;
    }

    .cta-final {
        padding: 14px 28px;
        font-size: 0.9rem;
    }
}

/* Tablets pequenos (481px - 768px) */
@media (min-width: 481px) and (max-width: 768px) {
    .container {
        padding: 0 20px;
    }

    .hero {
        padding: 120px 20px 40px;
    }

    .hero-content h1 {
        font-size: 2rem;
    }

    .hero-banner-img {
        max-width: 380px;
        transform: scale(1.35);
    }

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .video-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .footer-top {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    .method-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .process-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .why-choose-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .floating-wa {
        bottom: 20px;
        right: 20px;
        width: 55px;
        height: 55px;
        font-size: 26px;
    }
}

/* Tablets grandes e acima (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .video-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .method-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .why-choose-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Desktop (1025px+) */
@media (min-width: 1025px) {
    .services-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .video-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .method-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .process-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .why-choose-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Melhorias gerais de overflow e padding */
* {
    -webkit-tap-highlight-color: transparent;
}

/* Previne scroll horizontal em mobile */
body {
    overflow-x: hidden;
}

/* Melhora a legibilidade em telas pequenas */
@media (max-width: 480px) {
    h1, h2, h3, h4, h5, h6 {
        word-break: break-word;
    }

    p, a, span {
        word-break: break-word;
        overflow-wrap: break-word;
    }

    /* Garante que inputs e buttons sejam clicáveis */
    button, a, input, textarea, select {
        min-height: 44px;
        min-width: 44px;
    }
}

/* Melhora a experiência de toque */
@media (hover: none) and (pointer: coarse) {
    .floating-wa:hover {
        transform: scale(1.05) translateY(-3px);
    }

    .service-card:hover {
        transform: translateY(-4px);
    }

    .method-card:hover {
        transform: translateY(-4px);
    }

    .video-card:hover {
        transform: translateY(-4px) scale(1.01);
    }
}
