/* PDF composition inspired by the Spark itinerary: cover, letter and compact service cards. */
@page{size:A4;margin:14mm 14mm 16mm}
@media print{
html,body{background:white!important;color:#292929!important;margin:0!important;font-family:Lato,Arial,sans-serif!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9pt!important}
body:not(.guidePortal) #portal{display:block!important;max-width:none!important;width:auto!important;margin:0!important;padding:0!important;overflow:visible!important}
.top{position:static!important;background:white!important;box-shadow:none!important;padding:0!important;margin:0 0 5mm!important;height:15mm!important;justify-content:center!important}.top .brand,.top .brand img{width:35mm!important;height:15mm!important;object-fit:contain!important}
.topActions,.dayNav,.itinerarySidebar,.coverThumbnails,.highlightControls,.hotelGalleryButtons,.mapExpand,.journeyMapDialog,.serviceIcon,.serviceState,.mapLink,.docOpen,.dayServicesHeading{display:none!important}
body:not(.guidePortal) .hero{height:220mm!important;min-height:220mm!important;margin:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important;position:relative!important;break-after:page!important;break-inside:avoid!important;background:#f6f0eb!important;overflow:hidden!important}
.heroPhoto{position:absolute!important;inset:0 0 auto!important;width:100%!important;height:155mm!important;object-fit:cover!important}.heroGlow,.hero::before,.hero::after{display:none!important}.heroContent{position:absolute!important;bottom:0!important;left:0!important;right:0!important;padding:10mm 6mm!important;background:#f6f0eb!important;color:#292929!important;text-align:center!important}.hero h1{font-family:Georgia,serif!important;font-size:29pt!important;line-height:1.15!important;color:#292929!important;margin:3mm 0!important}.hero .subtitle{font-size:12pt!important;color:#292929!important}.hero .eyebrow{color:#846c46!important;font-size:8pt!important}.hero .tripMeta{justify-content:center!important;color:#292929!important;font-size:9pt!important;border:0!important;margin-top:5mm!important}
.journeyWelcome{display:block!important;margin:0!important;padding:10mm 8mm!important;background:#f8f3ee!important;text-align:left!important;break-before:page!important;break-after:page!important}.welcomeIntro{background:white!important;padding:8mm!important}.welcomeGreeting{font-family:Georgia,serif!important;font-size:21pt!important;margin:0 0 5mm!important}.journeyWelcome p{font-size:10pt!important;line-height:1.6!important;max-width:none!important}.designerIntro{text-align:left!important;margin:8mm!important}.designerSignature{font-family:Allura,cursive!important;font-size:25pt!important}.designerName{font-size:12pt!important;margin:2mm 0!important}.designerDetails summary{display:none!important}.designerDetails .designerProfile,.designerDetails:not([open])>.designerProfile{display:flex!important;gap:5mm!important;align-items:flex-start!important;background:white!important;border:0!important;padding:5mm!important}.designerPortrait{width:25mm!important;height:25mm!important;border-radius:0!important;object-fit:cover!important}.designerText{min-width:0!important}.designerText .welcomeEyebrow{display:none!important}.designerContact{font-size:9pt!important;display:flex!important;gap:3mm!important;flex-wrap:wrap!important}
.itinerary{display:block!important;margin:0!important;overflow:visible!important}.itinerary>.sectionHead{display:none!important}body:not(.guidePortal) .itinerary article.day{display:block!important;break-before:page!important;page-break-before:always!important;padding:0!important;margin:0!important;border:0!important;overflow:visible!important;break-inside:auto!important}.dayNo{display:none!important}.dayMain{display:block!important;padding:0!important;overflow:visible!important}
.itinerary .dayVisual.dayCover{height:auto!important;min-height:0!important;padding:4mm 0!important;margin:0 0 5mm!important;border-radius:0!important;border-bottom:1px solid #65a0a7!important;background:white!important;break-after:avoid!important}.dayCover::before,.dayCover::after,.dayPhoto{display:none!important}.dayCoverContent{position:static!important;display:block!important;color:#292929!important}.dayCoverMeta{display:flex!important;gap:4mm!important;color:#292929!important}.coverDayNo{display:flex!important;align-items:baseline!important;gap:1mm!important;width:auto!important;height:auto!important;min-width:0!important;border:0!important;background:none!important;color:#292929!important}.coverDayNo span,.coverDayNo b,.dayCoverMeta time{font-size:11pt!important;color:#292929!important}.dayCoverContent h2,.dayHeading h2{font-family:Georgia,serif!important;font-size:20pt!important;color:#292929!important;margin:2mm 0!important}.dayOverview,.dayDesc{font-size:9pt!important;line-height:1.45!important;color:#444!important}.dayHeading{break-after:avoid!important;border-bottom:1px solid #65a0a7!important;margin-bottom:5mm!important}
.services{display:block!important}body:not(.guidePortal) .itinerary .service{display:block!important;position:relative!important;min-height:0!important;height:auto!important;background:#f8f2ee!important;color:#292929!important;border:0!important;border-radius:2mm!important;padding:4mm!important;margin:0 0 5mm!important;box-shadow:none!important;overflow:visible!important;break-inside:avoid!important;page-break-inside:avoid!important}.service::before,.service::after{display:none!important}
body:not(.guidePortal) .itinerary .service .serviceContent{padding:0!important;margin:0!important;width:auto!important;color:#292929!important;min-height:0!important}.serviceTopline{display:block!important;margin:0 0 1mm!important;break-after:avoid!important}.serviceType{font-size:8pt!important;color:#547b80!important}.service h4{font-family:Lato,Arial,sans-serif!important;font-size:11pt!important;line-height:1.3!important;font-weight:700!important;margin:0 0 3mm!important;color:#292929!important;break-after:avoid!important}.service p,.serviceNarrative{font-size:9pt!important;line-height:1.4!important;color:#292929!important}.serviceBody,.serviceBody.withDetails{display:block!important}.serviceDetails{display:block!important;margin:3mm 0 0!important;padding:3mm!important;background:white!important;border:0!important;break-inside:avoid!important}.serviceDetails dl{display:block!important;margin:0!important}.serviceDetails dl>div{display:inline-block!important;width:47%!important;vertical-align:top!important;margin:0 2% 2mm 0!important}.serviceDetails dt{font-size:7.5pt!important;color:#6c6256!important}.serviceDetails dd{font-size:9pt!important;color:#292929!important;margin:1mm 0 0!important}.serviceIncluded{padding-left:4mm!important;margin:0!important}.transferRoute,.transferMeeting{margin:2mm 0!important}.transferRoute b,.transferMeeting b{color:#292929!important}.transferRoute span,.transferMeeting span{color:#6c6256!important}
body:not(.guidePortal) .itinerary .service:not(.hotel) .servicePhoto{position:static!important;float:right!important;display:block!important;width:62mm!important;height:42mm!important;min-height:0!important;object-fit:cover!important;margin:0 0 3mm 5mm!important;border-radius:1mm!important}.service:not(.hotel)::after{content:''!important;display:block!important;clear:both!important}.service:not(.hotel).hasServicePhoto .serviceContent{width:auto!important}
.hotelPhotoGallery{position:relative!important;display:block!important;break-inside:avoid!important}body:not(.guidePortal) .itinerary .service.hotel .hotelPhotoGallery>.servicePhoto{position:static!important;display:block!important;width:100%!important;height:65mm!important;min-height:0!important;object-fit:cover!important;border-radius:1mm!important;margin:0 0 4mm!important}.hotelRoomBadge{position:absolute!important;top:3mm!important;right:3mm!important;bottom:auto!important;padding:2mm 3mm!important;font-size:8pt!important;background:white!important;color:#292929!important}.printHotelPhotos{display:grid!important;grid-template-columns:1fr 1fr!important;gap:3mm!important;margin:3mm 0!important}.printHotelPhotos img{width:100%!important;height:38mm!important;object-fit:cover!important;border-radius:1mm!important}.service.hotel{break-inside:auto!important;page-break-inside:auto!important}.service.hotel .serviceBody{break-inside:avoid!important}
.journeyHighlights{display:block!important;break-before:page!important;break-after:page!important;margin:0!important;padding:0!important}.highlightGrid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5mm!important;overflow:visible!important}.highlightPhotoCard{height:65mm!important;min-height:65mm!important;break-inside:avoid!important}.highlightCaption{padding:4mm!important}.highlightCaption h3{font-family:Georgia,serif!important;font-size:17pt!important}.highlightCaption p{font-size:9pt!important;line-height:1.4!important}
.inclusionsPanel{display:block!important;break-before:page!important;margin:0!important;padding:5mm!important;background:#f8f2ee!important}.includedBlock,.excludedBlock{background:white!important;padding:5mm!important;margin:0 0 4mm!important}.includedBlock h2,.excludedBlock h2{font-family:Georgia,serif!important;font-size:22pt!important}.printPricingSection{display:block!important;break-before:page!important;break-after:page!important;margin:0!important;padding:8mm!important;background:#f8f2ee!important}.printPricingSection .price{display:block!important;padding:8mm!important;background:white!important;border:1px solid #c7b28e!important;color:#292929!important;break-inside:avoid!important}.price h2{font-family:Georgia,serif!important;font-size:25pt!important;color:#292929!important}.priceAmount b{font-size:30pt!important;color:#292929!important}.priceLines>div{break-inside:avoid!important}.card{box-shadow:none!important;background:white!important;padding:4mm!important}.closing{padding:8mm 0!important}footer{font-size:8pt!important;margin-top:5mm!important}a{color:inherit!important;text-decoration:none!important}p{orphans:3;widows:3}h2,h3,h4{break-after:avoid!important}
}
@media print{
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto{background:#f8f2ee!important;color:#292929!important;height:auto!important;min-height:0!important;isolation:auto!important;padding:4mm!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto .serviceContent{padding:0!important;color:#292929!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto .servicePhoto{display:block!important;position:static!important;float:right!important;width:62mm!important;height:42mm!important;object-fit:cover!important;margin:0 0 3mm 5mm!important;opacity:1!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto::before{display:none!important}body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto::after{content:''!important;display:block!important;clear:both!important;background:none!important;position:static!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto h4,body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto p,body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto dd,body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto b{color:#292929!important}
}
@media print{
.hero .tripMeta span,.hero .tripMeta b{color:#292929!important}.designerIntro{text-align:left!important}.designerSignature,.designerName{text-align:left!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto .servicePhoto{z-index:auto!important;inset:auto!important}
body:not(.guidePortal) .itinerary .service.hotel.hasServicePhoto{break-inside:auto!important;page-break-inside:auto!important}
}
/* v2.3.42: compact service rhythm and readable pricing. */
@media print{
body:not(.guidePortal) .itinerary .service{padding:3mm!important;margin-bottom:3mm!important}
body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto{padding:3mm!important}
body:not(.guidePortal) .itinerary .service:not(.hotel) .servicePhoto,body:not(.guidePortal) .itinerary .service.transfer.hasServicePhoto .servicePhoto{width:55mm!important;height:32mm!important;margin:0 0 2mm 4mm!important}
body:not(.guidePortal) .itinerary .service.hotel .hotelPhotoGallery>.servicePhoto{height:45mm!important;margin-bottom:3mm!important}
.printHotelPhotos{gap:2mm!important;margin:2mm 0!important}.printHotelPhotos img{height:26mm!important}
.service h4{font-size:10.5pt!important;margin-bottom:2mm!important}.service p,.serviceNarrative{font-size:9pt!important;line-height:1.35!important;margin:1mm 0!important}
body:not(.guidePortal) .itinerary .service .serviceDetails{margin:2mm 0 0!important;padding:2mm!important;background:rgba(255,255,255,.75)!important}
.serviceDetails dl{display:flex!important;flex-wrap:wrap!important;gap:2mm 5mm!important}.serviceDetails dl>div{width:auto!important;max-width:100%!important;flex:0 1 auto!important;margin:0!important}.serviceDetails dt{font-size:7pt!important}.serviceDetails dd{font-size:8.5pt!important;margin:.5mm 0 0!important}
.serviceIncluded{display:flex!important;flex-wrap:wrap!important;gap:1mm 5mm!important;padding-left:3mm!important}.serviceIncluded li{margin:0!important}
.dayVisual.dayCover{margin-bottom:3mm!important}.dayDesc{margin:2mm 0!important}
body:not(.guidePortal) .itinerary .service.printLongService{break-inside:auto!important;page-break-inside:auto!important}.service.printLongService .serviceNarrative{break-inside:auto!important}.service.printLongService .serviceBody{break-inside:auto!important}
.printPricingSection .priceLabel p,.printPricingSection .priceAmount small,.printPricingSection .priceEyebrow,.printPricingSection .validity,.printPricingSection .validity strong{color:#4b4338!important;opacity:1!important;font-size:9pt!important}.printPricingSection .priceLabel h2{color:#292929!important}.printPricingSection .priceAmount{margin:6mm 0!important}.printPricingSection .priceLabel p{margin:3mm 0!important}.printPricingSection .priceAmount small{display:block!important;margin-top:2mm!important}
}
/* Keep ordinary hotel cards intact; allow only genuinely long descriptions to flow. */
@media print{
body:not(.guidePortal) .itinerary .service.hotel,body:not(.guidePortal) .itinerary .service.hotel.hasServicePhoto{page-break-inside:avoid!important;break-inside:avoid-page!important}
body:not(.guidePortal) .itinerary .service.hotel.printLongService,body:not(.guidePortal) .itinerary .service.hotel.hasServicePhoto.printLongService{page-break-inside:auto!important;break-inside:auto!important}
body:not(.guidePortal) .itinerary .service.hotel .hotelPhotoGallery{page-break-after:avoid!important;break-after:avoid-page!important}
body:not(.guidePortal) .itinerary .service.hotel .serviceTopline,body:not(.guidePortal) .itinerary .service.hotel h4{page-break-before:avoid!important;break-before:avoid-page!important;page-break-after:avoid!important;break-after:avoid-page!important}
body:not(.guidePortal) .itinerary .service.hotel.printLongService .serviceContent,body:not(.guidePortal) .itinerary .service.hotel.printLongService .serviceBody{page-break-inside:auto!important;break-inside:auto!important}
}
/* v2.3.44 — a coherent advisor letter on the second page. */
@media print{
 body:not(.guidePortal) .journeyWelcome{display:block!important;width:100%!important;max-width:none!important;padding:8mm!important;margin:0!important;text-align:left!important;background:#f8f3ee!important;border:0!important;break-inside:auto!important;box-shadow:none!important}
 body:not(.guidePortal) .journeyWelcome .welcomeIntro{display:block!important;min-height:0!important;padding:6mm!important;margin:0 0 5mm!important;background:white!important;box-shadow:none!important;border:0!important;border-radius:1mm!important}
 body:not(.guidePortal) .welcomeGreeting{font-size:21pt!important;line-height:1.2!important;margin:0 0 4mm!important}
 body:not(.guidePortal) .journeyWelcome .welcomeIntro p{font-size:10pt!important;line-height:1.5!important;margin:0 0 3mm!important;max-width:none!important}
 body:not(.guidePortal) .journeyWelcome .welcomeIntro p:last-child{margin-bottom:0!important}
 body:not(.guidePortal) .journeyWelcome .designerIntro{display:block!important;min-height:0!important;margin:0!important;padding:0!important;background:none!important;box-shadow:none!important;text-align:left!important}
 body:not(.guidePortal) .journeyWelcome .designerSignature,body:not(.guidePortal) .journeyWelcome .designerName{display:none!important}
 body:not(.guidePortal) .journeyWelcome .designerDetails{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
 body:not(.guidePortal) .journeyWelcome .designerDetails>.designerProfile,body:not(.guidePortal) .journeyWelcome .designerDetails:not([open])>.designerProfile{display:block!important;margin:0!important;padding:6mm!important;background:white!important;border:0!important;border-radius:1mm!important;break-inside:auto!important}
 body:not(.guidePortal) .journeyWelcome .designerProfile::after{content:'';display:block;clear:both}
 body:not(.guidePortal) .journeyWelcome .designerPortrait{float:left!important;width:20mm!important;height:20mm!important;border-radius:50%!important;margin:0 5mm 3mm 0!important;object-fit:cover!important}
 body:not(.guidePortal) .journeyWelcome .designerText{display:block!important;min-width:0!important;width:auto!important;max-width:none!important}
 body:not(.guidePortal) .journeyWelcome .designerText>small{display:block!important;font-size:9pt!important;line-height:1.4!important;color:#547b80!important;margin:0 0 3mm!important}
 body:not(.guidePortal) .journeyWelcome .designerText p{font-size:10pt!important;line-height:1.5!important;max-width:none!important;margin:0 0 3.5mm!important;orphans:3;widows:3}
 body:not(.guidePortal) .journeyWelcome .designerText strong{font-weight:700!important}
 body:not(.guidePortal) .journeyWelcome .designerPrintSignoff{display:block!important;font:700 10pt/1.5 Lato,Arial,sans-serif!important;margin:4mm 0 0!important;break-inside:avoid!important}
 body:not(.guidePortal) .journeyWelcome .designerContact{font-size:9pt!important;line-height:1.4!important;margin-top:4mm!important;gap:2mm 5mm!important;break-inside:avoid!important}
}
