/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Sorts+Mill+Goudy&family=Source+Sans+3:wght@400;600&display=swap');

/* Base styles */
body {
  margin: 0;
  font-family: 'Source Sans 3', Arial, sans-serif;
  background-color: #fff;
  color: #000;
  line-height: 1.6;
  padding: 2rem;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

header {
  text-align: center;
  margin-bottom: 2rem;
}

h1 {
  font-family: 'Sorts Mill Goudy', Georgia, serif;
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
}

h2 {
  font-family: 'Sorts Mill Goudy', Georgia, serif;
  font-size: 1.8rem;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}

p {
  margin-bottom: 1rem;
}

.meeting-info {
  /* text-align: center; */
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  padding: 1.5rem 0;
  margin: 2rem 0;
}

footer {
  text-align: center;
  margin-top: 2rem;
  font-size: 0.9rem;
}

a {
  color: #000;
  text-decoration: underline;
}

a:hover {
  text-decoration: none;
}

/* ------------------------------ */
/* Mobile Responsive Enhancements */
/* ------------------------------ */
@media (max-width: 600px) {
  body {
    padding: 1.2rem;
    max-width: 100%;
  }
  h1 {
    font-size: 2rem;
  }
  h2 {
    font-size: 1.4rem;
  }
  .meeting-info {
    padding: 1rem 0;
    margin: 1.25rem 0;
  }
  footer {
    font-size: 0.85rem;
  }
}

/* ------------------------------ */
/* Print Styles                   */
/* ------------------------------ */
@page {
  margin: 12mm; /* printer-friendly margins */
}

@media print {
  /* Use legible sizes and pure black for crisp print */
  body {
    background: #fff !important;
    color: #000 !important;
    padding: 0; /* page margins handle whitespace */
    max-width: none;
  }

  header, .meeting-info, footer {
    page-break-inside: avoid; /* keep blocks together */
  }

  h1 {
    font-size: 24pt;
    margin-bottom: 6pt;
  }

  h2 {
    font-size: 16pt;
    margin: 12pt 0 6pt;
  }

  p, li {
    font-size: 11pt;
  }

  .meeting-info {
    border-top: 1pt solid #000;
    border-bottom: 1pt solid #000;
    padding: 10pt 0;
    margin: 14pt 0;
  }

  /* Show URLs after links for clarity on paper */
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
  }

  /* Remove underlines to improve legibility */
  a {
    text-decoration: none;
    color: #000;
  }

  /* Hide non-essential UI if added later */
  nav, .button, .no-print { display: none !important; }
}

/* Calls-to-action grid */
.cta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin: 2rem 0;
  }
  
  .card {
    border: 1px solid #000;
    padding: 1.25rem;
  }
  
  .card h2 {
    margin-top: 0;
  }
  
  /* Minimal button */
  .btn {
    display: inline-block;
    border: 1px solid #000;
    padding: 0.6rem 1rem;
    font-weight: 600;
    text-decoration: none;
    color: #000;
  }
  
  .btn:hover {
    background: #000;
    color: #fff;
  }
  
  /* Stack on mobile */
  @media (max-width: 600px) {
    .cta-grid {
      grid-template-columns: 1fr;
    }
  }

  .event-item { padding: .5rem 0 1rem; border-bottom: 1px solid #eee; }
  .event-item h3 { margin: 0 0 .25rem; }
  .ev-when, .ev-loc, .ev-desc, .ev-subscribe { margin: .25rem 0; }
  .ev-extra { margin:.5rem 0 0; }
  .ev-row { display:flex; gap:.5rem; margin:.15rem 0; }
  .ev-label { min-width: 10.5ch; font-weight:600; color:#444; }
  .ev-val { flex:1; }
  .event-month { margin: 1rem 0 1.25rem; }
  .event-month h4 { margin: .75rem 0 .5rem; border-bottom: 1px solid #eee; padding-bottom:.25rem; }
  
  .ev-extra { margin:.5rem 0 0; }
  .ev-row { display:flex; gap:.5rem; margin:.15rem 0; }
  .ev-label { min-width: 12ch; font-weight:600; color:#444; }
  .ev-val { flex:1; }
  