@media print {
  /* Hide site chrome and interactive tooling */
  header,
  footer,
  nav,
  [data-controller="nav-dropdown"],
  [data-nav-dropdown-target],
  .no-print,
  button,
  [type="button"],
  form,
  input,
  .date-picker-controls,
  .quick-date-links,
  .upcoming-operator-dates,
  .book-buttons { display: none !important; }

  /* Hide big non-essential sections on route pages */
  .route-hero,
  .route-overview-card,
  .sibling-routes-card,
  .reverse-route-link,
  .related-ferries-card,
  .faq-card,
  .weekly-calendar-card,
  .book-now-card,
  .travel-guide-card,
  .plan-trip-card { display: none !important; }

  /* Everything else ships. Main content = Departures + Fares + passport callout. */

  html, body {
    background: #fff !important;
    color: #000 !important;
    font-size: 9pt;
    line-height: 1.25;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Hide secondary/optional callout lines */
  .bg-amber-50 p + p,
  .bg-amber-50 br + a { display: none !important; }

  main {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Invert card chrome: dark header bars → light with border */
  .bg-slate-800,
  .bg-slate-900,
  .bg-teal-500,
  .bg-teal-600,
  .bg-teal-50,
  .bg-amber-50,
  .bg-slate-50,
  [class*="bg-teal-"],
  [class*="bg-amber-"],
  [class*="bg-rose-"],
  [class*="bg-emerald-"],
  [class*="bg-sky-"],
  [class*="bg-violet-"],
  [class*="bg-indigo-"] {
    background: #fff !important;
    border-color: #999 !important;
  }
  .text-white,
  .text-teal-300,
  .text-sky-300,
  .text-slate-200,
  .text-slate-300,
  .text-slate-400,
  .text-slate-500,
  .text-slate-600,
  .text-slate-700,
  .text-slate-800,
  .text-slate-900,
  .text-amber-800 { color: #000 !important; }

  /* Card containers: thin border, no shadow */
  .rounded-xl,
  .rounded-lg,
  .rounded-t-lg,
  .rounded-t-xl,
  .shadow,
  .shadow-sm {
    border: 1px solid #999 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    page-break-inside: avoid;
    margin-bottom: 0.35rem !important;
  }

  /* Card section header (was dark): now bold, subtle top strip */
  .bg-slate-800 h2,
  .bg-slate-800 h3 {
    font-size: 11pt !important;
    font-weight: 700 !important;
    color: #000 !important;
  }

  /* Tighten padding everywhere */
  .p-6, .p-4, .p-3 { padding: 0.25rem !important; }
  .px-6, .px-5 { padding-left: 0.3rem !important; padding-right: 0.3rem !important; }
  .py-4, .py-3 { padding-top: 0.1rem !important; padding-bottom: 0.1rem !important; }
  .pb-2 { padding-bottom: 0.1rem !important; }
  .mb-8, .mb-6, .mb-4, .mb-3 { margin-bottom: 0.25rem !important; }
  .mt-3 { margin-top: 0.1rem !important; }
  .divide-y > * + * { border-top-color: #eee !important; }

  /* Schedule and fares tables */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
  }
  th, td {
    border-top: 1px solid #ddd !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    padding: 2px 6px !important;
    font-size: 8.5pt !important;
    text-align: left !important;
    line-height: 1.2 !important;
  }
  thead th {
    background: transparent !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-size: 7.5pt !important;
    letter-spacing: 0.04em !important;
    border-bottom: 1.5px solid #333 !important;
    border-top: 0 !important;
    padding-bottom: 3px !important;
  }

  /* Don't append URLs to links */
  a[href]::after { content: "" !important; }
  a { color: #000 !important; text-decoration: none !important; }

  /* Printed site identifier at the top of the output */
  main::before {
    content: "viferries.com · Virgin Islands Ferry Schedule";
    display: block;
    font-weight: 700;
    font-size: 13pt;
    margin-bottom: 0.4rem;
    padding-bottom: 0.25rem;
    border-bottom: 2px solid #222;
  }

  /* Print footer */
  main::after {
    content: "Always confirm with the ferry operator before travel. · viferries.com";
    display: block;
    margin-top: 0.4rem;
    padding-top: 0.25rem;
    border-top: 1px solid #ccc;
    font-size: 8pt;
    color: #555 !important;
    text-align: center;
  }

  @page { margin: 0.5in 0.5in; }
}
