/**
 * MOVEFLOOR - Correções de Responsividade
 * Fixes para garantir boa visualização em todos os dispositivos.
 * Este arquivo complementa o style.css principal.
 */

/* ==========================================================================
   MOBILE FIRST FIXES (< 576px)
   ========================================================================== */

@media (max-width: 575.98px) {
    /* Hero Section - empilha colunas no mobile */
    .home > .container > .row {
        flex-direction: column;
    }

    .home .col-7,
    .home .col-5 {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .home .home-content {
        text-align: center;
        padding: 2rem 1rem;
    }

    .home .home-content h1 {
        font-size: 1.6rem;
        line-height: 1.3;
    }

    .home .home-sub .row {
        flex-direction: column;
        align-items: center;
    }

    .home .home-sub .col-12.col-lg-5,
    .home .home-sub .col-12.col-lg-7 {
        text-align: center;
        width: 100%;
    }

    .home .home-sub p {
        font-size: 0.95rem;
        margin-top: 1rem;
    }

    /* Carrossel vertical - esconder no mobile para performance */
    .home .carousel-vertical {
        display: none;
    }

    /* Footer da home section */
    .home-footer .home-footer-content {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }

    .home-footer .home-footer-content h3 {
        font-size: 1.2rem;
    }

    /* Header/Navbar */
    .nav-header {
        top: 8px;
        padding: 0 8px;
    }

    .nav-header .navbar {
        height: 70px;
        padding: 8px 12px;
        border-radius: 35px;
    }

    .nav-header .navbar .navbar-brand img {
        width: 120px;
    }

    .nav-header .navbar .navbar-collapse {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(255, 255, 255, 0.98);
        z-index: 1050;
        padding: 100px 2rem 2rem;
        flex-direction: column;
        align-items: center;
    }

    .nav-header .navbar .navbar-nav {
        flex-direction: column;
        width: 100%;
        text-align: center;
        font-size: 1.2rem;
    }

    .nav-header .navbar .navbar-nav li {
        margin: 10px 0;
    }

    /* Botões */
    .btn-brownie {
        width: 100%;
        text-align: center;
        padding: 1rem 2rem;
        font-size: 1rem;
    }

    .btn-plus {
        width: 100%;
        text-align: center;
        margin: 10px 0 !important;
        padding: 1rem 2rem;
    }

    .btn-return {
        width: 100%;
        text-align: center;
        padding: 1rem 2rem;
        font-size: 1rem;
    }

    /* Budget Form */
    .budget .container {
        padding: 1rem;
    }

    .budget .budget-title h2 {
        font-size: 1.3rem;
    }

    .budget .budget-enviroment .enviroment-cards {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
    }

    .budget .budget-enviroment .enviroment-cards .card-enviroment {
        padding: 0.75rem 0.5rem;
    }

    .budget .budget-enviroment .enviroment-cards .card-enviroment img {
        width: 30px;
        height: 30px;
    }

    .budget .budget-enviroment .enviroment-cards .card-enviroment p {
        font-size: 0.7rem;
    }

    /* Toppings grid */
    .budget-toppings .topping-cards {
        grid-template-columns: 1fr;
    }

    /* Footer */
    .main-footer .row {
        flex-direction: column;
    }

    .main-footer .col-12.col-sm-5,
    .main-footer .col-12.col-sm-7 {
        width: 100%;
        text-align: center;
    }

    .main-footer .footer-content .row {
        flex-direction: column;
    }

    .main-footer .footer-content .col-12.col-md-6,
    .main-footer .footer-content .col-12.col-md-3 {
        width: 100%;
        margin-bottom: 1.5rem;
    }

    .footer-copyright {
        flex-direction: column;
        text-align: center;
        gap: 0.5rem;
    }

    /* FAQ */
    .faq-section .faq-container {
        padding: 1rem;
    }

    /* WhatsApp button */
    .wpp-button {
        bottom: 15px;
        right: 15px;
    }

    .wpp-button img {
        width: 50px;
        height: 50px;
    }

    /* Social / Feed section */
    .social .social-content {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ==========================================================================
   TABLET PORTRAIT (576px - 768px)
   ========================================================================== */

@media (min-width: 576px) and (max-width: 767.98px) {
    .home > .container > .row {
        flex-direction: column;
    }

    .home .col-7,
    .home .col-5 {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .home .home-content {
        text-align: center;
        padding: 2rem;
    }

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

    .home .carousel-vertical {
        max-height: 300px;
        overflow: hidden;
    }

    .nav-header .navbar .navbar-nav {
        font-size: 1.1rem;
    }

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

    .main-footer .footer-content .row {
        flex-wrap: wrap;
    }

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

/* ==========================================================================
   TABLET LANDSCAPE (768px - 1024px)
   ========================================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
    .home .home-content h1 {
        font-size: 2rem;
    }

    .home .col-7 {
        width: 60%;
        flex: 0 0 60%;
    }

    .home .col-5 {
        width: 40%;
        flex: 0 0 40%;
    }

    .nav-header {
        max-width: 95%;
    }

    .nav-header .navbar .navbar-nav {
        font-size: 1rem;
    }

    .nav-header .navbar .navbar-nav li {
        margin: 0 6px;
    }

    .budget .budget-enviroment .enviroment-cards {
        grid-template-columns: repeat(5, 1fr);
    }
}

/* ==========================================================================
   SMALL DESKTOP (1025px - 1200px)
   ========================================================================== */

@media (min-width: 1025px) and (max-width: 1200px) {
    .home {
        height: 100vh;
        min-height: 500px;
    }

    .home .home-content h1 {
        margin-top: 25vh;
        font-size: 3rem;
        letter-spacing: -2px;
    }

    .home .home-content .home-sub {
        margin: 30px 0;
    }

    .home .home-content .home-sub p {
        font-size: 1.1rem;
    }

    .home .carousel-vertical {
        height: 85vh;
    }

    .home .carousel-vertical .home-box1,
    .home .carousel-vertical .home-box2 {
        width: 180px;
        margin: 12px 0;
    }

    .home .carousel-vertical .home-box1 {
        height: 160px;
    }

    .home .carousel-vertical .home-box2 {
        height: 260px;
    }

    .nav-header .navbar .navbar-nav {
        font-size: 1.1rem;
    }

    .nav-header .navbar .navbar-nav li {
        margin: 0 8px;
    }
}

/* ==========================================================================
   NOTEBOOK / LAPTOP (1201px - 1440px)
   ========================================================================== */

@media (min-width: 1201px) and (max-width: 1440px) {
    .home {
        height: 100vh;
        min-height: 550px;
    }

    .home .home-content h1 {
        margin-top: 28vh;
        font-size: 3.5rem;
        letter-spacing: -3px;
    }

    .home .home-content .home-sub {
        margin: 35px 0;
    }

    .home .home-content .home-sub p {
        font-size: 1.15rem;
    }

    .home .carousel-vertical {
        height: 88vh;
    }

    .home .carousel-vertical .home-box1,
    .home .carousel-vertical .home-box2 {
        width: 200px;
        margin: 15px 0;
    }

    .home .carousel-vertical .home-box1 {
        height: 180px;
    }

    .home .carousel-vertical .home-box2 {
        height: 300px;
    }

    .nav-header {
        max-width: 78rem;
    }

    .nav-header .navbar .navbar-nav {
        font-size: 1.2rem;
    }
}

/* ==========================================================================
   EXTRA LARGE (> 1440px)
   ========================================================================== */

@media (min-width: 1441px) {
    .home > .container {
        max-width: 1400px;
    }

    .nav-header {
        max-width: 90rem;
    }
}

/* ==========================================================================
   PRINT
   ========================================================================== */

@media print {
    .nav-header,
    .wpp-button,
    .promotion,
    #cache-consent,
    .home-footer {
        display: none !important;
    }

    body {
        font-size: 12pt;
    }
}

/* ==========================================================================
   UTILITIES - Responsive helpers
   ========================================================================== */

/* Esconder carrossel em telas pequenas (melhor performance) */
@media (max-width: 767.98px) {
    .carousel-vertical {
        display: none !important;
    }
}

/* Garantir que formulário de orçamento ocupa tela toda no mobile */
@media (max-width: 575.98px) {
    .budget-form,
    .budget-content {
        width: 100% !important;
        padding: 0 1rem !important;
    }

    .budget .form-control {
        font-size: 16px; /* Previne zoom no iOS */
    }

    /* Select inputs não devem ter zoom */
    .budget select.form-control,
    .budget .select-control {
        font-size: 16px;
    }
}

/* Fix para imagens que estouram o container */
img {
    max-width: 100%;
    height: auto;
}

/* Fix overflow horizontal */
html, body {
    overflow-x: hidden;
}

.container {
    max-width: 100%;
}

/* ==========================================================================
   GLOBAL FIXES - Hero + Carousel containment
   ========================================================================== */

/* Redução global de fontes (o CSS original usa sizes muito grandes) */
.home .home-content h1 {
    font-size: clamp(1.8rem, 3.5vw, 3.2rem) !important;
    margin-top: clamp(80px, 25vh, 250px) !important;
}

.home .home-content .home-sub p {
    font-size: clamp(0.9rem, 1.2vw, 1.1rem) !important;
}

.budget .budget-title h2,
.budget h2,
.faq h2,
.faq-header h2 {
    font-size: clamp(1.2rem, 2vw, 1.8rem) !important;
}

.budget .budget-title h3,
.budget h3 {
    font-size: clamp(1rem, 1.8vw, 1.4rem) !important;
}

.home-footer .home-footer-content h3 {
    font-size: 1.1rem !important;
}

.main-footer h2 img {
    max-width: 160px !important;
}

.btn-brownie {
    padding: 1rem 2.5rem !important;
    font-size: 1rem !important;
}

.btn-plus {
    padding: 1rem 2rem !important;
    font-size: 1rem !important;
}

/* Garantir que a home section contenha seus filhos */
.home {
    position: relative;
    overflow: hidden;
}

/* Carrossel não pode ultrapassar a seção */
.home .carousel-vertical {
    position: relative;
    overflow: hidden;
    max-height: 90vh;
}

/* Boxes do carrossel se ajustam ao espaço disponível */
.home .carousel-vertical .home-box1,
.home .carousel-vertical .home-box2 {
    max-width: 100%;
    overflow: hidden;
    border-radius: 15px;
}

.home .carousel-vertical .home-box1 img,
.home .carousel-vertical .home-box2 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 15px;
}

/* H1 responsivo com clamp (funciona em qualquer viewport) */
.home .home-content h1 {
    font-size: clamp(1.8rem, 4vw, 4.5rem);
    margin-top: clamp(100px, 30vh, 300px);
}

/* Footer da home sempre no bottom */
.home .home-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}
