/* Editorial safari details. Scoped to keep booking and other pages independent. */
html:has(.package-modern), body:has(.package-modern) { overflow-x: clip; }
.package-modern { --journey-ink: #3b2118; --journey-muted: #76584a; --journey-line: #e8ded3; background: #faf7f2; }
.package-modern .package-showcase { padding: clamp(2rem, 5vw, 4.5rem) 1.5rem !important; background: #faf7f2; }
.package-modern .package-showcase-grid { max-width: 1200px !important; grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr) !important; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding: 0; background: transparent; border-radius: 0; box-shadow: none; }
.package-modern .package-gallery-main { height: clamp(340px, 36vw, 490px); border-radius: 6px; }
.package-modern .package-gallery-main img { transition: opacity .2s, transform .8s; }
.package-modern .package-gallery-thumbnails { display: flex; gap: .65rem; margin-top: .8rem; }
.package-modern .package-gallery-thumb { flex: 1; max-width: 125px; height: 72px; border-radius: 4px; opacity: 1; }
.package-modern .package-gallery-thumb:focus-visible { outline: 2px solid #A44924; outline-offset: 3px; }
.package-modern .package-quote-card { padding: 0; margin: 0; background: transparent; border-radius: 0; box-shadow: none; gap: 0; align-self: center; }
.package-modern .package-showcase-grid, .package-modern .package-quote-card { border: 0; }
.package-modern .journey-eyebrow { color: #A44924; font-size: .65rem; letter-spacing: .19em; text-transform: uppercase; }
.package-modern .journey-intro-title { margin-top: 1rem; color: var(--journey-ink); font-size: clamp(2.1rem, 3.4vw, 3.35rem); line-height: 1.12; }
.package-modern .journey-intro-copy { margin-top: 1.25rem; color: var(--journey-muted); font-size: .9rem; line-height: 1.85; }
.package-modern .journey-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin-block: 1.75rem; padding-block: 1.5rem; border-block: 1px solid var(--journey-line); }
.journey-facts dt { color: #76584a; font-size: .64rem; text-transform: uppercase; letter-spacing: .12em; }
.journey-facts dd { margin-top: .4rem; color: #3b2118; font-size: .84rem; }
.journey-price-block { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.journey-price-block > span { color: #76584a; font-size: .75rem; }
.package-modern .package-quote-price-minimal { font-family: 'Satoshi', Arial, sans-serif; font-size: 1.7rem !important; color: #3b2118; }
.package-modern .package-quote-price-minimal::before { display: none; }
html body .package-modern .package-quote-button.package-quote-button { min-height: 50px; border-radius: 5px; justify-content: space-between; padding-inline: 1.4rem; background: #A44924; color: #fff !important; }
html body .package-modern .package-quote-button.package-quote-button:hover { background: #87391f; }
html body .package-modern .package-quote-button.package-quote-button * { color: #fff !important; }
.package-modern .journey-price-note { margin-top: .8rem; text-align: center; color: #76584a; font-size: .68rem; }
.package-modern .package-tabs, .package-modern .package-tabs.is-fixed { position: sticky; top: var(--journey-header-height, 104px); z-index: 45; overflow-x: auto; background: rgba(255,253,249,.94); border-block: 1px solid rgba(164,73,36,.12); box-shadow: 0 16px 36px rgba(59,33,24,.08); backdrop-filter: blur(16px); scrollbar-width: none; }
.package-modern .package-tabs::-webkit-scrollbar { display: none; }
.package-modern .package-tabs-sentinel { display: none !important; }
.package-modern .package-tabs-inner { display: flex; width: max-content; min-width: min(100%, 1180px); justify-content: center; gap: .45rem; margin-inline: auto; padding: .7rem 1rem; counter-reset: journey-tabs; }
.package-modern .package-tabs-inner::before { display: none; }
.package-modern .package-tab { counter-increment: journey-tabs; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 42px; border: 1px solid transparent; border-radius: 999px; padding: .55rem .9rem .55rem .6rem; background: transparent; color: #76584a; box-shadow: none; font-size: .72rem; line-height: 1; white-space: nowrap; letter-spacing: 0; transition: background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.package-modern .package-tab::before { content: counter(journey-tabs, decimal-leading-zero); display: grid; width: 1.55rem; height: 1.55rem; place-items: center; border-radius: 50%; background: #f4ede4; color: #A44924; font-size: .58rem; line-height: 1; }
.package-modern .package-tab::after { display: none; content: none; }
.package-modern .package-tab:hover { border-color: rgba(164,73,36,.18); background: #fff8f1; color: #A44924; }
.package-modern .package-tab.is-active { border-color: #A44924; background: #A44924; color: #fff !important; box-shadow: 0 10px 24px rgba(164,73,36,.2); }
.package-modern .package-tab.is-active::before { background: #fffdf9; color: #A44924; }
.package-modern .package-tab:focus-visible { outline: 2px solid #A44924; outline-offset: 3px; }
.package-modern .package-content-shell { background: #faf7f2; padding: 0 1.5rem 3rem; }
.journey-detail-toolbar { max-width: 1200px; margin-inline: auto; padding: 3.5rem 0 2rem; display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.journey-detail-toolbar h2 { margin-top: .7rem; font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.15; color: #3b2118; }
.journey-detail-toolbar > div > p:last-child { margin-top: .7rem; color: #76584a; font-size: .85rem; }
.journey-expand-all { flex-shrink: 0; display: inline-flex; align-items: center; gap: 1.5rem; min-height: 46px; padding: .75rem 1rem; border-radius: 4px; background: #efe5da; color: #87391f; font-size: .75rem; transition: background .2s; }
.journey-expand-all:hover { background: #f4d7b8; }
.package-modern .journey-section { max-width: 1200px; padding: 0; margin: 0 auto 1rem; scroll-margin-top: calc(var(--journey-header-height, 104px) + var(--journey-tabs-height, 64px) + 16px); border: 0 !important; }
.journey-disclosure { border: 1px solid var(--journey-line); border-radius: 8px; background: #fffdf9; transition: box-shadow .25s; }
.journey-disclosure:hover { box-shadow: 0 8px 25px #3b211805; }
.journey-disclosure > summary { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto 2rem; align-items: center; gap: 1.4rem; padding: 1.8rem 2rem; cursor: pointer; list-style: none; }
.journey-disclosure > summary::-webkit-details-marker { display: none; }
.journey-section-number { color: #A44924; font-size: .72rem; }
.journey-section-label h2 { color: #3b2118; font-size: 1.55rem; line-height: 1.25; }
.package-modern .journey-section-brief { display: block; max-width: 740px; margin-top: .55rem; font-size: .82rem; line-height: 1.75; color: #76584a; }
.journey-expand-label { color: #A44924; font-size: .68rem; }
.journey-expand-icon { position: relative; width: 2rem; height: 2rem; border-radius: 50%; background: #f4ede4; }
.journey-expand-icon::before, .journey-expand-icon::after { position: absolute; content: ''; width: 10px; height: 1px; background: #A44924; top: 50%; left: calc(50% - 5px); transition: transform .25s; }
.journey-expand-icon::after { transform: rotate(90deg); }
.journey-disclosure[open] > summary .journey-expand-icon::after { transform: rotate(0); }
.journey-when-open, .journey-disclosure[open] > summary .journey-when-closed { display: none; }
.journey-disclosure[open] > summary .journey-when-open { display: inline; }
.journey-disclosure[open] > summary { border-bottom: 1px solid var(--journey-line); }
.journey-disclosure-body { padding: 0 2rem 2rem; }
.journey-disclosure[open] > .journey-disclosure-body { animation: journey-unfold .3s ease-out; }
.package-modern .package-overview-layout { grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr) !important; margin-top: 2rem; gap: 2.5rem; }
.package-modern .package-overview-copy { font-size: .92rem; line-height: 1.9; color: #76584a; }
.package-modern .package-fact-panel { padding: 1.5rem; border-radius: 5px; background: #f3ece3; box-shadow: none; }
.package-modern .package-fact-panel h3, .package-modern .package-fact-panel strong { color: #3b2118 !important; }
.package-modern .package-fact-panel h3 { font-size: 1.35rem !important; }
.package-modern .package-fact p, .package-modern .package-fact li { color: #76584a !important; font-style: normal; font-size: .8rem; }
.package-modern .package-packing-card, .package-modern .package-visa-card { margin-top: 2rem; border: none !important; background: transparent; border-radius: 0; box-shadow: none; padding: 0; gap: 2rem; }
.package-modern .package-packing-card h3, .package-modern .package-visa-card h3 { font-size: 1.6rem; }
.package-modern .package-visa-card > div:first-child { padding: 1rem 0; }
.package-modern .package-visa-card > div:first-child h3 { color: #3b2118 !important; font-size: 1.6rem !important; }
.package-modern .package-visa-card > div:first-child p { color: #76584a !important; }
.package-modern .package-visa-card > div:first-child label, .package-modern .package-visa-card > div:first-child::before { color: #A44924 !important; }
.package-modern .package-visa-visual { border-radius: 5px; min-height: 300px; }
.package-modern .package-price-card { box-shadow: none; background: #f5efe7; border-radius: 5px; padding: 1.5rem; }
.package-modern .package-price-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.package-modern .package-price-grid > div { padding: .75rem; border: 0; background: #fffdf9; border-radius: 4px; }
.package-modern .package-price-grid strong { font-size: 1.15rem; }
.package-modern .package-itinerary-item { background: #faf7f2; border-radius: 5px; border: 1px solid #e8ded3 !important; box-shadow: none; }
.package-modern .package-itinerary-item[open] { box-shadow: none; }
.package-modern .package-itinerary-item h3 { font-family: 'Satoshi', Arial, sans-serif; font-size: .88rem !important; line-height: 1.5; }
.package-modern .package-itinerary-day { display: block; margin-bottom: .3rem; font-size: .62rem; color: #A44924; text-transform: uppercase; letter-spacing: .1em; }
.package-modern .package-itinerary-item h3 { margin-left: 0; }
.package-modern .package-itinerary-item[open] summary::after { content: '\2212'; }
.package-modern .package-itinerary-body { font-size: .9rem; }
.package-modern .package-itinerary-day-image img { width: 100%; max-height: 430px; object-fit: cover; }
.package-modern .package-inclusion-item { background: #faf7f2; border: 1px solid #e8ded3 !important; border-radius: 5px; }
.package-modern .package-inclusion-item[open] { box-shadow: none; transform: none; }
.package-modern .package-inclusion-item summary { font-size: .9rem; }
.package-modern .package-packing-list li::before { content: '\2713'; }
.package-modern .package-detail-section:not(.journey-section) { padding: 3.5rem 0 1rem; max-width: 1200px; border: 0 !important; }
.package-modern [data-package-reveal] { opacity: 1; transform: none; }
.package-modern [data-package-reveal].is-visible { animation: journey-unfold .55s ease-out; }
.package-modern .journey-disclosure > summary:focus-visible, .package-modern .journey-expand-all:focus-visible, .package-modern .package-content-shell button:focus-visible { outline: 2px solid #A44924; outline-offset: 4px; }
@keyframes journey-unfold { from { opacity: .4; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) {
    .package-modern .package-showcase-grid { grid-template-columns: 1fr !important; gap: 2rem; }
    .package-modern .package-quote-card { display: block; }
    .package-modern .package-overview-layout { grid-template-columns: 1fr !important; }
    .package-modern .package-tabs-inner { justify-content: flex-start; min-width: max-content; gap: .45rem; padding-inline: 1.25rem; }
    .journey-detail-toolbar { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
}
@media (max-width: 600px) {
    .package-modern .package-showcase { padding-inline: 1.25rem !important; }
    .package-modern .package-content-shell { padding-inline: 1.25rem; }
    .package-modern .package-gallery-main { height: 300px; }
    .package-modern .package-gallery-thumb { height: 58px; }
    .journey-disclosure > summary { grid-template-columns: 1.25rem minmax(0, 1fr) 1.75rem; padding: 1.3rem 1rem; gap: .75rem; }
    .journey-expand-label { display: none; }
    .journey-section-label h2 { font-size: 1.25rem; }
    .package-modern .journey-section-brief { font-size: .76rem; }
    .journey-disclosure-body { padding: 0 1rem 1.25rem; }
    .package-modern .package-price-grid { grid-template-columns: repeat(2, 1fr); }
    .package-modern .package-packing-card, .package-modern .package-visa-card { grid-template-columns: 1fr; }
    .package-modern .package-itinerary-item summary { padding: 1rem; }
    .package-modern .package-itinerary-toggle { font-size: .7rem; }
    .package-modern .package-tabs, .package-modern .package-tabs.is-fixed { box-shadow: 0 12px 24px rgba(59,33,24,.1); }
    .package-modern .package-tab { min-height: 40px; padding: .5rem .8rem .5rem .55rem; font-size: .68rem; }
    .package-modern .package-tab::before { width: 1.45rem; height: 1.45rem; font-size: .54rem; }
}
@media (prefers-reduced-motion: reduce) {
    .package-modern *, .package-modern *::before, .package-modern *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
    .package-modern .package-tabs, .journey-detail-toolbar button, .journey-expand-label, .journey-expand-icon { display: none; }
    .journey-disclosure { break-inside: auto; }
}
