* {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

    font-family: Arial, sans-serif;

    text-decoration: none;

}


body {

    background: #ffffff;

}


/* =========================
   HEADER
========================= */

header {

    width: 100%;
    height: 100px;

    background: #ffffff;

    border-bottom: 3px solid #C62828;

    display: flex;

    align-items: center;

    position: fixed;

    top: 0;
    left: 0;

    z-index: 1000;

}


/* =========================
   LOGO
========================= */

header img {

    width: 100px;

    margin-left: 40px;

}


/* =========================
   MENU
========================= */

nav {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 45px;

    width: 100%;

}


nav a {

    color: #174A7E;

    font-size: 20px;

    font-weight: 600;

    position: relative;

    transition: 0.3s;

}


nav a:hover {

    color: #C62828;

    transform: translateY(-2px);

}


/* =========================
   PÁGINA SELECIONADA
========================= */

.pagina-selecionada {

    color: #C62828;

}


.pagina-selecionada::after {

    content: "";

    position: absolute;

    width: 100%;

    height: 3px;

    background: #C62828;

    bottom: -10px;

    left: 0;

    border-radius: 10px;

}





/* =========================
   COTAÇÃO
========================= */

.cotacao {

    width: 100%;

    padding-top: 150px;
    padding-bottom: 100px;

}


/* =========================
   INTRODUÇÃO
========================= */

.cotacao-introducao {

    text-align: center;

    padding: 50px 20px;

}


.cotacao-introducao span {

    color: #C62828;

    font-size: 17px;

    font-weight: bold;

    letter-spacing: 4px;

}


.cotacao-introducao h1 {

    color: #174A7E;

    font-size: 48px;

    margin: 20px 0;

}


.cotacao-introducao p {

    color: #555555;

    font-size: 20px;

    line-height: 1.6;

    max-width: 700px;

    margin: auto;

}


/* =========================
   CALENDÁRIO
========================= */

.calendario-container {

    width: 90%;

    max-width: 950px;

    margin: 20px auto;

    padding: 35px;

    background: #f8f9fa;

    border: 3px solid #174A7E;

    border-radius: 25px;

    box-shadow:
        0 10px 30px rgba(23, 74, 126, 0.12);

}


/* =========================
   TOPO
========================= */

.calendario-topo {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 35px;

}


.calendario-topo h2 {

    color: #174A7E;

    font-size: 30px;

}


.calendario-topo button {

    width: 45px;

    height: 45px;

    border: none;

    border-radius: 50%;

    background: #174A7E;

    color: #ffffff;

    font-size: 30px;

    cursor: pointer;

    transition: 0.3s;

}


.calendario-topo button:hover {

    background: #C62828;

    transform: scale(1.1);

}


/* =========================
   DIAS DA SEMANA
========================= */

.dias-semana {

    display: grid;

    grid-template-columns: repeat(7, 1fr);

    gap: 10px;

    margin-bottom: 10px;

}


.dias-semana span {

    text-align: center;

    color: #174A7E;

    font-size: 14px;

    font-weight: bold;

}


/* =========================
   DIAS
========================= */

.dias {

    display: grid;

    grid-template-columns: repeat(7, 1fr);

    gap: 10px;

}


.dia {

    min-height: 85px;

    border: none;

    border-radius: 12px;

    font-size: 18px;

    font-weight: bold;

    cursor: pointer;

    transition: 0.2s;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 7px;

}


/* =========================
   NÚMERO DO DIA
========================= */

.numero-dia {

    font-size: 20px;

}


/* =========================
   PREÇO
========================= */

.preco-dia {

    font-size: 13px;

    font-weight: 500;

    color: #555555;

}


/* =========================
   SEGUNDA A QUINTA
   R$ 600
========================= */

.meio-semana-dia {

    background: #42A5F5;

    color: #ffffff;

}


/* =========================
   SEXTA
   R$ 650
========================= */

.sexta-dia {

    background: #26A69A;

    color: #ffffff;

}


/* =========================
   SÁBADO / DOMINGO / FERIADO
   R$ 750
========================= */

.fim-semana-dia {

    background: #C8A252;

    color: #ffffff;

}


/* =========================
   DEZEMBRO
========================= */

.dezembro-meio-dia {

    background: #C62828;

    color: #ffffff;

}


.dezembro-sexta-dia {

    background: #2E7D32;

    color: #ffffff;

}


.dezembro-fim-dia {

    background: #C8A252;

    color: #ffffff;

}


/* =========================
   DIA INDISPONÍVEL
========================= */

.indisponivel-dia {

    background: #4a4a4a;

    color: #777777;

    cursor: not-allowed;

    position: relative;

}


/* =========================
   HOVER INDISPONÍVEL
========================= */

.indisponivel-dia:hover {

    transform: none;

    box-shadow: none;

}


.indisponivel-dia::after {

    content: "Dia indisponível";

    position: absolute;

    bottom: -38px;

    left: 50%;

    transform: translateX(-50%);

    background: #222222;

    color: #ffffff;

    padding: 7px 12px;

    border-radius: 6px;

    font-size: 12px;

    font-weight: normal;

    white-space: nowrap;

    opacity: 0;

    pointer-events: none;

    transition: 0.2s;

    z-index: 10;

}


/* =========================
   CONTROLE DO AVISO NO CELULAR
========================= */

@media (max-width: 600px) {

    .indisponivel-dia::after {

        display: none;

    }

}


/* =========================
   DIAS VAZIOS
========================= */

.vazio {

    background: transparent;

    cursor: default;

}


.vazio:hover {

    transform: none;

    box-shadow: none;

}


/* =========================
   HOVER DOS DIAS
========================= */

.dia:not(.indisponivel-dia):not(.vazio):hover {

    transform: scale(1.05);

    box-shadow:
        0 5px 15px rgba(0, 0, 0, 0.2);

}


/* =========================
   AVISO
========================= */

.aviso-calendario {

    width: 90%;

    max-width: 950px;

    margin: 25px auto 0;

    text-align: center;

}


.aviso-calendario p {

    color: #777777;

    font-size: 15px;

}


/* =========================
   FORMULÁRIO
========================= */

.formulario-cotacao {

    width: 90%;

    max-width: 750px;

    margin: 100px auto 0;

    padding: 50px;

    background: #174A7E;

    border-radius: 25px;

    box-shadow:
        0 10px 30px rgba(23, 74, 126, 0.2);

}


.formulario-cotacao h2 {

    color: #ffffff;

    text-align: center;

    font-size: 35px;

    margin-bottom: 15px;

}


.data-selecionada {

    color: #ffffff;

    text-align: center;

    margin-bottom: 40px;

    font-size: 17px;

}


.data-selecionada strong {

    color: #FFE082;

}


/* =========================
   CAMPOS
========================= */

.campo {

    display: flex;

    flex-direction: column;

    margin-bottom: 25px;

}


.campo label {

    color: #ffffff;

    font-size: 16px;

    font-weight: bold;

    margin-bottom: 8px;

}


.campo input,
.campo select,
.campo textarea {

    width: 100%;

    padding: 15px;

    border: none;

    border-radius: 10px;

    font-size: 16px;

    outline: none;

}


.campo textarea {

    resize: vertical;

}


/* =========================
   BOTÃO
========================= */

.botao-enviar {

    width: 100%;

    padding: 18px;

    background: #C62828;

    color: #ffffff;

    border: none;

    border-radius: 12px;

    font-size: 18px;

    font-weight: bold;

    cursor: pointer;

    transition: 0.3s;

}


.botao-enviar:hover {

    background: #E53935;

    transform: translateY(-4px);

}




















/* ==================================================
   RESPONSIVIDADE
   COTAÇÃO
================================================== */


/* =========================
   TABLET
========================= */

@media (max-width: 900px) {

    header {

        height: 85px;

    }


    header img {

        width: 110px;

        margin-left: 20px;

    }


    nav {

        gap: 20px;

    }


    nav a {

        font-size: 16px;

    }


    .cotacao {

        padding-top: 125px;

    }


    .cotacao-introducao {

        padding: 35px 20px;

    }


    .cotacao-introducao h1 {

        font-size: 38px;

    }


    .cotacao-introducao p {

        font-size: 18px;

    }


    .calendario-container {

        width: 94%;

        padding: 25px;

    }


    .calendario-topo h2 {

        font-size: 25px;

    }


    .dia {

        min-height: 75px;

    }


    .formulario-cotacao {

        width: 90%;

        padding: 35px;

        margin-top: 70px;

    }

}


/* =========================
   CELULAR
========================= */

@media (max-width: 600px) {

    body {

        overflow-x: hidden;

    }


    /* =========================
    HEADER
    ========================= */

    header {

        height: auto;

        min-height: 85px;

        padding: 15px;

        justify-content: center;

    }


    header img {

        display: none;

    }


    nav {

        width: 100%;

        gap: 12px;

        flex-wrap: wrap;

        justify-content: center;

        padding-left: 0;

    }


    nav a {

        font-size: 10px;

        font-weight: 700;

    }


    .pagina-selecionada::after {

        bottom: -6px;

    }


    /* =========================
       CONTEÚDO
    ========================= */

    .cotacao {

        padding-top: 115px;

        padding-bottom: 60px;

    }


    .cotacao-introducao {

        padding: 30px 18px;

    }


    .cotacao-introducao span {

        font-size: 13px;

        letter-spacing: 2px;

    }


    .cotacao-introducao h1 {

        font-size: 30px;

        line-height: 1.2;

        margin: 15px 0;

    }


    .cotacao-introducao p {

        font-size: 16px;

        line-height: 1.5;

    }


    /* =========================
       CALENDÁRIO
    ========================= */

    .calendario-container {

        width: 95%;

        padding: 15px 10px;

        border-width: 2px;

        border-radius: 18px;

    }


    .calendario-topo {

        margin-bottom: 20px;

    }


    .calendario-topo h2 {

        font-size: 21px;

        text-align: center;

    }


    .calendario-topo button {

        width: 38px;

        height: 38px;

        font-size: 25px;

        flex-shrink: 0;

    }


    .dias-semana {

        gap: 4px;

        margin-bottom: 6px;

    }


    .dias-semana span {

        font-size: 10px;

    }


    .dias {

        gap: 4px;

    }


    .dia {

        min-height: 58px;

        border-radius: 8px;

        font-size: 14px;

        gap: 4px;

    }


    .numero-dia {

        font-size: 16px;

    }


    .preco-dia {

        font-size: 10px;

        max-width: 100%;

        overflow: hidden;

        text-overflow: ellipsis;

        white-space: nowrap;

    }


    /* =========================
       AVISO
    ========================= */

    .aviso-calendario {

        width: 90%;

        margin-top: 20px;

    }


    .aviso-calendario p {

        font-size: 13px;

        line-height: 1.5;

    }


    /* =========================
       FORMULÁRIO
    ========================= */

    .formulario-cotacao {

        width: 92%;

        margin-top: 60px;

        padding: 30px 20px;

        border-radius: 18px;

    }


    .formulario-cotacao h2 {

        font-size: 28px;

    }


    .data-selecionada {

        font-size: 15px;

        line-height: 1.5;

        margin-bottom: 30px;

    }


    .campo {

        margin-bottom: 20px;

    }


    .campo input,
    .campo select,
    .campo textarea {

        padding: 13px;

        font-size: 15px;

    }


    .botao-enviar {

        padding: 15px;

        font-size: 16px;

    }

}


/* =========================
   CELULAR MUITO PEQUENO
========================= */

@media (max-width: 380px) {

    header img {

        width: 75px;

    }


    nav {

        gap: 8px;

        padding-left: 8px;

    }


    nav a {

        font-size: 11px;

    }


    .calendario-topo h2 {

        font-size: 18px;

    }


    .calendario-topo button {

        width: 34px;

        height: 34px;

        font-size: 22px;

    }


    .dia {

        min-height: 52px;

    }


    .numero-dia {

        font-size: 14px;

    }


    .preco-dia {

        font-size: 9px;

    }

}





/* ==================================================
   CORREÇÃO DEFINITIVA DO CALENDÁRIO NO CELULAR
================================================== */

@media (max-width: 600px) {

    .calendario-container {
        width: 95%;
        max-width: 100%;
        padding: 15px 8px;
        overflow: hidden;
    }

    .dias-semana {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 3px;
    }

    .dias {
        width: 100%;
        max-width: 100%;
        display: grid;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 3px;
        overflow: hidden;
    }

    .dia {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        min-height: 58px;
        padding: 3px;
        margin: 0;
        overflow: hidden;
        box-sizing: border-box;
    }

    .numero-dia {
        width: 100%;
        min-width: 0;
        font-size: 15px;
        text-align: center;
    }

    .preco-dia {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        font-size: 9px;
        text-align: center;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .indisponivel-dia {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
    }

    .indisponivel-dia .preco-dia {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        font-size: 8px;
    }

}