/**
 * Print Stylesheet
 * 
 * Optimizes WordPress content for printing by hiding non-essential elements
 * and ensuring proper formatting for standard and custom blocks.
 *
 * @package HAC
 * @since 1.0.0
 */

/* ==========================================================================
   General Print Styles
   ========================================================================== */

* {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body {
    font-size: 12pt;
    line-height: 1.5;
    color: #000;
    background: #fff;
}

/* Hide non-essential elements */
.site-header,
.site-navigation,
.site-footer,
.page-navigation,
.sidebar,
.widget-area,
.comments-area,
.wp-block-navigation,
.wp-block-social-links,
button,
.button,
.btn,
input[type="submit"],
input[type="button"],
nav,
header:not(.entry-header),
footer:not(.entry-footer),
.skip-link,
.screen-reader-text {
    display: none !important;
}

/* Ensure content is visible */
.entry-content,
.wp-block-post-content,
main {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ==========================================================================
   Typography
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
    font-weight: bold;
    color: #000 !important;
}

h1 {
    font-size: 24pt;
    margin-top: 0;
    margin-bottom: 12pt;
}

h2 {
    font-size: 20pt;
    margin-top: 18pt;
    margin-bottom: 10pt;
}

h3 {
    font-size: 16pt;
    margin-top: 14pt;
    margin-bottom: 8pt;
}

h4, h5, h6 {
    font-size: 14pt;
    margin-top: 12pt;
    margin-bottom: 6pt;
}

p {
    margin: 0 0 12pt 0;
    orphans: 3;
    widows: 3;
}

/* ==========================================================================
   WordPress Core Blocks
   ========================================================================== */

/* Paragraph Block */
.wp-block-paragraph,
.entry-content p {
    margin-bottom: 12pt;
    font-size: 12pt;
    line-height: 1.6;
    color: #000 !important;
    width: 100% !important;
    max-width: 100% !important;
}

.wp-block-paragraph.has-drop-cap::first-letter {
    font-size: 3em;
    float: left;
    margin: 0.1em 0.1em 0 0;
}

/* Heading Block */
.wp-block-heading {
    page-break-after: avoid;
    margin-top: 18pt;
    margin-bottom: 10pt;
    color: #000 !important;
}

.wp-block-heading:first-child {
    margin-top: 0;
}

.wp-block-heading.has-background {
    padding: 4pt 8pt;
    background: #f0f0f0 !important;
    border: 1px solid #ccc;
}

/* List Block */
.wp-block-list,
.wp-block-list ul,
.wp-block-list ol {
    margin: 12pt 0;
    padding-left: 24pt;
    page-break-inside: avoid;
}

.wp-block-list li {
    margin-bottom: 6pt;
    line-height: 1.5;
}

.wp-block-list.is-style-checked li::before,
.wp-block-list.is-style-arrow li::before {
    color: #000 !important;
}

.wp-block-list.has-background {
    padding: 8pt 12pt;
    background: #f9f9f9 !important;
    border: 1px solid #ddd;
}

/* Table Block */
.wp-block-table {
    margin: 12pt 0;
    page-break-inside: avoid;
    width: 100% !important;
    max-width: 100% !important;
}

.wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #000;
    font-size: 11pt;
}

.wp-block-table th,
.wp-block-table td {
    border: 1px solid #000;
    padding: 6pt 8pt;
    text-align: left;
    background: #fff !important;
    color: #000 !important;
}

.wp-block-table thead th {
    background: #f0f0f0 !important;
    font-weight: bold;
}

.wp-block-table tfoot td {
    background: #f0f0f0 !important;
    font-weight: bold;
}

.wp-block-table.is-style-stripes tbody tr {
    background: #fff !important;
}

.wp-block-table caption {
    font-weight: bold;
    margin-bottom: 6pt;
    color: #000 !important;
}

/* Image Block */
.wp-block-image {
    margin: 12pt 0;
    page-break-inside: avoid;
    text-align: center;
}

.wp-block-image img {
    max-width: 100% !important;
    height: auto !important;
    border: 1px solid #ccc;
}

.wp-block-image figcaption {
    font-size: 10pt;
    font-style: italic;
    margin-top: 6pt;
    color: #666 !important;
    text-align: center;
}

/* Quote Block */
.wp-block-quote {
    margin: 12pt 0;
    padding: 12pt 24pt;
    border-left: 4pt solid #000;
    page-break-inside: avoid;
    background: #f9f9f9 !important;
    font-style: italic;
}

.wp-block-quote p {
    margin-bottom: 8pt;
}

.wp-block-quote cite {
    display: block;
    margin-top: 8pt;
    font-size: 10pt;
    font-style: normal;
    color: #666 !important;
}

.wp-block-quote::before {
    display: none;
}

/* Columns Block */
.wp-block-columns {
    margin: 12pt 0;
    page-break-inside: avoid;
    display: flex;
    flex-wrap: wrap;
    gap: 12pt;
}

.wp-block-column {
    page-break-inside: avoid;
    flex: 1;
    min-width: 0;
}

/* Separator Block */
.wp-block-separator {
    margin: 18pt auto;
    border-top: 1px solid #000;
    border-bottom: none;
    width: 50%;
    page-break-inside: avoid;
}

/* Code Block */
.wp-block-code {
    margin: 12pt 0;
    padding: 8pt;
    background: #f5f5f5 !important;
    border: 1px solid #ddd;
    font-family: monospace;
    font-size: 10pt;
    page-break-inside: avoid;
    overflow: visible;
    white-space: pre-wrap;
}

.wp-block-code code {
    background: transparent !important;
    color: #000 !important;
}

/* Preformatted Block */
.wp-block-preformatted {
    margin: 12pt 0;
    padding: 8pt;
    background: #f5f5f5 !important;
    border: 1px solid #ddd;
    font-family: monospace;
    font-size: 10pt;
    page-break-inside: avoid;
    white-space: pre-wrap;
}

/* Verse Block */
.wp-block-verse {
    margin: 12pt 0;
    padding: 8pt;
    font-family: serif;
    font-style: italic;
    white-space: pre-wrap;
    page-break-inside: avoid;
}

/* Pullquote Block */
.wp-block-pullquote {
    margin: 18pt 0;
    padding: 12pt;
    border-top: 4pt solid #000;
    border-bottom: 4pt solid #000;
    page-break-inside: avoid;
    font-size: 14pt;
    text-align: center;
}

.wp-block-pullquote blockquote {
    margin: 0;
    padding: 0;
    border: none;
}

.wp-block-pullquote cite {
    display: block;
    margin-top: 8pt;
    font-size: 11pt;
    font-style: normal;
    color: #666 !important;
}

/* Spacer Block */
.wp-block-spacer {
    page-break-inside: avoid;
}

/* HTML Block */
.wp-block-html {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.wp-block-html pre,
.wp-block-html code {
    background: transparent !important;
    color: #000 !important;
    font-family: monospace;
    font-size: 10pt;
    white-space: pre-wrap;
}

/* ==========================================================================
   Custom Blocks (Simple Print Styles)
   ========================================================================== */

/* Accordion Item */
.wp-block-hac-accordion-item,
.accordion-item {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.accordion-item-header {
    display: block !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

.accordion-item-header button {
    display: block !important;
    font-weight: bold;
    margin-bottom: 6pt;
    color: #000 !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    width: 100% !important;
    text-align: left !important;
    cursor: default !important;
}

.accordion-item-header .accordion-caret {
    display: none;
}

.accordion-item-content {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 12pt 0 !important;
    margin-left: 12pt;
    background: transparent !important;
}

.accordion-item-content::before {
    display: none !important;
}

.accordion-item-content-inner {
    margin-left: 0;
    display: block !important;
    padding: 0 !important;
}

.meeting-accordion-item {
    margin-bottom: 12pt;
    padding-bottom: 12pt;
    border-bottom: 1px solid #ccc;
}

/* Bubble Tags */
.bubble-tags {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.bubble-tag {
    display: inline-block;
    padding: 4pt 8pt;
    margin: 0 4pt 4pt 0;
    border: 1px solid #000;
    background: #fff !important;
    color: #000 !important;
    border-radius: 0;
}

/* Budget 101 */
.wp-block-hac-budget-101,
.budget-101 {
    margin: 12pt 0;
    page-break-inside: avoid;
    border: 1px solid #000;
    padding: 12pt;
}

.budget-101-wrapper,
.budget-101-left,
.budget-101-right,
.budget-101-content {
    display: block;
}

.budget-101-right {
    display: none;
}

.budget-101 h2 {
    margin-top: 0;
    margin-bottom: 8pt;
}

.budget-101-button {
    display: inline-block;
    margin-top: 8pt;
    padding: 6pt 12pt;
    border: 1px solid #000;
    text-decoration: none;
    color: #000 !important;
    background: #fff !important;
}

/* Budget Process */
.wp-block-hac-budget-process,
.budget-process {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.wp-block-hac-budget-process-item,
.budget-process-item {
    margin-bottom: 12pt;
    padding-bottom: 12pt;
    border-bottom: 1px solid #ccc;
}

.budget-process-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Budget Statistics */
.wp-block-hac-budget-statistics,
.wp-block-hac-budget-statistics-v2,
.budget-statistics,
section.budget-statistics {
    margin: 12pt 0;
    page-break-inside: avoid;
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    gap: 12pt;
    width: 100% !important;
}

.budget-statistic-card {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: 33.333% !important;
    padding: 12pt;
    border: 1px solid #000;
    background: #fff !important;
    page-break-inside: avoid;
    display: flex !important;
    flex-direction: column;
    width: auto !important;
}

.budget-statistic-card-label {
    font-size: 11pt;
    font-weight: normal;
    color: #000 !important;
    margin-bottom: 6pt;
    line-height: 1.4;
}

.budget-statistic-card-number {
    font-size: 18pt;
    font-weight: bold;
    color: #000 !important;
    margin: 0;
    line-height: 1.2;
}

/* Call to Action */
.wp-block-hac-call-to-action,
.call-to-action {
    margin: 12pt 0;
    padding: 12pt;
    border: 1px solid #000;
    background: #f0f0f0 !important;
    page-break-inside: avoid;
}

.call-to-action-icon {
    display: none;
}

.call-to-action-title {
    font-weight: bold;
    font-size: 16pt;
    margin-bottom: 6pt;
    margin-top: 0;
    color: #000 !important;
}

.call-to-action-description {
    margin-bottom: 8pt;
    color: #000 !important;
}

.call-to-action-button {
    display: inline-block;
    margin-top: 8pt;
    padding: 6pt 12pt;
    border: 1px solid #000;
    text-decoration: none;
    color: #000 !important;
    background: #fff !important;
}

.call-to-action-button-arrow {
    display: none;
}

/* Callout Link */
.wp-block-hac-callout-link,
.callout-link {
    margin: 12pt 0;
    padding: 8pt 12pt;
    border-left: 4pt solid #000;
    background: #f9f9f9 !important;
    page-break-inside: avoid;
}

/* Category Percentage */
.wp-block-hac-category-percentage,
.category-percentage {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Commissions */
.wp-block-hac-commissions,
.commissions {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Committee Directory Card */
.wp-block-hac-committee-directory-card,
.committee-directory-card {
    margin: 12pt 0;
    padding: 12pt;
    border: 1px solid #ccc;
    page-break-inside: avoid;
}

/* Facts Stats */
.wp-block-hac-facts-stats,
.facts-stats-cards,
.facts-stats {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.facts-stats-card {
    margin-bottom: 12pt;
    padding: 12pt;
    border: 1px solid #ccc;
    page-break-inside: avoid;
}

.facts-stats-card-arrow,
.facts-stats-card-number-container {
    display: inline;
}

.facts-stats-card-number-container img {
    display: none;
}

.facts-stats-card-label {
    display: block;
    font-weight: normal;
    margin-bottom: 4pt;
    color: #000 !important;
}

.facts-stats-card-number {
    margin: 0;
    font-weight: bold;
    color: #000 !important;
}

/* Featured Reports */
.wp-block-hac-featured-reports,
.featured-reports {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.featured-reports .report-card {
    margin-bottom: 12pt;
    padding-bottom: 12pt;
    border-bottom: 1px solid #ccc;
}

.featured-reports .report-card:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Report Card */
.wp-block-hac-report-card,
.report-card {
    margin: 12pt 0;
    padding: 12pt;
    border: 1px solid #ccc;
    page-break-inside: avoid;
}

/* Report Library */
.wp-block-hac-report-library,
.report-library {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.report-library-filters {
    display: none;
}

.report-library-container {
    display: block;
}

.report-library-content {
    width: 100%;
}

.report-library-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #000;
    font-size: 11pt;
    margin: 12pt 0;
}

.report-library-table th,
.report-library-table td {
    border: 1px solid #000;
    padding: 6pt 8pt;
    text-align: left;
    background: #fff !important;
    color: #000 !important;
}

.report-library-table thead th {
    background: #f0f0f0 !important;
    font-weight: bold;
}

.report-library-table .report-library-pdf-link {
    text-decoration: underline;
}

.report-library-table .report-library-pdf-link::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #666 !important;
}

.report-library-row {
    page-break-inside: avoid;
}

/* Resource Link */
.wp-block-hac-resource-link,
.resource-link {
    margin: 12pt 0;
    padding: 8pt;
    border: 1px solid #ccc;
    page-break-inside: avoid;
}

/* Subtopic Statistics */
.wp-block-hac-subtopic-statistics,
.subtopic-statistics {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Topics */
.wp-block-hac-topics,
.topic,
.topics {
    margin: 12pt 0;
    page-break-inside: avoid;
}

.topic-card {
    display: block;
    text-decoration: none;
    color: #000 !important;
    padding: 12pt;
    border: 1px solid #ccc;
}

.topic-card-image {
    display: none;
}

.topic-card-title {
    margin-top: 0;
    margin-bottom: 8pt;
    font-weight: bold;
    color: #000 !important;
}

.topic-card-description {
    margin: 0;
    color: #000 !important;
}

/* Member Listing */
.wp-block-hac-member-listing,
.member-listing {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Meeting Accordion */
.wp-block-hac-meeting-accordion,
.meeting-accordion {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Meeting Schedule */
.wp-block-hac-meeting-schedule,
.meeting-schedule {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Previous Retreats */
.wp-block-hac-previous-retreats,
.previous-retreats-container,
.previous-retreats {
    margin: 12pt 0;
    page-break-inside: avoid;
}

/* Previous Retreats - Accordion Items */
.previous-retreats-container .accordion-item,
.wp-block-hac-previous-retreats .accordion-item {
    margin-bottom: 18pt;
    page-break-inside: avoid;
    border-bottom: 1px solid #ccc;
    padding: 12pt 16pt;
    padding-bottom: 12pt;
}

.previous-retreats-container .accordion-item:last-child,
.wp-block-hac-previous-retreats .accordion-item:last-child {
    border-bottom: none;
    padding-bottom: 12pt;
}

/* Make accordion header h3 display as h2 for previous retreats */
.previous-retreats-container .accordion-item-header,
.wp-block-hac-previous-retreats .accordion-item-header {
    display: block !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: default !important;
}

.previous-retreats-container .accordion-item-header button,
.wp-block-hac-previous-retreats .accordion-item-header button {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: default !important;
}

.previous-retreats-container .accordion-item-header h3,
.wp-block-hac-previous-retreats .accordion-item-header h3 {
    font-size: 20pt;
    margin-top: 0;
    margin-bottom: 8pt;
    font-weight: bold;
    color: #000 !important;
    page-break-after: avoid;
}

.previous-retreats-container .accordion-item:first-child .accordion-item-header h3,
.wp-block-hac-previous-retreats .accordion-item:first-child .accordion-item-header h3 {
    margin-top: 0;
}

.previous-retreats-container .accordion-item-header .accordion-caret,
.wp-block-hac-previous-retreats .accordion-item-header .accordion-caret {
    display: none;
}

/* Ensure content is visible and expanded */
.previous-retreats-container .accordion-item-content,
.wp-block-hac-previous-retreats .accordion-item-content {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 12pt 0 !important;
    margin-left: 0 !important;
    margin-top: 0;
    background: transparent !important;
}

.previous-retreats-container .accordion-item-content::before,
.wp-block-hac-previous-retreats .accordion-item-content::before {
    display: none !important;
}

.previous-retreats-container .accordion-item-content-inner,
.wp-block-hac-previous-retreats .accordion-item-content-inner {
    display: block !important;
    margin-left: 0 !important;
    padding: 0 !important;
}

.previous-retreats-container .accordion-description,
.wp-block-hac-previous-retreats .accordion-description {
    margin: 0;
    padding: 0;
}

.previous-retreats-container .accordion-description p,
.wp-block-hac-previous-retreats .accordion-description p {
    margin-bottom: 4pt;
    color: #000 !important;
}

.previous-retreats-container .accordion-description p:last-child,
.wp-block-hac-previous-retreats .accordion-description p:last-child {
    margin-bottom: 0;
}

.previous-retreats-container .accordion-description ul,
.wp-block-hac-previous-retreats .accordion-description ul {
    margin: 4pt 0 0 0;
    padding-left: 24pt;
}

.previous-retreats-container .accordion-description li,
.wp-block-hac-previous-retreats .accordion-description li {
    margin-bottom: 2pt;
}

.previous-retreats-container .accordion-description li:last-child,
.wp-block-hac-previous-retreats .accordion-description li:last-child {
    margin-bottom: 0;
}

.previous-retreats-container .accordion-description a,
.wp-block-hac-previous-retreats .accordion-description a {
    color: #000 !important;
    text-decoration: underline;
}

.previous-retreats-error,
.previous-retreats-empty {
    padding: 8pt;
    border: 1px solid #ccc;
    background: #f9f9f9 !important;
    color: #000 !important;
    margin: 12pt 0;
}

/* ==========================================================================
   Links and URLs
   ========================================================================== */

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

a[href]:after {
    content: " (" attr(href) ")";
    font-size: 10pt;
    color: #666 !important;
}

a[href^="#"]:after,
a[href^="javascript:"]:after {
    content: "";
}

/* ==========================================================================
   Page Breaks
   ========================================================================== */

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

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

.page-break-inside-avoid {
    page-break-inside: avoid;
}

/* Avoid breaking inside these elements */
h1, h2, h3, h4, h5, h6,
.wp-block-image,
.wp-block-quote,
.wp-block-table,
.wp-block-code,
.wp-block-preformatted {
    page-break-inside: avoid;
}

/* ==========================================================================
   Utilities
   ========================================================================== */

.print-only {
    display: block !important;
}

.no-print {
    display: none !important;
}

/* Ensure proper spacing */
.entry-content > *:first-child {
    margin-top: 0;
}

.entry-content > *:last-child {
    margin-bottom: 0;
}
