/* Package details extend the site's forest and ivory editorial design. */
.package-details { column-gap: 65px; }
.package-details .journey-detail { min-width: 0; }
.package-details .journey-enquiry { top: 130px; }
.package-details .journey-detail h2[id] { scroll-margin-top: 140px; }
.package-details .package-section { margin-bottom: 55px; }
.package-details .package-section > .eyebrow { margin-bottom: 15px; }
.package-details .package-text { font-size: 14px; line-height: 1.95; color: var(--muted); white-space: pre-line; overflow-wrap: anywhere; }
.package-details .package-text:last-child { margin-bottom: 0; }
.package-details .package-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 30px; border-block: 1px solid var(--rule); padding: 28px 0; margin: 32px 0 50px; }
.package-facts dt { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px; }
.package-facts dd { font-size: 14px; line-height: 1.7; margin: 0; overflow-wrap: anywhere; }
.package-facts a { text-decoration: underline; text-underline-offset: 4px; }
.package-facts .package-route { grid-column: 1 / -1; }
.package-route ol { display: flex; flex-wrap: wrap; column-gap: 12px; row-gap: 5px; list-style: none; padding: 0; margin: 0; }
.package-route li:not(:last-child)::after { content: '›'; display: inline-block; margin-left: 12px; color: #927340; }
.package-details .rates-table caption { caption-side: top; padding: 0 0 14px; line-height: 1.7; }
.package-details .rates-table td { font-variant-numeric: tabular-nums; white-space: nowrap; }
.package-details .package-price-notes { margin-top: 22px; font-size: 12px; }
.package-highlights ul { list-style: none; padding: 0; margin: 0; }
.package-highlights li { display: flex; align-items: baseline; gap: 20px; padding: 16px 0; border-top: 1px solid var(--rule); font-size: 14px; line-height: 1.8; }
.package-highlights li:last-child { border-bottom: 1px solid var(--rule); }
.highlight-number { font-family: var(--display); font-size: 24px; color: #88692f; flex: 0 0 26px; }
.package-details .itinerary-content p { white-space: pre-line; overflow-wrap: anywhere; }
.package-details .itinerary-day summary { overflow-wrap: anywhere; }
.package-details .package-suitability { background: var(--paper); padding: 30px; border-left: 2px solid #ab9264; }
.package-details .package-suitability h3, .package-details .package-practical h3, .package-details .package-terms h3 { font-size: 25px; line-height: 1.25; margin: 24px 0 12px; }
.package-details .package-practical > div, .package-details .package-terms > div { border-top: 1px solid var(--rule); padding-bottom: 24px; }
.package-details .package-practical > div:last-child, .package-details .package-terms > div:last-child { padding-bottom: 0; }
.package-details .package-terms { margin-bottom: 0; }
.package-details .enquiry-card { padding: 32px; }
.package-details .enquiry-price strong { font-size: clamp(34px, 3vw, 44px); }
.package-rate-link { display: inline-block; text-decoration: underline; text-underline-offset: 4px; font-size: 11px; line-height: 1.7; margin-top: 6px; }
.package-enquiry-actions { display: flex; flex-direction: column; gap: 12px; }
.package-enquiry-actions .button { min-height: 52px; justify-content: center; text-align: center; }
.package-enquiry-actions .package-whatsapp { background: transparent; color: var(--forest); border: 1px solid #a9b4a5; font-size: 13px; gap: 10px; }
.package-enquiry-actions .package-whatsapp:hover { background: #e6e9dd; }
.package-enquiry-actions .package-whatsapp .fa { font-size: 18px; }
.package-booking-cta { background: #e7e5d8; border-block: 1px solid var(--rule); padding: 52px 0; }
.package-booking-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 320px); align-items: center; gap: 50px; }
.package-booking-inner .eyebrow { margin-bottom: 16px; }
.package-booking-inner h2 { font-size: 48px; line-height: 1.08; letter-spacing: -1px; margin-bottom: 14px; }
.package-booking-inner p:last-child { font-size: 14px; color: var(--muted); margin-bottom: 0; }

@media (max-width: 1100px) {
    .package-details { column-gap: 35px; }
    .package-details .enquiry-card { padding: 25px; }
}
@media (max-width: 820px) {
    .package-details .journey-enquiry { position: static; }
    .package-details .enquiry-card { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
    .package-details .enquiry-card > .package-enquiry-actions { grid-column: 2; grid-row: 2 / span 4; align-self: center; }
    .package-details .enquiry-card > .package-rate-link { grid-column: 1; }
    .package-details .enquiry-card > p:not(.eyebrow):not(.enquiry-price):not(.form-note) { grid-column: 1 / -1; margin-top: 20px; }
    .package-details .enquiry-price strong { font-size: 40px; }
    .package-details .package-facts { margin-bottom: 42px; }
    .package-booking-inner { gap: 30px; grid-template-columns: minmax(0, 1fr) 250px; }
    .package-booking-inner h2 { font-size: 40px; }
}
@media (max-width: 600px) {
    .package-details { padding-top: 30px; }
    .package-details .enquiry-card { display: block; padding: 25px; }
    .package-details .enquiry-card h2 { font-size: 33px; margin-bottom: 18px; }
    .package-details .enquiry-card .package-enquiry-actions { margin-top: 24px; }
    .package-details .enquiry-card > p:not(.eyebrow):not(.enquiry-price):not(.form-note) { font-size: 12px; margin: 18px 0 0; }
    .package-details .package-section { margin-bottom: 40px; }
    .package-details .package-terms { margin-bottom: 0; }
    .package-details .package-facts { gap: 22px; margin: 28px 0 40px; }
    .package-facts dd { font-size: 13px; }
    .package-details .package-text { font-size: 13px; }
    .package-highlights li { gap: 14px; font-size: 13px; padding-block: 14px; }
    .package-details .package-suitability { padding: 24px 20px; }
    .package-details .package-suitability h2 { font-size: 32px; }
    .package-booking-cta { padding-block: 40px; }
    .package-booking-inner { grid-template-columns: 1fr; gap: 27px; }
    .package-booking-inner h2 { font-size: 38px; }
}
@media (max-width: 380px) {
    .package-details .package-facts { grid-template-columns: 1fr; }
    .package-details .rates-table th, .package-details .rates-table td { padding-inline: 5px; font-size: 11px; }
}
