/* Keep the search popup above the hero artwork and following sections. */
body.home-page { overflow-x: clip; }
.home-page .hero { position: relative; z-index: 3; overflow: visible; }
.home-page .hero-copy { position: relative; z-index: 2; min-width: 0; }
.home-page .hero-visual { z-index: 0; }
.home-page .destination-search { width: 100%; max-width: 100%; z-index: 20; }
.home-page .search-results {
    z-index: 30;
    width: 100%;
    max-width: min(100%, 100vw - 24px);
    max-height: var(--dropdown-max-height, 360px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
}
.home-page .search-results.opens-up { top: auto; bottom: calc(100% + 10px); }
.home-page .search-results button { min-height: 56px; }
.home-page .search-results .flag { flex: 0 0 40px; }
.home-page .search-results .flag img { width: 30px; height: 22px; object-fit: cover; border-radius: 3px; }
.home-page .search-results button > span:nth-child(2) { min-width: 0; }
.home-page .popular { position: relative; z-index: 1; }
.home-page .final-cta { position: relative; z-index: 3; }
@media (max-width: 760px) {
    .home-page .hero-visual { display:none; }
    .home-page .search-results { left: 0; right: 0; }
    .home-page .search-results button { min-height: 58px; }
    .home-page .search-control button { flex:0 0 44px; width:44px; height:44px; padding:0; justify-content:center; }
    .home-page .search-control button b { display:none; }
    .home-page .search-control button svg { flex:0 0 20px; width:20px; height:20px; }
}

/* The search is the first action on a small screen. */
@media (max-width: 760px) {
    .home-page .hero { padding:18px 15px 22px; gap:14px; }
    .home-page .hero h1 { font-size:clamp(2rem,8vw,2.8rem); line-height:1.03; margin:10px 0 8px; }
    .home-page .hero-copy > p { margin:0 0 14px; font-size:.9rem; line-height:1.4; }
    .home-page .eyebrow { padding:5px 10px; font-size:.67rem; }
    .home-page .search-control { height:58px; }
    .home-page .search-control button { width:44px; height:44px; }
    .home-page .hero-proof { margin-top:11px; gap:5px 10px; }
    .home-page .hero-proof span { font-size:.68rem; }
    .home-page .popular { padding-block:22px 38px; }
    .home-page .popular .section-heading { margin-bottom:15px; }
    .home-page .popular .section-heading h2 { font-size:1.55rem; }
    .home-page .destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    .home-page .destination-card { min-height:130px; padding:12px; border-radius:15px; }
    .home-page .destination-card .flag { width:56px; height:37px; }
    .home-page .destination-card > span:nth-child(2) { margin-top:8px; }
    .home-page .destination-card strong { font-size:.82rem; line-height:1.2; }
    .home-page .destination-card .card-link { margin-top:auto; padding-top:7px; font-size:.68rem; }
    .home-page .support-chat { right:5px; bottom:4px; }
    .home-page .chat-launcher { width:38px; height:38px; min-height:38px; }
    .home-page .chat-launcher svg { width:19px; height:19px; }
}
@media (max-width: 375px) {
    .home-page .hero { padding-bottom:22px; }
    .home-page .destination-card { padding:10px; }
}

@media (min-width: 761px) {
    .home-page .hero { min-height:0; grid-template-columns:minmax(0,590px) minmax(320px,500px); align-items:start; gap:42px; padding:22px 32px 28px; }
    .home-page .hero-copy { align-self:start; padding-top:8px; }
    .home-page .hero h1 { font-size:clamp(2.9rem,4.3vw,4rem); line-height:1.02; margin:12px 0 10px; }
    .home-page .hero-copy > p { margin-bottom:16px; font-size:1rem; line-height:1.45; }
    .home-page .hero-visual { height:430px; }
    .home-page .hero-proof { margin-top:12px; }
    .home-page .hero-visual .connection-card { left:16px; bottom:120px; }
}
@media (min-width:761px) and (max-width:1050px) {
    .home-page .hero { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:22px; }
    .home-page .hero-visual { height:390px; }
    .home-page .hero-visual .connection-card { left:8px; bottom:105px; width:min(290px,calc(100% - 8px)); }
}
