/** Experiência mobile editorial e interativa. */

.mobile-carousel-controls { display: none; }

@media (max-width: 768px) {
    :root {
        --mobile-gutter: clamp(16px, 5vw, 22px);
        --mobile-gap: 14px;
    }

    html { scroll-padding-top: 92px; }
    body { overflow-x: hidden; }
    .container { padding-inline: var(--mobile-gutter); }
    .section { padding-block: clamp(48px, 13vw, 72px); }
    .section-header { margin-bottom: clamp(24px, 7vw, 36px); }
    .section-header--between { align-items: flex-end; flex-direction: row; gap: 16px; }
    .section-header--between > div { min-width: 0; }
    .section-header--between .btn { flex: 0 0 auto; padding-inline: 16px; }
    .section-title { font-size: clamp(24px, 7vw, 34px); letter-spacing: -.035em; line-height: 1.05; }
    .section-label { letter-spacing: .16em; }
    .page-header { padding-block: 42px 30px; }
    .page-header__title { font-size: clamp(28px, 8vw, 38px); line-height: 1.06; }
    .page-header__desc { max-width: 34rem; }

    a, button, input, select, textarea { touch-action: manipulation; }
    .btn, button { min-height: 44px; }

    /* Menu em painel, com fundo e transição real. */
    .mobile-menu {
        background: rgba(10, 11, 13, .52);
        inset: 0;
        max-width: none;
        opacity: 0;
        pointer-events: none;
        right: auto;
        transition: opacity 320ms ease;
        width: 100%;
    }
    .mobile-menu.is-open { opacity: 1; pointer-events: auto; right: auto; }
    .mobile-menu__inner {
        background: #fff;
        box-shadow: -24px 0 70px rgba(10, 11, 13, .2);
        display: flex;
        flex-direction: column;
        height: 100dvh;
        margin-left: auto;
        min-height: 100%;
        overflow-y: auto;
        padding: 88px 26px 34px;
        transform: translateX(102%);
        transition: transform 420ms cubic-bezier(.2,.75,.2,1);
        width: min(88vw, 390px);
    }
    .mobile-menu.is-open .mobile-menu__inner { transform: translateX(0); }
    .mobile-menu__list li { opacity: 0; transform: translateX(20px); transition: opacity 300ms ease, transform 360ms ease; }
    .mobile-menu.is-open .mobile-menu__list li { opacity: 1; transform: none; }
    .mobile-menu.is-open .mobile-menu__list li:nth-child(2) { transition-delay: 45ms; }
    .mobile-menu.is-open .mobile-menu__list li:nth-child(3) { transition-delay: 90ms; }
    .mobile-menu.is-open .mobile-menu__list li:nth-child(4) { transition-delay: 135ms; }
    .mobile-menu.is-open .mobile-menu__list li:nth-child(5) { transition-delay: 180ms; }
    .mobile-menu__list li a { font-size: 18px; padding-block: 15px; }

    /* Dois cards por linha onde o conteúdo continua legível. */
    .benefits-grid,
    .quicklinks-grid,
    .people-grid,
    .unit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px;
    }
    .benefit-card { min-height: 220px; padding: 20px 16px; }
    .benefit-card__icon { font-size: 29px; margin-bottom: 13px; }
    .benefit-card__title { font-size: 16px; line-height: 1.18; }
    .benefit-card__text { display: -webkit-box; font-size: 12px; line-height: 1.5; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
    .benefit-card__link { font-size: 12px; }
    .quicklinks-grid { background: transparent; border: 0; }
    .quicklink { align-items: flex-start; border: 1px solid var(--color-gray-200); flex-direction: column; gap: 10px; min-height: 112px; padding: 17px; }
    .quicklink i:first-child { font-size: 27px; }
    .quicklink__external { margin-left: 0; position: absolute; right: 14px; top: 14px; }
    .person-card h2, .unit-card h2 { font-size: 16px; }
    .unit-card { padding: 18px; }

    /* Trilhos com gesto nativo, scroll-snap e indicação de continuidade. */
    .mobile-snap-carousel {
        -webkit-overflow-scrolling: touch;
        display: grid !important;
        gap: var(--mobile-gap) !important;
        grid-auto-columns: minmax(82%, 1fr);
        grid-auto-flow: column;
        grid-template-columns: none !important;
        margin-inline: calc(var(--mobile-gutter) * -1);
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        padding: 6px var(--mobile-gutter) 18px;
        scroll-padding-inline: var(--mobile-gutter);
        scroll-snap-type: inline mandatory;
        scrollbar-width: none;
    }
    .mobile-snap-carousel::-webkit-scrollbar { display: none; }
    .mobile-snap-carousel > * { min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
    .mobile-snap-carousel[data-mobile-mode="two"] { grid-auto-columns: minmax(56%, 1fr); }
    .mobile-snap-carousel[data-mobile-mode="gallery"] { grid-auto-columns: minmax(88%, 1fr); }
    .mobile-snap-carousel .card, .mobile-snap-carousel .chacara-card, .mobile-snap-carousel .album-card { height: 100%; }

    .mobile-carousel-controls {
        align-items: center;
        display: flex;
        gap: 10px;
        justify-content: flex-end;
        margin-top: 4px;
    }
    .mobile-carousel-controls button {
        align-items: center;
        background: #fff;
        border: 1px solid var(--color-gray-300);
        border-radius: 50%;
        color: var(--color-gray-900);
        display: inline-flex;
        font-size: 19px;
        height: 44px;
        justify-content: center;
        padding: 0;
        transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
        width: 44px;
    }
    .mobile-carousel-controls button:active { transform: scale(.92); }
    .mobile-carousel-controls button:focus-visible { border-color: var(--color-primary); outline: 3px solid rgba(203,32,35,.18); }
    .mobile-carousel-controls__count { color: var(--color-gray-600); font-size: 12px; font-variant-numeric: tabular-nums; margin-right: auto; }
    .mobile-carousel-controls__bar { background: var(--color-gray-200); border-radius: 99px; height: 3px; left: 0; overflow: hidden; position: absolute; right: 112px; top: -8px; }
    .mobile-carousel-controls__bar i { background: var(--color-primary); display: block; height: 100%; transform-origin: left; transition: transform 260ms ease; }
    .mobile-carousel-controls { position: relative; }

    .news-list.mobile-snap-carousel { flex-direction: unset; }
    .news-list.mobile-snap-carousel .news-list__item { background: #fff; border: 1px solid var(--color-gray-200); min-height: 150px; padding: 22px 18px; }
    .news-list__item:first-child { padding-top: 22px; }
    .news-list__number { font-size: 30px; }

    .filter-tabs, .breadcrumbs, .tabs__nav {
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap !important;
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 8px;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }
    .filter-tabs::-webkit-scrollbar, .breadcrumbs::-webkit-scrollbar, .tabs__nav::-webkit-scrollbar { display: none; }
    .filter-tabs > *, .tabs__nav > * { flex: 0 0 auto; scroll-snap-align: start; }
    .filter-group { gap: 10px; }

    .stay-gallery__grid.mobile-snap-carousel { height: auto; }
    .stay-gallery__grid.mobile-snap-carousel .stay-gallery__item { aspect-ratio: 4/3; grid-area: auto; height: auto; }
    .stay-gallery__grid.mobile-snap-carousel img { height: 100%; object-fit: cover; width: 100%; }
    .booking-calendar.mobile-snap-carousel { align-items: stretch; }
    .booking-calendar.mobile-snap-carousel > * { background: #fff; border: 1px solid var(--color-gray-200); padding: 16px; }
    .single-cpt__image--logo { min-height: 210px; padding: 28px; }
    .single-cpt__image--logo img { height: clamp(100px, 28vw, 170px); }

    .footer-main__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 18px; }
    .footer-col--about { grid-column: 1 / -1; }
    .coop-carousel { overflow: visible; }
    .coop-carousel__track.mobile-snap-carousel { transform: none !important; }
    .coop-carousel__track.mobile-snap-carousel .coop-carousel__item { flex-basis: auto; height: 112px; }
    .coop-carousel > .coop-carousel__prev,
    .coop-carousel > .coop-carousel__next { display: none; }

    [data-reveal-item] { transform: translateY(22px) scale(.985); }
    [data-reveal-item].is-revealed { transform: none; }
    .hero-slide.is-active .hero-slide__content { animation: mobile-hero-in 720ms cubic-bezier(.2,.75,.2,1) both; }
}

@media (max-width: 420px) {
    .section-header--between { align-items: flex-start; flex-direction: column; }
    .section-header--between .btn { width: 100%; }
    .benefit-card { min-height: 205px; }
    .benefit-card__text { -webkit-line-clamp: 3; }
    .mobile-snap-carousel { grid-auto-columns: minmax(86%, 1fr); }
    .mobile-snap-carousel[data-mobile-mode="two"] { grid-auto-columns: minmax(62%, 1fr); }
    .mobile-menu__contact-list { grid-template-columns: 1fr; }
    .mobile-menu__email { grid-column: auto; }
}

@keyframes mobile-hero-in {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-snap-carousel { scroll-behavior: auto !important; }
    .mobile-menu, .mobile-menu__inner, .mobile-menu__list li { transition: none !important; }
    .hero-slide.is-active .hero-slide__content { animation: none !important; }
}
