/* REMARK: Base Styles (Global) - KEEP THESE AS IS */
body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    background-color: #282c34; /* Dark charcoal */
    color: #e0e0e0; /* Light grey text */
    position: relative; /* Needed for hamburger menu overlay to not scroll with content */

}
/* Base link styles */
a {
    color: #61dafb; /* Bright blue/cyan for unvisited links (matches headings) */
    text-decoration: underline; /* Keep underline for clarity, or set to none */
    transition: color 0.3s ease; /* Smooth transition for color changes */
}

a:hover {
    color: #a7d9ff; /* Lighter blue on hover for better feedback */
    text-decoration: underline; /* Keep underline or change to none */
}

a:visited {
    color: #92b0fa; /* A softer, but still visible, blue/purple for visited links */
    /* Alternatively, for strong contrast: */
    /* color: #9acd32; /* A strong lime green */
    /* color: #ffeb3b; /* A bright yellow */
}
p {
    padding: 5px;
}
ul {
    list-style-type: disc;
    /* padding: 5px; - Removed, will define specific padding below */
}
li {
    padding: 1px;
}

/* REMARK: General Button Styles (used throughout) - ADJUSTED */
.button {
    display: block; /* Keep buttons full span */
    width: 100%; /* Original fullspan-button width. If you want true 100% remove this. */
    max-width: 100%; /* Original fullspan-button max-width. */
    background-color: #0099ff; /* Brighter blue for buttons */
    color: white;
    padding: 10px;
    margin: 10px 0; /* Adjusted margin for vertical spacing, 0 for left/right */
    text-align: left; /* **Left-justify text within the button** */
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
    box-sizing: border-box; /* Ensures padding/border are included in width */
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

.button:hover {
    background-color: #007acc; /* Darker blue on hover */
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
    /* No need to repeat text-align here, it's inherited */
}


/* REMARK: Top-Right Hamburger Menu Container */
.top-right-menu-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
    /* We will control display of menu-items directly */
    display: block; /* The container itself is a block */
}

/* Style the Hamburger Icon */
.hamburger-icon {
    width: 35px; /* Width of the hamburger icon */
    height: 20px; /* Height of the icon area */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Space out the bars */
    cursor: pointer;
    padding: 5px; /* Padding around the bars */
    background-color: rgba(40, 44, 52, 0.8); /* Background behind the icon */
    border-radius: 5px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.4);
    transition: background-color 0.3s ease; /* Smooth transition for hover */
}

.hamburger-icon:hover {
    background-color: rgba(45, 54, 70, 0.9); /* Slightly lighter on hover */
}

.hamburger-icon .bar {
    display: block;
    width: 100%;
    height: 4px; /* Thickness of each "patty" (blue line) */
    background-color: #0099ff; /* Bright blue color for the bars */
    border-radius: 2px; /* Slightly rounded ends for the bars */
    transition: all 0.3s ease; /* Smooth transition for future animations (e.g., X icon) */
}

/* Style the Menu Items container */
.menu-items {
    display: none; /* **Initially hidden** */
    flex-direction: column; /* Stack buttons vertically when visible */
    gap: 5px; /* Space between buttons */
    background-color: rgba(40, 44, 52, 0.9); /* Slightly more opaque background for dropdown */
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.5); /* Stronger shadow for the expanded menu */
    padding: 8px; /* Padding around the buttons */
    margin-top: 5px; /* Space between hamburger icon and dropdown */
    position: absolute; /* Position relative to .top-right-menu-container */
    top: calc(100% + 5px); /* Position below the hamburger icon */
    right: 0; /* Align to the right edge of the container */
    min-width: 170px; /* Minimum width for the expanded menu */
}

/* Class added by JavaScript when the menu is active */
.menu-items.active {
    display: flex; /* **Show menu items when 'active' class is present** */
}

/* Style the individual buttons within the menu items */
.menu-items .button {
    padding: 8px 15px; /* Keep padding for good click area */
    margin: 0; /* No external margins, controlled by gap */
    width: 100%; /* Make buttons full width within the menu-items container */
    text-align: center; /* Center text within buttons */
    font-size: 0.95em;

    /* Inherited styles from general .button, or set specific ones here */
    background-color: #007bff; /* A consistent blue for these buttons */
    color: white;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
    box-sizing: border-box; /* Important for width: 100% and padding */
}

.menu-items .button:hover {
    background-color: #0056b3; /* Darker blue on hover */
}


/* REMARK: Site Banner - KEEP AS IS */
.site-banner {
    background-color: #004d40;
    color: #e0e0e0;
    text-align: left;
    border-bottom: 3px solid #66bb6a;
    font-size: 1.1em;
    font-weight: bold;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
    padding-top: 5px;
}
/* REMARK: Site Banner (head-banner) - KEEP AS IS */
.head-banner {
    background-color: #4d4d4d;
    color: #e0e0e0;
    text-align: left;
    border-bottom: 3px solid #66bb6a;
    font-size: 1.1em;
    font-weight: bold;
    box-shadow: 0 2px 5px rgba(0,0,0,0.3);
    padding-top: 5px;
}
/* REMARK: Heading Styles - KEEP AS IS, or combine to remove redundancy */
h1, h2, h3, h4 { /* Added h4 here for consistency */
    color: #61dafb; /* Bright blue/cyan for headings */
    padding-left: 15px; /* Apply padding consistently */
    text-align: left; /* Ensure all headings are left-aligned */
}
h1 {
    font-size: 2em;
}
h2 {
    font-size: 1.7em;
}
h3 {
    font-size: 1.4em;
}
h4 { /* Ensure h4 has a default size if not already defined */
    font-size: 1.2em;
}

/* REMARK: Table Styles (Chicago Budget Numbers) - KEEP AS IS */
table {
    border-collapse: collapse;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    background-color: #3a3f4a;
    max-width: 100%;
}
th, td {
    border: 1px solid #444;
    text-align: left;
    vertical-align: top;
    padding: 9px;
}
th {
    background-color: #4a505b;
    font-weight: bold;
    color: #e0e0e0;
}
tr.category-row td {
    font-weight: bold;
    background-color: #30343d;
}
img {
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
img:hover {
    background-color: #0084ff;
    box-shadow: 4px 80px 200px rgb(0, 162, 255);
}
/* REMARK: Note Styles (general for notes) - KEEP AS IS */
.note, .grant-note {
    font-style: italic;
    color: #c9c9c9;
    border-left: 2px solid #777;
    padding: 15px;
}

/* REMARK: Title 8 & "Cancel Culture" Syntax Blend Section - KEEP AS IS */
.syntax-blend {
    background-color: #3b3e47;
    border-left: 5px solid #61dafb;
    padding: 15px;
}
.syntax-blend strong {
    color: #e0f7fa;
}

/* REMARK: Federal Authority / ICE Enforcement Sections (Milwaukee & Madison) - KEEP AS IS */
.dugan-section {
    background-color: #3a474d;
    border-left: 5px solid #00bcd4;
    padding: 15px;
}
.dugan-section::after {
    content: "";
    display: table;
    clear: both;
}
.dugan-thumbnail {
    height: auto;
    padding: 15px;
    margin-left: 20px;
    margin-top: 15px;
    border-radius: 5px;
    float: right;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.dugan-thumbnail:hover {
    background-color: #00b7ff;
    box-shadow: 4px 80px 200px rgb(0, 162, 255);
}
.dugan-section .dugan-thumbnail.float-right {
    float: right;
}

/* REMARK: Key Federal Grants Supporting Migrant Services Section - KEEP AS IS */
.federal-grants-list {
    background-color: #3c424a;
    border-left: 5px solid #a7d9ff;
    padding: 15px;
}
.grant-amount {
    font-weight: bold;
    color: #FFFFFF;
    font-size: 1.1em;
    background-color: rgba(0, 153, 255, 0.2);
}

/* REMARK: Correlation: Mayor's 7% Approval Rating Section - KEEP AS IS */
.correlation-section {
    background-color: #4a4230;
    border-left: 5px solid #fbc02d;
    padding: 15px;
}

/* REMARK: How Federal Funds Can Be Canceled/Removed Section - KEEP AS IS */
.federal-funds-section {
    background-color: #3d4a3d;
    border-left: 5px solid #81c784;
    padding: 15px;
}

/* REMARK: Public Service Announcement Section - KEEP AS IS */
.psa-section {
    background-color: #4a3a3a;
    border-left: 5px solid #ef5350;
    text-align: left;
    padding: 15px;
}

/* REMARK: Full Span Button - This is where the magic for full span happens */
.fullspan-button {
    display: block; /* Ensures it takes full width */
    width: 100%; /* As per your initial request for 98% */
    max-width: 100%; /* Keeps it from getting too wide on large screens */
    margin: 10px 0; /* Centers it if parent text-align is center, or aligns left if parent is left. */
    /* Remove padding: 15px; here as it's already defined in .button */
}

/* REMARK: Call to Action Footer - KEEP AS IS */
.call-to-action-footer {
    background-color: #1a1a1a;
    color: #e0e0e0;
    text-align: center;
    border-top: 3px solid #61dafb;
    box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
    padding: 15px;
}
.call-to-action-footer p {
    padding: 15px;
    font-size: 1.1em;
}
.call-to-action-footer .footer-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
    padding: 15px;
}
.call-to-action-footer .button { /* Specific button styles for footer if needed */
    background-color: #007bff;
    font-size: 1em;
    width: auto;
    min-width: 150px;
}
.call-to-action-footer .button:hover {
    background-color: #0056b3;
}
.call-to-action-footer .copyright {
    font-size: 0.85em;
    color: #aaaaaa;
}

/* REMARK: Future Sections - KEEP AS IS */
.policy-comparison-section {
    background-color: #454530;
    border-left: 5px solid #ffeb3b;
    padding: 15px;
}

/* --- Specific Section Styles (Adjusted for Dark Theme & Consistency) --- */

.republic-compass-framework {
    max-width: 100%; /* Use a fixed max-width for readability */
    margin: 20px;
    text-align: left;
    padding: 20px;
    background-color: #3b3e47; /* Darker background, like other sections */
    border: 1px solid #4a4a4a; /* Darker border */
    box-shadow: 0 0 10px rgba(0,0,0,0.2); /* Darker shadow */
    border-radius: 8px; /* Consistent with other containers */
    color: #e0e0e0; /* Ensure text is light */
}

/* Guiding Question Section */
.guiding-question {
    background-color: #4a4d55; /* Slightly lighter dark background */
    padding: 20px;
    margin-bottom: 25px;
    border-left: 5px solid #f39c12; /* Original orange accent */
    border-radius: 5px;
}

.guiding-question p {
    font-style: italic;
    margin: 0;
    font-size: 1.1em;
    color: #e0e0e0; /* Ensure text is light */
}

/* Image Styling */
.content-image {
    max-width: 100%;
    height: auto;
    display: block;
    margin-bottom: 15px;
    border-radius: 5px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3); /* Consistent image shadow */
}

/* Symptom List */
.symptom-list {
    list-style: disc inside;
    padding-left: 20px; /* **Add left padding for indentation** */
    margin-left: 0; /* Ensures no default browser margin interferes */
    margin-bottom: 25px;
}

.symptom-list li {
    margin-bottom: 8px;
    font-size: 1.05em;
    line-height: 1.5;
    color: #e0e0e0; /* Ensure text is light */
}

.symptom-list li strong {
    color: #61dafb; /* Use a heading accent color for consistency */
}

/* Specific for Judicial Commission Info */
.judicial-commission-info {
    background-color: #4a4d55; /* Similar to guiding question for consistency */
    border-left: 5px solid #20c997; /* Teal accent border */
    padding: 15px;
    margin-top: 20px;
    margin-bottom: 25px;
    border-radius: 5px;
    color: #e0e0e0; /* Ensure text is light */
}

.judicial-commission-info p {
    font-size: 0.95em;
    line-height: 1.6;
    margin-top: 10px;
    margin-bottom: 0;
}

/* DFWA Section (converted from <pre>) */
.dfwa-info {
    background-color: #4a4d55; /* Consistent darker background */
    padding: 20px;
    border: 1px solid #4a4a4a;
    border-radius: 5px;
    margin-top: 30px;
    color: #e0e0e0; /* Ensure text is light */
}

.dfwa-info h3 { /* Overrides the global h3 padding for this section */
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 1px solid #5a5a5a; /* Darker border for dark theme */
    padding-bottom: 5px;
}

.dfwa-info h4 { /* Overrides the global h4 padding for this section */
    padding-left: 0;
    margin-top: 20px;
    margin-bottom: 10px;
}

.dfwa-info p {
    margin-bottom: 15px;
    line-height: 1.6;
}

.dfwa-info ul {
    list-style: disc inside;
    padding-left: 25px; /* Indent for clarity */
    margin-bottom: 15px;
    margin-left: 0; /* Ensure no unwanted margin */
}

.dfwa-info ul li {
    margin-bottom: 8px;
    line-height: 1.5;
}

.dfwa-info ul ul { /* For nested lists (e.g., under Drug-Free Awareness Program) */
    list-style: circle inside;
    margin-top: 5px;
    margin-bottom: 5px;
    padding-left: 30px; /* More padding for deeper nesting */
}

/* Styling for 'Signal' type content (assuming you added these classes) */
.signal-text {
    background-color: #3b4d45; /* Darker green background */
    border-left: 5px solid #28a745; /* Green border */
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
}
.signal-text strong {
    color: #61dafb; /* Use a heading color for emphasis */
}

/* Styling for 'Noise' type content (assuming you added these classes) */
.noise-text {
    background-color: #4d3b3b; /* Darker red/brown background */
    border-left: 5px solid #dc3545; /* Red border */
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
}
.noise-text strong {
    color: #61dafb;
}

/* Styling for 'Observation' type content (assuming you added these classes) */
.observation-text {
    background-color: #3f4a4d; /* Dark blue/grey background */
    border-left: 5px solid #007bff; /* Blue border */
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
}
.observation-text strong {
    color: #61dafb;
}

/* Styling for 'Impact' type content (assuming you added these classes) */
.impact-text {
    background-color: #4a4230; /* Darker yellow/brown background */
    border-left: 5px solid #fd7e14; /* Orange border */
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
}
.impact-text strong {
    color: #61dafb;
}

/* --- New Title Sections Styling --- */
.title-section {
    background-color: #4a4d55; /* Consistent dark background, similar to other structured sections */
    border-left: 5px solid #61dafb; /* Heading blue accent border */
    padding: 20px;
    margin-bottom: 30px; /* Space between each title section */
    border-radius: 8px; /* Consistent rounded corners */
    color: #e0e0e0; /* Light text color for readability */
}

.title-section h3 {
    margin-top: 0; /* Remove extra top margin */
    padding-left: 0; /* Override global h3 padding if necessary */
    border-bottom: 1px solid #5a5a5a; /* Subtle separator */
    padding-bottom: 10px;
    margin-bottom: 15px;
}

.title-section p {
    margin-bottom: 15px; /* Space between paragraphs */
}

.title-section ul {
    list-style: disc inside;
    padding-left: 25px; /* Indent the main lists */
    margin-bottom: 20px; /* Space after the list */
    margin-left: 0; /* Ensure no default browser margin */
}

.title-section ul li {
    margin-bottom: 5px; /* Space between list items */
    line-height: 1.5;
}

.title-section strong {
    color: #61dafb; /* Use consistent accent color for bolded text */
}

/* Specific styling for the OCR Directive quote */
.ocr-directive-quote {
    background-color: #3d424c; /* Slightly different dark background for the quote */
    border-left: 5px solid #f39c12; /* Accent border for quoted text */
    padding: 15px;
    margin: 20px 0; /* Margin around the quote block */
    border-radius: 5px;
    font-size: 0.9em; /* Slightly smaller text for the directive */
    line-height: 1.6;
}

.ocr-directive-quote p {
    margin-bottom: 10px; /* Adjust paragraph spacing within the quote */
    color: #c9c9c9; /* Slightly lighter text for quote for distinction */
}

.ocr-directive-quote p:last-child {
    margin-bottom: 0; /* No margin after last paragraph in quote */
}

.ocr-directive-quote strong {
    color: #e0f7fa; /* Highlighted strong text within the quote */
}

.ocr-directive-quote .footnote {
    font-size: 0.75em; /* Smaller font for footnotes */
    color: #888; /* Muted color for footnotes */
    line-height: 1.2;
    margin-bottom: 5px;
}

/* Styling for the button group (if you have multiple buttons for a section) */
.button-group {
    margin-top: 20px; /* Space above the button group */
    /* If you want buttons to be aligned left, and be full width, no changes needed here.
       If you want them to be side-by-side but left-aligned, use flexbox:
       display: flex;
       flex-wrap: wrap;
       justify-content: flex-start;
       gap: 10px; */
}

/* Styling for Compliance Details within Title Sections */
.compliance-details {
    background-color: #3d424c; /* A slightly different dark shade to differentiate from main section content */
    border-left: 3px solid #f39c12; /* A subtle accent color to highlight compliance info */
    padding: 15px;
    margin-top: 20px; /* Space above the compliance box */
    margin-bottom: 20px; /* Space below the compliance box */
    border-radius: 5px; /* Slightly rounded corners */
}

.compliance-details h4 {
    color: #a7d9ff; /* A lighter blue for the compliance sub-heading */
    margin-top: 0;
    padding-left: 0; /* Override any global h4 padding */
    margin-bottom: 10px;
}

.compliance-details ul {
    list-style: disc inside;
    padding-left: 15px; /* Indent the compliance list */
    margin-bottom: 0; /* No margin after the last list */
    margin-left: 0; /* Ensure no default browser margin */
}

.compliance-details ul li {
    margin-bottom: 5px;
    line-height: 1.5;
    color: #c9c9c9; /* Slightly muted text for compliance details */
}

.compliance-details ul li:last-child {
    margin-bottom: 0; /* No margin after the very last list item */
}

.compliance-details strong {
    color: #e0f7fa; /* Highlighted strong text within compliance points */
}

/* Specific styles for the federal law accountability section to override general p, ul, li for precise layout */
#federal-law-accountability-combined {
    max-width: 100%;
    margin: 0 auto;
    padding: 2rem;
}
#federal-law-accountability-combined h2 {
    color: #61dafb; /* Matches global h2 color */
    text-align: center;
    margin-bottom: 1.5rem;
}
#federal-law-accountability-combined p {
    padding: 0; /* Remove default 5px padding from global p */
    margin-bottom: 1rem; /* Restore specific paragraph spacing */
    color: #e0e0e0; /* Inherit from body color */
}
#federal-law-accountability-combined ul {
    list-style-type: disc;
    margin-left: 1.5rem; /* Restore indentation */
    margin-bottom: 1rem; /* Restore list spacing */
    padding: 0; /* Remove default 5px padding from global ul */
    color: #e0e0e0; /* Inherit from body color */
}
#federal-law-accountability-combined ul li {
    padding: 0; /* Remove default 1px padding from global li */
    margin-bottom: 0.5rem; /* Restore specific list item spacing */
}
/* Specific strong tag colors for this section */
.law-strong-highlight-blue {
    color: #2b6cb0;
}
.law-strong-highlight-red {
    color: #e53e3e;
}
/* Link styles for this section, ensuring they align with overall theme */
#federal-law-accountability-combined a {
    color: #61dafb; /* Matches global 'a' for unvisited links */
    text-decoration: underline;
    font-weight: bold;
}
#federal-law-accountability-combined a:hover {
    color: #a7d9ff; /* Matches global 'a:hover' */
}
#federal-law-accountability-combined a:visited {
    color: #92b0fa; /* Matches global 'a:visited' */
}
/* Container for spacing between buttons */
.button-link-container {
    display: flex;
    flex-direction: column; /* Stack buttons vertically */
    gap: 15px; /* Space between buttons */
    max-width: 100%; /* Optional: constrain width for better readability */
    margin: 20px auto; /* Center the container */
}

/* Styling for the full-span buttons */
.full-span-btn {
    display: block; /* Makes the entire link clickable and full width */
    width: 100%; /* Ensures it spans the full width of its container */
    padding: 15px 25px; /* Adjust padding as needed */
    background-color: #61dafb; /* Example background color */
    color: #1a1a1a; /* Example text color */
    text-align: center;
    text-decoration: none; /* Remove underline */
    font-size: 1.1em; /* Adjust font size */
    font-weight: bold;
    border-radius: 8px; /* Slightly rounded corners */
    transition: background-color 0.3s ease, transform 0.2s ease; /* Smooth hover effects */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow for depth */
}

.full-span-btn:hover {
    background-color: #a7d9ff; /* Lighter color on hover */
    transform: translateY(-2px); /* Slight lift effect */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); /* Enhanced shadow on hover */
}

.full-span-btn:active {
    background-color: #2b6cb0; /* Darker color when clicked */
    transform: translateY(0); /* Reset transform */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* Reduced shadow on active */
}