/*
 * Rottnest theme stylesheet.
 * I font del tema sono gestiti localmente e caricati via FTP nella cartella assets/fonts.
 */
@font-face {
    font-family: 'Urbanist';
    src: url('../fonts/Urbanist/Urbanist-VariableFont_wght.woff2') format('woff2'), url('../fonts/Urbanist/Urbanist-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 900; /* come Google Fonts wght@400..900 del sito HTML */
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD; /* sottoinsieme latin di Google Fonts: gli altri simboli (es. frecce) usano il carattere di ripiego, come nel sito HTML */
}
@font-face {
    font-family: 'Urbanist';
    src: url('../fonts/Urbanist/Urbanist-Italic-VariableFont_wght.woff2') format('woff2'), url('../fonts/Urbanist/Urbanist-Italic-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 900; /* come Google Fonts wght@400..900 del sito HTML */
    font-style: italic;
    font-display: swap;
    unicode-range: U+0000-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2000-206F,U+20A0-20C0,U+2113,U+2122,U+2191,U+2193,U+2212,U+2215,U+2C60-2C7F,U+A720-A7FF,U+FEFF,U+FFFD; /* sottoinsieme latin di Google Fonts: gli altri simboli (es. frecce) usano il carattere di ripiego, come nel sito HTML */
}
html,
body {
    font-family: "Urbanist", system-ui;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
    margin: 0;
    padding: 0;
    max-width: 100%;
    overflow-x: clip;
    scrollbar-gutter: stable;
    background: white !important
}
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid #000;
    outline-offset: 3px
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-skip-link {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 1080;
    padding: .75rem 1rem;
    color: #fff;
    background: #000;
    border-radius: .25rem;
    text-decoration: none;
    transform: translateY(-150%);
    transition: transform .15s ease
}
.site-skip-link:focus,
.site-skip-link:focus-visible {
    color: #fff;
    transform: translateY(0)
}
.site-header-brand {
    display: inline-flex;
    align-items: center
}
.site-header-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    object-fit: contain
}
.site-header-logo-desktop {
    max-height: 64px
}
.site-header-logo-mobile {
    max-height: 56px
}
.site-header-menu,
.site-header-mobile-menu {
    margin: 0
}
.site-header-menu-link,
.site-header-submenu-link,
.site-header-mobile-menu-link {
    transition: color .15s ease, background-color .15s ease
}
.site-header-menu-icon,
.site-header-toggler-svg {
    display: block;
    flex-shrink: 0
}
.site-header-toggler-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center
}
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important
    }
}

/* ==========================================================================
   404
   ========================================================================== */
.site-404 {
    min-height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center
}
.site-404-inner {
    width: 100%
}
.site-404-actions {
    align-items: center
}
.site-404-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    cursor: pointer
}

/* ==========================================================================
   Maintenance
   ========================================================================== */
.site-maintenance-main {
    min-height: 50vh;
    display: flex;
    align-items: center;
    justify-content: center
}
.site-maintenance {
    width: 100%
}

/* ==========================================================================
   Article
   ========================================================================== */
.site-article {
    width: 100%
}
.site-article-header {
    max-width: 52rem
}
.site-article-date {
    letter-spacing: .02em
}
.site-article-content {
    max-width: 52rem
}

/* ==========================================================================
   Page
   ========================================================================== */
.site-page {
    width: 100%
}
.site-page-content {
    width: 100%
}

/* ==========================================================================
   Category
   ========================================================================== */
.site-category {
    width: 100%
}
.site-category-header {
    max-width: 72rem
}
.site-category-content {
    margin-top: 1.5rem
}
.site-category-card,
.site-category-list-item {
    display: flex
}
.site-category-card-body,
.site-category-list-main {
    width: 100%
}
.site-category-list {
    display: grid;
    gap: 1rem
}
.site-category-card:has(.site-category-card-image) {
    flex-direction: column;
    border: 1px solid rgba(20, 40, 80, .08);
    border-radius: 1rem;
    overflow: hidden;
    padding: 0
}
.site-category-card-image {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block
}
.site-category-card:has(.site-category-card-image) .site-category-card-body {
    padding: 1rem 1.25rem 1.25rem
}
.site-category-list-image {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: .6rem;
    flex-shrink: 0;
    margin-right: 1rem
}

/* ==========================================================================
   Event
   ========================================================================== */
.site-event {
    width: 100%
}
.site-event-summary {
    height: 100%
}
.site-event-detail-list {
    display: grid;
    gap: .75rem
}
.site-event-detail-row {
    display: grid;
    gap: .15rem
}
.site-event-detail-label {
    color: var(--bs-secondary-color);
    font-size: .85rem;
    margin-bottom: 0
}
.site-event-detail-value {
    margin-bottom: 0
}
.site-event-placeholder {
    margin-bottom: 0
}
.site-event-gallery-img {
    display: block;
    width: 100%;
    height: auto
}
.site-booking-placeholder {
    margin-bottom: 0
}
.site-booking-gallery-img {
    display: block;
    width: 100%;
    height: auto
}

/* ==========================================================================
   Product
   ========================================================================== */
.site-product {
    width: 100%
}
.site-product-summary {
    height: 100%
}
.site-product-placeholder {
    margin-bottom: 0
}
.site-product-gallery-img {
    display: block;
    width: 100%;
    height: auto
}
.site-product-detail-list {
    display: grid;
    gap: .75rem
}
.site-product-detail-row {
    display: grid;
    gap: .15rem
}
.site-product-detail-label {
    color: var(--bs-secondary-color);
    font-size: .85rem;
    margin-bottom: 0
}
.site-product-detail-value {
    margin-bottom: 0
}

/* ==========================================================================
   Comments
   ========================================================================== */
.site-comments {
    width: 100%
}
.site-comments-pagination-list {
    margin-bottom: 1rem
}
.site-comments-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-comments-form-alert {
    margin-top: 1rem
}
.site-comment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem
}
.site-comment-content {
    overflow-wrap: anywhere
}

/* ==========================================================================
   Contact form
   ========================================================================== */
.site-contact-form-section {
    width: 100%
}
.site-contact-form-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-contact-form-alert {
    margin-top: 1rem
}

/* ==========================================================================
   Newsletter form
   ========================================================================== */
.site-newsletter-form-section {
    width: 100%
}
.site-newsletter-form-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-newsletter-form-alert {
    margin-top: 1rem
}

/* ==========================================================================
   Booking cancel
   ========================================================================== */
.site-booking-cancel {
    width: 100%
}
.site-booking-cancel-column {
    margin-right: auto
}
.site-booking-cancel-alert {
    margin-bottom: 1.5rem
}

/* ==========================================================================
   Booking
   ========================================================================== */
.site-booking {
    width: 100%
}
.site-booking-summary {
    height: 100%
}
.site-booking-detail-list {
    display: grid;
    gap: .75rem
}
.site-booking-detail-row {
    display: grid;
    gap: .15rem
}
.site-booking-detail-label {
    color: var(--bs-secondary-color);
    font-size: .85rem;
    margin-bottom: 0
}
.site-booking-detail-value {
    margin-bottom: 0
}
.site-booking-amenity-list {
    margin-bottom: 0
}
.site-booking-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-checkout-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-account-honeypot {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.site-booking-form-alert {
    margin-top: 1rem
}

/* ==========================================================================
   Footer
   ========================================================================== */
footer,
.site-footer {
    padding: 3rem 0;
    background-color: whitesmoke;
}
.site-footer a {
    transition: color .15s ease, border-color .15s ease, background-color .15s ease
}
.site-footer-logo {
    width: 96px;
    max-width: 100%;
    max-height: 64px;
    height: auto;
    object-fit: contain
}
.site-footer-social-link {
    width: 2.5rem;
    height: 2.5rem
}
.site-footer .footer-menu-links a {
    color: var(--bs-secondary-color);
    text-decoration: none
}
.site-footer .footer-menu-links a:hover,
.site-footer .footer-menu-links a:focus-visible {
    color: var(--bs-dark)
}
.site-footer .list-inline a.rounded-circle:hover,
.site-footer .list-inline a.rounded-circle:focus-visible {
    color: var(--bs-dark) !important;
    background-color: var(--app-primary);
    border-color: var(--app-primary) !important
}
.site-footer-card {
    border: 0;
    background-color: white;
    padding: 1.5rem;
    border-radius: 1.5rem
}
/* ==========================================================================
   Gallerie
   Miniature della griglia ritagliate quadrate (scelta di progetto: niente
   proporzioni configurabili); il carosello resta a proporzioni originali.
   ========================================================================== */
.gallery .gallery-thumb:not(.gallery-carousel-image) {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover
}
.gallery-carousel-image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain
}
.qk-gallery-carousel-inner {
    background: #212529
}
