@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;700&display=swap');

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    font-family: 'Raleway', 'Poppins', sans-serif;
}

body {
    height: 100vh;
    height: 100dvh;
    background-color: var(--body-color);
    color: var(--text-color-pb);
    
}

/* ## inicio de CSS estilos principal## */
/* Seção principal */

.hero {
    background-color: var(--banner-color);
    color: var(--text-color-bb);
    padding: 100px 50px 100px;
}

.hero_fut {
    background-color: var(--banner-color);
    color: var(--text-color-bb);
    padding: 20px 10px 20px;

}

.hero_index {
    background-color: var(--banner-color);
    color: var(--text-color-bb);
    padding: 150px 50px 100px;
    text-align: center;
    height: 450px;
    height: auto;
}

.hero_index .hero_index-titulo01 {
    font-size: 45px;
    font-weight: bold;
    margin-bottom: 20px;
    font-family: 'Raleway', 'Poppins', sans-serif;
}

.hero_index .hero_index-titulo02 {
    font-size: 22px;
    margin-bottom: 30px;
    font-family: 'Raleway', 'Poppins', sans-serif;
}

.hero_index .buttons button {
    width: 20rem;
    padding: 0.8rem;
    font-size: 1.2rem;
    text-align: center;
    border-radius: 5px;
    margin: 0 1rem 1rem 0;
    box-sizing: border-box;
}

.hero_index .buttons .solicitar {
    background-color: var(--text-color-bb);
    color: var(--banner-color);
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.hero_index .buttons .solicitar:hover {
    background: var(--primay-color-azul);
    color: var(--text-color-bb);
    transform: translateY(-4px);
    box-shadow: 0 10px 25px var(--box-shadow-color01);
}

.hero_index .buttons .profissional {
    background-color: var(--secondary-color);
    color: var(--text-color-bb);
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.hero_index .buttons .profissional:hover {
    background: var(--botenviar-color);
    color: var(--text-color-bb);
    transform: translateY(-4px);
    box-shadow: 0 10px 25px var(--box-shadow-color01);
}

/* Rodapé */
footer {
    text-align: center;
    padding: 30px 0;
    border-top: 1px solid var(--nav-color);
    color: var(--text-color-pb);
    font-size: 14px;
}

footer img {
    height: 40px;
    margin: 0 10px;
}

@media (max-width: 991px) {

    .hero {
        padding: 100px 20px 50px;
        height: auto;
    }

    .hero_index {
        padding: 100px 20px 50px;
        height: auto;
    }

    .hero_index .hero_index-titulo01 {
        font-size: 28px;
        margin-bottom: 20px;
        font-family: 'Raleway', 'Poppins', sans-serif;
        text-align: center;
    }

    .hero_index .hero_index-titulo02 {
        font-size: 18px;
        margin-bottom: 30px;
        font-family: 'Raleway', 'Poppins', sans-serif;
        text-align: center;
    }

    .hero_index .buttons button {
        width: 20rem;
        padding: 1rem;
        font-size: 1.2rem;
        border-radius: 5px;
        margin: 0 1rem 1rem 0;        
        box-sizing: border-box;
    }

    footer {
        text-align: center;
        padding: 5px 0;
        border-top: 1px solid var(--nav-color);
        color: var(--text-color-pb);
    }

    footer img {
        height: 20px;
        margin: 0 5px;
    }

}

/* ## fim de CSS estilos principal## */

/* ## início de CSS estillos orcamentos e detalhes orcamentos ## */
.box-container {
    width: 90%;
    max-width: 1000px;
    margin: 20px auto;
}

/* cartão (classe única orc-card para evitar conflito) */
.box-container .orc-card {
    background: #fff;
    border: 1px solid var(--card-border);
    border-radius: 6px;
    padding: 18px;
    margin-bottom: 22px;

    display: flex;
    gap: 20px;
    align-items: flex-start;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
    min-height: 140px;
    overflow: hidden;
}

/* colunas */
.box-container .orc-card-left {
    flex: 1 1 65%;
    min-width: 0;
    /* evita overflow de textos longos */
}

.box-container .orc-card-right {
    flex: 0 0 30%;
    max-width: 30%;
    border-left: 1px solid #eee;
    padding-left: 18px;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    text-align: left;
}

.box-container .nome_cor {
    font-size: 18px;
    color: var(--text-color-pp);
    margin-bottom: 8px;
}



/* títulos e textos */
.box-container .orc-card-left h3 {
    margin: 0 0 8px 0;
    font-size: 18px;
    color: #222;
}

h2.txt_h2 {
    color: var(--text-color-pb);
    text-indent: 1em;
}

h2.txt_h2 span {
    color: var(--text-color-pb);
    font-size: 16px;
}

.orc-card-left hr.tipo-hr {
    border: none;
    height: 1px;
    background-color: #e4e4e4;
    margin: 10px 0;
}

.orc-card-left h3.tipodescri {
    font-size: 20px;
    color: #5e5e5e;
    font-weight: 500;
}

.orc-card-left h3.tiposer {
    font-size: 14px;
    color: #707070;
    font-weight: 500;
}

.box-container .orc-card-left p {
    margin: 8px 0;
    color: #555;
    font-size: 14px;
}

.box-container .info-extra {
    font-size: 13px;
    color: #777;
}

/* botão detalhes */
.box-container .btn {
    background: var(--btn-entrar-color);
    color: #fff;
    padding: 10px 14px;
    border-radius: 6px;
    text-decoration: none;
    display: inline-block;
    margin-top: 12px;
    font-weight: 500;
    text-align: center;
    border: none;
}

.box-container .btn:hover {
    background: var(--primay-color-azul);
}

/* Telefones, status e ícones */
.box-container .telefone {
    margin: 8px 0;
    font-weight: 700;
}

.box-container .verificado,
.box-container .e_validado {
    color: #137a14;
    border: 1px solid #dfeee1;
    background: #e8f8e8;
    padding: 6px;
    font-size: 12px;
    border-radius: 4px;
    margin: 6px 0;
}

.box-container .pendente,
.box-container .e_pendente {
    color: #555;
    border: 1px solid #ccc;
    background: #f6f6f6;
    padding: 6px;
    font-size: 12px;
    border-radius: 4px;
    margin: 6px 0;
}

.box-container .icons {
    font-size: 14px;
    margin: 8px 0;
}

.box-container .icons span {
    margin-right: 10px;
}

.box-container .published {
    font-size: 12px;
    color: #777;
    margin-top: 12px;
}

/* detalhes (texto com quebras preservadas) */
.box-container .detalhes {
    /* word-wrap: break-word; */
    word-break: break-word;
    white-space: pre-wrap;
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 10px;
}

/* hr estilizado */
.box-container hr {
    border: none;
    height: 1px;
    background-color: #2e60ca;
    margin: 12px 0;
}

/* paginação */
.box-container .paginacao {
    text-align: center;
    margin-top: 20px;
}

.box-container .paginacao a {
    display: inline-block;
    margin: 0 4px;
    padding: 6px 12px;
    border: 1px solid #ddd;
    background: #fff;
    color: var(--btn-entrar-color);
    text-decoration: none;
    border-radius: 4px;
}

.box-container .paginacao .ativo {
    background: var(--btn-entrar-color);
    color: #fff;
    font-weight: 700;
}

/* RESPONSIVO */
@media (max-width: 768px) {
    .box-container .orc-card {
        flex-direction: column;
        gap: 12px;
    }

    .box-container .orc-card-left,
    .box-container .orc-card-right {
        flex: 1 1 100%;
        max-width: 100%;
        border-left: none;
        padding-left: 0;
    }

    h2.txt_h2 {
    display: flex;
    flex-direction: column; /* coloca o span embaixo do texto */
    align-items: flex-start; /* mantém alinhado à esquerda (use center se quiser centralizado) */
    gap: 4px; /* pequeno espaço entre o título e o contador */
    color: var(--text-color-pb);
  }

  h2.txt_h2 span {
    font-size: 15px;
    display: block;
    margin-left: 0; /* garante alinhamento correto */
    color: var(--text-color-pb);
  }
  
}

/* ## fim de CSS estillos orcamentos e detalhes orcamentos ## */
/* ## inicio de CSS estillos filtro do orcamentos## */

.main-content {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 95%;
    max-width: 1300px;
    margin: 20px auto;
    gap: 20px;
}

.main-content-orc {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    width: 95%;
    max-width: 1400px;
    margin: 20px auto;
    gap: 30px;
    flex-wrap: wrap;
}

.coluna-esquerda {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 350px;
    flex-shrink: 0;
}

.coluna-direita {
    flex: 1;
    min-width: 0; /* importante para evitar overflow */
}

/* DICAS COM MESMO ESTILO E TAMANHO DO FILTRO */
.dicas-profissional-card-esquerda {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 20px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    font-size: 15px;
    line-height: 1.7;
    color: #333;
}

.dicas-profissional-card-esquerda h3 {
    font-size: 16px;
    color: #0078D4;
    margin-bottom: 12px;
    font-weight: 600;
    text-align: center;
}


.dicas-profissional-card-esquerda h3::before {
    content: "💡";
    margin-right: 8px;
    font-size: 20px;
}

.dicas-profissional-card-esquerda strong {
    color: #0078D4;
}

.filtro-box {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 15px;
    width: 350px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.filtro-box h3 {
    font-size: 16px;
    margin-bottom: 12px;
    color: #333;
}

.filtro-box select {
    width: 100%;
    padding: 6px;
    margin-bottom: 12px;
    border-radius: 4px;
    border: 1px solid #ccc;
}

.filtro-box .button-filtrar {
    background: var(--btn-entrar-color);
    color: #fff;
    padding: 0.9rem 2rem;
    margin: 0 0.01rem;
    border-radius: 6px;
    text-decoration: none;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    border: none;
    transition: all 0.3s ease;
}

.filtro-box .button-vtodos {
    background: var(--secondary-color);
    color: #fff;
    padding: 0.9rem 2rem;
    margin: 0 0.01rem;
    border-radius: 6px;
    text-decoration: none;
    display: inline-block;
    font-weight: 400;
    text-align: center;
    border: none;
    transition: all 0.3s ease;
}

.filtro-box .button-filtrar:hover {
    background: var(--primay-color-azul);
}

.filtro-box .button-vtodos:hover {
    background: var(--secondary-color_f);
}

aside.filtro-box label.t_filtro {
    font-weight: 500;
    color: var(--text-color-pp);
}

.orc-container {
    flex: 1;
}

.seja_primeiro {
    color: red
}

.seja_primeiro::before {
    /* content: "💡"; */
    margin-right: 8px;
    font-size: 20px;
}

/* ====== CARD DE DICAS - POSICIONAMENTO CORRETO (exatamente como imagem 02.jpg) ====== */
.dicas-profissional-wrapper {
    width: 100%;
    max-width: 1300px;
    margin: 30px auto;          /* espaço acima e abaixo */
    padding: 0 20px;
    box-sizing: border-box;
}

.dicas-profissional-card {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 24px 28px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    font-size: 15.5px;
    line-height: 1.75;
    color: #333;
    text-align: justify;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

.dicas-profissional-card::before {
    content: "";
       position: absolute;
    top: 0; left: 0; right: 0;
    height: 5px;
    background: linear-gradient(90deg, #0078D4, #005a9e);
}

.dicas-profissional-card h3 {
    font-size: 19px;
    color: #0078D4;
    margin-bottom: 16px;
    font-weight: 600;
    text-align: center;
    position: relative;
}

.dicas-profissional-card h3::before {
    /* content: "Dica"; */
    margin-right: 8px;
    font-size: 22px;
}

.dicas-profissional-card p {
    margin: 16px 0;
}

.dicas-profissional-card strong {
    color: #0078D4;
    font-weight: 600;
}

/* Responsivo */
@media (max-width: 900px) {
    .dicas-profissional-wrapper {
        margin: 20px auto;
        padding: 0 15px;
    }
    .dicas-profissional-card {
        padding: 20px 18px;
        font-size: 15px;
    }
    .dicas-profissional-card h3 {
        font-size: 18px;
    }
}


/* ajuste dos botões no responsivo: lado a lado, mesmo tamanho */
@media (max-width: 900px) {

  /* mantém suas regras existentes para os botões (tamanho/padding) */
  .filtro-box .button-filtrar {
        background: var(--btn-entrar-color);
        color: #fff;
        margin: 0;
        border-radius: 6px;
        text-decoration: none;
        display: inline-block;
        font-weight: 400;
        text-align: center;
        border: none;
        transition: all 0.3s ease;
        font-size: 1rem;
    }

  .filtro-box .button-vtodos {
        background: var(--secondary-color);
        color: #fff;
        margin: 0;
        border-radius: 6px;
        text-decoration: none;
        display: inline-block;
        font-weight: 400;
        text-align: center;
        border: none;
        transition: all 0.3s ease;
        font-size: 1rem;
    }

  /* Seleciona a div que contém os botões (última div do form) e a transforma em flex */
  .filtro-box form > div:last-of-type {
      display: flex;
      gap: 8px;             /* pequeno espaço entre os botões */
      align-items: center;
      justify-content: space-between;
      width: 100%;
      box-sizing: border-box;
      margin-top: 6px;
    }

  /* Faz os elementos (link + botão) ocuparem espaços iguais */
  .filtro-box form > div:last-of-type > a,
  .filtro-box form > div:last-of-type > button {
      flex: 1 1 0;
      min-width: 0; /* evita overflow de texto */
    }

  /* garante que botão dentro de <a> ocupe toda a largura do link */
  .filtro-box form > div:last-of-type > a {
      display: block;
    }

  .filtro-box form > div:last-of-type > a > button,
  .filtro-box form > div:last-of-type > button {
      width: 100%;
      box-sizing: border-box;
      padding-left: 0.8rem;
      padding-right: 0.8rem;
    }

}



/* ## fim de CSS estillos filtro do orcamentos## */

/* ## início de CSS estillos detalhe do orcamentos## */
/* detalhe de orçamento */
.container_filter {
    max-width: 950px;
    margin: 0 auto 40px auto;
    background: var(--cont-form-color);
    border-radius: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
    padding: 30px 30px;
}

/* Header moderno */
.page-header {
    background: var(--container-color);
    padding: 2rem;
    border-radius: 16px;
    text-align: center;
    margin: 20px auto;
    max-width: 950px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
    border: 1px solid var(--border-color);
}

.page-header .logo img {
    height: 50px;
    margin-bottom: 0.5rem;
}

.page-header h1 {
    margin: 0.5rem 0;
    color: var(--title-color);
    font-size: 1.8rem;
    font-weight: 600;
}

.orcamento-meta {
    display: flex;
    /* justify-content: center; */
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.8rem;
}

.meta-badge {
    color: rgb(14, 13, 13);
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
}

.meta-badge.descri {

    font-size: 30px;
    text-align: left;
    font-weight: 550;
    color: var(--title-color);
    margin-bottom: 2px;
}

.meta-badge.tipo {
    background: var(--cont-form-color);
    font-size: 18px;
    text-align: left;
    color: var(--text-color-pp);
    margin-bottom: 0;
    padding-bottom: 0;
    border-radius: 5px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}



/* Grid responsivo */
.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    /* margin-bottom: 1.5rem; */
}

/* Cartões */
.card {
    background: var(--cont-det-color);
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 4px 12px var(--box-shadow-color01);
    border: 1px solid var(--border-color);
    transition: all 0.3s ease;
    margin-bottom: 1.5rem;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px var(--box-shadow-color02);
}

.card h3 {
    color: var(--title-color);
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 1rem 0;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--btn-entrar-color);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.info-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.info-list li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 0;
    border-bottom: 1px dashed var(--border-color);
    font-size: 0.95rem;
}

.info-list li:last-child {
    border-bottom: none;
}

.info-list i {
    color: var(--btn-entrar-color);
    font-size: 1.2rem;
    width: 26px;
}

.badge {
    padding: 0.25rem 0.6rem;
    border-radius: 5px;
    font-size: 0.8rem;
    font-weight: 600;
    color: white;
}

.badge.success {
    background: var(--botenviar-color);
}

.badge.danger {
    background: var(--btn-sair-color);
}

.badge.secondary {
    background: var(--text-color-pp);
    opacity: 0.8;
}

/* Detalhes */
.detalhes-box {
    margin-top: 1rem;
}

.detalhes-conteudo {
    background: var(--cont-form-color);
    padding: 1rem;
    border-radius: 10px;
    line-height: 1.7;
    font-size: 0.95rem;
    color: var(--text-color-pp);
    border: 1px solid var(--border-color);
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.03);
}

/* Data cadastro */
.data-cadastro {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-color-pb);
    font-size: 1rem;
    margin: 0;
    padding: 0.5rem 0;
}

.card-full {
    grid-column: 1 / -1;
}

/* Botão */
.actions {
    text-align: center;
    margin: 2rem 0 1rem;
}

.btn {
    /* display:block; */
    /* display: inline-flex; */
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 2rem;
    margin: 0 0.5rem;
    border-radius: 5px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 1rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: center;
}

.btn-primary {
    background: var(--btn-entrar-color);
    color: white;
}

.btn-primary:hover {
    background: var(--primay-color-azul);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
}

.btn-secundary {
    background: var(--secondary-color);
    color: white;
    padding: 0.9rem;
    font-size: 1.2rem;
}



.btn-secundary:hover {
    background: var(--botenviar-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
}


    .btn-p-primary {
        background: var(--btn-entrar-color);        
        color: #fff;
        width: 100%;
        margin: 0.6rem;
        display: block;
        align-items: center;
        font-size: 1.1rem;        
    }

    .btn-p-secondary {
        background: #999;
        color: #fff;
        width: 100%;
        margin: 0.6rem;
        display: block;
        align-items: center;
        font-size: 1.1rem;
    }
    .btn-p-primary:hover {
        background: var(--primay-color-azul);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
    }

    .btn-p-secondary:hover {
        background: #252525;
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
    }

.btn-cancel {
    background: #999;
    color: #fff;
}

.btn-cancel:hover {
    background: #252525;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
    color: #fff;
}

.linha-data-valor {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 5px;
    width: 100%;
}

.valor-orcamento {
    font-size: 18px;
    font-weight: bold;
    color: var(--text-color-pb);
}

.valor-orcamento span {
    margin-left: 6px;
}

.valor-orc {
    font-size: 2rem;
    color: var(--text-color-vb);
}

/* MODAL ESTILOS */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    backdrop-filter: blur(5px);
    animation: fadeIn 0.3s ease;
    color: var(--text-color-pp);
}

.modal-content {
    background: var(--cont-form-color);
    width: 90%;
    max-width: 500px;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    animation: slideUp 0.4s ease;
}

.modal-header {
    padding: 20px 25px;
    background: var(--primay-color-azul);
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-header h3 {
    margin: 0;
    font-size: 1.4rem;
}

.modal-close {
    background: none;
    border: none;
    font-size: 1.8rem;
    color: white;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-body {
    padding: 25px;
}

.valor-orc-modal {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--primay-color-azul);
    text-align: center;
    margin: 10px 0;
}

.opcoes-pagamento {
    display: flex;
    gap: 15px;
    margin: 20px 0;
    color: var(--text-color-pp);
}

.opcao-pagamento {
    flex: 1;
    padding: 15px;
    border: 2px solid #ddd;
    border-radius: 12px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
}

.opcao-pagamento:hover {
    border-color: var(--primay-color-azul);
    background: #f0f7ff;
}

.opcao-pagamento i {
    font-size: 2rem;
    margin-bottom: 8px;
    display: block;
}

.opcao-pagamento.selecionado {
    border-color: var(--primay-color-azul);
    background: #e6f0ff;
    box-shadow: 0 0 0 2px rgba(0, 119, 255, 0.2);
}

.pagamento-content {
    margin-top: 20px;
    padding: 20px;
    background: #f9f9f9;
    border-radius: 12px;
    text-align: center;
    color: var(--text-color-pp);
}

.pix-qrcode img {
    width: 180px;
    height: 180px;
    border: 1px solid #ddd;
    border-radius: 10px;
}

.pix-chave {
    margin-top: 10px;
    font-family: monospace;
    background: #fff;
    padding: 8px 12px;
    border-radius: 8px;
    display: inline-block;
}

.input-group {
    margin-bottom: 15px;
}

.input-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 500;
    color: #444;
}

.input-group input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 15px;
}

.input-row {
    display: flex;
    gap: 15px;
}

.input-row .input-group {
    flex: 1;
}

.modal-footer {
    padding: 20px 25px;
    background: #f8f9fa;
    display: flex;
    gap: 15px;
    justify-content: flex-end;
}

.modal-body .alert {
    padding: 10px 15px;
    border-radius: 8px;
    font-size: 0.95rem;
    margin-top: 15px;
    animation: fadeIn 0.3s;
}

.alert-danger {
    background: #fde8e8;
    color: #c53030;
    border: 1px solid #feb2b2;
}

.modal-login .modal-content {
    max-width: 420px;
    text-align: center;
}

.modal-login .modal-header {
    background: #e74c3c !important;
    color: white;
}

.modal-login .modal-body p {
    line-height: 1.6;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideUp {
    from { transform: translateY(50px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* Responsividade */
@media (max-width: 600px) {
    .page-header {
        padding: 1.5rem;
    }

    .page-header h1 {
        font-size: 1.5rem;
    }

    .card {
        padding: 1.2rem;
    }

    .btn {
        text-decoration: none;
        font-weight: 500;        
        transition: all 0.3s ease;
        font-size: 1rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
        text-align: center;
        padding: 0.3rem 1.5rem;
        display:block;
        text-align: center;
    }

    .btn-primary {
        background: var(--btn-entrar-color);
        width: 100%;
        margin: 0.6rem;
        display: block;
        align-items: center;
        font-size: 1.1rem;

    }

    .btn-secundary {
        background: var(--secondary-color);
        color: white;
        width: 100%;
        margin: 0.6rem;
        display: block;
        align-items: center;
        font-size: 1.1rem;
    }

    .btn-primary:hover {
        background: var(--primay-color-azul);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
    }

    .btn-secundary:hover {
        background: var(--botenviar-color);
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 1.1);
    }


}

/* ## fim de CSS estillos detalhe do orcamentos## */

/* ## inicio de CSS estilos form de orçamento e prof## */
/* CSS form01 */
.step.active {
    display: block;
}



/* navegador do formulario */

.container {
    background: var(--cont-form-color);
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 650px;
    margin: 50px auto;
    color: var(--text-color-pp)
}

.progressbar {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin-bottom: 30px;
}

.progressbar::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--progress02-color);
    z-index: -1;
    transform: translateY(-50%);
}

.progress {
    position: absolute;
    top: 50%;
    left: 0;
    height: 4px;
    background: var(--btn-entrar-color);
    z-index: -1;
    transform: translateY(-50%);
    transition: width 0.3s ease;
    width: 0%;
}

.progress-step {
    width: 35px;
    height: 35px;
    background: var(--progress02-color);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    color: var(--text-color-bb);
    transition: 0.3s;
    flex-shrink: 0;
}

.progress-step.active {
    background: var(--btn-entrar-color);
}

.form-step {
    display: none;
    animation: fadeIn 0.5s ease;
}

.form-step.active {
    display: block;
}


.form-control::placeholder,
#detalhes::placeholder,
#necessidade::placeholder {
    color: rgb(196, 196, 196);
    opacity: 1;
}

.txt_h2 {
    font-size: 25px;
    font-weight: 500;
    margin-bottom: 5px;
}

/* checkbox do orçamento politica e termso */
.login-priv {
    margin: 20px 0 10px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.aceite-termos {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.5;
    color: #444;
    cursor: pointer;
    user-select: none;
}

.aceite-termos input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.checkmark {
    width: 20px;
    height: 20px;
    background-color: #fff;
    border: 2px solid #aaa;
    border-radius: 6px;
    flex-shrink: 0;
    margin-top: 2px;
    transition: all 0.25s ease;
    position: relative;
}

.aceite-termos input:checked ~ .checkmark {
    background-color: var(--btn-entrar-color);
    border-color: var(--btn-entrar-color);
}

.aceite-termos input:checked ~ .checkmark::after {
    content: "✓";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-weight: bold;
    font-size: 14px;
}

.termos-texto {
    flex: 1;
}

.termos-texto a {
    color: var(--btn-entrar-color);
    font-weight: 600;
    text-decoration: underline;
}

.termos-texto a:hover {
    color: var(--primay-color-azul);
}


/* Responsivo - garante que não quebre estranho em mobile */
@media (max-width: 480px) {
    .aceite-termos {
        font-size: 14px;
        gap: 8px;
    }
    .checkmark {
        width: 18px;
        height: 18px;
    }
}
/* ------------ */


@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

label {
    font-weight: bold;
    display: block;
    margin-top: 10px;
}

input,
select,
textarea {
    width: 100%;
    padding: 10px;
    margin: 8px 0 15px;
    border: 1px solid var(--progress02-color);
    border-radius: 6px;
}

/* Organização das checkboxes em duas colunas elegantes */
/* .checkbox-group {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 20px;
    margin-top: 10px;
}    */

.checkbox-group {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;   /* MÁXIMO 2 COLUNAS */
    gap: 14px 22px !important;
    margin-top: 12px !important;
    padding: 0 8px !important;
}

/* Responsivo: 1 coluna em telas menores */
@media (max-width: 768px) {
    .checkbox-group {
        grid-template-columns: 1fr !important;
        gap: 12px 18px !important;
    }
}

/* Força especificamente na Etapa 2 do cadastro profissional */
#tipoServico .checkbox-group {
    grid-template-columns: repeat(2, 1fr) !important;
}

@media (max-width: 768px) {
    #tipoServico .checkbox-group {
        grid-template-columns: 1fr !important;
    }
}

/* Checkbox um pouco maior para melhor usabilidade */
.checkbox-group input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    accent-color: var(--btn-entrar-color);
    cursor: pointer;
}

.checkbox-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    cursor: pointer;
    font-size: 15px;
}

.checkbox-group input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.buttons_orca {
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

button {
    padding: 8px 16px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
}

.btn-prev {
    background: var(--progress03-color);
    color: var(--text-color-pp);
}

.btn-next {
    background: var(--banner-color);
    color: var(--text-color-bb);
}

.btn-submit {
    background: var(--botenviar-color);
    color: var(--text-color-bb);
}

.btn-edit {
    background: var(--btn-entrar-color);
    color: var(--text-color-bb);
}

.btn-delete {
    background: var(--btn-sair-color);
    color: var(--text-color-bb);
}


button:disabled {
    background-color: var(--progress03-color) !important;
    color: var(--btn-disable-color) !important;
    cursor: not-allowed !important;
}

button:enabled {
    cursor: pointer;
}

@media (max-width: 480px) {
    .buttons_orca {
        flex-direction: column;
    }

    button {
        width: 100%;
    }

    .checkbox-group {
        grid-template-columns: 1fr;
    }

}


.linha-fina {
    border: none;
    height: 1px;
    background-color: var(--progress03-color);
    margin: 15px 0;
}

h2 {
    font-size: 20px;
    font-weight: bold;
}

.lista-tabela {
    margin-top: 30px;
    width: 100%;
    border-collapse: collapse;
}

.lista-tabela th,
.lista-tabela td {
    padding: 10px;
    border: 1px solid var(--progress02-color);
    text-align: left;
}

.lista-tabela th {
    background: var(--btn-entrar-color);
    color: var(--text-color-bb);
}

.lista-tabela td button {
    margin-right: 5px;
}

/* ## fim de CSS estilos form de orçamento e prof ## */

/* --- Responsividade: colocar filtros acima da lista de orçamentos --- */
@media (max-width: 900px) {
    .main-content {
        flex-direction: column;       /* empilha filtros e lista verticalmente */
        align-items: stretch;         /* faz cada coluna ocupar largura total */
        gap: 16px;                    /* espaço entre filtro e lista */
        width: 95%;
        max-width: 900px;
        margin: 20px auto;
    }

    .main-content-orc {
        flex-direction: column;
        align-items: stretch;
    }

    .coluna-esquerda,
    .coluna-direita {
        width: 100%;
    }
    
    .coluna-esquerda {
        gap: 15px;
    }



  /* faz o painel de filtros aparecer antes (no topo) */
  .filtro-box {
    order: -1;
    width: 100%;
    max-width: none;
    margin: 0;
  }

  /* lista de orçamentos ocupa 100% abaixo do filtro */
  .box-container {
    order: 0;
    width: 100%;
    max-width: none;
    margin: 0;
  }

  /* ajustes menores para evitar overflow dos selects e botões */
  .filtro-box select,
  .filtro-box .button-filtrar,
  .filtro-box .button-vtodos {
    width: 100%;
    box-sizing: border-box;
  }
}


/* ## inicio de CSS estilos Como funciona, Planos, Dicas ## */
/* ==== Seções informativas (Como funciona, Planos, Dicas) ==== */
.titulo-section {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--text-color-pp);
  text-align: center;
  margin-bottom: 10px; /* diminuído (era 20px) para colar mais ao subtítulo */
  position: relative;
}

.titulo-section::after {
  content: "";
  width: 70px;
  height: 4px;
  background: var(--btn-entrar-color);
  display: block;
  margin: 10px auto 0; /* linha mais próxima do título */
  border-radius: 3px;
}


/* =======================================================
   COMO FUNCIONA
   ======================================================= */
.como-funciona {
  background: var(--cont-form-color);
  padding: 50px 30px;
  position: relative;
  z-index: 1;
}

.descricao-section_orc {
  max-width: 800px;
  padding: 0 auto;
  margin: 10px auto 35px; /* antes era 50px — reduzido */
  text-align: center;
  font-size: 2.0rem;
  color: var(--text-color-pb);
  line-height: 1.5; /* levemente mais compacto */
  font-weight: 500;
  color: var(--text-color-pp);
}

.descricao-section_prof {
  max-width: 800px;
  margin: 30px auto 30px;
  text-align: center;
  font-size: 2.0rem;
  color: var(--text-color-pb);
  line-height: 1.6;
  font-weight: 500;  
  color: var(--text-color-pp);
}

.steps {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.step {
  background: var(--cont-det-color);
  flex: 1 1 300px;
  max-width: 340px;
  text-align: center;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  box-shadow: 0 6px 15px var(--box-shadow-color01);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.step:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 20px var(--box-shadow-color02);
}

.step-icon {
  font-size: 2.8rem;
  color: var(--btn-entrar-color);
  margin-bottom: 1rem;
}

.step h3 {
  font-size: 1.2rem;
  color: var(--title-color);
  margin-bottom: 0.6rem;
  font-weight: 600;
}

.step p {
  font-size: 1rem;
  color: var(--text-color-pb);
  line-height: 1.5;
}

/* =======================================================
   PLANOS
   ======================================================= */
.planos {
  background: var(--banner-color);
  padding: 100px 30px;
  text-align: center;
  color: var(--text-color-bb);
}

.plan-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin-top: 2.5rem;
}

.plan-card {
  background: var(--cont-det-color);
  flex: 1 1 300px;
  max-width: 340px;
  border-radius: 16px;
  padding: 2rem 1.5rem;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  color: var(--text-color-pb);
}

.plan-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.2);
}

.plan-card.destaque {
  border: 2px solid var(--btn-entrar-color);
}

.plan-card.premium {
  background: var(--btn-entrar-color);
  color: var(--text-color-bb);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

.plan-card h3 {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 0.8rem;
}

.plan-card .price {
  font-size: 2rem;
  font-weight: 700;
  color: var(--text-color-ab);
  margin-bottom: 1rem;
}

.plan-card.premium .price {
  color: var(--text-color-bb);
}

.plan-card ul {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
}

.plan-card ul li {
  margin-bottom: 0.6rem;
}

.choose-plan {
  background: var(--secondary-color);
  color: var(--text-color-bb);
  border: none;
  border-radius: 8px;
  padding: 0.9rem 1.4rem;
  font-size: 1rem;
  transition: all 0.3s ease;
  cursor: pointer;
  font-weight: 500;
}

.choose-plan:hover {
  background: var(--botenviar-color);
  transform: translateY(-3px);
}

/* =======================================================
   PLANOS_PACOTE
   ======================================================= */
.planos_pacote {
  background: linear-gradient(135deg, var(--banner-color), var(--primay-color-azul_ac));
  padding: 120px 20px;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}

.planos_pacote::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000" opacity="0.07"><circle cx="200" cy="200" r="150" fill="white"/><circle cx="800" cy="700" r="200" fill="white"/></svg>');
  pointer-events: none;
}

.planos_pacote .titulo-section {
  color: white;
  font-size: 2.8rem;
  font-weight: 800;
  margin-bottom: 1rem;
  text-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.planos_pacote .titulo-section::after {
  background: #ffd700;
  height: 5px;
}

.plan-cards_pacote {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem;
  margin-top: 4rem;
  padding: 0 20px;
}

.plan-card_pacote {
  background: white;
  color: #333;
  border-radius: 24px;
  padding: 3rem 2rem 2.5rem;
  width: 360px;
  max-width: 100%;
  ;
  box-shadow: 0 15px 40px rgba(0,0,0,0.25);
  transition: all 0.4s ease;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.plan-card_pacote::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 6px;
  background: linear-gradient(90deg, #cd7f32, #ffd700, #cd7f32); 
}

/* Prata */
.plan-card_pacote:nth-child(2)::before {
  background: linear-gradient(90deg, #95a5a6, #ecf0f1, #95a5a6);
}

/* Ouro */
.plan-card_pacote:nth-child(3)::before {
  background: linear-gradient(90deg, #f1c40f, #f39c12, #e67e22, #f39c12, #f1c40f);
  height: 8px;
  box-shadow: 0 0 20px rgba(241, 196, 15, 0.6);
}

.plan-card_pacote:hover {
  transform: translateY(-15px) scale(1.03);
  box-shadow: 0 25px 60px rgba(0,0,0,0.35);
}

.plan-card_pacote img.tip-icon {
  width: 110px;
  height: 110px;
  margin-bottom: 1.2rem;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,0.2));
}

.plan-card_pacote h3 {
  font-size: 1.8rem;
  font-weight: 800;
  margin: 0.5rem 0 1rem;
  color: #2c3e50;
}

/* Selo "Mais Popular" */
.plan-card_pacote:nth-child(2) {
  transform: scale(1.08);
  border: 3px solid #f39c12;
  z-index: 10;
}

.plan-card_pacote:nth-child(2)::after {
  content: 'MAIS POPULAR';
  position: absolute;
  top: 15px;
  right: -35px;
  background: #e74c3c;
  color: white;
  font-size: 0.85rem;
  font-weight: 800;
  padding: 8px 50px;
  transform: rotate(45deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.plan-card_pacote .price {
  font-size: 2.4rem;
  font-weight: 900;
  color: #007bff;
  margin: 0.5rem 0;
}

.plan-card_pacote p:nth-of-type(1) {
  font-size: 1.55rem;
  font-weight: 800;
  color: #27ae60;
  margin: 1rem 0 0.5rem;
  line-height: 1.3;
}

.plan-card_pacote p:nth-of-type(2) {
  font-size: 1rem;
  color: #7f8c8d;
  margin-bottom: 1.8rem;
}

.choose-plan_pacote {
  background: linear-gradient(45deg, #f39c12, #e67e22);
  color: white;
  border: none;
  border-radius: 20px;
  padding: 1rem 3rem;
  font-size: 1.15rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(243, 156, 18, 0.4);
  transition: all 0.3s ease;
  margin-top: auto;
}

.choose-plan_pacote:hover {
  background: linear-gradient(45deg, #e67e22, #d35400);
  transform: translateY(-4px);
  box-shadow: 0 15px 30px rgba(243, 156, 18, 0.6);
}

/* =======================================================
   DICAS
   ======================================================= */
.dicas {
  background: var(--cont-form-color);
  padding: 100px 30px 90px;
  position: relative;
  z-index: 1;
}

.tip-card {
  background: var(--cont-det-color);
  flex: 1 1 300px;
  max-width: 340px;
  border-radius: 16px;
  text-align: center;
  padding: 2rem 1.5rem;
  box-shadow: 0 6px 15px var(--box-shadow-color01);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tips-cards_orc {  
  margin-top: 2rem;
  padding-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  position: relative;
  z-index: 2; 
}

.titulo-profissionais {
  margin-top: 3rem;
  margin-bottom: auto;
  font-size: 2rem;
  color: var(--text-color-pp);
  text-align: center;
}

.tips-cards_prof {
  margin-top: 1rem;
  padding-top: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.tip-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 20px var(--box-shadow-color02);
}

.tip-icon {
  font-size: 2.8rem;
  color: var(--secondary-color);
  margin-bottom: 1rem;
}

.tip-card h3 {
  font-size: 1.3rem;
  color: var(--title-color);
  margin-bottom: 0.6rem;
  font-weight: 600;
}

.tip-card p {
  font-size: 1rem;
  color: var(--text-color-pb);
  line-height: 1.5;
}

/* =======================================================
   RESPONSIVIDADE
   ======================================================= */
@media (max-width: 992px) {
  .step, .plan-card, .tip-card {
    flex: 1 1 260px;
  }
}

@media (max-width: 768px) {
  .steps,
  .plan-cards,
  .tips-cards_orc,
  .tips-cards_prof {
    flex-direction: column;
    align-items: center;
  }
  .step, .plan-card, .tip-card {
    max-width: 420px;
    width: 100%;
  }
}

/* Scroll suave */
html {
  scroll-behavior: smooth;
}

/* SUPER ADMIN - Indicador discreto */
.superadmin-indicator {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 99999;
    cursor: pointer;
}

.superadmin-dot {
    width: 14px;
    height: 14px;
    background-color: #28a745;
    border-radius: 50%;
    display: block;
    box-shadow: 0 0 10px rgba(40, 167, 69, 0.8);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); }
    70% { box-shadow: 0 0 0 10px rgba(40, 167, 69, 0); }
    100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); }
}


/* =======================================================
   PERGUNTAS FREQUENTES (FAQ)   ======================================================= */
.faq {
  background: var(--cont-form-color);
  padding: 100px 30px;
  text-align: center;
}

.faq-subtitle {
  max-width: 800px;
  margin: 0 auto 50px;
  font-size: 1.3rem;
  color: var(--text-color-pb);
  line-height: 1.5;
}

.faq-container {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faq-item {
  background: var(--cont-det-color);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 5px var(--box-shadow-color01);
  transition: all 0.3s ease;
  text-align: left;
}

.faq-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 5px 10px var(--box-shadow-color02);
}

.faq-question {
  padding: 20px 25px;
  background: var(--cont-det-color);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--text-color-pb);
  user-select: none;
  position: relative;
}

.faq-question i {
  font-size: 1.6rem;
  color: var(--text-color-ab);
  transition: transform 0.4s ease;
}

.faq-item.active .faq-question i {
  transform: rotate(180deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  padding: 0 25px;
  background: rgba(255, 255, 255, 0.7);
  transition: max-height 0.5s ease, padding 0.4s ease;
  line-height: 1.6;
  color: var(--text-color-pp);
}

.faq-item.active .faq-answer {
  max-height: 300px; /* valor alto o suficiente para qualquer resposta */
  padding: 20px 25px;
  border-top: 1px solid rgba(0,0,0,0.05);
}

section .titulo-section {
    text-decoration: none;
    color: var(--text-color-pp);
}

/* section .per_fre {
    text-decoration: none;
    color: var(--text-color-pp);
    margin-top: 0;
} */

/* Responsivo */
@media (max-width: 768px) {
  .faq {
    padding: 80px 20px;
  }
  
  .faq-question {
    font-size: 1rem;
    padding: 18px 20px;
  }
  
  .faq-answer {
    font-size: 0.95rem;
  }
}

/* ===================== MODAL FLUTUANTE (Política e Termos) ===================== */
.modal-termos-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.75);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(5px);
    animation: fadeIn 0.3s ease;
}

.modal-termos-content {
    background: var(--cont-form-color);
    width: 90%;
    max-width: 800px;
    max-height: 90vh;
    border-radius: 16px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    animation: slideUp 0.4s ease;
}

.modal-termos-header {
    padding: 18px 25px;
    background: var(--btn-entrar-color);
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.4rem;
}

.modal-termos-close {
    background: none;
    border: none;
    color: white;
    font-size: 2rem;
    cursor: pointer;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-termos-body {
    padding: 25px;
    max-height: 65vh;
    overflow-y: auto;
    line-height: 1.7;
    color: var(--text-color-pb);
    font-size: 1rem;
}

.modal-termos-body::-webkit-scrollbar {
    width: 8px;
}

.modal-termos-body::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.modal-termos-body::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 10px;
}

.modal-termos-footer {
    padding: 18px 25px;
    background: #f8f9fa;
    text-align: right;
    border-top: 1px solid #eee;
}

.btn-voltar-modal {
    background: var(--btn-entrar-color);
    color: white;
    border: none;
    padding: 10px 24px;
    border-radius: 8px;
    font-size: 1rem;
    cursor: pointer;
    transition: 0.3s;
}

.btn-voltar-modal:hover {
    background: var(--primay-color-azul);
    transform: translateY(-2px);
}

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* Responsivo */
@media (max-width: 600px) {
    .modal-termos-content { width: 95%; border-radius: 12px; }
    .modal-termos-header { font-size: 1.2rem; padding: 15px 20px; }
    .modal-termos-body { padding: 20px; font-size: 0.95rem; }
}

/* === FIX DEFINITIVO: Evita pulo do layout ao abrir modal === */
body.modal-open {
    overflow: hidden !important;
    padding-right: var(--scrollbar-width, 0px);
}

/* =======================================================
   ETAPA 2 DO FORM_ORCAMENTO → 3 COLUNAS GARANTIDAS
   Funciona mesmo com o JS substituindo o conteúdo
   ======================================================= */
.checkbox-group {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 18px 20px !important;
    margin-top: 16px !important;
    padding: 0 12px !important;
}

/* Responsivo */
@media (max-width: 992px) {
    .checkbox-group { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 576px) {
    .checkbox-group { 
        grid-template-columns: 1fr !important;
        gap: 15px !important;
        padding: 0 6px !important;
    }
}

/* Checkbox maior (opcional, mas fica lindo) */
.checkbox-group input[type="checkbox"] {
    width: 21px !important;
    height: 21px !important;
    accent-color: var(--btn-entrar-color);
    min-width: 22px !important;
    flex-shrink: 0;
    accent-color: var(--btn-entrar-color);
    cursor: pointer;
}


/* =======================================================
   FORÇA 3 COLUNAS SÓ NO FORMULÁRIO DE ORÇAMENTO
   ======================================================= */
form#formOrcamento .checkbox-group {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 18px 22px !important;
    margin-top: 16px !important;
    padding: 0 10px !important;
}

@media (max-width: 992px) {
    form#formOrcamento .checkbox-group { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 576px) {
    form#formOrcamento .checkbox-group { grid-template-columns: 1fr !important; }
}

/* Checkbox um pouco maior */
form#formOrcamento .checkbox-group input[type="checkbox"] {
    width: 21px !important;
    height: 21px !important;
}


