/* ============================================================
   UnderVoters.org — Print Stylesheet
   Clean two-column ballot guide for polling day
   ============================================================ */

@media print {

  /* Reset screen chrome */
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  body {
    background: #fff !important;
    color: #000 !important;
    font-family: "Times New Roman", Georgia, serif;
    font-size: 10pt;
    line-height: 1.4;
  }

  #site-header,
  #site-footer,
  .zip-form-window,
  .hero-section,
  .pillars-section,
  .content-section,
  .btn,
  .no-print,
  nav,
  .notice { display: none !important; }

  #site-main { padding: 0 !important; }

  /* Print header */
  .print-header {
    border-bottom: 3px double #000;
    padding-bottom: 8pt;
    margin-bottom: 12pt;
    display: flex !important;
    justify-content: space-between;
    align-items: flex-end;
  }
  .print-header-title { font-size: 16pt; font-weight: bold; }
  .print-header-meta  { font-size: 8pt; text-align: right; color: #444; }

  /* Election info */
  .election-banner {
    background: #f8f8f8 !important;
    border: 1pt solid #aaa !important;
    border-left: 4pt solid #000 !important;
    padding: 6pt 10pt !important;
    margin-bottom: 10pt !important;
    color: #000 !important;
    font-size: 9pt;
  }

  /* Source badge hidden in print */
  .source-badge { display: none; }

  /* Two-column layout for contests */
  .candidates-output {
    column-count: 2;
    column-gap: 20pt;
    column-rule: 1pt solid #ccc;
  }

  .contest-window {
    background: #fff !important;
    border: 1pt solid #999 !important;
    border-top: 2pt solid #000 !important;
    box-shadow: none !important;
    margin-bottom: 12pt !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .contest-titlebar {
    background: #f0f0f0 !important;
    border-bottom: 1pt solid #aaa !important;
    padding: 4pt 8pt !important;
  }
  .contest-office { color: #000 !important; font-size: 9pt; }
  .contest-district { color: #555 !important; font-size: 8pt; }

  .candidates-grid {
    display: block !important;
    padding: 8pt !important;
  }

  .candidate-card {
    background: #fff !important;
    border: none !important;
    border-bottom: 0.5pt dashed #ccc !important;
    padding: 6pt 4pt !important;
    break-inside: avoid;
  }
  .candidate-card:last-child { border-bottom: none !important; }

  .candidate-name { font-size: 10pt; font-weight: bold; color: #000 !important; }

  .candidate-party {
    font-size: 7pt !important;
    color: #666 !important;
    background: none !important;
    border: 0.5pt solid #aaa !important;
    padding: 0 4pt !important;
  }

  .candidate-platform-label { font-size: 7pt; color: #666 !important; }

  .candidate-platform li {
    font-size: 8pt;
    color: #333 !important;
    border-bottom: none !important;
    padding: 1pt 0 1pt 10pt !important;
  }
  .candidate-platform li::before { color: #666 !important; }

  .candidate-website { color: #000 !important; font-size: 7pt; }

  /* Print undervote reminder */
  .print-undervote-note {
    display: block !important;
    border: 1pt solid #000;
    padding: 6pt 10pt;
    margin-top: 12pt;
    font-size: 8pt;
    text-align: center;
    font-style: italic;
  }

  /* Print footer */
  .print-footer {
    display: block !important;
    border-top: 2pt solid #000;
    padding-top: 6pt;
    margin-top: 12pt;
    font-size: 7.5pt;
    color: #666;
    text-align: center;
  }

  /* Page margins */
  @page {
    margin: 0.75in 0.6in;
    size: letter portrait;
  }

  /* Widow/orphan control */
  h1, h2, h3, h4 { page-break-after: avoid; }
  .contest-window  { page-break-inside: avoid; }
}
