/* Print Stylesheet for PolicyPath
 * Optimized for printing resource pages (glossary, checklists, FAQ)
 */

@media print {
  /* Hide navigation and interactive elements */
  header,
  footer,
  nav,
  .navbar,
  .top-app-bar,
  .sidebar,
  .offcanvas,
  .social-links,
  .social-share,
  .breadcrumb,
  .actions,
  .btn-social-share,
  .search-bar,
  .search-form,
  .palette-dropdown-menu,
  .mode-dropdown-menu,
  .navbar-toggler,
  .offcanvas-header,
  .toc,
  .toc-container,
  .sticky-top,
  .back-to-top,
  #offcanvasActionsPanel,
  [data-bs-toggle],
  .btn-outline-primary,
  .btn-outline-secondary,
  .btn-primary:not(.print-show),
  .btn-secondary:not(.print-show),
  button:not(.print-show),
  .card-links,
  .related-posts,
  .insurance-types-grid,
  .state-guides-section,
  .comment-section,
  .share-buttons,
  .pagination,
  .pager,
  .powered-by,
  .cookie-consent,
  [role="search"],
  .fa-search,
  .skip-to-content,
  .post-panel,
  .post-panel-wrapper,
  .anchor,
  .faq-icon,
  #post-toc-container,
  .post-navs,
  .card-footer {
    display: none !important;
  }

  /* Reset page layout */
  body {
    font-family: Georgia, "Times New Roman", Times, serif;
    font-size: 12pt;
    line-height: 1.5;
    color: #000;
    background: #fff !important;
    margin: 0;
    padding: 0;
  }

  /* Keep headings in sans-serif for contrast */
  h1, h2, h3, h4, h5, h6 {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  }

  /* Remove backgrounds and shadows */
  *,
  *::before,
  *::after {
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  /* Main content takes full width */
  main,
  .container,
  .container-fluid,
  .content,
  .row,
  [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    flex: none !important;
  }

  /* Typography optimizations */
  h1 {
    font-size: 24pt;
    margin-top: 0;
    margin-bottom: 12pt;
    page-break-after: avoid;
  }

  h2 {
    font-size: 18pt;
    margin-top: 18pt;
    margin-bottom: 8pt;
    page-break-after: avoid;
  }

  h3 {
    font-size: 14pt;
    margin-top: 14pt;
    margin-bottom: 6pt;
    page-break-after: avoid;
  }

  h4, h5, h6 {
    font-size: 12pt;
    margin-top: 12pt;
    margin-bottom: 4pt;
    page-break-after: avoid;
  }

  p, li {
    font-size: 11pt;
    line-height: 1.6;
    orphans: 3;
    widows: 3;
  }

  /* Links - show URL for external, keep readable */
  a {
    color: #000 !important;
    text-decoration: underline;
  }

  a[href^="http"]:not([href*="policypath.pages.dev"])::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #666;
  }

  /* Don't print URL for internal links */
  a[href^="/"]::after,
  a[href^="#"]::after,
  a[href*="policypath.pages.dev"]::after {
    content: none;
  }

  /* Tables */
  table {
    border-collapse: collapse;
    width: 100%;
    margin: 12pt 0;
    font-size: 10pt;
  }

  th, td {
    border: 1pt solid #333;
    padding: 6pt 8pt;
    text-align: left;
  }

  th {
    background: #f5f5f5 !important;
    font-weight: bold;
  }

  /* Glossary terms */
  .glossary-term,
  dt {
    font-weight: bold;
    margin-top: 12pt;
    page-break-after: avoid;
  }

  .glossary-definition,
  dd {
    margin-left: 0;
    margin-bottom: 8pt;
    page-break-inside: avoid;
  }

  /* FAQ sections */
  details {
    border: none;
    padding: 0;
    margin: 8pt 0;
  }

  summary {
    font-weight: bold;
    list-style: none;
    padding: 4pt 0;
    page-break-after: avoid;
  }

  summary::marker,
  summary::-webkit-details-marker {
    display: none;
  }

  details[open] > summary::after {
    content: none;
  }

  /* Keep FAQ answers visible when printing - force all details open */
  details,
  details[open] {
    display: block !important;
  }

  details > *:not(summary) {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
  }

  /* Ensure faq-answer content is always visible */
  .faq-answer,
  details .faq-answer {
    display: block !important;
    visibility: visible !important;
  }

  /* Checklists */
  ul.checklist li,
  .checklist li,
  li[data-checklist] {
    list-style: square;
    margin-left: 20pt;
    page-break-inside: avoid;
  }

  input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 10pt;
    height: 10pt;
    border: 1pt solid #000;
    margin-right: 6pt;
    vertical-align: middle;
  }

  /* Cards - flatten for print */
  .card {
    border: 1pt solid #ccc;
    padding: 8pt;
    margin: 8pt 0;
    page-break-inside: avoid;
  }

  .card-body {
    padding: 0;
  }

  /* Page breaks */
  .page-break-before {
    page-break-before: always;
  }

  .page-break-after {
    page-break-after: always;
  }

  /* Avoid breaking inside these elements */
  blockquote,
  pre,
  figure,
  img,
  .card,
  .alert,
  .callout {
    page-break-inside: avoid;
  }

  /* Images - ensure reasonable sizing */
  img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* Code blocks */
  pre, code {
    font-size: 9pt;
    background: #f8f8f8 !important;
    border: 1pt solid #ddd;
    page-break-inside: avoid;
  }

  pre {
    padding: 8pt;
    overflow: visible;
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  /* Margins for print */
  @page {
    margin: 0.75in;
    size: auto;
  }

  /* First page - less top margin */
  @page :first {
    margin-top: 0.5in;
  }

  /* Add site title to printed pages */
  body::before {
    content: "PolicyPath - Your Road to the Right Coverage";
    display: block;
    text-align: center;
    font-size: 10pt;
    color: #666;
    border-bottom: 1pt solid #ccc;
    padding-bottom: 8pt;
    margin-bottom: 16pt;
  }
}
