/* Homepage composition. Shared page styles remain in home.css. */
.home-page {
    padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

.home-page .destination-panels {
    padding: 100px 0 88px;
    background: #f8f8f6;
}

.home-page .destination-panels::before {
    content: none;
}

.destination-section-heading {
    width: 90%;
    margin: 0 auto 36px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.destination-eyebrow {
    display: block;
    margin-bottom: 14px;
    color: #656761;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .2em;
}

.destination-section-heading h2 {
    font-size: clamp(30px, 3.2vw, 48px);
    line-height: 1.12;
    font-weight: 500;
    letter-spacing: -.045em;
}

.destination-section-heading > a {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
    padding-bottom: 6px;
    border-bottom: 1px solid #a2a39d;
    font-size: 12px;
}

.home-page .destination-panels-track {
    padding: 0 5vw;
    gap: 24px;
    scroll-padding-inline: 5vw;
}

.home-page .destination-panel {
    flex: 0 0 78vw;
    width: 78vw;
    min-width: 78vw;
    max-width: 78vw;
    height: clamp(470px, 65vh, 700px);
    min-height: 470px;
    max-height: 700px;
    border-radius: 6px;
    box-shadow: none;
}

.home-page .destination-panel:hover {
    transform: none;
    box-shadow: none;
}

.home-page .destination-panel-overlay {
    background: linear-gradient(180deg, transparent 30%, rgba(0, 0, 0, .12) 50%, rgba(0, 0, 0, .7) 100%);
}

.home-page .destination-panel-content {
    left: clamp(24px, 4vw, 64px);
    right: 32px;
    bottom: 44px;
    max-width: 620px;
}

.home-page .destination-panel-content h2 {
    font-size: clamp(36px, 4.5vw, 64px);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -.045em;
}

.home-page .destination-panel-content p {
    max-width: 420px;
    font-size: 14px;
    line-height: 1.65;
}

.home-page .destination-panel-content a {
    justify-content: center;
    min-height: 44px;
    min-width: 180px;
    padding: 12px 22px;
    border-radius: 4px;
    background: #fff;
    color: #171a20;
    font-size: 12px;
}

.home-page .destination-panel-content a:hover {
    opacity: 1;
    background: #eceeeb;
}

.home-page .destination-arrow {
    top: calc(50% + 52px);
    width: 42px;
    height: 42px;
    border-radius: 4px;
    box-shadow: none;
}

.home-page .black-section {
    min-height: 0;
    background: #fafaf9;
}

.home-page .cta-section {
    max-width: 800px;
    padding: 100px 24px 88px;
}

.home-page .cta-section h2 {
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 500;
    letter-spacing: -.055em;
}

.home-page .cta-section p {
    max-width: 470px;
    font-size: 15px;
    line-height: 1.8;
}

.home-page .cta-button {
    border-radius: 4px;
    min-width: 240px;
    min-height: 46px;
    background: #171a20;
}

.home-footer {
    padding: 28px 20px 32px;
    background: #fafaf9;
    border-top: 1px solid #e8e8e4;
}

.home-footer-links {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 28px;
}

.home-footer-links a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    color: #62645f;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.home-footer-links a:hover {
    color: #171a20;
}

.home-concierge {
    position: fixed;
    inset: auto 0 0;
    z-index: 1000;
    padding: 16px 5vw calc(16px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .96);
    border-top: 1px solid #e2e3df;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.home-concierge-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
}

.home-concierge-copy {
    display: none;
}

.home-concierge-copy span {
    color: #73766e;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .18em;
}

.home-concierge-copy p {
    margin-top: 5px;
    font-size: 14px;
    color: #292c27;
}

.home-concierge-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.home-action {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    min-width: 190px;
    padding: 12px 24px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    transition: background .2s ease, color .2s ease;
}

.home-action-primary {
    background: #171a20;
    border: 1px solid #171a20;
    color: #fff;
}

.home-action-primary:hover { background: #363a40; }

.home-action-secondary {
    background: transparent;
    color: #171a20;
    border: 1px solid #a6a8a1;
}

.home-action-secondary:hover { background: #edeeeb; }

.home-page a:focus-visible,
.home-page button:focus-visible {
    outline: 3px solid #537768;
    outline-offset: 5px;
}

@media (max-width: 900px) {
    .home-concierge-copy p { max-width: 240px; font-size: 12px; }
    .home-action { min-width: 160px; padding-inline: 16px; }
}

@media (max-width: 600px) {
    .home-page { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
    .home-page .destination-panels { padding: 60px 0; }
    .destination-section-heading { display: block; margin-bottom: 28px; }
    .destination-section-heading > a { margin-top: 20px; }
    .home-page .destination-panel {
        flex-basis: 88vw;
        width: 88vw;
        min-width: 88vw;
        max-width: 88vw;
        height: 520px;
        min-height: 520px;
        max-height: 520px;
    }
    .home-page .destination-panels-track { gap: 14px; }
    .home-page .destination-panel-content { left: 24px; right: 24px; bottom: 30px; }
    .home-page .destination-panel-content h2 { font-size: 36px; }
    .home-page .destination-panel-content p { font-size: 13px; }
    .home-page .destination-arrow { top: calc(50% + 80px); width: 36px; height: 36px; }
    .home-page .destination-arrow-left { left: 8px; }
    .home-page .destination-arrow-right { right: 8px; }
    .home-page .cta-section { padding: 64px 24px; }
    .home-footer { padding: 20px 12px 24px; }
    .home-footer-links { gap: 4px 16px; }
    .home-footer-links a { font-size: 11px; }
    .home-concierge { padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px)); }
    .home-concierge-copy { display: none; }
    .home-concierge-inner { display: block; }
    .home-concierge-actions { gap: 10px; }
    .home-action { flex: 1; min-width: 0; padding: 10px 8px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
    html:has(.home-page) { scroll-behavior: auto; }
    .home-page .destination-panel img,
    .home-action { transition: none; }
    .home-page .destination-panel:hover img { transform: none; }
}
/* Match the active Home link to the other links over the video. */
.home-page .journey-experience-link { display:block; padding:8px 0 8px 30px; border-left:3px solid #405d49; text-decoration:none; color:inherit; }
.home-page .journey-experience-link::before { content:"EXPERIENCES"; color:#58715b; }
.home-page .journey-experience-link h2 { color:#294433; }
.journey-experience-cta { display:inline-block; margin-top:24px; padding-bottom:7px; border-bottom:1px solid #58715b; color:#294433; font-size:12px; font-weight:600; }
.journey-experience-link:hover .journey-experience-cta { border-bottom-width:2px; padding-bottom:6px; }
#home-experiences { scroll-margin-top:100px; }
@media(max-width:600px) { .home-page .journey-experience-link { padding-left:20px; } }
.home-page .navbar:not(.scrolled) .nav-links a.active { color:#fff; }
.home-page .hero { background:#15221e; }
.home-page .hero-video { opacity:0; transition:opacity .3s ease; }
.home-page .hero-video.is-ready { opacity:1; }
/* Homepage search: public catalogue results and lightweight suggestions. */
#searchResults[hidden],#suggestions[hidden] { display:none !important; }
#searchResults:not([hidden]) { display:block; padding:65px 5% 100px; background:#fbfaf7; scroll-margin-top:80px; }
#searchResults .results-header { max-width:1320px; margin:0 auto 28px; text-align:left; }
#resultsTitle { margin:0; font-size:clamp(26px,3vw,38px); font-weight:500; letter-spacing:-.045em; color:#263526; }
#resultsSubtitle { margin:14px 0 0; font-size:13px; line-height:1.8; color:#64725d; }
#packagesContainer { width:100%; max-width:1320px; margin:0 auto; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home-search-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid #dde4d7; border-radius:5px; background:#fff; color:#263526; text-decoration:none; }
.home-search-card img { display:block; width:100%; height:190px; object-fit:cover; }
.home-search-card>div { padding:22px; }
.home-search-card span,.home-search-card small { font-size:11px; color:#647a55; }
.home-search-card h3 { margin:12px 0; font-size:21px; font-weight:500; letter-spacing:-.035em; }
.home-search-card p { margin:0 0 14px; font-size:13px; line-height:1.8; color:#68735e; }
.home-search-empty { grid-column:1/-1; padding:30px 0; font-size:14px; line-height:1.8; }
.home-search-empty a { color:#37562c; }
[data-search-more] { display:block; margin:30px auto 0; padding:13px 24px; border:1px solid #afc19e; border-radius:4px; background:transparent; color:#37562c; cursor:pointer; }
#suggestions { position:absolute; top:calc(100% + 10px); left:0; right:0; z-index:10; overflow:hidden; border:1px solid #dce3d3; border-radius:12px; background:#fbfaf7; color:#263526; box-shadow:0 14px 35px #14251c26; text-align:left; }
#suggestions a { display:block; padding:13px 20px; color:inherit; text-decoration:none; }
#suggestions a:hover,#suggestions a:focus-visible { background:#eaf0e1; }
#suggestions strong { display:block; font-size:13px; font-weight:500; }
#suggestions span { display:block; margin-top:5px; font-size:11px; color:#697b5c; }
@media(max-width:1000px) { #packagesContainer { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { #packagesContainer { grid-template-columns:1fr; } #searchResults:not([hidden]) { padding-block:45px 90px; } .home-search-card img { height:220px; } }
