/* ==========================================================
   JOURNEY HERO v2 — image + titre superposé + vague en bas
   ========================================================== */

.journey-hero {
    position: relative;
    height: 86vh;
    min-height: 380px;
    margin-top: var(--header-h);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.journey-hero img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.journey-hero-title {
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 0 24px;
    color: var(--white);
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
    font-size: clamp(32px, 5vw, 56px);
    text-align: center;
    text-shadow:
        0 2px 6px rgba(0, 0, 0, .55),
        0 4px 20px rgba(0, 0, 0, .45);
}

.journey-hero-wave {
    position: absolute;
    left: 0;
    bottom: -1px;
    z-index: 3;
    width: 100%;
    height: 90px;
    line-height: 0;
}

.journey-hero-wave svg {
    display: block;
    width: 100%;
    height: 100%;
}

.journey-hero-wave path {
    fill: var(--paper);
}

.journey-hero-tag {
    position: absolute;
    top: 24px;
    left: 24px;
    z-index: 2;
    padding: 9px 14px;
    color: var(--forest);
    background: rgba(255, 255, 255, .92);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 650px) {
    .journey-hero {
        height: 130vh;
        min-height: 320px;
    }
    .journey-hero-wave {
        height: 55px;
    }
}

/* ==========================================================
   JOURNEY INFOBOX — titre manuscrit + étoile + itinéraire
   ========================================================== */

.journey-infobox {
    max-width: 900px;
    margin: 0 auto;
    padding: 56px 20px 40px;
    text-align: center;
    color: gray;
    border: 2px solid var(--forest, green);
    border-radius: 12px;
}

.journey-infobox h1 {
    margin: 0 0 14px;
    font-family: "Caveat", cursive;
    font-weight: 700;
    font-size: clamp(34px, 4.5vw, 52px);
    color: var(--accent, #17a898);
    line-height: 1.1;
}

.journey-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 0 0 22px;
    color: var(--accent, #17a898);
    font-size: 14px;
}

.journey-divider::before,
.journey-divider::after {
    content: "";
    display: block;
    width: 70px;
    height: 1px;
    background: var(--accent, #17a898);
}

.journey-route {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    font-weight: 500;
}

@media (max-width: 650px) {
    .journey-infobox {
        padding: 40px 16px 28px;
    }
    .journey-infobox h1 {
        font-size: 32px;
    }
    .journey-divider::before,
    .journey-divider::after {
        width: 40px;
    }
    .journey-route {
        font-size: 14px;
    }
}

/* ==========================================================
   JOURNEY COLLAGE — texte + photos superposées
   ========================================================== */

.journey-collage {
    padding: 90px 0;
    background: var(--paper);
    overflow: hidden;
}

.journey-collage-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 60px;
}

.journey-collage-text h2 {
    margin: 0 0 24px;
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
    font-size: clamp(28px, 3.2vw, 42px);
    line-height: 1.15;
    color: var(--forest, #1a2e22);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.journey-collage-text p {
    margin: 0 0 20px;
    font-size: 16px;
    line-height: 1.7;
    color: var(--text-muted, #4a4a4a);
}

.journey-signature {
    margin-top: 12px;
    font-family: "Caveat", cursive;
    font-size: 34px;
    font-weight: 700;
    color: var(--forest, #1a2e22);
}

.journey-collage-photos {
    position: relative;
    width: 100%;
    height: 460px;
}

.journey-collage-photos .photo {
    position: absolute;
    border-radius: 10px;
    object-fit: cover;
    box-shadow: 0 20px 45px rgba(0, 0, 0, .18);
}

.journey-collage-photos .photo-back {
    top: 0;
    right: 0;
    width: 78%;
    height: 88%;
}

.journey-collage-photos .photo-mid {
    bottom: 0;
    left: 0;
    width: 58%;
    height: 62%;
    border: 6px solid var(--paper, #fff);
}

@media (max-width: 992px) {
    .journey-collage {
        padding: 64px 0;
    }
    .journey-collage-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .journey-collage-photos {
        height: 380px;
        order: -1;
    }
}

@media (max-width: 650px) {
    .journey-collage {
        padding: 48px 0;
    }
    .journey-collage-text h2 {
        font-size: 26px;
    }
    .journey-collage-photos {
        height: 300px;
    }
    .journey-collage-photos .photo-back {
        width: 85%;
        height: 85%;
    }
    .journey-collage-photos .photo-mid {
        width: 62%;
        height: 55%;
    }
    .journey-signature {
        font-size: 28px;
    }
}

.journey-cta {
    padding: 0 0 80px;
    text-align: center;
}

.journey-cta .btn-outline {
    display: inline-block;
    padding: 14px 38px;
    border: 2px solid #009000;
    border-radius: 999px;
    color: #009000;
    background: transparent;
    font-family: "DM Sans", sans-serif;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none;
    letter-spacing: .3px;
    transition: background .25s ease, color .25s ease, transform .2s ease;
}

.journey-cta .btn-outline:hover {
    background: #009000;
    color: var(--white, #fff);
    transform: translateY(-2px);
}

@media (max-width: 650px) {
    .journey-cta .btn-outline {
        padding: 12px 28px;
        font-size: 14px;
    }
}