/* Print: one day per page, book-like, colour kept. Loaded with media="print". */

@page {
  size: A4;
  margin: 16mm 14mm 18mm;
}

:root {
  --p-ink: #1d211f;
  --p-muted: #5f6661;
  --p-line: #d9d3c6;
  --p-paper: #fbf8f1;
  --p-tint: #eef3ea;
  --p-green: #3f7d4c;
  --p-amber: #b8842a;
  --p-terra: #b85a2f;
  --p-wine: #7a2e3f;
}

html,
body {
  background: #fff !important;
  color: var(--p-ink) !important;
  font-size: 10.5pt;
  line-height: 1.45;
}

body::before,
body::after,
.header,
.hero,
.day-strip,
.day-map,
.day-route,
.export-bar,
.guide-cta,
.stop-links,
.no-print,
.toast,
.modal,
.reveal-hint,
.wave-divider,
.hero-credit {
  display: none !important;
}

.print-only {
  display: block !important;
}

.page,
main,
.section,
.container {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}

.reveal {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.glass,
.glass-light,
.tip-card,
.checklist,
.stop,
.stop-home,
.day-free,
.today-card {
  background: var(--p-paper) !important;
  border: 1px solid var(--p-line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  color: var(--p-ink) !important;
}

a {
  color: var(--p-green);
  text-decoration: none;
}

h1,
h2,
h3,
h4 {
  color: var(--p-ink) !important;
  break-after: avoid;
}

.kicker,
.pill,
.muted,
small,
.stop-until,
.stop-drive,
.tip-body,
.day-banner-sub {
  color: var(--p-muted) !important;
}

.pill {
  border: 1px solid var(--p-line) !important;
  background: var(--p-tint) !important;
}

/* cover */

.print-cover {
  position: relative;
  min-height: calc(297mm - 34mm);
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 10mm;
  break-after: page;
}

.print-cover-photo {
  width: 100%;
  height: 110mm;
  object-fit: cover;
  border-radius: 4mm;
  border: 1px solid var(--p-line);
}

.print-cover-body {
  border-left: 3px solid var(--p-amber);
  padding-left: 6mm;
}

.print-cover-kicker {
  display: block;
  font-size: 9pt;
  letter-spacing: 0.2em;
  color: var(--p-amber);
}

.print-cover h1 {
  font-family: var(--font-display);
  font-size: 40pt;
  font-weight: 400;
  margin: 2mm 0 3mm;
  line-height: 1;
}

.print-cover-sub {
  font-size: 14pt;
  margin: 0 0 2mm;
}

.print-cover-base {
  margin: 0;
  color: var(--p-muted);
}

.print-contents h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 16pt;
  margin: 0 0 3mm;
  padding-bottom: 2mm;
  border-bottom: 1px solid var(--p-line);
}

.print-contents ol {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 2;
  column-gap: 10mm;
}

.print-contents li {
  display: grid;
  grid-template-columns: 14mm 1fr;
  gap: 0 3mm;
  padding: 1.6mm 0;
  border-bottom: 1px dotted var(--p-line);
  break-inside: avoid;
  font-size: 9.5pt;
}

.print-contents li b {
  color: var(--p-green);
  font-weight: 600;
  grid-row: 1 / span 2;
}

.print-contents li em {
  font-style: normal;
  color: var(--p-muted);
  font-size: 8.5pt;
}

.print-cover-made {
  margin: 0;
  font-size: 8.5pt;
  color: var(--p-muted);
  text-align: right;
}

/* guide head + summary share a page */

.guide-head {
  padding: 0 !important;
  margin-bottom: 6mm !important;
}

.guide-head h2 {
  font-size: 22pt !important;
}

.guide-head em {
  color: var(--p-green);
  font-style: normal;
}

.guide-summary,
.summary-grid {
  break-inside: avoid;
}

/* days */

.guide-days {
  display: block !important;
}

.day-group {
  break-before: page;
  break-inside: auto;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

.day-banner {
  position: relative;
  min-height: 52mm !important;
  border-radius: 4mm;
  overflow: hidden;
  margin-bottom: 5mm !important;
  border: 1px solid var(--p-line);
  background: var(--p-tint) !important;
  color: #fff !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.day-banner img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.day-banner.has-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 25, 23, 0) 20%, rgba(20, 25, 23, 0.82) 100%);
}

.day-banner-body {
  position: relative;
  z-index: 1;
  padding: 6mm !important;
}

.day-banner:not(.has-photo) .day-banner-body,
.day-banner:not(.has-photo) h3 {
  color: var(--p-ink) !important;
}

.day-banner-index {
  display: inline-block;
  padding: 1mm 3mm;
  border-radius: 999px;
  background: var(--p-amber);
  color: #1a1000 !important;
  font-size: 8.5pt;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.day-banner h3 {
  color: #fff !important;
  font-size: 20pt !important;
  margin: 2mm 0 1mm !important;
}

.day-banner.has-photo .day-banner-sub {
  color: rgba(255, 255, 255, 0.85) !important;
}

.day-banner-credit {
  position: absolute;
  right: 3mm;
  bottom: 2mm;
  z-index: 1;
  font-size: 6.5pt;
  color: rgba(255, 255, 255, 0.7) !important;
}

.day-content {
  padding: 0 !important;
}

.day-title {
  display: flex;
  gap: 3mm;
  align-items: center;
  margin-bottom: 3mm;
}

.day-facts .pill {
  font-size: 8.5pt;
}

.day-warnings {
  margin: 3mm 0 !important;
}

.note {
  background: var(--p-tint) !important;
  border: 1px solid var(--p-line) !important;
  color: var(--p-ink) !important;
  break-inside: avoid;
}

.note-error {
  border-color: var(--p-terra) !important;
  background: #fbeee7 !important;
}

.note-warn {
  border-color: var(--p-amber) !important;
  background: #fbf3df !important;
}

.note-good {
  border-color: var(--p-green) !important;
}

.note-icon {
  color: inherit !important;
}

.light {
  margin: 4mm 0 !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.light-tick,
.light-sun {
  color: var(--p-muted) !important;
}

.light-stop {
  color: #fff !important;
}

/* stops */

.stops {
  margin: 0 !important;
  padding: 0 !important;
  display: grid;
  gap: 3mm;
}

.stop {
  grid-template-columns: 36mm 1fr !important;
  gap: 4mm !important;
  padding: 0 !important;
  border-radius: 3mm;
  overflow: hidden;
  break-inside: avoid;
}

.stop.is-closed {
  border-color: var(--p-terra) !important;
}

.stop-photo {
  height: 100%;
  min-height: 30mm;
  border-radius: 0 !important;
}

.stop-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stop-index {
  background: var(--p-green) !important;
  color: #fff !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.stop-time {
  background: var(--p-amber) !important;
  color: #1a1000 !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.stop-body {
  padding: 3mm 4mm 3mm 0 !important;
}

.stop-head h4 {
  font-size: 12.5pt !important;
}

.stop-tip {
  color: var(--p-ink) !important;
}

.stop-tip b {
  color: var(--p-wine);
}

.stop-break {
  color: var(--p-amber) !important;
}

.stop-notes {
  margin-top: 2mm !important;
}

.stop-home {
  break-inside: avoid;
}

.stop-home-icon {
  background: var(--p-tint) !important;
  color: var(--p-green) !important;
}

.plan-summary li {
  color: var(--p-muted) !important;
}

.day-free {
  min-height: 40mm;
  display: grid;
  place-content: center;
  text-align: center;
  font-size: 12pt;
}

/* good to know + checklist */

.guide-tips-head {
  break-before: page;
  margin: 0 0 5mm !important;
  padding: 0 !important;
}

.tips-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 4mm !important;
}

.tip-card {
  break-inside: avoid;
  padding: 4mm !important;
  border-radius: 3mm;
}

.tip-icon {
  background: var(--p-tint) !important;
  color: var(--p-green) !important;
}

.tip-card h4 {
  font-size: 11.5pt !important;
}

.tip-body {
  font-size: 9pt !important;
}

.operator-list b {
  color: var(--p-green) !important;
}

.chip {
  border: 1px solid var(--p-line) !important;
  background: var(--p-tint) !important;
  color: var(--p-ink) !important;
}

.checklist {
  break-before: page;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
}

.checklist-head h3 {
  font-family: var(--font-display);
  font-size: 22pt !important;
  font-weight: 400;
  margin: 0 0 4mm !important;
}

.checklist-groups {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 5mm !important;
}

.check-group {
  break-inside: avoid;
}

.check-group h4 {
  font-size: 11pt !important;
  color: var(--p-green) !important;
  padding-bottom: 1.5mm;
  border-bottom: 1px solid var(--p-line);
  margin-bottom: 2mm !important;
}

.check-item {
  padding: 1mm 0 !important;
  font-size: 9.5pt;
}

.check-box {
  width: 4mm !important;
  height: 4mm !important;
  border: 1.2px solid var(--p-muted) !important;
  border-radius: 1mm !important;
  background: #fff !important;
}

.check-item input:checked + .check-box {
  background: var(--p-green) !important;
  border-color: var(--p-green) !important;
  color: #fff !important;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.check-item input:checked ~ span {
  text-decoration: line-through;
  color: var(--p-muted) !important;
}

/* notes page */

.print-notes {
  break-before: page;
  min-height: calc(297mm - 40mm);
  display: grid;
  grid-template-rows: auto 1fr;
}

.print-notes h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 22pt;
  margin: 0 0 5mm;
}

.print-notes-lines {
  background-image: repeating-linear-gradient(180deg, transparent 0 8.5mm, var(--p-line) 8.5mm 8.7mm);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

img {
  max-width: 100%;
}

.day-title:empty,
.day-title:not(:has(:not(.no-print))) {
  display: none;
}

.print-contents {
  margin-top: 6mm;
}

.check-item span {
  color: var(--p-ink) !important;
}

.check-item input:checked ~ span {
  color: var(--p-muted) !important;
}
