@media (max-width: 991.98px) {
    .site-nav {
        min-height: 68px;
    }

    .navbar-brand {
        max-width: 68%;
    }

    .brand-logo {
        height: 52px;
        width: 52px;
    }

    .brand-name {
        font-size: 1.35rem;
    }

    .navbar-toggler {
        border-color: rgba(47, 74, 58, .35);
    }

    .navbar-toggler:focus {
        box-shadow: 0 0 0 .18rem rgba(47, 74, 58, .16);
    }

    .navbar-collapse {
        padding: 1rem 0 1.25rem;
    }

    .site-nav .navbar-nav {
        align-items: stretch;
        gap: .15rem;
    }

    .site-nav .nav-link,
    .dropdown-item {
        padding: .7rem .25rem;
    }

    .dropdown-menu {
        border: 0;
        box-shadow: none;
        padding: .25rem 0 .5rem;
    }

    .nav-reservation {
        margin-top: .75rem;
        width: 100%;
    }

    .quick-points-grid,
    .feature-grid,
    .activity-grid,
    .gallery-preview-grid,
    .gallery-grid,
    .photo-strip,
    .photo-mosaic-pool,
    .media-layout {
        grid-template-columns: 1fr 1fr;
    }

    .gallery-preview-item:first-child,
    .gallery-item-wide,
    .gallery-item-tall,
    .photo-mosaic-main {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 767.98px) {
    body {
        font-size: 15px;
    }

    h1 {
        font-size: clamp(2.3rem, 13vw, 3.45rem);
    }

    h2 {
        font-size: clamp(1.85rem, 9vw, 2.45rem);
    }

    .section {
        padding: 3.5rem 0;
    }

    .hero {
        min-height: 76vh;
        padding: 6.5rem 0 3.5rem;
    }

    .page-hero-visual {
        min-height: 64vh;
        padding: 6.5rem 0 3.5rem;
    }

    .hero-text,
    .page-hero-visual p {
        font-size: 1rem;
    }

    .hero-actions .btn,
    .booking-links .btn {
        width: 100%;
    }

    .quick-points-grid,
    .feature-grid,
    .activity-grid,
    .gallery-preview-grid,
    .gallery-grid,
    .photo-strip,
    .photo-mosaic-pool,
    .media-layout {
        grid-template-columns: 1fr;
    }

    .gallery-preview-item:first-child,
    .gallery-preview-item,
    .gallery-item {
        min-height: 220px;
    }

    .feature-card {
        min-height: auto;
        padding: 1.25rem;
    }

    .booking-widget-panel {
        min-height: 24rem;
        padding: .85rem;
    }

    .booking-widget-panel iframe {
        min-height: 24rem;
    }

    .gallery-item figcaption {
        padding: 2.25rem .85rem .85rem;
        font-size: .84rem;
    }

    .media-frame img {
        min-height: 260px;
    }

    .photo-strip img,
    .photo-mosaic img,
    .photo-mosaic-main img {
        min-height: 260px;
    }

    .page-hero {
        padding: 3.5rem 0;
    }

    .contact-form {
        padding: 1rem;
    }
}
