/* Phone matrix: preserve the photo proportions and leave room for price dates. */
@media (max-width: 760px) {
    .search-booking-widget--matrix {
        --matrix-mobile-camper-width: 132px;
        --matrix-mobile-row-height: 192px;
        padding: 8px;
    }
    .search-booking-widget--matrix .matrix-row .fixed-one {
        flex-direction: column;
    }
    .search-booking-widget--matrix .matrix-row .fixed-one .fixed-one_image {
        flex: 0 0 80px;
        width: 100% !important;
        height: 80px !important;
        background-size: contain !important;
        background-repeat: no-repeat !important;
        background-color: #f3f6f2;
    }
    .search-booking-widget--matrix .matrix-row .fixed-one .fixed-one_text {
        flex: 1 1 auto;
        width: 100% !important;
        height: 112px !important;
        padding: 8px 8px 56px !important;
    }
    .search-booking-widget--matrix .matrix-row .fixed-one .fixed-one_name {
        max-height: 47px;
        font-size: 13px;
        line-height: 1.2;
        -webkit-line-clamp: 3;
    }
    .search-booking-widget--matrix .the-matrix::after {
        width: 14px;
        pointer-events: none;
    }
    .search-booking-widget--matrix .matrix-scroll {
        scrollbar-width: auto;
        scrollbar-color: #3fa535 #e7eee5;
    }
}

.home-booking-toggle { display: none; }
.mobile-menu-brand { display: none; }
.home-booking-widget__embed[hidden] { display: none !important; }

@media (max-width: 810px) {
    .mainWrap .mobile-menu-brand {
        display: flex;
        position: absolute;
        right: 14px;
        top: 3px;
        width: 48px;
        height: 48px;
        align-items: center;
        justify-content: center;
        z-index: 2;
        border-radius: 4px;
        background: transparent;
        box-shadow: none;
    }
    .mobile-menu-brand img {
        display: block;
        width: 44px;
        height: 34px;
        max-width: none;
        flex-shrink: 0;
        object-fit: contain;
    }
    .mobile-menu-brand:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
    #touch-menu {
        padding-right: 76px;
        width: 100%;
        border: 0;
        border-radius: 0;
        box-sizing: border-box;
        cursor: pointer;
        font-family: inherit;
        font-weight: 700;
        text-align: left;
        gap: 14px;
    }
    #touch-menu .menu-toggle-icon {
        position: relative;
        display: block;
        flex: 0 0 24px;
        width: 24px;
        height: 24px;
    }
    #touch-menu .menu-toggle-icon span {
        position: absolute;
        display: block;
        left: 1px;
        top: 11px;
        width: 22px;
        height: 2px;
        border-radius: 1px;
        background: currentColor;
        transform-origin: center;
        transition: transform 320ms ease, opacity 200ms ease;
    }
    #touch-menu .menu-toggle-icon span:first-child { transform: translateY(-7px); }
    #touch-menu .menu-toggle-icon span:last-child { transform: translateY(7px); }
    #touch-menu[aria-expanded="true"] .menu-toggle-icon span:first-child { transform: rotate(45deg); }
    #touch-menu[aria-expanded="true"] .menu-toggle-icon span:nth-child(2) { opacity: 0; transform: scaleX(0); }
    #touch-menu[aria-expanded="true"] .menu-toggle-icon span:last-child { transform: rotate(-45deg); }
    body .mainWrap.is-menu-open {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100%;
        height: 100dvh;
        min-height: 0;
        transform: none !important;
        z-index: 2400;
    }
    .mainWrap nav { margin: 0; width: 100%; }
    .mainWrap .menu,
    .mainWrap.is-menu-open .menu {
        display: block !important;
        box-sizing: border-box;
        width: 100%;
        max-height: calc(100dvh - 54px);
        overflow-y: auto;
        margin: 0;
        padding: 8px 24px 20px;
        border: 0;
        border-radius: 0 0 8px 8px;
        background: #fff;
        box-shadow: 0 16px 24px rgba(18,41,20,.12);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
        transition: opacity 240ms ease, transform 300ms ease, visibility 300ms;
    }
    .mainWrap:not(.is-menu-open) nav { position: absolute; pointer-events: none; }
    .mainWrap.is-menu-open .menu { opacity: 1; visibility: visible; transform: translateY(0); }
    .mainWrap .menu > li { float: none; width: 100%; }
    .mainWrap .menu > li > a {
        display: flex;
        width: 100%;
        box-sizing: border-box;
        min-height: 54px;
        padding: 12px 0;
        border: 0;
        border-bottom: 1px solid #e5ece4;
        border-radius: 0;
        background: transparent;
        color: #244f24;
        font-size: 20px;
        font-weight: 600;
        line-height: 1.4;
        text-decoration: none;
    }
    .mainWrap .menu > li:last-child > a { border-bottom: 0; }
    .mainWrap .menu > li > a:hover,
    .mainWrap .menu > li > a:focus-visible { background: #f0f7ef; color: #287d2d; }
    .mainWrap .menu-home-link i { display: none; }
    body.cc-mobile-menu-open .whatsapp-fab,
    body.cc-mobile-menu-open [data-news-slide-in] { visibility: hidden; }
}

@media (max-width: 760px) {
    body.home-page .home-booking-widget {
        display: flex;
        flex-direction: column;
        width: calc(100% - 32px);
        margin: -66px auto -12px !important;
        transform: translateY(-36px);
        position: relative !important;
        top: auto !important;
        z-index: 30;
    }
    body.home-page .home-booking-widget__shell {
        display: block;
        width: 100%;
        box-sizing: border-box;
        transform: none;
        padding: 0;
        border: 0;
        border-radius: 8px;
        background: #348e30;
        box-shadow: 0 10px 24px rgba(18,41,20,.18);
    }
    .has-booking-disclosure .home-booking-toggle {
        display: flex;
        align-items: center;
        gap: 14px;
        width: 100%;
        min-height: 76px;
        margin: 0;
        padding: 14px 18px;
        box-sizing: border-box;
        border: 0;
        border-radius: 8px;
        background: transparent;
        color: white;
        text-align: left;
        font-family: inherit;
        cursor: pointer;
    }
    .home-booking-toggle > i:first-child { font-size: 24px; }
    .home-booking-toggle > span { flex: 1; }
    .home-booking-toggle strong { display: block; font-size: 21px; line-height: 1.25; }
    .home-booking-toggle > span > span { display: block; font-size: 15px; line-height: 1.4; }
    .home-booking-toggle > i:last-child { transition: transform 280ms ease; }
    .home-booking-toggle[aria-expanded="true"] > i:last-child { transform: rotate(180deg); }
    .home-booking-widget__embed { padding: 0 18px 18px; }
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-person-categories h2,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date h2 { display: none !important; }
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-person-categories,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date {
        display: block !important;
        padding: 0 !important;
        margin: 0 0 12px !important;
        border: 0 !important;
    }
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-period { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px !important; }
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date-begin-choice,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date-end-choice { min-width: 0 !important; max-width: 100%; box-sizing: border-box; }
    .home-booking-widget .tommy-zeb-wrapper-mini label,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-accommodation-person-category-label { font-size: 14px !important; min-height: 20px !important; height: 20px !important; line-height: 20px !important; }
    .home-booking-widget .tommy-zeb-wrapper-mini input,
    .home-booking-widget .tommy-zeb-wrapper-mini select { width: 100% !important; min-width: 0 !important; max-width: 100%; box-sizing: border-box; font-size: 16px !important; padding: 8px !important; border-radius: 6px !important; }
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date-begin,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-date-end,
    .home-booking-widget .tommy-zeb-wrapper-mini .tommy-zeb-accommodation-person-category { min-width: 0; grid-template-columns: minmax(0,1fr); grid-template-rows: 20px 44px; }
    .home-booking-widget .tommy-zeb-wrapper-mini button.tommy-zeb-btn { min-height: 44px; border-radius: 6px; }
}
/* Mobile brand accents: leave photographs, booking widgets and desktop unchanged. */
@media (max-width: 760px) {
    .home-intro__copy > h1::after,
    .home-benefits__intro > h2::after,
    .home-benefits > h2::after,
    .home-camper-teasers__title::after,
    .google-review-showcase__title::after,
    .campers-overview-header__copy h1::after,
    .faq-page__title::after,
    .detail-related__title::after,
    .containermain > .box70 > h1::after {
        content: "";
        display: block;
        width: 48px;
        height: 3px;
        margin-top: 14px;
        background: #3fa535;
    }
    .home-benefits {
        background: #f1f8ee;
        box-shadow: 0 0 0 100vmax #f1f8ee;
        clip-path: inset(0 -100vmax);
    }
    .home-benefit + .home-benefit { border-top: 1px solid #d4e6cf; }
    .detail-gallery .detail-summary__card {
        background: #f1f8ee;
        border-top: 3px solid #3fa535;
    }
    .detail-content-card > h2 {
        color: #244f24;
        border-left: 3px solid #3fa535;
        padding-left: 12px;
    }
    .detail-floorplan__fact { background: #f1f8ee; }
    .detail-faq__question { background: #f1f8ee; }
    .detail-faq__item[open] { border-color: #3fa535; }
    .contact-form-card {
        background: #f1f8ee;
        border-top: 3px solid #3fa535;
    }
}
@media (prefers-reduced-motion: reduce) {
    #touch-menu .menu-toggle-icon span,
    .mainWrap .menu,
    .home-booking-toggle > i:last-child { transition: none !important; }
}
