/* ═══════════════════════════════════════════════════════════════════
   print.css — Neepawa Online print stylesheet
   Linked from all pages with media="print"
   ═══════════════════════════════════════════════════════════════════ */

@media print {

  /* ── Reset & base ─────────────────────────────────────────────── */
  *,
  *::before,
  *::after {
    box-shadow: none !important;
    text-shadow: none !important;
    background: transparent !important;
    color: #000 !important;
  }

  html {
    font-size: 11pt;
  }

  body {
    font-family: Georgia, 'Times New Roman', serif;
    line-height: 1.5;
    color: #000;
    background: #fff;
    margin: 0;
    padding: 0;
  }

  /* ── Hide non-essential elements ──────────────────────────────── */
  #header,
  #nav,
  #nav-toggle,
  #footer,
  #banner,
  .skip-link,
  .sidebar-col,
  .breadcrumb,
  .btn,
  .btn-primary,
  .btn-outline,
  .callout-band,
  .dir-jump,
  .map-preview-wrap,
  .map-embed,
  .contact-form button,
  .form-note,
  .alert,
  #cf-success,
  .error-links,
  .error-nav,
  .error-lily,
  nav.breadcrumb {
    display: none !important;
  }

  /* ── Page layout — remove grid, go full width ─────────────────── */
  .page-wrapper,
  .page-wrapper.has-sidebar {
    display: block !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .main-col {
    width: 100% !important;
  }

  /* ── Print header ─────────────────────────────────────────────── */
  body::before {
    content: "Neepawa Online — www.neepawaonline.com";
    display: block;
    font-family: Arial, sans-serif;
    font-size: 9pt;
    font-weight: bold;
    color: #3d7235 !important;
    border-bottom: 2px solid #3d7235;
    padding-bottom: 6pt;
    margin-bottom: 16pt;
  }

  /* ── Page breaks ──────────────────────────────────────────────── */
  h1, h2, h3 {
    page-break-after: avoid;
    orphans: 3;
    widows: 3;
  }

  .dir-section,
  .card,
  .movie-card {
    page-break-inside: avoid;
  }

  .dir-section {
    margin-bottom: 16pt;
    page-break-before: auto;
  }

  /* ── Typography ───────────────────────────────────────────────── */
  h1 {
    font-size: 20pt;
    margin-bottom: 8pt;
    border-bottom: 1pt solid #3d7235;
    padding-bottom: 4pt;
  }

  h2 {
    font-size: 14pt;
    margin-bottom: 6pt;
    margin-top: 12pt;
  }

  h3 {
    font-size: 11pt;
    margin-bottom: 4pt;
    margin-top: 8pt;
  }

  p {
    margin-bottom: 6pt;
    orphans: 3;
    widows: 3;
  }

  /* ── Links — show URLs ────────────────────────────────────────── */
  a[href]::after {
    content: " (" attr(href) ")";
    font-size: 8pt;
    color: #555 !important;
    font-style: italic;
  }

  /* Don't print URLs for internal nav links or anchors */
  a[href^="#"]::after,
  a[href^="index"]::after,
  a[href^="residents"]::after,
  a[href^="visiting"]::after,
  a[href^="business"]::after,
  a[href^="events"]::after,
  a[href^="entertainment"]::after,
  a[href^="contact"]::after,
  a[href^="map"]::after {
    content: none;
  }

  /* ── Cards & sections ─────────────────────────────────────────── */
  .card {
    border: 1pt solid #ccc !important;
    padding: 8pt !important;
    margin-bottom: 10pt !important;
  }

  .section-header .rule {
    border-bottom: 1pt solid #3d7235;
    display: block;
    margin-bottom: 6pt;
  }

  /* ── Business directory — optimised for print ─────────────────── */
  .dir-section-title {
    font-size: 13pt !important;
    font-weight: bold !important;
    background: #f0f0f0 !important;
    color: #000 !important;
    padding: 4pt 6pt !important;
    border-bottom: 1pt solid #ccc;
    margin: 0 !important;
  }

  .dir-grid-list {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
  }

  .dir-entry {
    padding: 4pt 6pt !important;
    border-bottom: 1pt dotted #ccc !important;
    border-right: 1pt dotted #ccc !important;
    font-size: 9pt !important;
  }

  .dir-entry strong {
    font-size: 9pt !important;
    display: block;
  }

  .dir-entry span {
    font-size: 8pt !important;
    color: #444 !important;
  }

  /* ── Events table ─────────────────────────────────────────────── */
  .events-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 9pt !important;
  }

  .events-table th {
    background: #f0f0f0 !important;
    color: #000 !important;
    border: 1pt solid #ccc !important;
    padding: 4pt 6pt !important;
    font-size: 9pt !important;
    text-align: left !important;
  }

  .events-table td {
    border: 1pt solid #ddd !important;
    padding: 4pt 6pt !important;
    font-size: 9pt !important;
  }

  /* ── Movie listings ───────────────────────────────────────────── */
  .movie-card {
    border: 1pt solid #ccc !important;
    padding: 6pt !important;
    margin-bottom: 6pt !important;
    display: flex !important;
    gap: 8pt !important;
  }

  .movie-icon { display: none !important; }

  .movie-info h3 { font-size: 11pt !important; margin: 0 0 2pt !important; }
  .movie-dates   { font-size: 9pt !important; }
  .movie-time    { font-size: 9pt !important; }

  /* ── Contact form — show as plain text ────────────────────────── */
  .contact-form {
    display: block !important;
  }

  .form-group {
    margin-bottom: 8pt !important;
  }

  .form-group label {
    display: block !important;
    font-weight: bold !important;
    font-size: 9pt !important;
    margin-bottom: 2pt !important;
  }

  .form-group input,
  .form-group textarea,
  .form-group select {
    display: block !important;
    width: 100% !important;
    border: 1pt solid #ccc !important;
    padding: 3pt !important;
    font-size: 9pt !important;
    background: #fff !important;
  }

  /* ── Two / three column grids ─────────────────────────────────── */
  .col-2,
  .col-3,
  .features,
  .features-2col,
  .features-3col,
  .visit-cards,
  .spotlights {
    display: block !important;
  }

  .feature,
  .card,
  .spotlight {
    margin-bottom: 10pt !important;
    page-break-inside: avoid !important;
  }

  .feature .icon  { display: none !important; }

  /* ── 404 page ─────────────────────────────────────────────────── */
  .error-code {
    font-size: 48pt !important;
    display: block !important;
  }

  /* ── Page footer (printed) ────────────────────────────────────── */
  body::after {
    content: "Printed from www.neepawaonline.com — Neepawa, Manitoba, Canada";
    display: block;
    font-family: Arial, sans-serif;
    font-size: 8pt;
    color: #888 !important;
    border-top: 1pt solid #ccc;
    padding-top: 6pt;
    margin-top: 20pt;
    text-align: center;
  }

  /* ── Page setup ───────────────────────────────────────────────── */
  @page {
    size: letter portrait;
    margin: 1.5cm 1.8cm;
  }

  @page :first {
    margin-top: 1cm;
  }

}
