/* =========================================================
   AKUVILLA — HOMEPAGE MOBILE UI / FINAL
   File: assets/home/home-mobile.css
   Scope: Homepage only, viewport <= 680px.
   Desktop styles are intentionally untouched.

   Responsive targets:
   - 681px and above : no rules from this file
   - 431–680px       : mobile base
   - 381–430px       : compact mobile
   - <=380px         : small mobile
========================================================= */

@media (max-width: 680px) {
    :root {
        --akv-mobile-gutter: 16px;
        --akv-mobile-radius: 20px;
        --akv-mobile-gold: #c8a46b;
        --akv-mobile-ink: #15181d;
        --akv-mobile-muted: #77736d;
        --akv-mobile-surface: #fffdf9;
    }

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        -webkit-tap-highlight-color: transparent;
    }

    /* =========================================================
       HEADER
    ========================================================= */
    body.home .akv-theme-header {
        padding: 8px 10px 0;
    }

    body.home .akv-theme-header .akv-container {
        width: 100%;
        max-width: none;
        padding: 0;
    }

    body.home .akv-theme-header .akv-navbar {
        width: 100%;
        min-height: 56px;
        padding: 0 9px 0 11px;
        border-radius: 17px;
        background: rgba(12, 20, 28, .78);
        border-color: rgba(255,255,255,.13);
        box-shadow: 0 12px 34px rgba(0,0,0,.18);
        backdrop-filter: blur(22px) saturate(135%);
        -webkit-backdrop-filter: blur(22px) saturate(135%);
    }

    body.home .akv-theme-header.is-scrolled {
        padding-top: 6px;
    }

    body.home .akv-theme-header.is-scrolled .akv-navbar {
        background: rgba(12, 20, 28, .94);
    }

    body.home .akv-logo {
        gap: 8px;
    }

    body.home .akv-logo-mark {
        width: 30px;
        height: 30px;
        border-radius: 9px;
        font-size: 15px;
    }

    body.home .akv-logo-text {
        font-size: 14px;
        letter-spacing: .12em;
    }

    body.home .akv-mobile-toggle {
        width: 39px;
        height: 39px;
        margin-left: auto;
        border-radius: 12px;
        background: rgba(255,255,255,.08);
        border-color: rgba(255,255,255,.13);
    }

    body.home .akv-mobile-toggle span {
        width: 15px;
        height: 1.5px;
    }

    /* =========================================================
       HERO
       The Hero is a normal vertical flow. Nothing in the copy is
       absolutely positioned, preventing text collisions between
       devices with different viewport widths/heights.
    ========================================================= */
    body.home .akv-home-hero {
        position: relative;
        min-height: 700px;
        padding: 0;
        display: block;
        isolation: isolate;
        background: #111;
    }

    body.home .akv-home-hero-media {
        position: absolute;
        inset: 0;
        z-index: 0;
    }

    body.home .akv-home-hero-image {
        width: 100%;
        height: 100%;
        object-position: 54% center;
        opacity: .72;
        transform: scale(1.025);
    }

    body.home .akv-home-hero-shade {
        background:
            linear-gradient(180deg,
                rgba(7,10,12,.72) 0%,
                rgba(7,10,12,.28) 31%,
                rgba(7,10,12,.38) 55%,
                rgba(7,10,12,.93) 100%),
            linear-gradient(90deg,
                rgba(7,9,11,.34),
                rgba(7,9,11,.08));
    }

    body.home .akv-home-hero-inner {
        position: relative;
        z-index: 2;
        width: 100%;
        min-height: 0;
        height: auto;
        display: block;
        padding: 126px var(--akv-mobile-gutter) 0;
    }

    body.home .akv-home-hero-copy {
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    body.home .akv-home-eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-size: 8.5px;
        line-height: 1.2;
        letter-spacing: .16em;
    }

    body.home .akv-home-eyebrow:before {
        width: 19px;
    }

    body.home .akv-home-hero-copy h1 {
        width: 100%;
        max-width: 350px;
        margin: 15px 0 16px;
        font-size: clamp(38px, 10.6vw, 50px);
        line-height: .99;
        letter-spacing: -.055em;
        text-wrap: balance;
    }

    /* Description stays visible. It is deliberately constrained so
       it remains readable and never runs underneath the note/actions. */
    body.home .akv-home-hero-copy p {
        display: block;
        width: 100%;
        max-width: 330px;
        margin: 0;
        color: rgba(255,255,255,.76);
        font-size: 11.5px;
        font-weight: 400;
        line-height: 1.62;
        letter-spacing: -.005em;
        text-wrap: pretty;
    }

    body.home .akv-home-hero-actions {
        display: flex;
        align-items: center;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 7px;
        margin-top: 19px;
    }

    body.home .akv-home-hero-actions .akv-btn {
        min-height: 46px;
        padding: 0 16px;
        border-radius: 14px;
        font-size: 10.5px;
        gap: 8px;
        white-space: nowrap;
        box-shadow: 0 10px 24px rgba(0,0,0,.18);
    }

    body.home .akv-home-text-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 0 10px;
        border: 0;
        color: rgba(255,255,255,.84);
        font-size: 10px;
        white-space: nowrap;
    }

    /* Note is part of the copy flow. This is the critical fix for
       the previous overlap with the description paragraph. */
    body.home .akv-home-hero-note {
        position: static !important;
        align-self: auto;
        display: flex;
        width: 100%;
        max-width: 330px;
        margin: 17px 0 0;
        gap: 9px;
        align-items: flex-start;
        color: #fff;
    }

    body.home .akv-home-note-mark {
        width: 27px;
        height: 27px;
        flex: 0 0 27px;
    }

    body.home .akv-home-note-mark:after {
        width: 6px;
        height: 6px;
    }

    body.home .akv-home-hero-note strong {
        display: block;
        font-size: 9.5px;
        line-height: 1.35;
    }

    body.home .akv-home-hero-note span {
        display: block;
        margin-top: 3px;
        color: rgba(255,255,255,.58);
        font-size: 8.5px;
        line-height: 1.45;
    }

    /* =========================================================
       SEARCH CARD
       Absolute only as a floating visual element. Its reserved
       space is created by .akv-home-featured, so it never covers
       section content.
    ========================================================= */
    body.home .akv-home-search-wrap {
        position: absolute;
        z-index: 6;
        left: var(--akv-mobile-gutter);
        right: var(--akv-mobile-gutter);
        bottom: -100px;
        width: auto;
        max-width: none;
        padding: 0;
    }

    body.home .akv-home-search {
        width: 100%;
        padding: 15px;
        border: 1px solid rgba(17,24,39,.07);
        border-radius: 21px;
        background: rgba(255,255,255,.97);
        box-shadow:
            0 22px 55px rgba(28,25,20,.17),
            0 4px 14px rgba(28,25,20,.05);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
    }

    body.home .akv-home-search-heading {
        display: block;
        margin: 0 2px 11px;
        padding: 0;
    }

    body.home .akv-home-search-heading span {
        display: block;
        margin-bottom: 4px;
        font-size: 8px;
        line-height: 1.2;
        letter-spacing: .17em;
    }

    body.home .akv-home-search-heading strong {
        display: block;
        font-size: 11.5px;
        line-height: 1.35;
        letter-spacing: -.01em;
    }

    body.home .akv-home-search-fields {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 7px;
    }

    body.home .akv-home-search-field,
    body.home .akv-home-search-field-wide,
    body.home .akv-home-search-guests {
        min-width: 0;
        min-height: 55px;
        padding: 8px 11px;
        border-radius: 13px;
        background: #fbfaf7;
        border-color: #e9e3da;
    }

    body.home .akv-home-search-field-wide,
    body.home .akv-home-search-guests,
    body.home .akv-home-search-submit {
        grid-column: 1 / -1;
    }

    body.home .akv-home-search-field span {
        display: block;
        margin-bottom: 3px;
        font-size: 7.5px;
        line-height: 1.2;
        letter-spacing: .07em;
    }

    body.home .akv-home-search-field input {
        width: 100%;
        min-width: 0;
        min-height: 18px;
        font-size: 11px;
        line-height: 1.3;
    }

    body.home .akv-home-search-submit {
        width: 100%;
        min-height: 49px;
        padding: 0 15px;
        border-radius: 13px;
        font-size: 11px;
        background: #17191d;
        box-shadow: 0 10px 22px rgba(23,25,29,.16);
    }

    /* =========================================================
       FEATURED / FIRST SECTION
       Reserve the exact visual zone occupied by the floating card.
    ========================================================= */
    body.home .akv-home-featured {
        margin-top: 0;
        padding-top: 140px;
        background: #f7f5f1;
    }

    body.home .akv-home-section {
        padding: 70px 0;
    }

    body.home .akv-home-section .akv-container,
    body.home .akv-home-cta .akv-container {
        padding-left: var(--akv-mobile-gutter);
        padding-right: var(--akv-mobile-gutter);
    }

    body.home .akv-home-section-head {
        display: block;
        margin-bottom: 21px;
    }

    body.home .akv-home-section-head h2 {
        max-width: 330px;
        margin: 10px 0 0;
        font-size: 30px;
        line-height: 1.02;
        letter-spacing: -.045em;
        text-wrap: balance;
    }

    body.home .akv-home-section-head-side {
        max-width: none;
        margin-top: 12px;
    }

    body.home .akv-home-section-head-side p,
    body.home .akv-home-section-head > p {
        max-width: 330px;
        margin: 0 0 9px;
        font-size: 10.5px;
        line-height: 1.62;
    }

    body.home .akv-home-inline-link {
        gap: 7px;
        padding-bottom: 4px;
        font-size: 9.5px;
    }

    /* =========================================================
       VILLA CARDS
    ========================================================= */
    body.home .akv-home-villa-grid {
        display: flex;
        gap: 11px;
        margin-right: calc(var(--akv-mobile-gutter) * -1);
        padding: 2px 0 14px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    body.home .akv-home-villa-grid::-webkit-scrollbar {
        display: none;
    }

    body.home .akv-home-villa-grid > .akv-villa-card,
    body.home .akv-home-villa-grid > .akv-card {
        flex: 0 0 84%;
        min-width: 0;
        scroll-snap-align: start;
        border-radius: 19px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__media {
        height: 220px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__body {
        padding: 14px 14px 13px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__heading {
        gap: 7px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__heading h3 {
        font-size: 16.5px;
        line-height: 1.2;
    }

    body.home .akv-home-villa-grid .akv-villa-card__mobile-location {
        display: block;
        margin-top: 3px;
        color: #8a847d;
        font-size: 9px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__rating {
        min-height: 24px;
        padding: 0 7px;
        border-radius: 8px;
        font-size: 8.5px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__rating svg {
        width: 10px;
        height: 10px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__facts {
        gap: 5px 11px;
        margin-top: 8px;
        font-size: 8.5px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__description {
        display: none;
    }

    body.home .akv-home-villa-grid .akv-villa-card__facilities {
        gap: 5px;
        margin-top: 9px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__facility {
        min-height: 23px;
        padding: 0 7px;
        font-size: 8px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__price {
        left: 12px;
        right: 12px;
        bottom: 11px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__price-label {
        font-size: 7.5px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__price strong {
        font-size: 19px;
    }

    body.home .akv-home-villa-grid .akv-villa-card__price-unit {
        font-size: 8.5px;
    }

    body.home .akv-home-villa-grid > .akv-card {
        overflow: hidden;
    }

    body.home .akv-home-villa-grid > .akv-card .akv-card-image {
        height: 220px;
    }

    /* =========================================================
       DESTINATIONS
    ========================================================= */
    body.home .akv-home-destinations {
        padding-top: 68px;
        background: #fffdf9;
    }

    body.home .akv-home-destination-grid {
        display: flex;
        gap: 10px;
        margin-right: calc(var(--akv-mobile-gutter) * -1);
        padding: 2px 0 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    body.home .akv-home-destination-grid::-webkit-scrollbar {
        display: none;
    }

    body.home .akv-home-destination-card {
        flex: 0 0 76%;
        scroll-snap-align: start;
        border-radius: 18px;
        box-shadow: 0 9px 28px rgba(30,27,22,.07);
    }

    body.home .akv-home-destination-media {
        height: 200px;
    }

    body.home .akv-home-destination-content {
        padding: 13px 14px 15px;
    }

    body.home .akv-home-destination-content > span {
        font-size: 7.5px;
        letter-spacing: .14em;
    }

    body.home .akv-home-destination-content h3 {
        margin: 6px 0;
        font-size: 19px;
        letter-spacing: -.035em;
    }

    body.home .akv-home-destination-content p {
        font-size: 10px;
        line-height: 1.55;
    }

    body.home .akv-home-destination-count {
        top: 10px;
        left: 10px;
        padding: 6px 8px;
        font-size: 7.5px;
    }

    body.home .akv-home-destination-arrow {
        right: 10px;
        bottom: 10px;
        width: 33px;
        height: 33px;
        opacity: 1;
        transform: none;
        font-size: 13px;
    }

    /* =========================================================
       WHY AKUVILLA
    ========================================================= */
    body.home .akv-home-why {
        padding-top: 68px;
        padding-bottom: 68px;
        background: #f0ece5;
    }

    body.home .akv-home-why-layout {
        display: block;
    }

    body.home .akv-home-why-intro h2 {
        max-width: 330px;
        margin: 10px 0 12px;
        font-size: 32px;
        line-height: 1;
        letter-spacing: -.05em;
    }

    body.home .akv-home-why-intro p {
        max-width: 330px;
        margin-bottom: 18px;
        font-size: 10.5px;
        line-height: 1.68;
    }

    body.home .akv-home-why-intro .akv-btn {
        min-height: 44px;
        padding: 0 15px;
        border-radius: 13px;
        font-size: 10px;
    }

    body.home .akv-home-why-list {
        margin-top: 28px;
        border-top: 0;
        display: grid;
        gap: 7px;
    }

    body.home .akv-home-benefit {
        grid-template-columns: 30px minmax(0,1fr);
        gap: 10px;
        min-height: 0;
        padding: 13px;
        border: 1px solid rgba(150,139,124,.17);
        border-radius: 15px;
        background: rgba(255,255,255,.44);
    }

    body.home .akv-home-benefit-number {
        padding-top: 2px;
        font-size: 8px;
    }

    body.home .akv-home-benefit h3 {
        margin: 0 0 4px;
        font-size: 12.5px;
        letter-spacing: -.02em;
    }

    body.home .akv-home-benefit p {
        font-size: 9px;
        line-height: 1.55;
    }

    /* =========================================================
       REVIEWS
    ========================================================= */
    body.home .akv-home-reviews {
        padding-top: 68px;
        padding-bottom: 68px;
    }

    body.home .akv-home-review-grid {
        display: flex;
        gap: 10px;
        margin-right: calc(var(--akv-mobile-gutter) * -1);
        padding: 2px 0 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    body.home .akv-home-review-grid::-webkit-scrollbar {
        display: none;
    }

    body.home .akv-home-review-card {
        flex: 0 0 84%;
        min-height: 0;
        padding: 17px;
        border-radius: 17px;
        scroll-snap-align: start;
        box-shadow: 0 8px 25px rgba(28,25,20,.05);
    }

    body.home .akv-home-review-top {
        font-size: 7.5px;
    }

    body.home .akv-home-review-top strong {
        font-size: 9.5px;
    }

    body.home .akv-home-stars {
        gap: 2px;
        margin: 16px 0 10px;
        font-size: 9.5px;
    }

    body.home .akv-home-review-card > p {
        min-height: 0;
        margin: 0;
        font-size: 10.5px;
        line-height: 1.65;
    }

    body.home .akv-home-review-user {
        gap: 8px;
        margin-top: 15px;
        padding-top: 12px;
    }

    body.home .akv-home-review-user > span {
        width: 31px;
        height: 31px;
        font-size: 9.5px;
    }

    body.home .akv-home-review-user strong {
        font-size: 9.5px;
    }

    body.home .akv-home-review-user small {
        margin-top: 2px;
        font-size: 7.5px;
    }

    /* =========================================================
       CTA
    ========================================================= */
    body.home .akv-home-cta {
        padding: 0 0 42px;
        background: #fffdf9;
    }

    body.home .akv-home-cta-box {
        display: block;
        padding: 28px 20px 22px;
        border-radius: 21px;
        min-height: 0;
        box-shadow: 0 18px 40px rgba(23,26,30,.12);
    }

    body.home .akv-home-cta-box > div {
        max-width: 100%;
    }

    body.home .akv-home-cta-box h2 {
        max-width: 290px;
        margin: 10px 0 9px;
        font-size: 29px;
        line-height: 1;
        letter-spacing: -.045em;
    }

    body.home .akv-home-cta-box p {
        max-width: 300px;
        font-size: 10px;
        line-height: 1.62;
    }

    body.home .akv-home-cta-box > .akv-btn {
        width: 100%;
        min-height: 46px;
        margin-top: 19px;
        border-radius: 13px;
        font-size: 10px;
    }

    body.home .akv-home-cta-box:after {
        width: 240px;
        height: 240px;
        right: -145px;
        top: -115px;
    }

    /* =========================================================
       TOUCH / HOVER
    ========================================================= */
    body.home .akv-home-villa-grid .akv-villa-card:hover,
    body.home .akv-home-destination-card:hover {
        transform: none;
    }

    body.home .akv-home-villa-grid .akv-villa-card:hover .akv-villa-card__image,
    body.home .akv-home-destination-card:hover .akv-home-destination-media img {
        transform: none;
    }

    /* =========================================================
       COMPACT MOBILE — 381–430px
    ========================================================= */
    @media (max-width: 430px) {
        body.home .akv-home-hero {
            min-height: 690px;
        }

        body.home .akv-home-hero-inner {
            padding-top: 121px;
        }

        body.home .akv-home-hero-copy h1 {
            max-width: 335px;
            font-size: clamp(37px, 10.4vw, 46px);
        }

        body.home .akv-home-hero-copy p,
        body.home .akv-home-hero-note {
            max-width: 315px;
        }

        body.home .akv-home-search-wrap {
            bottom: -100px;
        }

        body.home .akv-home-featured {
            padding-top: 137px;
        }
    }

    /* =========================================================
       SMALL MOBILE — <=380px
    ========================================================= */
    @media (max-width: 380px) {
        :root {
            --akv-mobile-gutter: 14px;
        }

        body.home .akv-theme-header {
            padding-left: 8px;
            padding-right: 8px;
        }

        body.home .akv-theme-header .akv-navbar {
            min-height: 54px;
        }

        body.home .akv-home-hero {
            min-height: 680px;
        }

        body.home .akv-home-hero-inner {
            padding-top: 116px;
        }

        body.home .akv-home-hero-copy h1 {
            max-width: 315px;
            margin-top: 14px;
            font-size: 36px;
            line-height: 1;
        }

        body.home .akv-home-hero-copy p {
            max-width: 300px;
            font-size: 10.5px;
            line-height: 1.58;
        }

        body.home .akv-home-hero-actions {
            margin-top: 17px;
            gap: 5px;
        }

        body.home .akv-home-hero-actions .akv-btn {
            min-height: 44px;
            padding: 0 13px;
            font-size: 9.5px;
        }

        body.home .akv-home-text-link {
            min-height: 44px;
            padding: 0 8px;
            font-size: 9px;
        }

        body.home .akv-home-hero-note {
            max-width: 300px;
            margin-top: 15px;
        }

        body.home .akv-home-hero-note strong {
            font-size: 9px;
        }

        body.home .akv-home-hero-note span {
            font-size: 8px;
        }

        body.home .akv-home-search-wrap {
            bottom: -96px;
        }

        body.home .akv-home-search {
            padding: 13px;
            border-radius: 19px;
        }

        body.home .akv-home-search-field,
        body.home .akv-home-search-field-wide,
        body.home .akv-home-search-guests {
            min-height: 53px;
            padding-left: 10px;
            padding-right: 10px;
        }

        body.home .akv-home-search-submit {
            min-height: 47px;
        }

        body.home .akv-home-featured {
            padding-top: 132px;
        }

        body.home .akv-home-section-head h2 {
            font-size: 28px;
        }

        body.home .akv-home-villa-grid > .akv-villa-card,
        body.home .akv-home-villa-grid > .akv-card {
            flex-basis: 88%;
        }

        body.home .akv-home-destination-card {
            flex-basis: 81%;
        }

        body.home .akv-home-review-card {
            flex-basis: 88%;
        }
    }
}

@media (prefers-reduced-motion: reduce) {
    .akv-homepage *,
    .akv-homepage *::before,
    .akv-homepage *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

/* =========================================================
   FINAL MOBILE SPACING REFINEMENT
========================================================= */
@media (max-width: 680px) {
    /* Give the Hero a deliberate breathing gap before the floating search card. */
    body.home .akv-home-search-wrap {
        bottom: -116px;
    }

    body.home .akv-home-featured {
        padding-top: 156px;
    }
}

@media (max-width: 430px) {
    body.home .akv-home-search-wrap {
        bottom: -112px;
    }

    body.home .akv-home-featured {
        padding-top: 152px;
    }
}

@media (max-width: 380px) {
    body.home .akv-home-search-wrap {
        bottom: -108px;
    }

    body.home .akv-home-featured {
        padding-top: 148px;
    }
}
