/* Poster composition (2026-09-30). Earlier layers fixed the photo row at 12%,
   gave the stop row a large min-height and left the footer floating, which
   left two empty bands. Here the free height goes to the photos (12-24%), the
   stop row takes its natural height and the footer sits at the bottom.
   The DOM is also the print source (html2canvas), so print follows. */
.final-poster.editorial{justify-content:flex-start;padding-bottom:4.2%}
.final-poster.editorial .poster-photos.premium-photos,
.final-poster.editorial.country-watercolor-poster .poster-photos.premium-photos{flex:1 1 0;height:auto;min-height:12%;max-height:24%;margin:10px 0 12px}
.final-poster.editorial .poster-stops.premium-stops{flex:0 0 auto;min-height:0;margin:10px 0 0}
/* Keep air between the stop texts and the footer rule (since the painted map has its fixed 1000:820 shape the
   photo row is the only flexible band; it gives up these pixels). 2026-10-04 */
.final-poster.editorial:not(.no-photos) .poster-stops.premium-stops{margin-bottom:12px}
.final-poster.editorial .poster-stops.premium-stops .journey-stop{min-height:0;padding-top:5px}
.final-poster.editorial .poster-footer{margin-top:auto!important;padding-top:0!important}
/* Without photos the stop row sits centred in the free band above the footer. */
.final-poster.editorial.no-photos .poster-stops.premium-stops{margin:auto 0}
.final-poster.editorial.no-photos .poster-footer{margin-top:0!important}
/* Round trips: a later visit to the same place is a small badge on the shared pin. */
#routeSvg .route-marker-badge{stroke-width:1.6}
#routeSvg .route-marker-badge-text{font-size:8.5px}

/* Closing line (1.15.1): line-height 1.05 with overflow:hidden cut off descenders (g, j, p)
   of the italic quote in the print file. Keep one line and the horizontal clip, but give the
   descenders room. */
.final-poster.editorial .poster-footer blockquote{line-height:1.3!important;padding-bottom:.12em!important}

/* 10 x 15 cm (1.17.0): compact layout. The art is printed 10 cm wide, so the photo row is left
   out (photo pins on the map stay, see creator renderPoster) and the stops keep only name and
   date, a size larger, so they stay readable on the card. */
.final-poster.editorial.size-small .poster-stops.premium-stops .journey-stop span{display:none}
.final-poster.editorial.size-small .poster-stops.premium-stops .journey-stop b{font-size:1.4em;line-height:1.2}
.final-poster.editorial.size-small .poster-stops.premium-stops .journey-stop em{font-size:1.2em}

/* Landscape 10 x 15 cm card (1.17.0-rc.2). 3:2 sheet, printed 15 cm wide. The painted map keeps its
   1000:820 shape at full card height on the left (nothing cropped); title, date, the stops as a list
   and the closing line sit in a column on the right. Sizes are in px on purpose: the screen preview
   (704 px) and the export (705 px, export-layout-sync.js) have the same width, the vw rules elsewhere don't. */
.final-poster.editorial.landscape{aspect-ratio:3/2!important;display:grid!important;grid-template-columns:63% minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:22px;padding:20px 24px 18px 20px!important}
.preview-side .final-poster.editorial.landscape{height:auto}
.final-poster.landscape .poster-map.premium-map{grid-column:1;grid-row:1/4;width:100%!important;height:auto!important;aspect-ratio:1000/820;margin:0!important;align-self:center}
.final-poster.landscape .map-metrics{display:none!important}
.final-poster.landscape #posterPhotos{display:none!important}
.final-poster.landscape .poster-head{grid-column:2;grid-row:1;text-align:left;padding-top:6px}
.final-poster.landscape .poster-head h2{font-size:26px;letter-spacing:.05em!important;line-height:1.08!important;overflow-wrap:normal;hyphens:none}
.final-poster.landscape .poster-rule{display:block!important;margin:9px 0 0!important;padding-top:7px;border-top:1px solid #b48d4b}
.final-poster.landscape .poster-rule span{display:none!important}
.final-poster.landscape .poster-rule #pmeta{font-size:8.5px!important;white-space:normal!important;line-height:1.35!important}
.final-poster.landscape .poster-stops.premium-stops{grid-column:2;grid-row:2;display:flex!important;flex-direction:column;justify-content:center;gap:9px;margin:10px 0!important;padding:0!important;min-height:0}
.final-poster.landscape .poster-stops.premium-stops:before{display:none!important}
.final-poster.landscape .poster-stops.premium-stops .journey-stop{text-align:left!important;padding:0 0 0 24px!important;min-height:0!important;font-size:10px!important}
.final-poster.landscape .poster-stops.premium-stops .journey-stop:before{left:0!important;top:50%!important;transform:translateY(-50%)!important;width:16px!important;height:16px!important;line-height:16px!important;font-size:9px!important}
.final-poster.landscape .poster-stops.premium-stops .journey-stop b{display:block;font-size:12px!important;line-height:1.15!important}
.final-poster.landscape .poster-stops.premium-stops .journey-stop em{display:block;font-size:10px!important;line-height:1.2!important}
.final-poster.landscape .poster-stops.premium-stops.is-dense{gap:5px}
.final-poster.landscape .poster-stops.premium-stops.is-dense .journey-stop b{font-size:10.5px!important}
.final-poster.landscape .poster-stops.premium-stops.is-dense .journey-stop em{font-size:9px!important}
.final-poster.landscape .poster-footer{grid-column:2;grid-row:3;margin:0!important;padding-top:7px!important;text-align:left;border-top:1px solid #b48d4b}
.final-poster.landscape .poster-footer blockquote{text-align:left!important;padding-left:0!important;text-indent:0!important;font-size:11px!important;white-space:normal!important;text-overflow:clip!important;overflow:visible!important;line-height:1.3!important;margin:0!important}
.final-poster.landscape .poster-footer>span{font-size:7px!important}
@media (max-width:900px){.preview-side .final-poster.editorial.landscape{height:469.33px!important;aspect-ratio:3/2!important}}
/* Landscape 10x15: no place names or dates on the map (they would be ~1 mm and collide with photo
   pins); the names are in the stop column next to it. Numbered pins and photo pins stay. */
.final-poster.landscape #routeSvg .route-stop-label,
.final-poster.landscape #routeSvg .route-label-title,
.final-poster.landscape #routeSvg .route-label-date{display:none!important}
