*{
    padding: 0;
    margin: 0;
}
body{
    font-family: 'Hind', sans-serif;
}

ul{
    margin: 0;
    padding: 0;
    list-style: none;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible{
    outline: none;
}

.paddingt-default{
    padding-top: 70px;
}

.paddingb-default{
    padding-bottom: 70px;
}

.margint-default{
    margin-top: 70px;
}

.marginb-default{
    margin-bottom: 70px;
}

.btn--transparent{
    border-radius: 25px;
    border: 1px solid #fff;
    color: #fff;
    background-color: transparent;
    font-size: 14px;
    font-weight: 600;
    padding: 8px 30px;
}

.btn--transparent:hover{
    background: #fff;
    color: #00427B;
}

.btn--transparent.blue{
    color: #00427B;
    border-color: #00427B;
}

.btn--transparent.blue:hover{
    color: #fff;
    background: #00427B;
}

.btn--transparent.dark{
    color: #2E2E2E;
    border-color: #2E2E2E;
}

.btn--transparent.dark:hover{
    color:#fff;
    background: #2e2e2e;
}

.btn--blue{
    border: 1px solid #00427B;
    background: #00427B;
    border-radius: 5px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 6px 30px;
}

.btn--blue:hover{
    background: transparent;
    color: #00427B;
    border: 1px solid #00427B;
}

.title-style{
    font-size: 30px;
    font-weight: 600;
    line-height: 35px;
    color: #000;
    margin-bottom: 50px;
}

.title-style.white{
    color: #fff;
}

.subtitle-style,
.txt-style h2{
    font-size: 20px;
    font-weight: 600;
    line-height: 35px;
    color: #2E2E2E;
}

.title-style--intern{
    color: #000;
    font-size: 25px;
    font-weight: 700;
    line-height: 35px;
}

.txt-style p,
.txt-style li{
    font-size: 16px;
    font-weight: 300;
    line-height: 26px;
    color: #191B1F;
}

.txt-style ul{
    list-style: disc;
    padding-left: 2rem;
}

.txt-style.white p{
    color: #fff;
}

.breadcrumb{
    z-index: 1000;
    position: relative;
}

.breadcrumb p,
.breadcrumb a{
    font-size: 14px;
    font-weight: 300;
    line-height: 35px;
    color: #fff;
    text-decoration: none;
}

.breadcrumb.blue p,
.breadcrumb.blue a{
    color: #00427B;
    font-weight: 400;
}

.bg--light-blue{
    background: #F3F6F9;
}

/* HEADER */

header{
    background: #00427B;
}

.navbar-nav{
    gap: 45px;
}

header .navbar-nav .nav-link,
header .menu-item a{
    font-size: 13px;
    font-weight: 500;
    line-height: 21px;
    color: #fff;
    text-transform: uppercase;
    padding: 0;
    text-decoration: none;
}

header .navbar-nav .menu-item.btn.btn--white a{
    background: #fff;
    border-radius: 7px;
    border: 1px solid #fff;
    padding: 2px 30px;
    color: #00427B;
}

header .navbar-nav .menu-item.btn.btn--white a:hover{
    background: transparent;
    color: #fff;
}

.header-search{
    display: flex;
    background: #fff;
    border-radius: 7px;
    padding: 6px 20px;
    gap: 10px;
    margin-bottom: 1rem;
}

.header-search input{
    border: none;
    font-size: 15px;
    font-weight: 500;
    color: #8C9AA6;  
}

.header-search input::placeholder{
    color: #8C9AA6;
}

.header-search button{
    background: transparent;
    border: none;
    padding: 0;
}

.space-menu{
    height: 55px;
}

/* HOME */

/* banner */

.main-banner{
    position: relative;
}

/* O banner inteiro e clicavel: o texto vem embutido na imagem, entao nao ha
   mais botao nem camada de texto por cima. */
.main-banner__link{
    display: block;
}





.carousel-indicators{
    bottom: 15px;
}

.carousel-indicators [data-bs-target] {
    width: 44px;
    height: 2px;
}

/* viagens */

.travel-card{
    border-radius: 7px;
    position: relative;
    height: 100%;
}

.travel-card img{
    height: 100%;
    object-fit: cover;
    border-radius: 7px;
}

.travel-card.highlight img{
    height: 240.45px;
}

.travel-card__overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30.1%, rgba(0, 0, 0, 0.634766) 81.67%);
    padding: 20px;
    border-radius: 7px;
    color: #fff;
}

.travel-card:hover .travel-card__overlay{
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.634766) 81.67%);
}

.travel-card--country,
.travel-card--itinerary{
    font-size: 14px;
    font-weight: 700;
    line-height: 22px;
    margin-bottom: 0;
}

.travel-card__overlay h3{
    font-size: 24px;
    font-weight: 600;
    line-height: 35px;
    margin-bottom: 0;
}

.travel-card--excerpt{
    font-size: 16px;
    font-weight: 300;
    line-height: 26px;
    margin-bottom: 0;
}

.travel-card__hover{
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.5s ease, opacity 0.7s ease;
}

.travel-card:hover .travel-card__hover{
    max-height: 140px;
    opacity: 1;
}

.travel-card--itinerary{
    margin: 5px 0;
}

.travel-card__overlay .btn--transparent{
    font-size: 10px;
    text-transform: uppercase;
}

/* viagem destaque */

.featured-trip{
    position: relative;
}

.featured-trip img{
    height: 527px;
    object-fit: cover;
}

.featured-trip__overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(357.56deg, rgba(0, 0, 0, 0.744) 1.93%, rgba(0, 0, 0, 0) 84.28%);
}

/* estilos de viagem */

/* DESTINOS */

/* banner */

.banner-intern{
    position: relative;
}

/* Proporcao fixa em vez de height: auto. Antes era a imagem enviada que
   definia a altura do topo: uma foto 4:3 em largura total rendia ~1440px de
   altura numa tela de 1920, mais alto que a propria tela. Com proporcao fixa
   o layout nao depende mais do que foi enviado, e quem enviar no tamanho
   indicado no painel nao perde nada no recorte. */
.banner-intern__img{
    width: 100%;
    aspect-ratio: 3 / 1;
    object-fit: cover;
    object-position: center;
}

.banner-intern__overlay{
    position: absolute;
    top: 0;
    display: flex;
    align-items: end;
    padding-bottom: 32px;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.43) 0%, rgba(0, 0, 0, 0) 100%);
}

.banner-intern__title {
    width: 38%;
    background: #fff;
    height: 64px;
    display: flex;
    align-items: center;
    text-align: center;
    position: relative;
    margin-top: -64px;
}

.banner-intern__title::before{
    content: '';
    width: 1000%;
    left: -1000%;
    height: 64px;
    background: #fff;
    position: absolute;
}

.banner-intern__title::after {
    content: '';
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 0 57.5px 64px 0;
    border-color: transparent transparent #FFff transparent;
    transform: rotate(0deg);
    position: absolute;
    right: -57px;
}

.banner-intern__title h1{
    font-size: 28px;
    font-size: 28px;
    font-weight: 600;
    line-height: 35px;
    color: #000;
    margin: 0;
}

.banner-intern .carousel-indicators {
    bottom: 70px;
}

/* aside */

.help-card{
    border-radius: 20px;
    box-shadow: 0px 4px 4px 0px #00000040;
}

.help-card__title{
    background: #00427B;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;

}

.help-card__title,
.help-card__content{
    padding: 15px 60px;
}

.help-card__title h2{
    font-size: 20px;
    font-weight: 500;
    line-height: 32px;
    color: #fff;
    margin: 0;
}


.help-card__title h2 span{
    font-weight: 700;
    display: block;
}

.help-card__content ul li{
    margin: 5px 0;
}

.help-card__content ul li a,
.help-card--txt{
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;   
    color: #2E2E2E;
    text-decoration: none; 
}

.help-card--txt{
    text-align: center;
    margin: 10px 0;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
}

.help-card--txt::before,
.help-card--txt::after{
    content: '';
    width: 100%;
    height: 1px;
    background: #2e2e2e;
}

/* porque escolher */

.why-choose{
    position: relative;
}

.why-choose__overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.5) 100%);
}

.why-choose h2{
    color: #fff;
    font-weight: 700;
    font-size: 30px;
    font-weight: 500;
    line-height: 35px;
}

.why-choose h2 span{
    color: #F2D194;
}

.why-choose__item h3{
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 29px;
    margin: 10px 0 5px 0;
}

.why-choose__item p{
    color: #fff;
    font-size: 18px;
    font-weight: 400;
    line-height: 26px;
    margin: 0;
}

/* destinos */

.travel-card.destiny{
    border-radius: 20px;
}

.travel-card.destiny img{
    border-radius: 20px;
}

.travel-card.destiny .travel-card__overlay{
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #181818 100%);
}

.travel-card.destiny h3{
    font-size: 18px;
    font-weight: 600;
    line-height: 29px;
}

.travel-card.destiny .travel-card--excerpt{
    font-size: 12px;
    font-weight: 300;
    line-height: 19px;
}

.travel-card.destiny .btn--transparent{
    width: 50%;
    margin-top: 30px;
}

/* PACOTES */

.package-item{
    box-shadow: 3px 4px 4px 0px #0000000A;
    border-radius: 10px;
    height: 100%;
}

.package-item:hover{
    transition: all ease 0.5s;
    box-shadow: 7px 6px 6px 0px #0000000F;
}

.package-item a{
    text-decoration: none;
}

.package-item__img{
    position: relative;
}

.package-item__img img{
    height: 210px;
    object-fit: cover;
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
}

.package-item__overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    padding-top: 30px;
}

.package-item--type{
    background: #00427B;
    margin: 0;
    width: 45%;
    padding: 3px;
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    color: #fff;
    text-align: center;
}

.package-item--days{
    border-radius:10px;
    background: #fff;
    box-shadow: 0px 4px 4px 0px #0000000D;
    font-size: 15px;
    font-weight: 700;
    line-height: 24px;
    color: #00427B;
    padding: 3px 20px;
    position: absolute;
    right: 20px;
    bottom: -30px;
}

.package-item__infos{
    padding: 20px;
}

.package-item__infos h3{
    font-size: 20px;
    font-weight: 600;
    line-height: 32px;
    color: #00427B;
    margin-bottom: 0;
}

.package-item__infos .line{
    width: 100%;
    height: 1px;
    background: rgba(0,0,0,0.1);
    margin: 5px 0 10px 0;
}

.package-item--visiting{
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    color: #00427B;
}

.package-item--leaving,
.package-item--frequency,
.package-item--price{
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;
    color: #2E2E2E;
}

.package-item--leaving,
.package-item--price{
    margin-bottom: 5px;
}

.package-item--frequency{
    margin-bottom: 10px;
}

.package-item--excerpt{
    font-size: 12px;
    font-weight: 300;
    line-height: 19px;
    color: #2E2E2E;
}

.package-item--date{
    font-size: 12px;
    font-weight: 600;
    line-height: 19px;
    color: #00427B;
    margin: 0;
}

.package-item--price span{
    color: #000;
    font-size: 22px;
    font-weight: 600;
    line-height: 35px;
}

.package-item--obs{
    font-size: 10px;
    font-weight: 300;
    line-height: 16px;
    margin: 0;
    color: #2E2E2E;
}

/* date picker */

#datepicker{
    height: 100%;
}

.ui-widget.ui-widget-content{
    width: 100%;
    border: none;
    box-shadow: 4px 4px 4px 0px #0000001A;
    border-radius: 10px;
    height: 100%;
}

.ui-datepicker .ui-datepicker-header{
    padding: 15px 0;
}

.ui-widget-header{
    background: transparent;
    border: none;
}

.ui-datepicker .ui-datepicker-title{
    font-family: 'Hind', sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 26px;
}

.ui-datepicker .ui-datepicker-prev, 
.ui-datepicker .ui-datepicker-next{
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #e8e8e8;
    cursor: pointer;
    top: 0;
    bottom: 0;
    margin:auto;
}

.ui-datepicker .ui-datepicker-prev {
    left: 55px;
}

.ui-datepicker .ui-datepicker-next {
    right: 55px;
}

.ui-datepicker .ui-datepicker-prev span{
    background: url('../images/icon-arrow-left.png');
}

.ui-datepicker .ui-datepicker-next span {
    background: url('../images/icon-arrow-right.png');
}

.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
    top: 0;
    bottom: 0;
    margin: auto;
    left: 0;
    right: 0;
    width: 13px;
    height: 13px;
}

.ui-state-default, .ui-widget-content .ui-state-default{
    width: 30px;
    color: #000;
    font-size: 14px;
    font-weight: 500;
    border: none;
    border-radius: 8px;
    background: transparent;
    text-align: center;
    margin: 0 auto;
}

#datepicker .ui-datepicker-calendar td a {
    cursor: default !important;
}

.ui-state-active, .ui-widget-content .ui-state-active {
    background: #fff !important;
    font-weight: unset !important;
    color: #2E2E2E;
}

.ui-state-active, .ui-widget-content .ui-state-active{
    background: #4DD5AD;
    font-weight: 700;
    color: #2E2E2E;
}

.ui-datepicker-unselectable .ui-state-default {
    color: #c0c0c0; /* Cor cinza para o número da data */
    position: relative; /* Posicionamento relativo para o pseudoelemento */
}

.ui-datepicker-unselectable .ui-state-default::after {
    content: ''; /* Conteúdo vazio para o pseudoelemento */
    position: absolute; /* Posicionamento absoluto dentro do .ui-state-default */
    left: 0; /* Alinha à esquerda do container */
    right: 0; /* Alinha à direita do container */
    top: 50%; /* Posiciona no meio verticalmente */
    border-top: 1px solid red; /* Linha vermelha */
    /* Ajuste 'width' e 'left' conforme necessário para alinhar o traçado */
}

/* Microsegmentação */

.banner-intern.micro .banner-intern__overlay{
    align-items: center;
    justify-content: center;
    text-align: center;
}

.banner-intern.micro h1 {
    font-size: 45px;
    font-weight: 700;
    line-height: 35px;
    color: #fff;
    text-transform: uppercase;
}

.banner-intern--days{
    font-size: 18px;
    font-weight: 500;
    line-height: 35px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.banner-intern--days::before,
.banner-intern--days::after{
    content: '';
    width: 42%;
    height: 2px;
    background: #fff;
}

.info-card{
    box-shadow: 4px 4px 4px 0px #0000001A;
    border-radius: 20px;
    padding: 30px 15px;
    background: #fff;
}

.info-card a{
    text-decoration: none;
    cursor: pointer;
}

.info-card--days{
    font-size: 25px;
    font-weight: 600;
    line-height: 35px;
    color: #2E2E2E;
    margin-bottom: 0;
}

.info-card .line{
    width: 100%;
    height: 1px;
    background: rgba(0,0,0,0.5);
    margin: 5px 0 10px 0;
}


.info-card--price{
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;  
    color: #2E2E2E;
}

.info-card--price span{
    color: #000;
    font-size: 22px;
    font-weight: 600;
    line-height: 35px;
    margin: 30px 0;
}

.info-card--obs{
    font-size: 8px;
    font-weight: 300;
    line-height: 13px;
    color: #2E2E2E;
    margin-bottom: 0;
}

.info-card.small{
    padding: 6px;
    text-align: center;
    border-radius: 10px;
    position: relative;
    width: 75px;
    height: 56px;
}

.info-card.small p{
    font-size: 10px;
    font-weight: 500;
    line-height: 16px;
    color: #000;
    margin-bottom: 0;
    position: absolute;
    bottom: 6px;
    right: 0;
    left: 0;
    margin: auto;
}

.info-card.small:hover{
    transition: all ease 0.4s;
    box-shadow: 6px 6px 6px 0px #0000001F;
}

.info-card.small.photos{
    position: relative;
}

.info-card.small.photos a{
    position: absolute;
    top: 0px;
    left: 0px;
    padding: 6px;
    width: 100%;
    height: 100%;
}

/* roteiro */

.title-style--intern.itinerary{
    font-size: 30px;
    line-height: 35px;
    font-weight: 600;
}

.itinerary-line--day{
    font-size: 20px;
    font-weight: 600;
    line-height: 28px;
    color: #3A3A3A;
    margin: 0;
}

.itinerary-line--date{
    font-size: 18px;
    font-weight: 400;
    line-height: 29px;
    color: #3A3A3A;
    margin-bottom: 8px;
}

.itinerary-line__day-date .txt-style p{
    font-weight: 400;
    text-align: justify;
}

.itinerary-line--dot{
    background: #00427B;
    border-radius: 50%;
    border: 20px solid #fff;
    width: 48px;
    height: 48px;
}

.itinerary-line ul li:first-child .itinerary-line--dot,
.itinerary-line ul li:last-child .itinerary-line--dot{
    border: 15px solid #fff;
}

.itinerary-line ul li:last-child .itinerary-line--line{
    width: 0;
    height: 0;
}

.itinerary-line--line{
    height: 68%;
    width: 2px;
    background: #00427B;
}

.title-style--intern.itinerary.smaller{
    font-size: 25px;
}

/* SOBRE NOS */

.banner-intern.institutional .banner-intern__overlay{
    align-items: center;
    justify-content: center;
}

.banner-intern.institutional h1{
    font-size: 30px;
    font-weight: 700;
    line-height: 35px;
    color: #fff;
}

.section-about{
    position: relative;
    height: 442px;
}

.section-about__img--right,
.section-about__img--left{
    position: absolute;
    top: 0;
    height: 100%;
    object-fit: cover;
    width: 50%;
}

.section-about__img--right{
    right: 0;
}

.section-about__img--left{
    left: 0;
}

.about-middle-img{
    position: relative;
}

.about-middle-img__overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 43.75%, rgba(0, 0, 0, 0.44) 100%);
}

.section-about__citation{
    font-size: 30px;
    font-weight: 600;
    line-height: 48px;
    text-align: center;
    color: #00427B;
}

/* CONTATO */

.contact-form .wpcf7-form label{
    font-size: 14px;
    font-weight: 600;
    line-height: 22px;
    color: #2E2E2E;
    margin-bottom: 5px;
}

.contact-form .wpcf7-form input:not([type="submit"]),
.contact-form .wpcf7-form textarea{
    width: 100%;
    border: 1px solid #636363;
    border-radius: 10px;
    padding: 10px;
    font-size: 14px;
    font-weight: 300;
    line-height: 22px;
}

.contact-form .wpcf7-form input::placeholder,
.contact-form .wpcf7-form textarea::placeholder{
    color: #2E2E2E52;
}

.contact-form .wpcf7-form textarea{
    height: 185px;
}

.contact-form .wpcf7-form .btn--blue{
    border-radius: 10px;
    padding: 10px;
    font-size: 14px;
    width: 100%;
}

.contact-list li a{
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #2E2E2E;
    text-decoration: none;
    display: flex;
    align-items: start;
    gap: 12px;
}

.contact-list li{
    margin: 12px 0;
}

.social-circle.blue{
    border-color: #00427B;
}

.contact-map iframe{
    width: 100%;
    height: 294px;
    border-radius: 10px;
}

/* MODAL */

@media (min-width: 576px){
    #faleConoscoModal .modal-dialog{
        max-width: 70%;
    } 

    #reservaPacoteModal .modal-dialog{
        max-width: 70%;
    } 

    #videoPacoteModal .modal-dialog{
        max-width: unset;
    }
    
    #videoPacoteModal .modal-content{
        width: unset;
        display: block;
        margin: auto;
    }
}

#faleConoscoModal .modal-content,
#reservaPacoteModal .modal-content,
#videoPacoteModal .modal-content{
    /* border-radius: 50px; */
}

#reservaPacoteModal .modal-body,
#faleConoscoModal .modal-body{
    padding: 0;
}

#faleConoscoModal .modal-header,
#reservaPacoteModal .modal-header,
#videoPacoteModal .modal-header{
    position: relative;
    border: none;
}

#faleConoscoModal .modal-header .btn-close,
#reservaPacoteModal .modal-header .btn-close,
#videoPacoteModal .modal-header .btn-close{
    position: absolute;
    top: 25px;
    right: 25px;
}

#FaleConoscoTab{
    justify-content: center;
    gap: 30px;
    border: none;
}

#FaleConoscoTab .nav-link{
    border: 1px solid #00427B;
    border-bottom: none;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    padding: 10px 40px;
    font-size: 18px;
    font-weight: 500;
    line-height: 29px;
    color: #00427B;
}

#FaleConoscoTab .nav-link.active{
    background: #E8EEF3;
}

#FaleConoscoTabContent{
    background: #E8EEF3;
    border-bottom-left-radius: 50px;
    border-bottom-right-radius: 50px;
    padding: 20px 80px;
}

#FaleConoscoTabContent .txt-style p{
    font-size: 18px;
    font-weight: 400;
    line-height: 29px;
}

#FaleConoscoTabContent .contact-list li a{
    color: #00427B;
    font-size: 20px;
    font-weight: 600;
    line-height: 32px;
}

#FaleConoscoTabContent .localization{
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #2E2E2E;
    display: flex;
    align-items: start;
    gap: 12px;
}

#FaleConoscoTabContent .contact-map iframe{
    height: 193px;
    border-radius: 0;
}

#FaleConoscoTabContent .contact-form .wpcf7-form input:not([type="submit"]),
#FaleConoscoTabContent .contact-form .wpcf7-form textarea {
    padding: 8px;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.43), rgba(255, 255, 255, 0.43));
}

#FaleConoscoTabContent .contact-form .wpcf7-form input::placeholder,
#FaleConoscoTabContent .contact-form .wpcf7-form textarea::placeholder{
    color: #4F5B65;
}

#FaleConoscoTabContent .contact-form .wpcf7-form textarea {
    height: 86px;
}

#FaleConoscoTabContent .contact-form .wpcf7-form .btn--blue{
    width: 20%;
    display: block;
    margin: auto;
}

#videoPacoteModal .modal-header{
    padding: 0;
}

#videoPacoteModal .modal-body{
    padding: 0;
}

#videoPacoteModal .modal-header .btn-close{
    z-index: 1000;
}

#videoPacoteModal iframe{
    /* border-radius: 50px; */
    display: block;
    margin: auto;
}

#reservaPacoteModal .modal-body {
    padding: 20px 80px;
}

/* FOOTER */

footer{
    background: #00427B;
}

footer a:hover{
    transition: all ease 0.3s;
    opacity: 0.8;
}

.border-right{
    border-right: 2px solid #F5F5F559;
}

.social-circle{
    border: 1px solid #F5F5F5;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.social-circle img {
    height: 14px;
}

.footer-nav h2{
    font-size: 18px;
    font-weight: 700;
    line-height: 19px;
    color: #fff;
}

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

.footer-nav li a{
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
    color: #fff;
    text-decoration: none;
}

.copyright{
    background: #082E50;
}

.copyright p{
    font-size: 11px;
    font-weight: 500;
    line-height: 20px;
    margin-bottom: 0;
    text-transform: uppercase;
    color: #fff;
    text-align: center;
}

/* RESPONSIVO */

@media(max-width: 992px){
    .navbar-brand{
        display: block;
        margin: auto;
    }

    .btn--menu-mobile{
        border: none;
    }

    .menu-lines{
        width: 24px;
        height: 3px;
        background: #fff;
        position: relative;
    }

    .menu-lines::before,
    .menu-lines::after{
        content: '';
        width: 24px;
        height: 3px;
        background: #fff;
        position: absolute;
        left: 0;
    }

    .menu-lines::before{
        top: 8px;
    }

    .menu-lines::after{
        bottom: 8px;
    }

    .offcanvas.offcanvas-end{
        background: #00427B;
        width: 86vw;
        max-width: 360px;
    }
    
    header .btn-close{
        filter: brightness(0) invert(1);
        opacity: 1;
    }

    .navbar-nav{
        gap: 10px;
    }

    header .navbar-nav .nav-item .nav-link {
        padding: 4px 0;
        border-bottom: 1px solid rgba(255,255,255,0.3);
    }

    header .navbar-nav .nav-item:last-child .nav-link,
    header .navbar-nav .nav-item:nth-last-child(2) .nav-link{
        border-bottom: none;
    }

    header .navbar-nav .nav-item .nav-link.arrow-right{
        display: flex;
        justify-content: space-between;
    }

    header .navbar-nav .nav-item .nav-link.arrow-right::after{
        content: url('../images/icon-arrow-menu.png');
    }
    
}

@media(max-width: 768px){
    .margint-default{
        margin-top: 50px;
    }

    .marginb-default{
        margin-bottom: 50px;
    }

    .paddingt-default{
        padding-top: 50px;
    }

    .paddingb-default{
        padding-bottom: 50px;
    }

    .title-style{
        font-size: 25px;
        line-height: 35px;
        margin-bottom: 25px;
    }

    /* Mesma proporcao de celular das internas. Sem isso, um banner 3:1 do
       computador vira uma faixa de ~143px de altura num celular de 430px.
       Com o recorte, quem ainda nao tem a arte de celular ve o centro da
       imagem de computador em vez de uma tira fina. */
    .main-banner .carousel-item img{
        aspect-ratio: 5 / 4;
        object-fit: cover;
        object-position: center;
    }

    /* Proporcao de celular, aplicada a todo tipo de pagina interna. Antes so
       .micro e .institutional eram limitadas, e so aqui no celular. */
    .banner-intern__img{
        aspect-ratio: 5 / 4;
    }



    .travel-card--excerpt {
        display: none;
    }

    .travel-card__hover {
        opacity: 1;
        max-height: unset;
    }

    .travel-card__overlay{
        padding: 10px;
    }

    .travel-card__overlay .btn--transparent{
        width: 100%;
    }

    .travel-card__overlay h3{
        font-size: 22px;
        line-height: 28px;
    }

    .featured-trip img {
        height: 441px;
    }

    .breadcrumb{
        display: none;
    }

    .banner-intern .carousel-indicators {
        bottom: 20px;
    }

    .banner-intern__title h1{
        font-size: 25px;
        line-height: 35px;
    }

    .banner-intern__title{
        width: 100%;
        padding-top: 50px;
        margin-top: 0;
        height: unset;
        justify-content: center;
    }

    .banner-intern__title::after{
        display: none;
    }

    .subtitle-style,
    .txt-style h2 {
        font-size: 18px;
        line-height: 35px;
        text-align: center;
    }

    .why-choose__overlay{
        text-align: center;
    }

    .why-choose h2 {
        font-size: 28px;
    }

    .travel-card.destiny .btn--transparent {
        margin-top: 15px;
    }

    .travel-card.destiny .travel-card--excerpt {
        display: block;
    }

    .banner-intern--days::before, .banner-intern--days::after {
        width: 26%;
    }

    .info-card .line {
        width: 1px;
        height: 75px;
    }

    .info-card--price{
        margin-left: auto;
    }

    .info-card.small{
        width: 100%;
    }

    .itinerary-line .hidden {
        display: none;
    }

    .itinerary-line li{
        position: relative;
    }

    .itinerary-line__overlay{
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.6) 0%, #FFFFFF 100%);
    }

    .section-about{
        height: unset;
    }

    .section-about-img__container{
        position: relative;
        margin-bottom: -45px;
        z-index: -1;
    }

    .section-about__overlay{
        width: 100%;
        height: 100%;
        position: absolute;
        top: 25px;
        left: 0;
        background: linear-gradient(0deg, #FFFFFF 21.25%, rgba(255, 255, 255, 0) 100%);
    }

    .section-about__img--right, 
    .section-about__img--left{
        width: 100%;
        position: unset;
        height: 250px;
    }

    .about-middle-img img{
        height: auto;
        width: 100%;
        /* object-fit: cover; */
    }
    
    .section-about__citation {
        line-height: 35px;
    }

    .about-middle-img__overlay.white--mobile{
        background: linear-gradient(0deg, #FFFFFF 21.25%, rgba(255, 255, 255, 0) 100%);
        height: 35%;
        bottom: 0;
        top: unset;
    }

    .banner-intern.institutional.contact img{
        object-position: left;
    }

    .banner-intern.institutional.contact h1 span{
        color: #F2D194;
    }

    .title-style--intern span.blue{
        color: #00427B;
        display: block;
    }

    #FaleConoscoTab {
        gap: 20px;
    }

    #FaleConoscoTab .nav-link{
        padding: 6px;
        font-size: 16px;
    }

    #FaleConoscoTabContent{
        padding: 10px;
    }

    #FaleConoscoTabContent .txt-style p,
    #FaleConoscoTabContent .contact-list li a {
        font-size: 16px;
        font-weight: 400;
        line-height: 22px;
    }

    #videoPacoteModal iframe{
        width: 100%;
    }

    footer .row .col-md-3.border-right:first-child,
    footer .row .col-md-3:nth-child(3){
        border: none;
    }
}


.search-page .page-title-block {
    padding-top: 50px;
    padding-bottom: 30px;
    background: #eef7ffa6;
    margin-bottom: 40px;
}

.search-page .page-title-block h1 {
    font-size: 30px;
    font-weight: 500;
    line-height: 35px;
}
/* MEGA MENU */

.pna-mega__caret{
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 6px;
    vertical-align: middle;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid #fff;
}

/* O Bootstrap define position:relative no .navbar, o que faria o painel se
   posicionar dentro do .container e sair truncado. Static devolve o header
   (fixed) como referencia, e o painel ocupa a largura toda do browser. */
header .navbar{
    position: static;
}

/* visibility em vez de display: display nao e animavel, entao o painel
   aparecia de uma vez. A visibility entra sem atraso ao abrir e so some
   depois do fade, o que ainda da uma folga para o mouse descer ate ele. */
.pna-mega__panel{
    visibility: hidden;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity ease 0.2s, transform ease 0.2s, visibility 0s linear 0.2s;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #00559B;
    box-shadow: 0 10px 24px rgba(0,0,0,0.15);
    padding: 30px 0;
    z-index: 1030;
}

/* Ponte invisivel sobre o vao entre o link e o painel. Sem ela o hover se
   perde ao descer o mouse e o menu fecha antes de chegar nos links. */
.pna-mega__panel::before{
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 20px;
}

.pna-mega:hover .pna-mega__panel,
.pna-mega:focus-within .pna-mega__panel{
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity ease 0.2s, transform ease 0.2s, visibility 0s;
}

.pna-mega__grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 24px 30px;
}

header .pna-mega__panel .pna-mega__title{
    font-size: 13px;
    font-weight: 700;
    line-height: 21px;
    color: #fff;
    text-transform: uppercase;
    display: block;
    margin-bottom: 10px;
    text-decoration: none;
}

header .pna-mega__panel .pna-mega__title:hover{
    color: #F2D194;
}

/* Coluna de sobras: titulos empilhados precisam de respiro entre si. */
header .pna-mega__panel .pna-mega__title + .pna-mega__title{
    margin-top: 18px;
}

.pna-mega__list{
    list-style: none;
    margin: 0;
    padding: 0;
}

.pna-mega__list li{
    margin-bottom: 6px;
}

header .pna-mega__panel .pna-mega__list a{
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: rgba(255,255,255,0.85);
    text-transform: none;
    text-decoration: none;
}

header .pna-mega__panel .pna-mega__list a:hover{
    color: #F2D194;
}

@media(max-width: 992px){

    .pna-mega__panel{
        display: none;
    }

    .pna-mobile-nav .accordion-item,
    .pna-mobile-nav .accordion-button,
    .pna-mobile-nav .accordion-body{
        background: transparent;
        border: none;
    }

    header .pna-mobile-nav__link,
    .pna-mobile-nav .accordion-button{
        display: block;
        width: 100%;
        text-align: left;
        font-size: 13px;
        font-weight: 500;
        line-height: 21px;
        color: #fff;
        text-transform: uppercase;
        text-decoration: none;
        padding: 10px 0;
        border-bottom: 1px solid rgba(255,255,255,0.3);
        box-shadow: none;
    }

    /* A regra acima aplica display:block aos links; o botao do acordeao precisa
       de flex, que e como o Bootstrap empurra a seta para a direita. */
    .pna-mobile-nav .accordion-button{
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .pna-mobile-nav .accordion-button:not(.collapsed){
        color: #F2D194;
        box-shadow: none;
    }

    /* Seta branca: o chevron do Bootstrap e escuro por padrao.
       Tamanho reduzido de 1.25rem (padrao) para 0.875rem. */
    .pna-mobile-nav .accordion-button::after{
        flex-shrink: 0;
        margin-left: auto;
        width: 0.875rem;
        height: 0.875rem;
        background-size: 0.875rem;
        filter: brightness(0) invert(1);
    }

    .pna-mobile-nav .accordion-body{
        padding: 0 0 0 14px;
    }

    header .pna-mobile-nav__link--sub{
        font-weight: 400;
        text-transform: none;
        border-bottom-color: rgba(255,255,255,0.15);
    }

}

/* CARD DE PACOTE (vitrine da home) */

/* position: relative e o que faz o .stretched-link do botao cobrir o card
   inteiro: ele se estende ate o ancestral posicionado mais proximo. */
.package-card{
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid #E8EEF3;
    border-radius: 10px;
    overflow: hidden;
    transition: transform ease 0.25s, box-shadow ease 0.25s;
}

.package-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0,66,123,0.12);
}

.package-card:hover .package-card__img img{
    transform: scale(1.05);
}

.package-card__img{
    display: block;
    aspect-ratio: 700 / 378;
    overflow: hidden;
}

.package-card__img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform ease 0.4s;
}

/* Empurra o rodape para baixo e mantem precos e botoes alinhados entre
   cards de alturas diferentes na mesma linha. */
.package-card__body{
    flex: 1;
    padding: 20px;
}

.package-card__title{
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    color: #2E2E2E;
    margin-bottom: 8px;
}

.package-card__excerpt{
    font-size: 15px;
    font-weight: 400;
    line-height: 22px;
    color: #8C9AA6;
    margin-bottom: 0;
}

.package-card__footer{
    padding: 20px;
    border-top: 1px solid #E8EEF3;
}

.package-card__label{
    font-size: 13px;
    line-height: 18px;
    color: #8C9AA6;
    margin-bottom: 0;
}

.package-card__price{
    font-size: 24px;
    font-weight: 700;
    line-height: 30px;
    color: #2E2E2E;
    margin-bottom: 16px;
}

.package-card__price--consult{
    font-size: 18px;
    color: #8C9AA6;
}

.package-card__cta{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #F2D194;
    color: #2E2E2E;
    font-size: 14px;
    font-weight: 700;
    line-height: 20px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 14px 20px;
}

.package-card__cta:hover{
    background: #E8C27C;
    color: #2E2E2E;
}

/* CARD DE ESTILO DE VIAGEM (home) */

.style-card{
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    border-radius: 10px;
    overflow: hidden;
}

.style-card img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform ease 0.4s;
}

.style-card:hover img{
    transform: scale(1.05);
}

/* Degrade garante leitura do rotulo sobre qualquer foto, clara ou escura. */
.style-card::after{
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 55%);
}

.style-card__label{
    position: absolute;
    right: 16px;
    bottom: 14px;
    z-index: 1;
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: #fff;
    text-transform: uppercase;
    text-align: right;
}

@media(max-width: 768px){

    .style-card__label{
        right: 12px;
        bottom: 10px;
        font-size: 13px;
        line-height: 18px;
    }

}

/* FORMULARIO DE ORCAMENTO */

.form-orcamento__campo{
    margin-bottom: 18px;
}

.form-orcamento label,
.form-orcamento__legenda{
    display: block;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: #2E2E2E;
    margin-bottom: 6px;
}

.form-orcamento__legenda span,
.form-orcamento label span[aria-hidden]{
    color: #00427B;
}

.form-orcamento__opcional{
    font-weight: 400;
    color: #8C9AA6;
}

.form-orcamento input[type="text"],
.form-orcamento input[type="date"],
.form-orcamento select,
.form-orcamento textarea{
    width: 100%;
    font-size: 15px;
    line-height: 22px;
    color: #2E2E2E;
    background: #fff;
    border: 1px solid #E8EEF3;
    border-radius: 7px;
    padding: 10px 14px;
}

.form-orcamento input:focus,
.form-orcamento select:focus,
.form-orcamento textarea:focus{
    outline: 2px solid #00427B;
    outline-offset: 1px;
}

.form-orcamento fieldset{
    border: none;
    margin: 0;
    padding: 0;
}

.form-orcamento__periodo{
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.form-orcamento__periodo label{
    margin: 0;
    font-weight: 400;
    color: #8C9AA6;
}

.form-orcamento__periodo input{
    flex: 1;
    min-width: 150px;
}

.form-orcamento__opcoes{
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
}

.form-orcamento__opcao{
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}

.form-orcamento__opcao input{
    width: 16px;
    height: 16px;
    margin: 0;
    flex-shrink: 0;
}

.form-orcamento__passageiros{
    display: flex;
    gap: 16px;
}

.form-orcamento__passageiros > div{
    flex: 1;
}

.form-orcamento__passageiros label{
    font-weight: 400;
    color: #8C9AA6;
}

/* Blocos de idade criados pelo JS conforme a quantidade de criancas. */
.form-orcamento__idades{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 12px;
    padding: 14px;
    background: #E8EEF3;
    border-radius: 7px;
}

.form-orcamento__idades > div{
    flex: 1;
    min-width: 120px;
}

.form-orcamento__idades label{
    font-weight: 400;
    font-size: 13px;
    color: #2E2E2E;
}

.form-orcamento__erro{
    font-size: 14px;
    line-height: 20px;
    color: #B3261E;
    background: #FCE8E6;
    border-radius: 7px;
    padding: 10px 14px;
    margin-bottom: 12px;
}

.form-orcamento__aviso{
    font-size: 13px;
    line-height: 18px;
    color: #8C9AA6;
    text-align: center;
    margin: 10px 0 0;
}

/* PAGINA ISOLADA /orcamento */

.orcamento{
    background: #E8EEF3;
    min-height: 100vh;
    padding: 30px 0 50px;
}

.orcamento__marca{
    display: block;
    width: 150px;
    margin: 0 auto 24px;
}

.orcamento__marca img{
    width: 100%;
    height: auto;
}

.orcamento__cartao{
    max-width: 720px;
    margin: 0 auto;
    background: #fff;
    border-radius: 10px;
    padding: 30px;
}

.orcamento__cartao h1{
    font-size: 26px;
    font-weight: 700;
    line-height: 32px;
    color: #00427B;
    margin-bottom: 10px;
}

.orcamento__intro{
    margin-bottom: 24px;
}

@media(max-width: 768px){

    .orcamento__cartao{
        padding: 20px;
    }

    .form-orcamento__passageiros{
        gap: 10px;
    }

}

/* Rodape da pagina isolada /orcamento: fundo claro, entao usa as variantes
   azuis dos icones, nao as brancas do rodape do site. */

/* O tema aplica background azul em qualquer <footer> (seletor de elemento
   puro, linha 1283). Aqui o fundo precisa ficar transparente. */
footer.orcamento__rodape{
    background: transparent;
    max-width: 720px;
    margin: 26px auto 0;
    padding: 0 12px;
}

.orcamento__contato{
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
}

.orcamento__contato li{
    margin-bottom: 10px;
}

.orcamento__contato a{
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 20px;
    color: #00427B;
    text-decoration: none;
}

.orcamento__contato a:hover{
    text-decoration: underline;
}

/* Slot fixo: os icones tem larguras diferentes e nao alinhariam inline. */
.orcamento__icone{
    flex: 0 0 16px;
    display: flex;
    justify-content: center;
    padding-top: 3px;
}






/* BOTAO FLUTUANTE DO WHATSAPP */

/* z-index entre o header/mega menu (1030) e o offcanvas (1045) e o modal
   (1055) do Bootstrap: fica acima da pagina, mas nunca por cima deles. */
.whatsapp-flutuante{
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1035;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: #25D366;
    border-radius: 50%;
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    transition: transform ease 0.2s;
}

.whatsapp-flutuante:hover{
    transform: scale(1.06);
}

.whatsapp-flutuante img{
    width: 30px;
    height: 30px;
}

@media(max-width: 768px){

    .whatsapp-flutuante{
        right: 14px;
        bottom: 14px;
        width: 50px;
        height: 50px;
    }

    .whatsapp-flutuante img{
        width: 26px;
        height: 26px;
    }

}

/* ANIMACOES */

/* Tudo dentro de no-preference: quem pediu menos movimento no sistema nunca
   chega a receber o estado escondido. */
@media (prefers-reduced-motion: no-preference){

    .revelar{
        opacity: 0;
        transform: translateY(18px);
        transition: opacity ease 0.5s, transform ease 0.5s;
    }

    .revelar.revelado{
        opacity: 1;
        transform: none;
    }

}
