/* Original calendar → alert → ticket illustration; no official branding. */
.booking-journey {
    margin-top: 1.4rem;
    padding: 1.4rem;
    border: 1px solid #6b5435;
    border-radius: 14px;
    background: radial-gradient(ellipse at top right, #56402b55, transparent 70%), linear-gradient(135deg, #272123, #181719);
    text-align: left;
}
.journey-kicker, .assurance-label {
    display: block;
    color: #e3b778;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.journey-heading h2 {
    font-family: 'Cinzel', serif;
    color: #f3e5cd;
    font-size: 1.25rem;
    line-height: 1.5;
    margin: .55rem 0;
}
.journey-heading > p { color: #c6b9a7; font-size: .78rem; line-height: 1.5; }
.journey-steps { list-style: none; padding: 0; margin: 1.25rem 0 0; }
.journey-steps li { display: grid; grid-template-columns: 42px 1fr; gap: .9rem; padding-bottom: 1.2rem; position: relative; }
.journey-steps li:not(:last-child)::after { content: ''; position: absolute; width: 1px; background: #775d3c; top: 45px; bottom: 4px; left: 20px; }
.journey-icon { display: flex; width: 42px; height: 42px; padding: 8px; border: 1px solid #8c6f45; border-radius: 50%; color: #e3b778; background: #2e2726; }
.journey-icon svg { width: 100%; height: 100%; }
.journey-number { font-size: .63rem; color: #bba88e; text-transform: uppercase; letter-spacing: .06em; }
.journey-steps h3 { font-size: .92rem; color: #f3e5cd; margin: .2rem 0 .3rem; }
.journey-steps p { font-size: .79rem; line-height: 1.5; color: #c6c0b8; }
.journey-official { border-top: 1px dashed #735f44; padding-top: 1rem; }
.booking-journey a, .booking-assurance a { display: inline-block; margin-top: .55rem; color: #f0c381; font-size: .77rem; line-height: 1.5; text-underline-offset: 3px; overflow-wrap: anywhere; }
.booking-journey a:focus-visible, .booking-assurance a:focus-visible { outline: 2px solid #f0c381; outline-offset: 4px; }
.journey-boundary { border-top: 1px solid #514432; padding-top: .85rem; color: #b9b1a7; font-size: .69rem; line-height: 1.6; }
.content-wrapper > main { grid-column: 1 / -1; min-width: 0; }
.booking-assurance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; text-align: left; margin-bottom: 1.8rem; }
.booking-assurance article { padding: 1.2rem; background: #242122; border: 1px solid #58462f; border-radius: 10px; }
.booking-assurance h2 { font-size: 1rem; color: #f3e5cd; line-height: 1.45; margin: .6rem 0; }
.booking-assurance p { font-size: .83rem; line-height: 1.65; color: #c6c0b8; }
@media (max-width: 900px) {
    /* hero-content uses display:contents: keep the form directly after H1. */
    .hero-content .booking-journey { order: 3; width: 100%; margin-top: 0; }
    .booking-assurance { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .booking-journey { padding: 1.1rem; }
    .journey-heading h2 { font-size: 1.15rem; }
}
@media (max-width: 350px) {
    .hero-content h1 { font-size: 1.22rem; letter-spacing: .5px; line-height: 1.15; }
}
