/* Global site styles */

/* #region Common tag styles */
html {
    scroll-behavior: auto !important;
    background-color: var(--fill-page-bg);
}

body {
    font-family: Inter;
    background-color: var(--fill-page-bg);
    color: var(--text-body);
    font-size: .875rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.25rem;
    overflow-x: hidden;
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
}

    body.hide-overflow {
        overflow: hidden;
    }

h3 {
    color: var(--text-heading-main);
    text-align: center;
    font-size: 2rem;
    font-style: normal;
    font-weight: 700;
    line-height: 2.5rem;
    letter-spacing: -0.04rem;
}

h4 {
    color: var(--text-heading-sub);
    text-align: center;
    font-size: 1.75rem;
    font-style: normal;
    font-weight: 700;
    line-height: 2.25rem;
    letter-spacing: -0.035rem;
}

h5 {
    color: var(--text-heading-main);
    text-align: center;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 800;
    line-height: 2rem;
    letter-spacing: -.001875rem;
}

img {
    object-fit: cover;
}

a {
    color: var(--text-link-primary);
    text-decoration: none;
}

    a:hover {
        color: var(--text-link-primary);
        text-decoration: underline;
    }

/* Mobile Styles*/
@media (max-width: 36rem) {
    html, body {
        background-color: var(--fill-white);
    }

    h3 {
        font-size: 1.75rem;
        font-style: normal;
        line-height: 2.25rem;
        letter-spacing: -0.035rem;
    }

    h4 {
        font-size: 1.5rem;
        line-height: 2rem;
        letter-spacing: -0.03rem;
    }

    h5 {
        font-size: 1.25rem;
        line-height: 1.75rem;
        letter-spacing: -.025rem;
    }
}

/* #endregion */

/* #region Basic Page Layout styles */
/* page layout for breadcrumb and page title
    Feature Search, ExpertHelp, CFR, Compare, Glossary, FAQ, Topic Summary, Fed Laws & Regulations, Topics
*/
.container-md:has(.page) {
    /*this negates the container-md breakpoints which we should probably only have on the landing page instead of all pages. */
    max-width: 100%;
}

.page {
}

    .page .bread-crumb {
        padding: 1.5rem 0 .75rem;
        margin-left: 6.25rem;
    }

    .page .header {
        background-color: var(--fill-section);
        width: 100vw;
        position: relative;
        left: calc(-1*(100vw - 100%) / 2);
        padding: 1.25rem 1rem 1.75rem 1rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        margin-bottom: 2rem;
    }

    .page h2 {
        color: var(--text-heading-main);
        font-size: var(--rh-font-36);
        font-style: normal;
        font-weight: 800;
        line-height: 2.75rem;
        letter-spacing: -0.72px;
        margin-bottom: 0;
        text-align: center;
    }

    .page .main-container:not(.exclude-from-main-container-width) {
        display: flex;
        flex-flow: column;
        align-items: center;
    }

    .page .main-container > *:not(.exclude-from-main-container-width) {
        max-width: 50rem;
    }
/* When the extra left margin of the bread crumb puts it right of a 50rem content, it will move left with the content margin */
@media (max-width: 66rem) {
    .page .bread-crumb {
        display: flex;
        flex-flow: column;
        align-items: center;
        margin-left: unset;
    }

        .page .bread-crumb * {
            max-width: 50rem;
            width: 100%;
        }
}

@media (max-width: 36rem) {
    .page .bread-crumb {
        padding: 1.25rem 0;
        margin-left: 0.5rem;
    }

    .page .header {
        padding: 1.25rem 1rem;
        margin-bottom: var(--size-spacing-lg);
    }

    .page h2 {
        font-size: var(--rh-font-32);
        line-height: var(--rh-font-40);
    }
}

/* #endregion */

/* #region Button styles */
button {
    border: unset;
    width: fit-content;
}

.icon-button-primary {
    background-repeat: no-repeat;
    background-color: var(--fill-primary);
    background-position: center;
    color: var(--primary-lighter);
    border-radius: 0.375rem;
    display: flex;
    height: 3rem;
    width: 3rem;
    padding: 1rem;
    justify-content: center;
    align-items: center;
    margin: 0.5rem;
}

    .icon-button-primary:hover {
        background-color: var(--primary-dark);
        box-shadow: 0rem .125rem .25rem -.063rem rgba(0, 0, 0, 0.06), 0rem .25rem .375rem -.063rem rgba(0, 0, 0, 0.08);
    }

    .icon-button-primary:active {
        background-color: var(--primary-active);
        box-shadow: 0rem .125rem .375rem -.125rem rgba(0, 0, 0, 0.06), 0rem .5rem .75rem -.125rem rgba(0, 0, 0, 0.08);
    }

    .icon-button-primary:disabled {
        background-color: var(--blue-disabled);
    }

    .icon-button-primary:focus {
        outline-style: none;
        outline: var(--primary-disabled) solid var(--size-spacing-xxxs);
    }

.button-primary {
    color: var(--white);
    border-radius: 0.375rem;
    background-color: var(--fill-primary);
    padding: 0.75rem 1rem;
    font-size: 1rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5rem;
    letter-spacing: 0.047rem;
    border: none;
}

    .button-primary:hover {
        background-color: var(--primary-dark);
        box-shadow: 0rem .125rem .25rem -.063rem rgba(0, 0, 0, 0.06), 0rem .25rem .375rem -.063rem rgba(0, 0, 0, 0.08);
    }

    .button-primary:active {
        background-color: var(--primary-active);
        box-shadow: 0rem .125rem .375rem -.125rem rgba(0, 0, 0, 0.06), 0rem .5rem .75rem -.125rem rgba(0, 0, 0, 0.08);
    }

    .button-primary:disabled {
        color: var(--primary-lighter);
        background-color: var(--blue-disabled);
    }

    .button-primary:focus {
        outline-style: none;
        outline: var(--primary-disabled) solid var(--size-spacing-xxxs);
    }

.button-secondary {
    color: var(--text-label-primary2);
    border-radius: 0.375rem;
    background: var(--fill-primary-lighter);
    padding: 0.75rem 1rem;
    font-size: 1.125rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5rem;
    letter-spacing: 0.047rem;
}

    .button-secondary:hover {
        background: var(--fill-primary-light);
        color: var(--text-label-primary2);
        box-shadow: 0rem .125rem .25rem -.063rem rgba(0, 0, 0, 0.06), 0rem .25rem .375rem -.063rem rgba(0, 0, 0, 0.08);
    }

    .button-secondary:active {
        background: var(--primary-active);
        color: var(--primary-darker);
        box-shadow: 0rem .125rem .375rem -.125rem rgba(0, 0, 0, 0.06), 0rem .5rem .75rem -.125rem rgba(0, 0, 0, 0.08);
    }

    .button-secondary:disabled {
        background: var(--fill-primary-lighter);
        color: var(--primary-disabled);
    }

    .button-secondary:focus {
        background: var(--fill-primary-lighter);
        color: var(--primary);
        outline-style: none;
        outline: var(--primary-disabled) solid var(--size-spacing-xxxs);
    }

.button-link {
    color: var(--text-link-primary);
    font-size: .875rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1rem;
    letter-spacing: 0.047rem;
    border-radius: var(--size-spacing-xxs);
    background-color: transparent;
    padding: 0.75rem 1rem;
    border: none;
}

    .button-link:hover, .button-link:active, .button-link:focus {
        text-decoration-line: underline;
        line-height: 1.125rem;
        text-shadow: 0 .0625rem .1875rem rgba(0, 0, 0, 0.08), 0 .0625rem .125rem rgba(0, 0, 0, 0.04);
        outline-style: none;
    }

    .button-link:disabled {
        color: var(--primary-lighter);
    }

    .button-link.blue {
        color: var(--white);
        background-color: var(--fill-primary);
    }

        .button-link.blue:hover, .button-link.blue:active {
            text-decoration: none;
            background-color: var(--primary-dark);
            box-shadow: 0rem .125rem .25rem -.063rem rgba(0, 0, 0, 0.06), 0rem .25rem .375rem -.063rem rgba(0, 0, 0, 0.08);
        }

        .button-link.blue:focus {
            text-decoration: none;
            background-color: var(--primary-dark);
            outline-style: none;
            outline: var(--primary-disabled) solid var(--size-spacing-xxxs);
        }

        .button-link.blue:disabled {
            color: var(--primary-lighter);
            background-color: var(--blue-disabled);
        }

.button-outline {
    padding: .75rem 1rem;
    border-radius: .375rem;
    border: .0625rem solid var(--stroke-primary);
    color: var(--stroke-primary);
    background-color: unset;
    font-size: 1rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5rem;
}

    .button-outline:hover {
        color: var(--stroke-primary-dark);
        border: .0625rem solid var(--stroke-primary-dark);
    }

    .button-outline:active {
        color: var(--primary-active);
        border: .0625rem solid var(--primary-active);
    }

    .button-outline:disabled {
        color: var(--primary-disabled);
        border: .0625rem solid var(--primary-disabled);
    }

    .button-outline:focus {
        outline-style: none;
        outline: var(--stroke-primary) solid var(--size-spacing-xxxs);
    }

.button-large {
    padding: 1rem 1.5rem;
    border-radius: .375rem;
    font-size: 1.125rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5rem;
    letter-spacing: 0.04688rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--size-spacing-xs);
}

.button-medium {
    padding: .75rem 1rem;
    border-radius: .375rem;
    font-size: 1rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.5rem;
    letter-spacing: 0.04688rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--size-spacing-xs);
}

.button-small {
    padding: .75rem 1rem;
    border-radius: .375rem;
    font-size: .75rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1rem;
    letter-spacing: 0.04688rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--size-spacing-xs);
}

.button-xsmall {
    padding: .5rem .75rem;
    border-radius: .375rem;
    font-size: .75rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1rem;
    letter-spacing: 0.04688rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: var(--size-spacing-xs);
}

.clear-all {
    color: var(--text-label-primary2);
    background-color: unset;
    border-radius: var(--border-radius-xs);
    border: 0.0625rem solid var(--stroke-primary);
}

    .clear-all:hover {
        box-shadow: 0rem .25rem .25rem 0rem rgba(0, 0, 0, 0.25);
        background: var(--fill-primary-lighter, #EEF0FD);
    }

    .clear-all:disabled {
        color: var(--blue-disabled);
        border: 0.0625rem solid var(--blue-disabled);
    }

        .clear-all:disabled:hover {
            color: var(--blue-disabled);
            border: 0.0625rem solid var(--blue-disabled);
            box-shadow: none;
            background-color: unset;
        }

/* #endregion */

/* #region Print Content styles */
.print-content {
    display: none !important;
    pointer-events: none;
    cursor: default;
}

/* #endregion */

/* #region Compare States/Provinces Result Page styles */

/* H2 headers inside quickref should be outside scroll container - keep them visible */
.topic-body h2 {
    text-align: left;
    position: static; /* Don't make it sticky - it should be above the scroll container */
    left: auto;
    z-index: auto;
    background: inherit;
    margin-bottom: 1rem;
    margin-top: 1rem;
}

/* Container for cross-reference tables - 1200px width, 700px height */
.quickref {
    width: 100%;
    max-width: 1200px;
    max-height: 700px;
    overflow-y: auto; /* Vertical scroll */
    overflow-x: auto; /* Horizontal scroll for very wide content */
    position: relative;
    margin: 0 auto;
    border: 1px solid var(--stroke-form, #C3CCD6);
}

    .quickref::-webkit-scrollbar {
        height: 0.5rem;
        width: 0.5rem;
    }

    .quickref::-webkit-scrollbar-thumb {
        border-radius: 0.5rem;
        background-color: var(--blue-default);
    }

    .quickref::-webkit-scrollbar-track {
        border-radius: 0.5rem;
        background-color: #D1D5DB;
    }

/* H2 inside quickref should NOT be sticky - scroll starts from column headers */
.quickref h2 {
    position: static !important;
    z-index: auto !important;
    background: inherit !important;
    padding: 0.5rem 0 !important;
    margin: 0 0 0.5rem 0 !important;
    text-align: left !important;
    border-bottom: none !important;
    left: auto !important;
    width: auto !important;
}

/* Sticky header row */
.quickref > div.columnlisting {
    display: table-row;
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--fill-section, #EFF2F5);
}

    .quickref > div.columnlisting > div {
        display: table-cell;
        font-weight: 600;
        padding: 10px 12px;
        border: 1px solid var(--stroke-form, #C3CCD6);
        background: var(--fill-section, #EFF2F5);
        color: var(--text-heading-main);
        vertical-align: middle;
        white-space: normal;
        word-wrap: break-word;
    }

/* Table structure using divs styled as table */
.quickref > div:not(.columnlisting) {
    display: table-row;
}

    .quickref > div:not(.columnlisting) > div {
        display: table-cell;
        padding: 6px 12px;
        border: 1px solid var(--stroke-form, #C3CCD6);
        vertical-align: top;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }

/* Alternating row colors */
.quickref > div.odd {
    background: #FFF;
}

.quickref > div.even {
    background: var(--fill-section, #EFF2F5);
}

.quickref > div.compare-state-hidden {
    display: none !important;
}

/* First column sticky for horizontal scroll */
.quickref .sticky-column {
    position: sticky;
    left: 0;
    z-index: 10;
    background: inherit;
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.05);
}

.quickref .columnlisting .sticky-column {
    z-index: 101; /* Higher z-index for header first column */
}

/* Hide any table borders on wrapper divs */
.topic-body > div > table {
    border: 0px;
    width: 100%;
}

.topic-body > div > div > table {
    border: 0px;
    width: 100%;
}

/* Table cell styling */
.topic-body td {
    border-width: 1px;
    padding: 6px 12px;
    min-height: 32px;
    vertical-align: top;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.topic-body tr {
    background: var(--fill-section, #EFF2F5);
    min-height: 32px;
}

    .topic-body tr.odd {
        background: #FFF !important;
    }

    .topic-body tr.even {
        background: var(--fill-section, #EFF2F5) !important;
    }

    .topic-body tr.compare-state-hidden {
        display: none !important;
    }

/* HTML table support (if backend generates actual tables) */
.quickref table {
    width: 100%;
    max-width: 1200px;
    border-collapse: collapse;
    table-layout: fixed;
}

    .quickref table thead {
        position: sticky;
        top: 0;
        z-index: 100;
        background: var(--fill-section, #EFF2F5);
    }

    .quickref table th {
        font-weight: 600;
        padding: 10px 12px;
        border: 1px solid var(--stroke-form, #C3CCD6);
        background: var(--fill-section, #EFF2F5);
        color: var(--text-heading-main);
        text-align: left;
        vertical-align: middle;
        position: sticky;
        top: 0;
    }

    .quickref table td {
        padding: 6px 12px;
        border: 1px solid var(--stroke-form, #C3CCD6);
        vertical-align: top;
        word-wrap: break-word;
    }

    .quickref table tbody tr:nth-child(odd) {
        background: #FFF;
    }

    .quickref table tbody tr:nth-child(even) {
        background: var(--fill-section, #EFF2F5);
    }

    /* First column sticky in HTML tables */
    .quickref table th:first-child,
    .quickref table td:first-child {
        position: sticky;
        left: 0;
        z-index: 10;
        background: inherit;
    }

    .quickref table thead th:first-child {
        z-index: 101;
    }

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    .quickref {
        max-width: 100%;
    }
    
    .quickref > div.columnlisting > div,
    .quickref > div:not(.columnlisting) > div {
        font-size: 0.8rem;
        padding: 8px 6px;
    }
}
/* #endregion */

span.keyword {
    color: var(--text-label-keyword);
}

span.highlight {
    color: rgba(63, 78, 196, 1);
}
