@page { size: Letter portrait; margin: 0.38in; }

@media print {
  .wp-site-blocks > header, .wp-site-blocks > footer,
  .loco-header, .loco-footer, .loco-filterbar, .loco-cta, .loco-tint-vine, .loco-tint-wine,
  .loco-navtoggle, .wp-block-buttons, .loco-facts__correct, .loco-book-section, .loco-affnote,
  .loco-tray, .loco-save, .loco-share, .loco-print-btn, .loco-bulk-save, .loco-stoplist__tools,
  .loco-stoplist__rm, .loco-stoplist__move, .loco-stoplist__planner, .loco-stoplist__book,
  .loco-stoplist__empty, .loco-stoplist__pool, .loco-stoplist__status,
  .loco-map, .loco-map__svg, .loco-newsletter { display: none !important; }
  .loco-compare__controls, .loco-compare__add, .loco-stoplist__compare,
  .loco-stoplist__compare-choice { display: none !important; }
  .loco-venue__layout { display: block; }
  .loco-facts { position: static; border: 1px solid #999; page-break-inside: avoid; }
  .loco-stop, .loco-stoplist__item, .loco-trail__item { page-break-inside: avoid; }
  a { color: #000; text-decoration: none; }
  .loco-stop__name a::after, .loco-nearby__stop::after { content: none; }
  body { background: #fff; color: #000; }
  * { box-shadow: none !important; }
  .loco-tint, .loco-tint-vine, .loco-tint-wine, .wp-block-group { background: #fff !important; }
  .loco-print-details { display: block !important; margin: 0.3rem 0 0; font-size: 0.9rem; }
  .loco-print-footer { display: block !important; margin-top: 1.4rem; padding-top: 0.6rem; border-top: 1px solid #999; font-size: 0.85rem; color: #000; }
  .loco-compare__scroll { overflow: visible; border: 0; }
  .loco-compare__table { min-width: 0; width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 8pt; }
  .loco-compare__table thead { display: table-header-group; }
  .loco-compare__table tr { break-inside: avoid; page-break-inside: avoid; }
  .loco-compare__table th, .loco-compare__table td { min-width: 0; padding: 4pt; border: 1px solid #777; }
  .loco-compare__table th:first-child { position: static; min-width: 0; max-width: none; background: #fff; }

  /* Trail field sheet: hide the rich screen composition and print the compact,
     server-rendered facts instead. :has() is supported by current Chrome and Safari. */
  body:has(.loco-field-sheet) .loco-venue-head,
  body:has(.loco-field-sheet) .loco-trail-screen { display: none !important; }
  .loco-field-sheet-wrap { display: block !important; padding: 0 !important; }
  .loco-field-sheet {
    display: block !important; max-width: none; color: #000; font-size: 7.2pt;
    line-height: 1.18; print-color-adjust: economy; -webkit-print-color-adjust: economy;
  }
  .loco-field-sheet__header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10pt; border-bottom: 1.5pt solid #000; padding-bottom: 4pt; }
  .loco-field-sheet__eyebrow { margin: 0; font-size: 7pt; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
  .loco-field-sheet__header h2 { margin: 0; font-size: 17pt; line-height: 1; }
  .loco-field-sheet__tagline { flex-basis: 100%; margin: 2pt 0 0; font-size: 8pt; }
  .loco-field-sheet__map { margin: 5pt 0 3pt; }
  .loco-field-sheet .loco-map { display: block !important; margin: 0; border: 1px solid #777; border-radius: 0; background: #fff !important; overflow: hidden; }
  .loco-field-sheet .loco-map__toggle,
  .loco-field-sheet .loco-map__legend,
  .loco-field-sheet .loco-map__note { display: none !important; }
  .loco-field-sheet .loco-map__body { display: block !important; border: 0; }
  .loco-field-sheet .loco-map__svg { display: block !important; width: 100%; height: 1.18in; border: 0; background: #fff !important; filter: grayscale(1); }
  .loco-field-sheet .loco-map__dot { r: 15px; fill: #fff !important; stroke: #000 !important; stroke-width: 5 !important; }
  .loco-field-sheet .loco-map__origin circle { r: 8px; fill: #000 !important; }
  .loco-field-sheet .loco-map__origin text { fill: #000 !important; font-weight: 800; }
  .loco-field-sheet__signal { margin: 3pt 0; padding: 3pt 5pt; border: 1px solid #000; font-weight: 800; }
  .loco-field-sheet__stops { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4pt 7pt; margin: 4pt 0; padding: 0; list-style: none; }
  .loco-field-stop { display: grid; grid-template-columns: 15pt minmax(0, 1fr); gap: 3pt; margin: 0; padding: 3pt 4pt; border: 1px solid #888; break-inside: avoid; page-break-inside: avoid; }
  .loco-field-stop__num { display: flex; align-items: center; justify-content: center; width: 14pt; height: 14pt; border: 1px solid #000; border-radius: 50%; font-size: 8pt; font-weight: 800; }
  .loco-field-stop h3 { margin: 0 0 1pt; font-size: 8.5pt; line-height: 1.1; }
  .loco-field-stop__facts { display: block !important; }
  .loco-field-stop__facts p { margin: 0 0 1pt; }
  .loco-field-stop__policies { display: flex; flex-wrap: wrap; gap: 1pt 7pt; }
  .loco-field-stop__glyph { display: inline-block; min-width: 7pt; font-weight: 900; text-align: center; }
  .loco-field-stop__verified { margin-top: 2pt !important; font-size: 6.7pt; font-style: italic; }
  .loco-field-sheet__verify { margin: 4pt 0 0; padding-top: 3pt; border-top: 1px solid #777; font-size: 7pt; }
  .loco-field-sheet__verify--shortlist { display: block !important; margin: 0 0 4pt; }
  .loco-field-sheet__footer { display: flex; justify-content: space-between; gap: 10pt; margin-top: 3pt; padding-top: 3pt; border-top: 1.5pt solid #000; font-size: 7pt; font-weight: 700; }

  /* Shortlist rows are already cloned into saved order before print. Reveal the added
     planning facts alongside their existing contact/hours rows and number the route. */
  .loco-field-sheet__route-note { display: block !important; margin: 0 0 5pt; font-size: 8pt; font-weight: 800; }
  .loco-stoplist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5pt 8pt; counter-reset: shortlist-stop; }
  .loco-stoplist__item { display: grid; grid-template-columns: 14pt minmax(0, 1fr); gap: 3pt; align-items: start; padding: 4pt; border: 1px solid #888 !important; counter-increment: shortlist-stop; font-size: 7.5pt; }
  .loco-stoplist__item::before { content: counter(shortlist-stop); display: flex; align-items: center; justify-content: center; width: 13pt; height: 13pt; border: 1px solid #000; border-radius: 50%; font-weight: 800; }
  .loco-stoplist__name { margin: 0 0 2pt; font-size: 9pt; }
  .loco-stoplist__meta { margin: 0 0 2pt; font-size: 6.8pt; }
  .loco-stoplist__actions { display: none !important; }
}
