html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  overflow-x: hidden;
}
a{
    text-decoration: none;
}
a:hover{
    color: inherit !important;
}

input[type="submit"] {
    color: white !important;
}

    input[type="submit"]:hover {
        color: white !important;
    }
button:hover{
    color: white !important;
}
button[type=submit]{
    color: white !important;
}
button[type=submit]:hover{
        color: white !important;
    }
/*THIS SECTION CONTROLS THE CARD HEADERS TO ADAPT SIZE AND FONT SIZE BASED ON SCREEN SIZE*/
.cardheadersizing {
    display: flex; /* Flexbox for alignment */
    align-items: center; /* Vertically center content */
    justify-content: space-between; /* Space between elements */
    height: 68px; /* Fixed height for collapsed headers */
    padding: 15px 20px;
    background-color: #f5f5f5; /* Example background color */
    white-space: normal; 
    word-wrap: break-word;
    overflow: hidden; /* Hide overflowing content */
    transition: height 0.3s ease; /* Smooth transition for height changes */
    font-size: clamp(12px, 1vw, 20px);
}

    .cardheadersizing.expanded {
        height: auto; /* Allow height to adjust based on content when expanded */
        white-space: normal; /* Allow text wrapping when expanded */
        overflow: visible; /* Show all content when expanded */
    }

/*---- END HEADER CONTROL ----*/
/*BEGINNING OF FORMATTING FOR COMMITTEE MEMBER PHOTOS*/
/* Responsive senator images - don't get too large */
.senator-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 8px;
    display: block;
    margin: 0 auto;
}

/* Senator grid - minimum 2 columns, fluid gap */
.senators-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: clamp(15px, 3vw, 30px);
}

    /* Make all senator cards equal height */
    .senators-grid > a {
        display: flex;
    }

    .senators-grid .card {
        flex: 1;
        display: flex;
        flex-direction: column;
    }

    .senators-grid .card__footer {
        margin-top: auto;
    }
/*----END OF SENATOR GRID----*/

/*THIS CONTROLS BILL CARDS ON THE ASSIGNED BILLS PAGE*/
.bill-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 8px;
    flex-wrap: wrap;
    gap: 10px;
}

.bill-number {
    font-weight: bold;
    font-size: 1.1em;
}

    .bill-number a {
        color: #1e3a5f;
        text-decoration: none;
    }

        .bill-number a:hover {
            text-decoration: underline;
            color: #0d2a4a;
        }

.bill-sponsor-handler {
    text-align: right;
    font-size: 0.9em;
}

    .bill-sponsor-handler strong {
        color: #1e3a5f;
    }

    .bill-sponsor-handler a {
        color: #1e3a5f;
        text-decoration: none;
    }

        .bill-sponsor-handler a:hover {
            color: #0d2a4a;
            text-decoration: underline;
        }

.bill-title {
    color: #1e3a5f;
    line-height: 1.4;
    margin-bottom: 12px;
    font-weight: 500;
}
.bill-links-desktop {
    display: grid; /* Enable CSS Grid */
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); /* Responsive grid */
    gap: 1rem; /* Add spacing between buttons */
    width: 100%; /* Ensure the grid takes up the full width */
}

/* Mobile expandable footer - hidden above 761px */
.bill-links-footer {
    display: none;
}
.bill-house-link:hover{
    color:white !important;
}
.bill-links-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
    background-color: #EEEEEE;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    cursor: pointer;
    margin-top: 10px;
    transition: background-color 0.2s ease;
    font-weight: 500;
    color: #1e3a5f;
}

    .bill-links-header:hover {
        background-color: #dee2e6;
    }

    .bill-links-header.expanded {
        border-radius: 6px 6px 0 0;
        border-bottom: none;
    }

.chevron {
    transition: transform 0.2s ease;
    font-size: 0.8em;
    color: #1e3a5f;
}

.bill-links-content {
    display: none;
    padding: 15px;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-top: none;
    border-radius: 0 0 6px 6px;
}

    /* Make all link-card-items full width in mobile collapsible section */
    .bill-links-content .link-card-item {
        width: 100%;
    }

@media (max-width: 768px) {
    .bill-card-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .bill-sponsor-handler {
        text-align: left;
    }
    /* Hide desktop links on narrow screens */
    .bill-links-desktop {
        display: none;
        flex-wrap: wrap;
    }
    /* Show mobile expandable footer on narrow screens */
    .bill-links-footer {
        display: block;
    }
}
/*----END OF BILL CARD CONTROL----*/

/*Committee Minutes Page Control*/
.card__body-grid {
    display: grid; /* Use CSS Grid for layout */
    grid-template-columns: repeat(3, 1fr); /* Create 3 equal-width columns */
    gap: 1rem; /* Add spacing between columns */
}

.column {
    display: flex;
    flex-direction: column; /* Stack items vertically in each column */
    gap: 1rem; /* Add spacing between items in the column */
}

.grid-container-cover {
    display: grid; /* Keep the internal grid layout */
    grid-template-columns: repeat(3, 1fr); /* 3 columns for headers and items */
    gap: 0.5rem; /* Add spacing between items */
    border: 1px solid #ddd; /* Optional: Add a border for clarity */
    padding: 1rem; /* Optional: Add padding */
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr); 
    gap: 0.5rem; 
    border: 1px solid #ddd; 
    padding: 1rem;
}

.grid-header {
    font-weight: bold;
    border-bottom: 2px solid #ddd;
}

.btn-view {
    color: #fff;
    background-color: #080530;
    border-color: none;
    border-radius: 5px;
}
/*----END COMMITTEE MINUTES CSS----*/

/* Removes borders for collapsed cards */
.card.collapsed {
    border: 1px solid transparent; /* No border for collapsed cards */
    box-shadow: none; /* No shadow for collapsed cards */
    transition: all 0.3s ease; /* Smooth transition for height and shadow */
}

.card.expanded {
    border: 1px solid #ddd; /* Add border for expanded card */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Add shadow for expanded card */
}
/*----END REMOVES BORDERS FOR COLLAPSED CARDS----*/

/*Registered Hearings Card Formtting*/
.registered-cards {
    border: solid;
    border-color: #ddd;
    border-width: 1px;
    padding: 10px;
    border-radius: 8px;
}
/*----END----*/

@media (min-width: 1025px) {
    .sidebar-order {
        order: 2;
    }

    .main-order {
        order: 1;
    }
}

/* Handles Buttons for Committee Index Pages */
.button-container-index {
    display: grid; /* Enable CSS Grid */
    grid-template-columns: repeat(2, 1fr); /* Create up to 4 equal-width columns */
    gap: 1rem; /* Add spacing between buttons */
    width: 100%; /* Ensure the grid takes up the full width */
}

    .button-container-index .btn {
        text-align: center; /* Center-align text inside buttons */
        padding: 0.5rem 1rem; /* Add padding for better spacing */
        box-sizing: border-box; /* Include padding and borders in width calculations */
        white-space: nowrap;
        font-size: clamp(12px, 2vw, 18px);
    }

@media (max-width: 768px) {
    .button-container-index {
        grid-template-columns: 1fr; /* Stack buttons vertically on smaller screens */
    }

        .button-container-index .btn {
            width: 100%; /* Ensure each button takes up the full width */
            font-size: clamp(12px, 3vw, 14px); /* Further adjust font size for smaller screens */
        }
}
/*----END----*/


.linkfontsize {
    font-size: clamp(12px, 1vw, 20px);
    text-align: center;
}
.linkfontsize-index {
    font-size: clamp(12px, 1vw, 18px);
    /*white-space: nowrap;*/
}
/* Formatting buttons to stack and size appropriately. Primarily used in the Witness Part of this project*/
.button-container {
    display: flex; /* Enable Flexbox */
    flex-wrap: wrap; /* Allow items to wrap to the next line */
    gap: 0.5rem; /* Add spacing between buttons */
    width: 100%; /* Ensure the container takes up the full width */
    justify-content: space-between; /* Distribute buttons evenly */
}

    .button-container input[type="submit"], button {
        flex: 1 1 calc(25% - 0.5rem); /* Each button takes up 25% of the width with spacing */
        text-align: center; /* Center-align button text */
        box-sizing: border-box; /* Include padding and borders in width calculations */
    }

@media (max-width: 768px) {
    .button-container {
        flex-direction: column; /* Stack buttons vertically */
    }

        .button-container input[type="submit"] button {
            flex: 1 1 100%; /* Each button takes up the full width */
        }
}

/*----END----*/

.text-content--preformatted:hover{
    color: white !important;
}

.link-card-item-assigned {
    text-align: center;
    box-sizing: border-box; /* Include padding and borders in width calculations */
    white-space: nowrap; /* Prevent text wrapping inside buttons */
    font-size: clamp(12px, 1.5vw, 16px); /* Dynamically adjust font size */
}

.link-color:hover {
    color: white !important;
}