/*
 * Site styles on top of the copied legacy stylesheets (public/lib/css/main.css, shared-styles.css,
 * css-utils.css). Only rules the legacy pages carried inline or in plugin stylesheets live here.
 */

/*
 * The legacy pages load Bootstrap 5.0.2, where a .container nested in a .row inherits the row gutter
 * (1.5rem padding); Bootstrap 5.3 resets it to 0.75rem. Restore the legacy gutter (footer, celebrations).
 */
.row {
    --farol-row-gutter-x: var(--bs-gutter-x);
}

.row .container,
.row .container-fluid {
    padding-left: var(--farol-row-gutter-x);
    padding-right: var(--farol-row-gutter-x);
}

/* Mobile slide-in menu (old/app/index.php, toggled by site.js instead of jQuery). */
.site-mobile-menu-banner img {
    display: block;
    height: 125px;
    object-fit: cover;
    width: 100%;
}

#slide-in-div.is-open {
    left: 0;
}

#overlay.is-open {
    display: block;
}

#mobileMenuClose {
    background: transparent;
    border: 0;
}

#slide-in-div ul.subMenu:not([hidden]) {
    display: block;
}

/* The legacy "[see more]" toggle was a <div class="sideSubMenu"> styled only by main.css. As a <button> it must drop
   the browser button chrome; font size, weight, colour and case keep coming from the legacy .sideSubMenu rule. */
button.sideSubMenu {
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-family: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    margin: 0;
    padding: 0;
}

/* Hero slider: old/app/lib/plugins/hero-slider/css/style.css and the inline style of old/app/lib/slider.php. */
.cd-hero {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
}

/* Swiper gives .swiper and .swiper-wrapper z-index 1; the legacy list had none, so the booking bar overlaps the hero.
   The legacy slider was a <ul>, so it also kept the Bootstrap reboot list margin below it. */
.cd-hero-slider {
    height: 275px;
    margin-bottom: 1rem;
    overflow: hidden;
    position: relative;
    z-index: auto;
}

.cd-hero-slider > .swiper-wrapper {
    z-index: auto;
}

.cd-hero-slider:not(.fullscreen) {
    border-radius: 15px;
}

.cd-hero-slider .swiper-slide {
    background-color: #2c343b;
    background-image: var(--slide-image);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100%;
    overflow: hidden;
}

.cd-hero-slider .cd-full-width {
    background-color: #00000033;
    height: 100%;
    left: 0;
    padding-top: 100px;
    position: absolute;
    text-align: center;
    top: 0;
    width: 100%;
    z-index: 1;
}

.cd-hero-slider .cd-slide-layer {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 2;
}

.cd-hero-slider hr {
    color: #fff !important;
}

.cd-hero-slider h2 {
    color: var(--orange);
    font-family: "Domine", serif;
    font-size: 40px;
    font-weight: 500;
    line-height: 1.2;
    margin: 0 auto 14px;
    max-width: 80%;
    text-shadow: 0 1px 3px rgb(0 0 0 / 10%);
    width: 90%;
}

.cd-hero-slider .site-slider-video {
    left: 0;
    position: absolute;
    top: 0;
}

.site-slide-link {
    color: inherit;
    display: block;
    height: 100%;
    text-decoration: none;
    width: 100%;
}

.cd-next,
.cd-prev {
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    height: 36px;
    line-height: 0;
    opacity: 0.6;
    padding: 0;
    position: absolute;
    top: 220px;
    width: 36px;
    z-index: 2;
}

.cd-next {
    right: 3%;
}

.cd-prev {
    left: 3%;
}

.cd-next svg,
.cd-prev svg {
    height: 50px;
    width: 50px;
}

@media (max-width: 767.98px) {
    .cd-hero-slider .swiper-slide {
        background-image: var(--slide-image-mobile, var(--slide-image));
    }
}

@media (min-width: 768px) {
    .cd-hero-slider {
        height: 300px;
    }

    .cd-hero-slider .cd-full-width {
        padding-top: 150px;
    }
}

@media (min-width: 1170px) {
    .cd-hero-slider {
        height: 500px;
    }

    .cd-hero-slider.fullscreen {
        height: 100vh;
    }

    .cd-hero-slider .cd-full-width {
        padding-top: 220px;
    }
}

/* Booking bar: the submit is a real button styled as the legacy anchor inside .btn-simple-orange. */
button.booking-submit {
    background: transparent;
    border: 0;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
    padding: 0;
    text-transform: inherit;
    width: 100%;
}

/* Booking calendar (booking-calendar.js): the jQuery UI 1.11 "Smoothness" datepicker of the legacy
   booking bar (old/app/lib/js/jquery/ui/jquery-ui.min.css; 18em width from lib/css/main.css). The
   theme's glass/highlight textures are reproduced with gradients sampled from the legacy images. */
.booking-calendar {
    background: #fff;
    border: 1px solid #aaa;
    border-radius: 4px;
    color: #222;
    font-family: Verdana, Arial, sans-serif;
    font-size: 1.1em;
    left: 0;
    padding: .2em .2em 0;
    position: fixed;
    top: 0;
    width: 18em;
    z-index: 100000;
}

.booking-calendar-header {
    background: #ccc linear-gradient(#e0e0e0, #d3d3d3 50%, #cdcdcd);
    border: 1px solid #aaa;
    border-radius: 4px;
    color: #222;
    font-weight: bold;
    padding: .2em 0;
    position: relative;
}

.booking-calendar-title {
    line-height: 1.8em;
    margin: 0 2.3em;
    text-align: center;
}

.booking-calendar-nav {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: #222;
    cursor: pointer;
    display: flex;
    height: 1.8em;
    justify-content: center;
    padding: 0;
    position: absolute;
    top: 2px;
    width: 1.8em;
}

.booking-calendar-prev {
    left: 2px;
}

.booking-calendar-next {
    right: 2px;
}

.booking-calendar-nav:disabled {
    cursor: default;
    opacity: .35;
}

.booking-calendar-grid {
    border-collapse: collapse;
    font-size: .9em;
    margin: 0 0 .4em;
    width: 100%;
}

.booking-calendar-grid th {
    border: 0;
    font-weight: bold;
    padding: .7em .3em;
    text-align: center;
}

.booking-calendar-grid td {
    border: 0;
    padding: 1px;
}

.booking-calendar-day {
    background: #e6e6e6 linear-gradient(#ededed 50%, #e6e6e6 50%, #f1f1f1 calc(50% + 13px));
    border: 1px solid #d3d3d3;
    border-radius: 0;
    color: #555;
    cursor: pointer;
    display: block;
    font: inherit;
    padding: .2em;
    text-align: right;
    width: 100%;
}

.booking-calendar-day:disabled {
    cursor: default;
    opacity: .35;
}

.booking-calendar-nav:not(:disabled):hover,
.booking-calendar-nav:focus-visible,
.booking-calendar-day:not(:disabled):hover,
.booking-calendar-day:focus-visible {
    background: #dadada linear-gradient(#e5e5e5 50%, #dadada 50%, #ebebeb calc(50% + 13px));
    border-color: #999;
    color: #212121;
}

.booking-calendar-nav:not(:disabled):hover,
.booking-calendar-nav:focus-visible {
    color: #454545;
}

.booking-calendar-day.is-selected {
    background: #fff;
    border-color: #aaa;
    color: #212121;
}

.booking-calendar-day.is-today:not(:disabled) {
    background: #fbf9ee linear-gradient(#fcfbf2 50%, #fbf9ee 50%, #fdfbf4 calc(50% + 13px));
    border-color: #fcefa1;
    color: #363636;
}

.booking-calendar-nav:focus-visible,
.booking-calendar-day:focus-visible {
    outline: 2px solid #212121;
    outline-offset: 1px;
}

/* Mobile booking overlay: inline style of old/app/lib/blocks/booking.php. */
@media (max-width: 991px) {
    .booking-wrapper {
        background: rgb(0 0 0 / 85%);
        display: none;
        inset: 0;
        overflow-y: auto;
        padding: 1rem;
        position: fixed;
        z-index: 9999;
    }

    .booking-wrapper.active {
        display: block;
    }

    #botao_booking_mobile {
        display: block;
    }

    #bookingBlock .border-end {
        border-right: none !important;
    }

    #bookingBlock .border-bottom {
        border-bottom: none !important;
    }

    #bookingBlock .booking-bar {
        border-top: none !important;
        margin-top: 5px;
    }

    #bookingBlock {
        background: #fff;
        border-radius: 1rem;
        padding: 1rem;
    }

    #div_rest_bars_mobile {
        margin-top: 2rem !important;
    }
}

/* Inner pages: legacy adds `no-padding` to the content container on non-mobile devices. */
@media (min-width: 768px) {
    .site-inner-container {
        padding: 0 !important;
    }
}

/* The inner-page title is an h1 now (legacy <p class="pageTitle">); keep the paragraph box metrics. */
h1.pageTitle {
    line-height: 1.5;
    margin-bottom: 1rem;
}

/* Module content (articles, galleries, plugin carousels) rendered inside the inner-page container. */
.site-card-grid,
.site-gallery-grid {
    row-gap: 2rem;
}

.site-card img,
.site-gallery-grid img,
.site-article-image,
.site-gallery-detail img {
    display: block;
    height: auto;
    max-width: 100%;
    width: 100%;
}

.site-card-caption {
    padding: 1rem 0;
}

.site-card-caption h2,
.site-article h2 {
    font-size: 1.5rem;
}

.site-activity-kind {
    background: #fff;
    color: #111;
    padding: 0.25rem 0.5rem;
    position: absolute;
}

.site-gallery-grid figure {
    margin-bottom: 1.5rem;
}

.site-gallery-item {
    display: block;
    overflow: hidden;
    position: relative;
}

.site-gallery-item img,
.site-gallery-item video {
    aspect-ratio: 4 / 3;
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.site-gallery-play {
    background: rgb(0 0 0 / 55%);
    border-radius: 50%;
    color: #fff;
    left: 50%;
    padding: 1rem 1.25rem;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

.site-article-body {
    margin-top: 1.5rem;
}

.site-article-navigation {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.site-article-navigation a {
    font-size: 2rem;
    line-height: 1;
    text-decoration: none;
}

.site-plugin-swiper {
    margin: 2rem 0;
}

.site-plugin-swiper .swiper-slide img {
    height: auto;
    width: 100%;
}

.site-slider-video {
    border: 0;
    height: 100%;
    object-fit: cover;
    width: 100%;
}