/* CONCLUIDO */
@media (min-width: 1450px) {
    nav.navbar .container,
    .inner_page_header_section .container,
    .black_commitments_section .container,
    .payments_horizontal_section .container,
    .contact_main_section .container,
    .main_footer .container {
        max-width: 1400px;
    }

    .commitments_flex_container .commitment_item:not(:last-child)::after {
        width: 0.5px;
    }

    .budget_data_item {
        padding-left: calc(var(--side-padding) * 0.4);
    }

    /* Remove o padding-right extra para dar espaço ao botão em monitores XL */
    .budget_content_col {
        padding-right: 0 !important;
    }

    /* Limita o texto para forçar a quebra em 2 linhas no botão maior */
    .btn_budget_text {
        max-width: 230px;
    }
}


/* CONCLUIDO */
@media (max-width: 1200px) {
    :root {
        --side-padding: 10vw;
    }

    body {
        overflow: hidden;
    }


    /* ========= MENU ========= */
    .menu .menu_logo {
        max-width: 425px;
    }

    .menu .menu-page-list li a {
        font-size: 2.4rem;
    }


    /* ========= FOOTER ========= */
    .legal_links,
    .design_signature {
        font-size: 0.65rem;
    }


    /* ========= HOMEPAGE ========= */
    .hero_title {
        font-size: 3.2rem;
    }

    /* Empresa */
    .about_graphic {
        margin-right: 2rem !important;
        width: 610px !important;
    }


    /* ========= EMPRESA ========= */
    .commitments_flex_container .commitment_item:not(:last-child)::after {
        width: 0.5px;
    }


    /* ========= SERVIÇOS ========= */
    .service_row_icon_wrapper {
        width: 70px;
        height: 70px;
    }


    /* ========= ORÇAMENTOS ========= */
    .budget_left_top_group {
        margin-bottom: 4rem !important;
    }
     
    .budget_left_content {
        margin-left: 3.3rem;
        padding: 2.5rem 5rem 2.5rem 3rem;
    }

    .budget_data_item {
        padding: 3rem 4rem 5rem calc(var(--side-padding) * 0.5);
    }
}


@media (min-width: 992px) and (max-width: 1200px) {
    .budget_content_col {
        margin-left: 41.66666667% !important;
        padding-right: 2rem !important; 
    }
}


/* CONCLUIDO */
@media (max-width: 992px) {
    nav.navbar .container,
    .inner_page_header_section .container,
    .black_commitments_section .container,
    .payments_horizontal_section .container,
    .contact_main_section .container,
    .main_footer .container {
        max-width: 840px;
    }


    /* ========= NAVBAR ========= */
    .btn_area_reservada {
        padding-right: 11px;
        font-size: 9px;
    }

    .btn_piquete b {
        font-size: 13px;
    }


    /* ========= MENU ========= */
    .menu .menu_wrapper {
        max-width: 700px;
    }

    .menu_logo_container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .menu .close_bttn {
        right: 7rem;
    }

    .menu .menu_logo {
        max-width: 340px;
    }

    .menu .menu-page-list li a {
        font-size: 1.9rem;
    }

    .menu .menu-page-list li a:before {
        --height: 40px;
    }

    
    /* ========= FOOTER ========= */
    .footer_main_logo img {
        width: 340px;
    }

    .row_footer_1 {
        margin-top: 0;
        margin-bottom: 0;
    }

    .custom_legal_links a:not(:last-child)::after {
        display: none;
    }

    .row_footer_3 .design_signature {
        margin-left: -20px;
    }
    
    
    /* ========= HOMEPAGE ========= */
    /* EMPRESA */
    .about_section .container {
        margin-bottom: 3rem;
    }

    .about_text {
        font-size: 2.2rem;
    }

    /* ORÇAMENTOS */
    .budget_content_col {
        padding-right: 0 !important;
    }

    .budget_section {
        padding: 10rem var(--side-padding);
    }
    
    .budget_wrapper {
        align-items: center;
    }
    
    .btn_budget_container {
        max-width: 380px;
    }

    .btn_budget_text {
        font-size: 1.4rem;
    }

    .budget_caption {
        font-size: 1rem;
    }

    /* PIQUETE */
    .piquete_section {
        padding: 7rem 0 6rem 0;
    }

    .piquete_title {
        font-size: 6rem;
    }

    .btn_phone_container {
        height: 100px;
        width: 350px;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .btn_phone_container::before {
        width: 35px;
        left: 20px;
    }
    
    .btn_phone_container .phone_number {
        font-size: 2.3rem;
        line-height: 100px;
    }

    /* ========= EMPRESA ========= */
    /* 1. Container em coluna única */
    .commitments_flex_container {
        flex-direction: column !important;
        gap: 2.5rem !important;
    }

    /* 2. Disposição dos itens */
    .commitments_flex_container .commitment_item {
        width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 2rem !important;
        padding-bottom: 2.5rem !important;
        position: relative !important;
    }

    /* 3. Reaproveitar o ::after animado: passar de vertical para linha horizontal */
    .commitments_flex_container .commitment_item::after {
        display: block !important;
        content: "" !important;
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        top: auto !important;
        width: 100% !important;
        height: 1px !important;
        background-color: rgba(255, 255, 255, 0.2) !important;
        transform-origin: left center !important; 
    }

    /* Ocultar a linha apenas no último item */
    .commitments_flex_container .commitment_item:last-child::after {
        display: none !important;
    }

    /* 4. Ícone e Texto */
    .commitments_flex_container .commitment_icon_wrapper {
        width: 60px !important;
        height: auto !important;
        flex-shrink: 0 !important;
        margin-bottom: 0 !important;
    }

    .commitments_flex_container .commitment_icon {
        width: 100% !important;
        height: auto !important;
    }

    .commitments_flex_container .commitment_item_text {
        margin: 0 !important;
        font-size: 1.15rem !important;
        line-height: 1.4 !important;
        text-align: left !important;
    }

    .statement_section .col-md-6 {
        width: 100% !important;
        max-width: 90% !important;
        flex: 0 0 90% !important;
    }

    .statement_quote_wrapper,
    .statement_text {
        width: 100% !important;
        max-width: 100% !important;
    }


    /* ========= SERVIÇOS ========= */
    /* 1. Dar margem de respiro geral ao container da tabela de serviços */
    .services_table_container {
        padding-left: var(--side-padding) !important;
        padding-right: var(--side-padding) !important;
    }

    /* 2. Limpar offsets e definir largura total na row */
    .service_table_row {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        position: relative !important;
    }

    .service_table_row .offset-md-5 {
        margin-left: 0 !important;
    }

    /* 3. Reajustar a linha divisora (::after) para alinhar da esquerda à direita */
    .service_table_row:not(:last-child)::after {
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
    }

    /* 4. Coluna do Ícone (mantém largura fixa mas sem paddings laterais) */
    .services_table_container .col-1,
    .services_table_container .col-md-1 {
        width: 60px !important;
        max-width: 60px !important;
        flex: 0 0 60px !important;
        padding: 0 !important;
    }

    /* 5. Coluna do Texto com margem/espaçamento maior à esquerda */
    .services_table_container .col-4,
    .services_table_container .col-md-4 {
        width: calc(100% - 60px) !important;
        max-width: calc(100% - 60px) !important;
        flex: 1 1 auto !important;
        padding-left: 3rem !important;
        padding-right: 0 !important;
    }

    .service_table_row {
        padding: 3rem 55px 3rem;
    }

    .service_row_title {
        font-size: 1.7rem;
    }


    /* ========= PAGAMENTOS ========= */
    /* 1. Empilhar as colunas na vertical e remover o gap entre elas */
    .payments_horizontal_section .row {
        flex-direction: column !important;
        gap: 0 !important;
    }

    /* 2. Colunas ocupam 100% da largura útil sem margens exteriores */
    .payments_horizontal_section .col-md-4 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: 0 !important;
    }

    /* 3. Card colado, sem cantos arredondados externos/espaços e alinhado à esquerda */
    .payment_pure_card {
        width: 100% !important;
        height: auto !important;
        padding: 2.5rem 2rem !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        text-align: left !important;
        box-sizing: border-box !important;
    }

    /* 4. Alinhamento dos conteúdos internos */
    .payment_card_icon_box {
        align-self: flex-start !important;
    }

    .payment_card_title,
    .payment_card_caption {
        text-align: left !important;
        width: 100% !important;
        max-width: 100% !important;
    }


    /* ========= CONTACTOS ========= */
    .contact_block_text p {
        font-size: 1rem;
    }
}


/* CONCLUIDO */
@media (max-width: 768px) {
    nav.navbar .container,
    .inner_page_header_section .container,
    .black_commitments_section .container,
    .payments_horizontal_section .container,
    .contact_main_section .container,
    .main_footer .container {
        padding-left: 55px !important;
        padding-right: 55px !important;
    }

    nav.navbar .col-md-12,
    .row_header_texts .col-md-8 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .header_banner_blended {
        /* Puxa a imagem para fora das margens do container */
        margin-left: -25px !important;
        margin-right: -25px !important;
        
        /* Garante que a imagem expande para ocupar o novo espaço */
        width: calc(100% + 50px) !important;
        max-width: none !important;
    }

    .col_header_top_content {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }


    /* ========= NAVBAR ========= */
    nav.navbar .container > .col-md-12 {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* 2. Logo à esquerda */
    nav.navbar img.custom-logo {
        width: auto !important;
        max-width: 160px !important;
        flex: 0 0 auto !important;
        margin-right: auto !important;
    }

    /* 3. Botões de ação ao centro */
    nav.navbar .nav_actions {
        width: auto !important;
        flex: 0 0 auto !important;
        display: flex !important;
        gap: 4px !important;
        margin: 0 10px !important;
    }

    /* Reduzir um bocadinho o tamanho/padding dos botões para não estourarem a linha */
    nav.navbar .nav_actions a {
        padding: 0 13px !important;
        font-size: 0.7rem !important;
        white-space: nowrap !important;
        scale: 0.9 !important;
        transform-origin: center !important;
    }

    /* 4. Ícone do Menu Hambúrguer à direita */
    nav.navbar .col-md-1 {
        width: auto !important;
        flex: 0 0 auto !important;
        margin-left: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
    }


    /* ========= MENU ========= */
    .menu .menu_wrapper {
        max-width: 600px;
    }

    /* 1. Criar o "túnel" de segurança afastando a lista inteira do logótipo */
    .menu .page_list_wrapper,
    .menu .menu-page-list {
        padding-left: 3rem !important; /* Afasta o bloco todo para a seta não bater no logo */
        position: relative !important;
    }

    /* 2. Estilos base do link (sem !important no padding-left para não matar a animação!) */
    .menu .menu-page-list li a {
        font-size: 1.7rem;
        position: relative;
        transition: padding-left 0.3s ease; /* Garante transição suave no hover */
    }

    .menu .menu-page-list li a:before {
        --height: 36px;
    }

    /* 3. Reativar o salto do texto no Hover e no Item Ativo */
    .menu .menu-page-list li.current-menu-item a, 
    .menu .menu-page-list li a:hover {
        padding-left: 40px !important; /* O texto volta a deslocar-se para a direita */
    }

    /* 4. Escala do logótipo */
    .menu .page_list_wrapper svg,
    .menu .logo_left,
    .menu .logo_right {
        max-width: 85% !important;
    }

    
    /* ========= FOOTER ========= */
    .main_footer {
        padding-top: 6rem;
    }

    /* 1. O container principal passa a Grid para alinhar tudo ao pixel */
    footer.main_footer .footer_main_row {
        display: grid !important;
        grid-template-columns: 35% 65% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* 2. LOGO LUSA (Linha 1, Coluna 1) */
    footer.main_footer .footer_left_block {
        grid-column: 1 !important;
        grid-row: 1 !important;
        width: 100% !important;
        padding: 0 !important;
    }

    footer.main_footer .footer_main_logo img {
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
    }

    /* 3. BLOCO DA DIREITA: Removemos a "caixa" para os elementos filhos responderem ao container de fora */
    footer.main_footer .footer_right_block {
        display: contents !important;
    }

    /* SLOGAN + 34 ANOS (Linha 1, Coluna 2 - Alinhados à direita) */
    footer.main_footer .row_footer_1 {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        text-align: right !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    footer.main_footer .row_footer_1 .col-md-10,
    footer.main_footer .row_footer_1 .col-md-2 {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        text-align: right !important;
    }

    footer.main_footer .row_footer_1 .footer_title {
        text-align: right !important;
        width: 100% !important;
        font-size: 1.5rem !important;
    }

    footer.main_footer .row_footer_1 .col-md-2 {
        display: flex !important;
        justify-content: flex-end !important;
        margin-top: 0.5rem !important;
    }

    footer.main_footer .footer_mini_logo {
        height: auto !important;
        display: block !important;
        max-width: 65px !important;
    }

    /* 4. MORADA E CONTACTOS (Linha 2: Ocupa as 2 colunas do Grid - 100% real da página) */
    footer.main_footer .row_footer_2 {
        grid-column: 1 / span 2 !important; /* Estica da margem esquerda à margem direita exata do container */
        grid-row: 2 !important;
        display: flex !important;
        flex-direction: row !important;
        width: 100% !important;
        margin: 2.5rem 0 0 0 !important;
        padding: 0 !important;
    }

    footer.main_footer .row_footer_2 > div {
        width: 50% !important;
        max-width: 50% !important;
        flex: 0 0 50% !important;
        padding: 0 !important;
        text-align: left !important;
    }

    footer.main_footer .row_footer_2 h4,
    footer.main_footer .row_footer_2 p {
        text-align: left !important;
    }

    /* 5. LINKS LEGAIS E COPYRIGHT (Linha 3: Ocupa também as 2 colunas) */
    footer.main_footer .offset-md-6 {
        margin-left: 0 !important;
        width: 100% !important;
        padding-left: 0 !important;
    }

    footer.main_footer .row_footer_3 {
        grid-column: 1 / span 2 !important;
        grid-row: 3 !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        margin-top: 2rem !important;
        padding: 0 !important;
    }

    .custom_legal_links a:not(:last-child)::after {
        display: block !important;
        margin-left: 0.5rem;
    }

    footer.main_footer .custom_legal_links {
        width: 74% !important;
        display: flex !important;
        gap: 1rem !important;
    }

    footer.main_footer .signature_col {
        width: 26% !important;
    }

    
    /* ========= HOMEPAGE ========= */
    .hero_section .container {
        max-width: 625px;
    }

    /* EMPRESA */
    .about_graphic {
        max-width: 525px;
        margin-right: 1.5rem !important;
    }

    /* ORÇAMENTOS */
    .btn_budget_text {
        font-size: 1.5rem;
    }

    .budget_section .budget_content_col,
    .budget_section .budget_wrapper {
        align-items: flex-end !important;
    }

    /* PIQUETE */
    .piquete_subtitle {
        font-size: 0.7rem;
    }

    .piquete_title {
        font-size: 4.3rem;
    }

    .piquete_section .piquete_top_row {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    /* 2. Forçar a coluna do texto a ocupar metade do espaço */
    .piquete_section .piquete_text_col {
        width: 50% !important;
        max-width: 50% !important;
        flex: 0 0 50% !important;
    }

    /* 3. Forçar a coluna da carrinha a ocupar a outra metade e alinhar à direita */
    .piquete_section .piquete_image_col {
        width: 50% !important;
        max-width: 50% !important;
        flex: 0 0 50% !important;
        display: flex !important;
        justify-content: flex-end !important;
    }

    /* 4. Garantir que a imagem encolhe proporcionalmente sem estourar */
    .piquete_section .piquete_image {
        width: 100% !important;
        max-width: 240px !important;
        height: auto !important;
    }

    /* ========= EMPRESA ========= */
    .commitments_header {
        margin-bottom: 4rem;
    }

    .commitments_main_title {
        font-size: 2.6rem;
    }

    .commitment_item {
        flex: 100%;
    }

    .commitments_flex_container .commitment_item_text {
        font-size: 1.1rem !important;
    }

    .commitment_icon_wrapper {
        margin-bottom: 1.5rem;
        height: 45px;
    }

    .statement_section {
        padding: 6rem 0;
    }
    
    .statement_text {
        font-size: 1.7rem !important;
    }


    /* ========= ORÇAMENTOS ========= */
    .budget_left_content {
        margin-left: 2rem;
        padding: 2rem 2rem;
    }

    .budget_main_arrow {
        width: 65px;
        margin-right: -10px;
    }
    

    /* ========= CONTACTOS ========= */
    .contact_left_info_col {
        flex-direction: row !important;
        flex-wrap: wrap-reverse !important;
    }

    .contact_form_wrapper {
        width: 100% !important;
    }
}


/* A FAZER */
@media (max-width: 576px) {
      nav.navbar .container, 
      .piquete_section .container,
      .inner_page_header_section .container, 
      .black_commitments_section .container, 
      .payments_horizontal_section .container, 
      .contact_main_section .container, 
      .main_footer .container {
        padding-left: var(--side-padding) !important;
        padding-right: var(--side-padding) !important;
    }


    /* ========= NAVBAR ========= */
    /* 1. ESTRUTURA DA BARRA (LINHA ÚNICA LIMPA) */
    nav.navbar .container {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding-top: 15px !important;
        padding-bottom: 30px !important;
    }

    /* Esconde os botões do topo no mobile */
    nav.navbar .container > .nav_actions {
        display: none !important;
    }

    /* 2. LOGO DA LUSA (ESQUERDA) */
    nav.navbar .container > .logo {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
    }

    nav.navbar img.custom-logo {
        max-width: 150px !important;
        width: 150px !important;
        height: auto !important;
        display: block !important;
    }

    /* Alternância Homepage (Branco) vs Outras Páginas (Preto) */
    body.home nav.navbar .logo a.custom-logo-link:not(.logo-dark) { display: block !important; }
    body.home nav.navbar .logo a.logo-dark { display: none !important; }
    body:not(.home) nav.navbar .logo a.custom-logo-link:not(.logo-dark) { display: none !important; }
    body:not(.home) nav.navbar .logo a.logo-dark { display: block !important; }


    /* 3. BOTÃO HAMBÚRGUER (DIREITA) */
    nav.navbar .container > .col-md-1 {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .menu_toggle::after {
        display: none !important;
    }

    /* 4. BOTÕES DENTRO DO MENU OVERLAY ABERTO */
    .nav_actions_inside_menu {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        margin-top: 2.5rem !important;
        width: 100% !important;
        margin-left: 5rem !important;
    }

    .menu .page_list_wrapper svg {
        max-width: 100% !important;
    }

 
    /* ========= MENU ========= */
    .menu .menu_wrapper {
        max-width: 100% !important;
        padding: 1.5rem !important;
    }
 
    .menu .close_bttn {
        right: 3.5rem !important;
        top: 5rem !important;
    }
 
    .menu .menu_logo {
        max-width: 200px !important;
    }
 
    .menu_logo_container {
        margin-top: 0 !important;
        margin-bottom: 3rem !important;
    }

    .menu .menu-page-list {
        padding-left: 25% !important;
    }
 
    .menu .menu-page-list li a {
        font-size: 1.5rem !important;
    }
 
    .menu .menu-page-list li a:before {
        --height: 30px;
    }
 
    .menu .menu-page-list li.current-menu-item a,
    .menu .menu-page-list li a:hover {
        padding-left: 20px !important;
    }

    .menu .menu-page-list li.current-menu-item a::before, 
    .menu .menu-page-list li a:hover::before {
        transform: translateX(40px);
    }
    
    .btn_area_reservada {
        font-size: 10px !important;
        padding: 0 13px 0 26px !important;
    }

    body:not(.home):not(.front-page) .navbar .btn_area_reservada, 
    body:not(.home):not(.front-page) .navbar .btn_piquete {
        color: #fff;
    }

    body:not(.home):not(.front-page) .navbar .btn_area_reservada span, 
    body:not(.home):not(.front-page) .navbar .btn_piquete span,
    body:not(.home):not(.front-page) .navbar .btn_piquete span b {
        color: #fff;
    }

    body:not(.home):not(.front-page) .navbar .btn_ar_seta {
        color: #fff;
    }

    body:not(.home):not(.front-page) .navbar .btn_area_reservada .btn_ar_seta,
    body:not(.home):not(.front-page) .navbar .btn_area_reservada .btn_ar_seta path,
    body:not(.home):not(.front-page) .navbar .btn_area_reservada .btn_ar_seta rect {
        color: #ffffff !important;
        fill: #ffffff !important;
        stroke: none !important;
    }

    /* Estado Hover em Mobile (Força tudo a preto quando a classe .is-hovered está ativa) */
    body:not(.home):not(.front-page) .navbar .btn_area_reservada.is-hovered .btn_ar_texto,
    body:not(.home):not(.front-page) .navbar .btn_area_reservada.is-hovered .btn_ar_seta,
    body:not(.home):not(.front-page) .navbar .btn_area_reservada.is-hovered .btn_ar_seta path,
    body:not(.home):not(.front-page) .navbar .btn_area_reservada.is-hovered .btn_ar_seta rect {
        color: #000000 !important;
        fill: #000000 !important;
    }

    /* BOTÃO PIQUETE - Estado Inicial (Branco) */
    body:not(.home):not(.front-page) .navbar .btn_piquete,
    body:not(.home):not(.front-page) .navbar .btn_piquete span,
    body:not(.home):not(.front-page) .navbar .btn_piquete span b {
        color: #ffffff !important;
    }

    /* BOTÃO PIQUETE - Estado Hover (Preto) */
    body:not(.home):not(.front-page) .navbar .btn_piquete.is-hovered,
    body:not(.home):not(.front-page) .navbar .btn_piquete.is-hovered span,
    body:not(.home):not(.front-page) .navbar .btn_piquete.is-hovered span b {
        color: #000000 !important;
    }

    .btn_area_reservada {
        padding-right: 12px !important;
    }

    .btn_piquete {
        width: 153px;
    }

    .btn_piquete b {
        padding-top: 3px !important;
        margin-right: 13px !important;
    }

    /* Botões dentro do menu overlay (mobile) - sempre brancos */
    .nav_actions_inside_menu .btn_area_reservada,
    .nav_actions_inside_menu .btn_piquete,
    .nav_actions_inside_menu .btn_area_reservada span,
    .nav_actions_inside_menu .btn_piquete span,
    .nav_actions_inside_menu .btn_piquete span b {
        color: #ffffff !important;
    }

    .nav_actions_inside_menu .btn_area_reservada .btn_ar_seta path,
    .nav_actions_inside_menu .btn_area_reservada .btn_ar_seta rect {
        fill: #ffffff !important;
        stroke: none !important;
    }

    .nav_actions_inside_menu .btn_bg_frame path {
        stroke: #ffffff !important;
    }

    .nav_actions_inside_menu .btn_area_reservada .btn_ar_seta,
    .nav_actions_inside_menu .btn_area_reservada .btn_ar_seta * {
        fill: #ffffff !important;
        stroke: #ffffff !important;
        color: #ffffff !important;
    }

    .menu .menu-page-list li a:before {
        background-image: none !important;
        background-color: #ffffff !important;
        -webkit-mask-image: url(../img/menu_arrow.svg);
        mask-image: url(../img/menu_arrow.svg);
        -webkit-mask-size: contain;
        mask-size: contain;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: right center;
        mask-position: right center;
        will-change: opacity, transform;
    }


    /*========= FOOTER ========= */
    .main_footer {
        padding-top: 4rem !important;
        padding-bottom: 2rem !important;
    }
 
    /* Alinha o topo do footer e define referência de posicionamento */
    footer.main_footer .footer_main_row {
        display: flex !important;
        flex-direction: column !important;
        position: relative !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    footer.main_footer .footer_left_block {
        width: 100% !important;
        padding: 0 !important;
        margin-bottom: 1.5rem !important;
    }

    footer.main_footer .footer_main_logo img {
        max-width: 120px !important;
        height: auto !important;
    }

    footer.main_footer .footer_right_block {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 0 !important;
    }

    /* 1. Estrutura Principal do Footer */
    footer.main_footer .footer_main_row {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Topo: Logo Lusa (Esquerda) vs Slogan + 34 Anos (Direita) */
    footer.main_footer .footer_left_block {
        display: block !important;
        width: auto !important;
        float: left !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Logo da Lusa */
    footer.main_footer .footer_main_logo img {
        display: block !important;
        max-width: 125px !important;
        width: 125px !important;
        height: auto !important;
    }

    /* Container do lado direito (Slogan + 34 Anos) */
    footer.main_footer .footer_right_block {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Linha 1: Slogan (Cima) + 34 Anos (Baixo) encostados à direita */
    footer.main_footer .row_footer_1 {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-end !important;
        width: 100% !important;
        margin: 0 0 4.5rem 0 !important;
        padding: 0 !important;
    }

    /* Ajuste para o Slogan subir e alinhar pelo topo do logo da Lusa */
    footer.main_footer .row_footer_1 .col-md-10 {
        width: 100% !important;
        padding: 0 !important;
        margin: -85px 0 0.75rem 0 !important;
    }

    footer.main_footer .row_footer_1 .footer_title {
        font-size: 0.95rem !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: right !important;
        position: static !important;
        top: auto !important;
    }

    /* Logo 34 Anos */
    footer.main_footer .row_footer_1 .col-md-2 {
        width: 40px !important;
        max-width: 40px !important;
        padding: 0 !important;
        margin: 0 !important;
        position: static !important;
        top: auto !important;
        display: flex !important;
        justify-content: flex-end !important;
    }

    footer.main_footer .footer_mini_logo {
        max-width: 40px !important;
        width: 40px !important;
        height: auto !important;
        display: block !important;
    }

    /* 2. MORADA E CONTACTOS ENCOSTADOS À EXTREMA ESQUERDA */
    footer.main_footer .row_footer_2 {
        display: block !important;
        width: 100% !important;
        clear: both !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    footer.main_footer .row_footer_2 > div {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin-bottom: 2rem !important;
        text-align: left !important;
    }
 
    /* 3. Morada e Contactos empilhados */
    footer.main_footer .row_footer_2 {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        margin: 0 0 1rem 0 !important;
        padding: 0 !important;
        gap: 1rem !important;
    }
 
    footer.main_footer .row_footer_2 > div {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .contacts {
        align-content: flex-start !important;
    }
 
    /* 4. Links legais e assinatura empilhados */
    footer.main_footer .offset-md-6 {
        margin-left: 0 !important;
        width: 100% !important;
        padding-left: 0 !important;
    }
 
    footer.main_footer .row_footer_3 {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        width: 100% !important;
        margin-top: 1rem !important;
        padding: 0 !important;
        gap: 1rem !important;
    }
 
    footer.main_footer .custom_legal_links {
        width: 100% !important;
        gap: 0.5rem !important;
        margin-bottom: 1rem !important;
    }
 
    .custom_legal_links a:not(:last-child)::after {
        display: none !important;
    }
 
    footer.main_footer .signature_col {
        width: 100% !important;
        margin-left: 0 !important;
    }
 
    .row_footer_3 .design_signature {
        margin-left: 0 !important;
    }
 
    .legal_links {
        font-size: 0.75rem !important;
    }

    .design_signature { 
        font-size: 0.6rem !important;
    }
 
 
    /* ========= HEADING ========= */
    /* 1. Anula o offset e força a coluna a ocupar a largura total */
    .inner_page_header_section .row_header_top > div[class*="col-"],
    .inner_page_header_section .col_header_top_content {
        margin-left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .inner_page_header_section {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .header_intro_title {
        font-size: 1.8rem;
    }

    .header_intro_text {
        font-size: 1.8rem;
        margin: 0 0 3.5rem 0;
    }

    .row_header_banner {
        margin-bottom: 3rem;
    }

    /* Ajusta a proporção e o ponto focal da imagem de fundo */
    .header_banner_blended,
    .page-id-12 .header_banner_blended {
        height: 280px !important;
        background-position: 60% center !important;
        background-size: 200% auto !important;
    }

    .header_grey_subtext, .header_grey_subtext p {
        font-size: 0.8rem;
    }


    /* ========= HOMEPAGE ========= */
    .hero_section .container {
        max-width: 100% !important;
        padding-left: var(--side-padding) !important;
        padding-right: var(--side-padding) !important;
    }
 
    .hero_title {
        font-size: 2.2rem !important;
    }
 
    /* EMPRESA */
    .about_section {
        padding: 5rem var(--side-padding) 0 !important;
    }

    .about_section .container {
        margin-bottom: 2rem !important;
    }
 
    .about_text {
        font-size: 1.8rem !important;
    }
 
    .about_graphic {
        max-width: 100% !important;
        width: 100% !important;
        margin-right: 0 !important;
        margin-bottom: -10px !important;
    }
 
    /* ORÇAMENTOS */
    .budget_section {
        padding: 6rem var(--side-padding) !important;
    }

    .budget_section .container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
 
    .btn_budget_container {
        max-width: 100% !important;
    }
 
    .btn_budget_text {
        font-size: 1.4rem !important;
    }
 
    .budget_caption {
        font-size: 0.8rem !important;
    }
 
    /* PIQUETE */
    .piquete_section {
        padding: 5rem 0 4rem 0 !important;
    }

    .piquete_section .container .mb-4 {
        margin-bottom: 1rem !important;
    }
 
    .piquete_section .piquete_image {
        max-width: 150px !important;
        height: 40px !important;
    }

    .piquete_text_col {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .piquete_image_col {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
 
    .piquete_title {
        font-size: 2.8rem !important;
    }
 
    .piquete_subtitle {
        font-size: 0.6rem !important;
        text-align: right !important;
    }
 
    .btn_phone_container {
        width: 100% !important;
        max-width: 300px !important;
        height: 80px !important;
    }

    .btn_phone_container::before {
        left: 15px !important;
    }
 
    .btn_phone_container .phone_number {
        font-size: 1.75rem !important;
        line-height: 80px !important;
    }
 
 
    /* ========= EMPRESA ========= */
    .commitments_header {
        margin-bottom: 2.5rem !important;
    }
 
    .commitments_main_title {
        font-size: 1.8rem !important;
    }
 
    .commitments_label {
        font-size: 0.75rem !important;
    }
 
    .commitments_flex_container .commitment_item {
        gap: 1.2rem !important;
        padding-bottom: 1.5rem !important;
    }
 
    .commitments_flex_container .commitment_icon_wrapper {
        width: 45px !important;
    }
 
    .commitments_flex_container .commitment_item_text {
        font-size: 0.9rem !important;
    }
 
    .statement_section {
        padding: 4rem 1.5rem !important;
    }
 
    .statement_section .col-md-6 {
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
 
    .statement_text {
        font-size: 1.3rem !important;
    }
 
 
    /* ========= SERVIÇOS ========= */
    .services_table_container {
        padding-left: var(--side-padding) !important;
        padding-right: var(--side-padding) !important;
    }
 
    /* 1. Cada linha de serviço empilha ícone e texto */
    .service_table_row {
        align-items: flex-start !important;
        padding: 2rem 0 !important;
    }
 
    .services_table_container .col-1,
    .services_table_container .col-md-1,
    .service_table_row .offset-md-5 {
        width: 60px !important;
        max-width: 60px !important;
        flex: 0 0 60px !important;
        margin-left: 0 !important;
        margin-bottom: 1rem !important;
    }
 
    .service_row_icon_wrapper:last-child {
        width: 75px !important;
    }

    .service_table_row:last-child .service_row_icon_wrapper svg {
        top: -10px;
    }
 
    .service_row_title {
        font-size: 1.4rem !important;
    }
 
    .service_row_subtitle {
        font-size: 1rem !important;
    }
 
    .service_row_caption {
        font-size: 0.9rem !important;
    }
 
    .service_row_icon_wrapper {
        width: 50px !important;
        height: 50px !important;
    }


    /* ========= ORÇAMENTOS ========= */
    .page-id-16 .inner_page_header_section {
        padding-bottom: 0 !important;
    }

    /* Anula o Grid e passa para 1 coluna vertical simples */
    .budget_grid_row {
        display: flex !important;
        flex-direction: column !important;
        border-top: none;
    }

    /* Esconde a linha divisória vertical que divide a grelha no desktop */
    .budget_grid_row::after {
        display: none !important;
    }

    /* Limpa as margens negativas e paddings exagerados da caixa cinzenta */
    .budget_left_content {
        margin: 0 calc(var(--side-padding) - 25px) !important;
        padding: 2rem 1.5rem !important;
        box-sizing: border-box !important;
    }

    .budget_left_top_group {
        margin-bottom: 2rem !important;
    }

    .budget_main_arrow {
        display: none;
    }

    .budget_main_text {
        font-size: 1.25rem !important;
        line-height: 1.3 !important;
    }

    /* Ajusta os itens 01 e 02 (coluna da direita no desktop) */
    .budget_data_item {
        width: 100% !important;
        padding: 2.5rem var(--side-padding) !important;
        box-sizing: border-box !important;
    }

    /* Esconde o spacer que só servia para dar espaço ao bloco cinzento no desktop */
    .budget_left_spacer {
        display: none !important;
    }

    .budget_item_step {
        font-size: 5rem !important;
        line-height: 1 !important;
        margin-left: 0 !important;
    }

    .budget_item_title {
        font-size: 1.25rem !important;
        max-width: 100% !important;
    }

    .serif-one::after {
        height: 6px;
    }

    .budget_item_bullets {
        font-size: 0.9rem !important;
        max-width: 100% !important;
    }

    /* FORMULÁRIO DE ORÇAMENTO */
    /* 1. Corrigir o modal no mobile */
    .custom-modal .modal-content {
        padding: 2rem 1.5rem !important;
        width: 92% !important;
        max-width: 100% !important;
        margin: 1.5rem auto !important;
    }

    .modal-body {
        padding: 0 !important;
    }

    /* 2. CORRECÇÃO CRÍTICA: Remover a largura fixa de 558px na nota */
    .form-nota {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 0.75rem !important;
        line-height: 1.4 !important;
        margin-bottom: 1.5rem !important;
        margin-top: 3.5rem !important;
    }

    /* 3. Título do Formulário */
    .modal-body h2,
    .modal-body .form-section-title {
        font-size: 1.25rem !important;
        line-height: 1.25 !important;
        margin-bottom: 1.5rem !important;
    }

    /* 4. Ajuste dos blocos / secções do Contact Form 7 */
    .form-section {
        margin-bottom: 1.5rem !important;
    }

    /* Forçar grelhas/colunas do formulário a ficarem a 1 coluna no mobile */
    .wpcf7-form .row,
    .wpcf7-form .form-grid,
    .wpcf7-form .form-row {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
    }

    /* 5. Estilização e alinhamento dos campos de entrada (Inputs, Textareas, Selects) */
    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form input[type="tel"],
    .wpcf7-form input[type="number"],
    .wpcf7-form textarea,
    .wpcf7-form select {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        font-size: 0.8rem !important;
    }

    /* Ajuste para as linhas com número (ex: "Número de blocos", "Número de frações") */
    .wpcf7-form label {
        display: block !important;
        width: 100% !important;
        font-size: 0.9rem !important;
        margin-bottom: 0.25rem !important;
    }

    .form-inline-group .inline-label > span {
        font-size: 0.9rem !important;
    }


    /* ========= PAGAMENTOS ========= */
    .payments_horizontal_section {
        padding: 0 0 5rem 0 !important;
        
    }
 

    /* ========= CONTACTOS ========= */
    .contact_main_section {
        padding-left: var(--side-padding) !important;
        padding-right: var(--side-padding) !important;
        padding-top: 0 !important;
    }
 
    .contact_left_info_col {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        margin-bottom: 2rem !important;
        gap: 1rem !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
 
    .contact_info_block {
        margin-bottom: 2rem !important;
    }
 
    .contact_block_text p {
        font-size: 0.95rem !important;
    }
 
    .contact_form_main_title {
        font-size: 1.8rem !important;
    }

    /* 1. Reset da posição absoluta da política de privacidade */
    .wpcf7-acceptance {
        position: static !important;
        display: block !important;
        width: 100% !important;
        margin-top: 1.5rem !important;
        margin-bottom: 1rem !important;
    }

    /* 2. Garante alinhamento correto do checkbox com o texto */
    .wpcf7-acceptance label {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        position: relative !important;
        padding-left: 0 !important;
    }

    /* Esconde a checkbox nativa mas mantém funcional */
    .wpcf7-acceptance input[type="checkbox"] {
        position: absolute !important;
        opacity: 0 !important;
        width: 0 !important;
        height: 0 !important;
    }

    /* 3. O texto ocupa o espaço restante à direita */
    .wpcf7-acceptance .wpcf7-list-item-label {
        display: inline-block !important;
        padding-left: 0 !important;
        margin: 0 !important;
        line-height: 1.4 !important;
    }

    /* Ajusta a posição do quadrado estilizado (::before) se for gerado no label */
    .wpcf7-acceptance .wpcf7-list-item-label::before {
        position: relative !important;
        display: inline-block !important;
        flex-shrink: 0 !important;
        margin-right: 8px !important;
        top: 2px !important;
        padding-top: 0 !important
    }

    /* 3. Coloca o botão ENVIAR logo abaixo, ocupando a largura total se necessário */
    .wpcf7-submit,
    .wpcf7 form input[type="submit"] {
        display: block !important;
        width: 100% !important;
    }

    .button, .wp-element-button {
        padding: 8px 25px 5px !important;
    }


    /* ========= POLITICA DE PRIVACIDADE ========= */
    .page-id-212 .inner_page_header_section {
        padding-top: 6rem !important;
        padding-bottom: 2rem !important;
    }

    .legal-logo-col,
    .legal-content {
        padding-left: var(--side-padding);
        padding-right: var(--side-padding);
    }
}