:root {
    --cr-primary: #0f172a;
    --cr-accent: #17466f;
    --cr-accent-hover: #123858;
    --cr-success: #2f6f4e;
    --cr-bg: #f3f5f4;
    --cr-surface: #ffffff;
    --cr-surface-alt: #f7f8f6;
    --cr-surface-soft: #eef2f4;
    --cr-text: #334155;
    --cr-muted: #64748b;
    --cr-muted-light: #94a3b8;
    --cr-border: #d9e1e6;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background-color: var(--cr-bg);
    color: var(--cr-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

.cr-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 25px;
}

.cr-header {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background: rgba(0, 0, 0, 0.10);
    border-bottom: 0;
    padding: 20px 0;
}

.cr-logo {
    font-size: 26px;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -1px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.cr-logo span {
    color: var(--cr-accent);
}

.cr-footer .cr-logo {
    color: var(--cr-primary);
    text-shadow: none;
}

.cr-hero {
    position: relative;
    background-image:
        linear-gradient(to bottom, rgba(18, 16, 13, 0.60), rgba(18, 16, 13, 0.74)),
        url('/assets/img/court-house.jpg');
    background-size: cover;
    background-position: center 20%;
    color: #ffffff;
    padding: 135px 0 60px;
    text-align: left;
    overflow: hidden;
}

.cr-hero .cr-container {
    max-width: 1100px;
    padding: 0 20px;
}

.cr-hero-kicker {
    display: block;
    color: #c7c3bd;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin-bottom: 8px;
}

.cr-hero-title {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 2.85rem;
    font-weight: 780;
    line-height: 1.05;
    letter-spacing: -1.2px;
    margin-bottom: 14px;
    color: #ffffff;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.52);
}

.cr-hero-subtitle {
    max-width: 680px;
    color: #e7e5e4;
    font-size: 1.08rem;
    line-height: 1.55;
    margin-bottom: 24px;
}

.cr-hero-note {
    max-width: 610px;
    background: rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(4px);
    border-left: 4px solid rgba(255, 255, 255, 0.24);
    color: #e7e5e4;
    font-size: 0.9rem;
    line-height: 1.45;
    padding: 12px 18px;
    margin-top: 22px;
    margin-bottom: 0;
}

.cr-hero-tags-title {
    display: inline-block;
    color: #b9b3aa;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    margin: 0 16px 32px 0;
    vertical-align: middle;
}

.cr-hero-tags {
    list-style: none;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 16px;
    margin: 0 0 32px;
    padding: 0;
    vertical-align: middle;
    white-space: nowrap;
}

.cr-hero-tags li {
    color: #d6d3d1;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    white-space: nowrap;
    padding: 0;
}

.cr-search-panel {
    background: rgba(8, 7, 6, 0.72);
    border: none;
    padding: 25px;
    border-radius: 0;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(2px);
}

.cr-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.cr-form-field {
    flex: 1;
    min-width: 200px;
}

.cr-form-field label {
    display: block;
    color: #d6d3d1;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.cr-form-field input,
.cr-form-field select {
    width: 100%;
    background: rgba(250, 250, 249, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 0;
    color: var(--cr-primary);
    font-size: 15px;
    padding: 12px;
}

.cr-search-button {
    align-self: flex-end;
    height: 47px;
    background: var(--cr-accent);
    border: none;
    border-radius: 0;
    color: #ffffff;
    cursor: pointer;
    font-size: 15px;
    font-weight: 700;
    padding: 0 35px;
    transition: background 0.2s;
}

.cr-search-button:hover {
    background: var(--cr-accent-hover);
}

.cr-search-trust {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding-top: 0;
}

.cr-search-lock {
    font-size: 12px;
    filter: grayscale(1);
    opacity: 0.7;
}

.cr-search-trust-text {
    color: #d6d3d1;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.2px;
}

.cr-main-content {
    padding: 0;
}

.cr-main-content > .cr-container {
    max-width: none;
    padding: 0;
}

.cr-info-card {
    background: var(--cr-surface);
    border: 0;
    border-radius: 0;
    padding: 72px max(25px, calc((100vw - 1200px) / 2 + 25px));
    margin-bottom: 0;
}

.cr-info-card:nth-child(even) {
    background: var(--cr-surface-alt);
}

.cr-info-card:nth-child(3n) {
    background: var(--cr-surface-soft);
}

.cr-section-title {
    position: relative;
    color: var(--cr-primary);
    font-size: 2rem;
    margin-bottom: 35px;
    padding-bottom: 10px;
}

.cr-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 4px;
    background: var(--cr-accent);
}

.cr-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.cr-grid-item h3,
.cr-grid-item h4 {
    color: var(--cr-accent);
    margin-bottom: 10px;
}

.cr-check-list {
    list-style: none;
}

.cr-check-list li {
    position: relative;
    border-bottom: 1px dashed var(--cr-border);
    padding: 12px 0 12px 35px;
}

.cr-check-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--cr-success);
    font-weight: 900;
}

.cr-table-wrapper {
    overflow-x: auto;
    background: var(--cr-surface);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
}

.cr-table-wrapper-spaced {
    margin-top: 30px;
}

.cr-full-table {
    width: 100%;
    border-collapse: collapse;
}

.cr-full-table th,
.cr-full-table td {
    padding: 20px;
    text-align: left;
    border-bottom: 1px solid var(--cr-border);
}

.cr-full-table th {
    background: rgba(255, 255, 255, 0.62);
    color: var(--cr-primary);
    font-weight: 700;
}

.cr-content-block {
    margin-bottom: 60px;
}

.cr-faq-item {
    background: var(--cr-surface);
    border: 1px solid var(--cr-border);
    border-left: 5px solid var(--cr-accent);
    border-radius: 4px;
    padding: 25px;
    margin-bottom: 15px;
}

.cr-faq-item h4 {
    color: var(--cr-primary);
    margin-bottom: 8px;
}

.cr-footer {
    background: var(--cr-surface);
    border-top: 1px solid var(--cr-border);
    padding: 80px 0 40px;
}

.cr-footer-top {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 30px;
    margin-bottom: 50px;
}

.cr-footer-nav a {
    color: var(--cr-text);
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    margin-left: 25px;
}

.cr-disclaimer {
    border-top: 1px solid var(--cr-border);
    color: var(--cr-muted);
    font-size: 0.85rem;
    line-height: 1.8;
    padding-top: 30px;
}

@media (max-width: 900px) {
    .cr-footer-top {
        flex-direction: column;
        text-align: center;
    }

    .cr-footer-nav a {
        display: inline-block;
        margin: 5px 10px;
    }
}

@media (max-width: 768px) {
    .cr-hero {
        padding: 115px 0 45px;
    }

    .cr-hero-title {
        font-size: 2.2rem;
    }

    .cr-hero-tags-title {
        display: block;
        margin: 0 0 8px;
    }

    .cr-hero-tags {
        display: flex;
        flex-wrap: wrap;
        white-space: normal;
    }

    .cr-search-button {
        width: 100%;
    }

    .cr-info-card {
        padding: 48px 22px;
    }

    .cr-section-title {
        font-size: 1.6rem;
    }
}


/* Expanded content sections */
.cr-section-head {
    margin-bottom: 28px;
}

.cr-section-head .cr-section-title {
    margin-bottom: 14px;
}

.cr-section-head > p:not(.cr-section-kicker) {
    max-width: 760px;
    color: var(--cr-muted);
    font-size: 1rem;
}

.cr-section-kicker {
    color: var(--cr-accent);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.cr-compact-card {
    padding: 30px 40px;
}

.cr-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.cr-meta-grid div {
    background: rgba(255, 255, 255, 0.62);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
    padding: 18px;
}

.cr-meta-grid span {
    display: block;
    color: var(--cr-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.cr-meta-grid strong {
    color: var(--cr-primary);
    font-size: 1.05rem;
}

.cr-route-grid,
.cr-record-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
}

.cr-route-card,
.cr-record-card {
    background: rgba(255, 255, 255, 0.62);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
    padding: 24px;
}

.cr-route-label {
    color: var(--cr-accent);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 10px;
}

.cr-route-card h3,
.cr-record-card h3 {
    color: var(--cr-primary);
    font-size: 1.08rem;
    line-height: 1.35;
    margin-bottom: 12px;
}

.cr-route-card p,
.cr-record-card p,
.cr-record-card dd {
    color: var(--cr-text);
    font-size: 0.96rem;
}

.cr-source-table {
    min-width: 980px;
    font-size: 0.92rem;
}

.cr-source-table th,
.cr-source-table td {
    vertical-align: top;
}

.cr-two-column-list {
    column-count: 2;
    column-gap: 40px;
}

.cr-two-column-list li {
    break-inside: avoid;
}

.cr-record-card dl {
    margin-top: 18px;
}

.cr-record-card dt {
    color: var(--cr-accent);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-top: 16px;
    margin-bottom: 4px;
}

.cr-record-card dd {
    margin: 0;
}

.cr-note-card {
    background: rgba(255, 255, 255, 0.62);
    border-left: 5px solid var(--cr-accent);
}

.cr-note-text {
    color: var(--cr-text);
    font-size: 1.02rem;
    max-width: 960px;
}

.cr-faq-list {
    display: grid;
    gap: 15px;
}

.cr-faq-item {
    cursor: pointer;
}

.cr-faq-item summary {
    color: var(--cr-primary);
    font-weight: 800;
    list-style-position: outside;
}

.cr-faq-item p {
    margin-top: 12px;
}

@media (max-width: 768px) {
    .cr-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cr-two-column-list {
        column-count: 1;
    }

    .cr-route-card,
    .cr-record-card {
        padding: 20px;
    }
}

@media (max-width: 520px) {
    .cr-meta-grid {
        grid-template-columns: 1fr;
    }
}


/* V16 section rhythm and calmer institutional styling */
.cr-section-title::after {
    background: var(--cr-accent);
}

.cr-grid-item h3,
.cr-grid-item h4,
.cr-section-kicker,
.cr-route-label,
.cr-record-card dt {
    color: var(--cr-accent);
}

.cr-search-button {
    background: var(--cr-accent);
}

.cr-search-button:hover {
    background: var(--cr-accent-hover);
}

.cr-logo span {
    color: #4f86b7;
}

.cr-footer .cr-logo span {
    color: var(--cr-accent);
}

.cr-compact-card {
    padding-top: 56px;
    padding-bottom: 56px;
}

.cr-route-card,
.cr-record-card,
.cr-grid-item,
.cr-meta-grid div,
.cr-table-wrapper {
    border-radius: 4px;
}

.cr-route-card,
.cr-record-card,
.cr-meta-grid div {
    background: rgba(255, 255, 255, 0.66);
    border-color: rgba(23, 70, 111, 0.16);
}

.cr-info-card:nth-child(even) .cr-route-card,
.cr-info-card:nth-child(even) .cr-record-card,
.cr-info-card:nth-child(even) .cr-meta-grid div {
    background: rgba(255, 255, 255, 0.78);
}

.cr-table-wrapper {
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(23, 70, 111, 0.14);
}

.cr-full-table th {
    background: rgba(23, 70, 111, 0.075);
}

.cr-check-list li::before {
    color: var(--cr-success);
}

.cr-note-card {
    border-left: 0;
}

/* Modern details accordion */
.cr-faq-list {
    display: grid;
    gap: 10px;
}

.cr-faq-item {
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(23, 70, 111, 0.16);
    border-left: 0;
    border-radius: 4px;
    padding: 0;
    margin-bottom: 0;
    overflow: hidden;
    cursor: default;
}

.cr-faq-item[open] {
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.cr-faq-item summary {
    position: relative;
    display: block;
    list-style: none;
    cursor: pointer;
    color: var(--cr-primary);
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.45;
    padding: 20px 56px 20px 22px;
}

.cr-faq-item summary::-webkit-details-marker {
    display: none;
}

.cr-faq-item summary::after {
    content: '+';
    position: absolute;
    right: 22px;
    top: 50%;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(23, 70, 111, 0.24);
    border-radius: 50%;
    color: var(--cr-accent);
    font-size: 18px;
    line-height: 21px;
    text-align: center;
    transform: translateY(-50%);
}

.cr-faq-item[open] summary {
    border-bottom: 1px solid rgba(23, 70, 111, 0.12);
}

.cr-faq-item[open] summary::after {
    content: '–';
    line-height: 20px;
}

.cr-faq-item p {
    margin: 0;
    padding: 18px 22px 22px;
    color: var(--cr-text);
}

@media (max-width: 768px) {
    .cr-compact-card {
        padding-top: 44px;
        padding-bottom: 44px;
    }

    .cr-faq-item summary {
        padding: 18px 50px 18px 18px;
    }

    .cr-faq-item summary::after {
        right: 18px;
    }
}

/* V17 fixes: two-section backgrounds, matching title underline, compact Location Meta */
:root {
    --cr-surface-alt: var(--cr-surface-soft);
}

.cr-info-card,
.cr-info-card:nth-child(even),
.cr-info-card:nth-child(3n) {
    background: var(--cr-surface);
}

.cr-info-card:nth-child(2n+3) {
    background: var(--cr-surface-soft);
}

.cr-info-card:first-child {
    background: var(--cr-surface);
}

.cr-section-title::after {
    background: var(--cr-accent);
}

.cr-compact-card {
    padding-top: 42px;
    padding-bottom: 42px;
}

.cr-compact-card .cr-section-head,
.cr-compact-card .cr-meta-grid {
    max-width: 760px;
}

.cr-compact-card .cr-section-head {
    margin-bottom: 22px;
}

.cr-compact-card .cr-meta-grid {
    grid-template-columns: repeat(4, minmax(120px, 1fr));
}

.cr-compact-card .cr-meta-grid div {
    padding: 16px 18px;
}

@media (max-width: 768px) {
    .cr-compact-card .cr-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .cr-compact-card .cr-meta-grid {
        grid-template-columns: 1fr;
    }
}

/* V18 fixes: center compact Location Meta and force title underline to match the search button */
:root {
    --cr-action-blue: #17466f;
    --cr-action-blue-hover: #123858;
}

.cr-search-button {
    background: var(--cr-action-blue);
}

.cr-search-button:hover {
    background: var(--cr-action-blue-hover);
}

.cr-section-title::after {
    background: var(--cr-action-blue) !important;
}

.cr-compact-card .cr-section-head,
.cr-compact-card .cr-meta-grid {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.cr-compact-card .cr-section-head {
    text-align: left;
}

/* V19 fixes: strict two-color alternation and left-aligned compact Location Meta */
.cr-info-card,
.cr-info-card:nth-child(even),
.cr-info-card:nth-child(odd),
.cr-info-card:nth-child(2n+3),
.cr-info-card:nth-child(3n),
.cr-info-card:first-child {
    background: var(--cr-surface);
}

.cr-info-card:nth-child(odd) {
    background: var(--cr-surface-soft);
}

.cr-info-card:nth-child(even) {
    background: var(--cr-surface);
}

.cr-compact-card .cr-section-head,
.cr-compact-card .cr-meta-grid {
    margin-left: 0;
    margin-right: 0;
}

.cr-compact-card .cr-section-head {
    max-width: none;
}

.cr-compact-card .cr-meta-grid {
    max-width: 760px;
}

.cr-section-title::after {
    background: var(--cr-action-blue) !important;
}

/* V20 fix: keep Location Meta title in the common grid, but center the compact meta cards */
.cr-compact-card .cr-section-head {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.cr-compact-card .cr-meta-grid {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 900px) {
    .cr-compact-card .cr-meta-grid {
        max-width: none;
    }
}

/* V21 fix: Location Meta uses the same common section grid as all other sections */
.cr-compact-card {
    padding: 72px max(25px, calc((100vw - 1200px) / 2 + 25px));
}

.cr-compact-card .cr-section-head,
.cr-compact-card .cr-meta-grid {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.cr-compact-card .cr-meta-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cr-compact-card .cr-meta-grid div {
    padding: 18px;
}

@media (max-width: 768px) {
    .cr-compact-card {
        padding: 48px 20px;
    }

    .cr-compact-card .cr-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .cr-compact-card .cr-meta-grid {
        grid-template-columns: 1fr;
    }
}

/* V23: switch Local Source Map to cards earlier to avoid mid-size horizontal scroll */
@media (max-width: 1080px) {
    .cr-source-table-wrap {
        overflow: visible;
        background: transparent;
        border: 0;
    }

    .cr-source-table {
        display: block;
        width: 100%;
        min-width: 0;
        border-collapse: separate;
        border-spacing: 0;
        font-size: 0.94rem;
    }

    .cr-source-table thead {
        display: none;
    }

    .cr-source-table tbody {
        display: grid;
        gap: 14px;
    }

    .cr-source-table tr {
        display: block;
        background: rgba(255, 255, 255, 0.78);
        border: 1px solid rgba(23, 70, 111, 0.14);
        border-radius: 4px;
        padding: 16px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.045);
    }

    .cr-source-table td {
        display: grid;
        grid-template-columns: minmax(108px, 34%) 1fr;
        gap: 12px;
        align-items: start;
        padding: 10px 0;
        border-bottom: 1px solid rgba(23, 70, 111, 0.10);
        text-align: left;
    }

    .cr-source-table td::before {
        content: attr(data-label);
        color: var(--cr-accent);
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        line-height: 1.35;
        text-transform: uppercase;
    }

    .cr-source-table td:first-child {
        display: block;
        padding-top: 0;
    }

    .cr-source-table td:first-child::before {
        display: none;
    }

    .cr-source-table td:first-child strong {
        display: block;
        color: var(--cr-primary);
        font-size: 1.04rem;
        line-height: 1.35;
    }

    .cr-source-table td:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }
}

@media (max-width: 430px) {
    .cr-source-table tr {
        padding: 15px;
    }

    .cr-source-table td {
        display: block;
        padding: 11px 0;
    }

    .cr-source-table td::before {
        display: block;
        margin-bottom: 4px;
    }
}

/* V24: visually separate Request Path and Access Limits without changing content */
.cr-step-list,
.cr-limit-list {
    list-style: none;
}

.cr-step-list {
    counter-reset: request-step;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}

.cr-step-list li {
    counter-increment: request-step;
    position: relative;
    min-height: 118px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(23, 70, 111, 0.14);
    border-radius: 4px;
    padding: 20px 20px 20px 72px;
    color: var(--cr-text);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.04);
}

.cr-step-list li::before {
    content: counter(request-step, decimal-leading-zero);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    background: var(--cr-action-blue);
    color: #ffffff;
    border-radius: 4px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.cr-step-list li::after {
    content: '';
    position: absolute;
    left: 36px;
    top: 60px;
    bottom: 20px;
    width: 1px;
    background: rgba(23, 70, 111, 0.16);
}

.cr-limit-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 28px;
    max-width: 1040px;
}

.cr-limit-list li {
    position: relative;
    padding: 14px 0 14px 34px;
    border-bottom: 1px solid rgba(23, 70, 111, 0.14);
    color: var(--cr-text);
}

.cr-limit-list li::before {
    content: '!';
    position: absolute;
    top: 15px;
    left: 0;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border: 1px solid rgba(23, 70, 111, 0.26);
    border-radius: 50%;
    color: var(--cr-action-blue);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
}

@media (max-width: 768px) {
    .cr-step-list {
        grid-template-columns: 1fr;
    }

    .cr-step-list li {
        min-height: 0;
        padding: 18px 18px 18px 68px;
    }

    .cr-step-list li::before {
        top: 18px;
        left: 18px;
    }

    .cr-step-list li::after {
        top: 58px;
        bottom: 18px;
        left: 34px;
    }

    .cr-limit-list {
        grid-template-columns: 1fr;
        gap: 0;
    }
}


/* V25: refine Request Path cards and neutral Access Limits markers */
.cr-step-list {
    align-items: stretch;
    grid-auto-rows: 1fr;
}

.cr-step-list li {
    min-height: 148px;
    height: 100%;
    display: flex;
    align-items: flex-start;
    padding: 22px 22px 22px 74px;
}

.cr-step-list li::after {
    content: none;
}

.cr-limit-list li::before {
    content: '';
    top: 22px;
    width: 9px;
    height: 9px;
    border: none;
    border-radius: 50%;
    background: rgba(23, 70, 111, 0.58);
}

@media (max-width: 768px) {
    .cr-step-list {
        grid-auto-rows: auto;
    }

    .cr-step-list li {
        min-height: 0;
        height: auto;
        padding: 18px 18px 18px 68px;
    }

    .cr-limit-list li::before {
        top: 22px;
    }
}

/* V26: Request Path as a uniform process panel without numbering */
.cr-step-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    max-width: 980px;
    list-style: none;
    background: rgba(255, 255, 255, 0.68);
    border: 1px solid rgba(23, 70, 111, 0.14);
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.035);
}

.cr-step-list li {
    position: relative;
    min-height: 0;
    height: auto;
    display: block;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(23, 70, 111, 0.11);
    box-shadow: none;
    padding: 18px 22px 18px 52px;
    color: var(--cr-text);
}

.cr-step-list li:last-child {
    border-bottom: 0;
}

.cr-step-list li::before {
    content: '';
    position: absolute;
    top: 25px;
    left: 24px;
    width: 9px;
    height: 9px;
    background: var(--cr-action-blue);
    border-radius: 50%;
    opacity: 0.82;
}

.cr-step-list li::after {
    content: none;
}

@media (max-width: 768px) {
    .cr-step-list {
        width: 100%;
        max-width: none;
    }

    .cr-step-list li {
        width: 100%;
        min-height: 0;
        height: auto;
        padding: 16px 18px 16px 46px;
    }

    .cr-step-list li::before {
        top: 23px;
        left: 20px;
    }
}

/* V27: return Request Path to card layout with quieter step labels */
.cr-step-list {
    counter-reset: request-step;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    max-width: none;
    width: 100%;
    list-style: none;
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
    box-shadow: none;
    grid-auto-rows: 1fr;
}

.cr-step-list li {
    counter-increment: request-step;
    position: relative;
    width: auto;
    min-height: 148px;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 12px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(23, 70, 111, 0.14);
    border-radius: 4px;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.04);
    padding: 20px 22px 22px;
    color: var(--cr-text);
}

.cr-step-list li::before {
    content: 'Step ' counter(request-step, decimal-leading-zero);
    position: static;
    display: inline-flex;
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
    color: var(--cr-action-blue);
    opacity: 0.78;
    font-size: 0.68rem;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cr-step-list li::after {
    content: none;
}

@media (max-width: 768px) {
    .cr-step-list {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        width: 100%;
        max-width: none;
    }

    .cr-step-list li {
        width: 100%;
        min-height: 0;
        height: auto;
        padding: 18px 18px 20px;
    }
}

/* V28: keep Request Path cards equal height on mobile */
@media (max-width: 768px) {
    .cr-step-list {
        grid-template-columns: 1fr;
        grid-auto-rows: 1fr;
        align-items: stretch;
        width: 100%;
        max-width: none;
    }

    .cr-step-list li {
        width: 100%;
        min-height: 148px;
        height: 100%;
        padding: 18px 18px 20px;
    }
}


/* V29: dark footer with public-records disclaimer styling */
.cr-footer {
    background: #0f172a;
    border-top: 0;
    color: #e5edf5;
    padding: 74px 0 42px;
}

.cr-footer .cr-logo {
    color: #ffffff;
    text-shadow: none;
}

.cr-footer .cr-logo span {
    color: #7fa8c9;
}

.cr-footer-top {
    align-items: center;
    border-bottom: 1px solid rgba(226, 232, 240, 0.14);
    margin-bottom: 32px;
    padding-bottom: 28px;
}

.cr-footer-nav a {
    color: #cbd5e1;
    font-weight: 600;
    opacity: 0.88;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.cr-footer-nav a:hover {
    color: #ffffff;
    opacity: 1;
}

.cr-disclaimer {
    border-top: 0;
    color: #aebccd;
    font-size: 0.82rem;
    line-height: 1.75;
    max-width: 1020px;
    padding-top: 0;
}

.cr-disclaimer p {
    margin: 0 0 12px;
}

.cr-disclaimer p:last-child {
    color: #d9e3ee;
    margin-bottom: 0;
}

.cr-disclaimer strong {
    color: #ffffff;
}

@media (max-width: 900px) {
    .cr-footer {
        padding: 58px 0 34px;
    }

    .cr-footer-top {
        align-items: flex-start;
        text-align: left;
    }

    .cr-footer-nav a {
        margin: 0 16px 10px 0;
    }
}

/* V31: official external resource and internal linking sections after FAQ */
.cr-resource-block {
    max-width: 1040px;
}

.cr-resource-text {
    max-width: 760px;
    color: var(--cr-muted);
    font-size: 0.98rem;
    margin: 0 0 18px;
}

.cr-external-link-list {
    display: grid;
    gap: 12px;
}

.cr-external-link,
.cr-internal-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 56px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(23, 70, 111, 0.16);
    border-radius: 4px;
    color: var(--cr-primary);
    font-size: 0.98rem;
    font-weight: 750;
    line-height: 1.35;
    text-decoration: none;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.cr-external-link {
    max-width: 640px;
    padding: 16px 46px 16px 18px;
}

.cr-external-link::after,
.cr-internal-link::after {
    position: absolute;
    right: 18px;
    top: 50%;
    color: var(--cr-action-blue);
    font-size: 1rem;
    font-weight: 800;
    transform: translateY(-50%);
}

.cr-external-link::after {
    content: '↗';
}

.cr-internal-link::after {
    content: '→';
}

.cr-external-link:hover,
.cr-internal-link:hover {
    color: var(--cr-action-blue);
    border-color: rgba(23, 70, 111, 0.36);
    background: rgba(255, 255, 255, 0.88);
}

.cr-internal-link-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.cr-internal-link {
    width: 100%;
    padding: 16px 46px 16px 18px;
    text-transform: capitalize;
}

@media (max-width: 768px) {
    .cr-external-link {
        display: flex;
        max-width: none;
        width: 100%;
        min-height: 58px;
        padding-right: 44px;
    }

    .cr-internal-link-grid {
        grid-template-columns: 1fr;
    }

    .cr-internal-link {
        min-height: 58px;
    }
}



/* V34: simple one-line text TOC after hero */
.cr-toc-section {
    background: var(--cr-surface);
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    padding: 14px 0;
}

.cr-toc-shell {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.cr-toc-label {
    color: var(--cr-muted);
    font-size: 0.82rem;
    font-weight: 700;
    white-space: nowrap;
}

.cr-toc-links {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.cr-toc-links::-webkit-scrollbar {
    display: none;
}

.cr-toc-links a {
    display: inline-flex;
    align-items: center;
    color: var(--cr-action-blue);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
    white-space: nowrap;
}

.cr-toc-links a + a::before {
    content: "/";
    color: rgba(15, 23, 42, 0.28);
    font-weight: 500;
    margin: 0 10px;
}

.cr-toc-links a:hover,
.cr-toc-links a:focus-visible {
    color: var(--cr-accent-hover);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.cr-info-card[id] {
    scroll-margin-top: 18px;
}

@media (max-width: 768px) {
    .cr-toc-section {
        padding: 13px 0;
    }

    .cr-toc-shell {
        gap: 12px;
    }

    .cr-toc-label {
        font-size: 0.78rem;
    }

    .cr-toc-links a {
        font-size: 0.84rem;
    }

    .cr-toc-links a + a::before {
        margin: 0 8px;
    }
}

@media (max-width: 520px) {
    .cr-toc-shell {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .cr-toc-links {
        width: 100%;
    }
}


/* V35: two-line text TOC and compact back-to-top control */
html {
    scroll-behavior: smooth;
}

.cr-toc-section {
    padding: 16px 0 14px;
}

.cr-toc-shell {
    display: block;
}

.cr-toc-label {
    display: block;
    margin: 0 0 8px;
    color: var(--cr-muted);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.2;
}

.cr-toc-links {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 18px;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.cr-toc-links a {
    font-size: 0.88rem;
    font-weight: 600;
    white-space: nowrap;
}

.cr-toc-links a + a::before {
    content: none;
    margin: 0;
}

.cr-back-top {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 50;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(23, 70, 111, 0.28);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--cr-action-blue);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(8px);
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.cr-back-top:hover,
.cr-back-top:focus-visible {
    transform: translateY(-2px);
    background: #ffffff;
    border-color: rgba(23, 70, 111, 0.52);
    color: var(--cr-action-blue-hover);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.24);
}

@media (max-width: 768px) {
    .cr-toc-section {
        padding: 14px 0 12px;
    }

    .cr-toc-label {
        font-size: 0.78rem;
        margin-bottom: 7px;
    }

    .cr-toc-links {
        gap: 14px;
    }

    .cr-toc-links a {
        font-size: 0.83rem;
    }

    .cr-back-top {
        right: 14px;
        bottom: 14px;
        width: 38px;
        height: 38px;
        font-size: 0.98rem;
    }
}

@media (max-width: 520px) {
    .cr-toc-shell {
        display: block;
    }

    .cr-toc-links {
        width: 100%;
    }
}

/* V38: refined back-to-top control */
.cr-back-top {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(10px);
    width: 44px;
    height: 44px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(15, 23, 42, 0.86);
    color: #ffffff;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.24);
    backdrop-filter: blur(10px);
}

.cr-back-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.cr-back-top span {
    display: block;
    width: 12px;
    height: 12px;
    margin-top: 5px;
    font-size: 0;
    line-height: 0;
    border-top: 3px solid currentColor;
    border-left: 3px solid currentColor;
    transform: rotate(45deg);
}

.cr-back-top:hover,
.cr-back-top:focus-visible {
    transform: translateY(-2px);
    background: rgba(15, 23, 42, 0.96);
    border-color: rgba(255, 255, 255, 0.28);
    color: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.30);
}

@media (max-width: 768px) {
    .cr-back-top {
        width: 40px;
        height: 40px;
        border-radius: 9px;
    }

    .cr-back-top span {
        width: 11px;
        height: 11px;
        margin-top: 4px;
        border-top-width: 2.5px;
        border-left-width: 2.5px;
    }
}


/* V39: search form validation hints */
.cr-form-field {
    position: relative;
}

.cr-form-field input[aria-invalid="true"] {
    border-color: red;
    box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.22), 0 14px 30px rgba(15, 23, 42, 0.24);
}

.cr-field-error {
    display: none;
    width: fit-content;
    max-width: 100%;
    margin: 8px 0 0;
    padding: 6px 9px;
    background: red;
    color: #ffffff;
    font-size: 0.76rem;
    font-weight: 650;
    line-height: 1.25;
    border-radius: 3px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.20);
}

.cr-form-field.is-error .cr-field-error {
    display: block;
}

@media (max-width: 768px) {
    .cr-field-error {
        width: 100%;
    }
}

/* V41: automatic two-color rhythm for optional content sections
   If a section is omitted from the HTML, the remaining .cr-info-card sections
   automatically reflow: odd = soft background, even = white. */
.cr-main-content > .cr-container > section.cr-info-card {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:nth-of-type(even) {
    background: var(--cr-surface) !important;
}

/* V49: keep Search Now button stable when validation hints appear */
@media (min-width: 769px) {
    .cr-search-button {
        align-self: flex-start;
        margin-top: 27px;
    }
}

@media (max-width: 768px) {
    .cr-search-button {
        align-self: stretch;
        margin-top: 0;
    }
}

/* V51: page-specific classes for Minnesota criminal records content sections */
.cr-mn-section {
    position: relative;
}

.cr-mn-location-section .cr-meta-grid div {
    border-color: rgba(23, 70, 111, 0.16);
}

/* Record Scope: separate layout, not the shared check-list style */
.cr-mn-record-scope-section .cr-section-head {
    max-width: 860px;
}

.cr-mn-scope-list {
    counter-reset: mn-scope-item;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
    list-style: none;
}

.cr-mn-scope-list li {
    counter-increment: mn-scope-item;
    position: relative;
    min-height: 150px;
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(23, 70, 111, 0.15);
    border-radius: 4px;
    padding: 20px 20px 22px;
    color: var(--cr-text);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.035);
}

.cr-mn-scope-list li::before {
    content: "Scope " counter(mn-scope-item, decimal-leading-zero);
    display: block;
    color: var(--cr-action-blue);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 13px;
    opacity: 0.78;
}

.cr-mn-scope-list li::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--cr-action-blue);
    opacity: 0.72;
}

/* Best Starting Points: own class layer, visually aligned with the template cards */
.cr-mn-start-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.cr-mn-start-card {
    border-color: rgba(23, 70, 111, 0.16);
}

.cr-mn-start-label {
    color: var(--cr-action-blue);
}

/* Source Map: own class layer while preserving the existing responsive table behavior */
.cr-mn-source-table-wrap {
    border-color: rgba(23, 70, 111, 0.14);
}

.cr-mn-source-table th {
    color: var(--cr-primary);
}

/* Search Inputs: separate list class */
.cr-mn-search-inputs-list {
    list-style: none;
    column-count: 2;
    column-gap: 40px;
}

.cr-mn-search-inputs-list li {
    position: relative;
    break-inside: avoid;
    border-bottom: 1px dashed var(--cr-border);
    padding: 12px 0 12px 30px;
}

.cr-mn-search-inputs-list li::before {
    content: '';
    position: absolute;
    top: 22px;
    left: 0;
    width: 8px;
    height: 8px;
    background: rgba(23, 70, 111, 0.58);
    border-radius: 50%;
}

/* Verification Notes: separate, calmer verification rows */
.cr-mn-verification-section .cr-section-head {
    max-width: 850px;
}

.cr-mn-verification-list {
    display: grid;
    gap: 10px;
    max-width: 1000px;
    list-style: none;
}

.cr-mn-verification-list li {
    position: relative;
    background: rgba(255, 255, 255, 0.70);
    border: 1px solid rgba(23, 70, 111, 0.13);
    border-radius: 4px;
    padding: 16px 18px 16px 48px;
    color: var(--cr-text);
}

.cr-mn-verification-list li::before {
    content: '';
    position: absolute;
    top: 21px;
    left: 20px;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--cr-action-blue);
    border-right: 2px solid var(--cr-action-blue);
    transform: rotate(45deg);
    opacity: 0.72;
}

/* Official vs Background Check: own class layer */
.cr-mn-official-vs-section {
    border-left: 0;
}

.cr-mn-official-vs-text {
    max-width: 980px;
}

/* Request Path and Limits: own class layer, compatible with existing template style */
.cr-mn-request-steps {
    counter-reset: request-step;
}

.cr-mn-limits-list li::before {
    background: rgba(23, 70, 111, 0.58);
}

/* FAQ: own class layer */
.cr-mn-faq-list {
    gap: 10px;
}

.cr-mn-faq-item summary {
    color: var(--cr-primary);
}

@media (max-width: 768px) {
    .cr-mn-scope-list {
        grid-template-columns: 1fr;
    }

    .cr-mn-scope-list li {
        min-height: 0;
    }

    .cr-mn-search-inputs-list {
        column-count: 1;
    }

    .cr-mn-verification-list li {
        padding: 15px 16px 15px 44px;
    }

    .cr-mn-verification-list li::before {
        left: 18px;
    }
}


/* V52: page-specific classes for Dallas County background check content sections */
.cr-generated-section {
    position: relative;
}

.cr-location-meta-section .cr-meta-grid div {
    border-color: rgba(23, 70, 111, 0.16);
}

/* Background Check Scope: independent card-grid style for this page */
.cr-background-scope-section .cr-section-head {
    max-width: 860px;
}

.cr-background-scope-list {
    counter-reset: dallas-scope-item;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
    list-style: none;
}

.cr-background-scope-list li {
    counter-increment: dallas-scope-item;
    position: relative;
    min-height: 138px;
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(23, 70, 111, 0.15);
    border-radius: 4px;
    padding: 20px 20px 22px;
    color: var(--cr-text);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.035);
}

.cr-background-scope-list li::before {
    content: "Check " counter(dallas-scope-item, decimal-leading-zero);
    display: block;
    color: var(--cr-action-blue);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 13px;
    opacity: 0.78;
}

.cr-background-scope-list li::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--cr-action-blue);
    opacity: 0.72;
}

/* Best Starting Point: own class layer */
.cr-starting-point-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.cr-starting-point-card {
    border-color: rgba(23, 70, 111, 0.16);
}

.cr-starting-point-label {
    color: var(--cr-action-blue);
}

/* Official Source Map: own class layer while preserving responsive table behavior */
.cr-official-source-table-wrap {
    border-color: rgba(23, 70, 111, 0.14);
}

.cr-official-source-table th {
    color: var(--cr-primary);
}

/* Helpful Search Inputs: separate list class */
.cr-search-inputs-list-custom {
    list-style: none;
    column-count: 2;
    column-gap: 40px;
}

.cr-search-inputs-list-custom li {
    position: relative;
    break-inside: avoid;
    border-bottom: 1px dashed var(--cr-border);
    padding: 12px 0 12px 30px;
}

.cr-search-inputs-list-custom li::before {
    content: '';
    position: absolute;
    top: 22px;
    left: 0;
    width: 8px;
    height: 8px;
    background: rgba(23, 70, 111, 0.58);
    border-radius: 50%;
}

/* Use Case Routing: independent cards for Dallas background-check paths */
.cr-use-case-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
}

.cr-use-case-card {
    display: grid;
    gap: 16px;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(23, 70, 111, 0.14);
    border-radius: 4px;
    padding: 22px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.035);
}

.cr-use-case-card h3 {
    color: var(--cr-primary);
    font-size: 1.08rem;
    line-height: 1.35;
    margin: 0;
}

.cr-use-case-field {
    display: grid;
    gap: 5px;
}

.cr-use-case-field span {
    color: var(--cr-action-blue);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cr-use-case-field p {
    color: var(--cr-text);
    font-size: 0.95rem;
    line-height: 1.55;
}

/* Consent and Compliance: separate compact note rows */
.cr-compliance-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
    list-style: none;
}

.cr-compliance-list li {
    position: relative;
    background: rgba(255, 255, 255, 0.70);
    border: 1px solid rgba(23, 70, 111, 0.13);
    border-radius: 4px;
    padding: 16px 18px 16px 46px;
    color: var(--cr-text);
}

.cr-compliance-list li::before {
    content: '';
    position: absolute;
    top: 21px;
    left: 20px;
    width: 9px;
    height: 9px;
    border: 2px solid rgba(23, 70, 111, 0.58);
    border-radius: 50%;
}

/* Official vs Background Check: own class layer */
.cr-official-vs-services-section {
    border-left: 0;
}

.cr-official-vs-services-text {
    max-width: 980px;
}

/* Report Limits: separate list class compatible with the site language */
.cr-report-limits-list li::before {
    background: rgba(23, 70, 111, 0.58);
}

/* Next Steps: separate step class while retaining the template card behavior */
.cr-next-steps-list {
    counter-reset: request-step;
}

.cr-next-steps-list li::before {
    content: "Step " counter(request-step, decimal-leading-zero);
}

/* FAQ: own class layer */
.cr-generated-faq-list {
    gap: 10px;
}

.cr-generated-faq-item summary {
    color: var(--cr-primary);
}

@media (max-width: 768px) {
    .cr-background-scope-list {
        grid-template-columns: 1fr;
    }

    .cr-background-scope-list li {
        min-height: 0;
    }

    .cr-search-inputs-list-custom {
        column-count: 1;
    }

    .cr-use-case-grid,
    .cr-compliance-list {
        grid-template-columns: 1fr;
    }
}


/* Sponsored records search options: reusable index-page partner block */
.cr-partner-options-section {
    background: transparent;
}

.cr-partner-options-head {
    margin-bottom: 26px;
}

.cr-partner-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.cr-partner-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background: var(--cr-white);
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 4px;
    padding: 26px 24px 24px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.07);
}

.cr-partner-card-featured {
    border-color: rgba(23, 70, 111, 0.35);
}

.cr-partner-badge {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-bottom: 16px;
    padding: 5px 10px;
    background: var(--cr-action-blue);
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cr-partner-logo {
    margin-bottom: 12px;
    color: var(--cr-primary);
    font-size: 25px;
    font-weight: 850;
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.cr-partner-logo span {
    color: var(--cr-action-blue);
}

.cr-partner-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.cr-partner-stars {
    color: var(--cr-action-blue);
    font-size: 15px;
    letter-spacing: 0.03em;
    line-height: 1;
}

.cr-partner-rating-text {
    color: var(--cr-muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.cr-partner-desc {
    margin: 0 0 22px;
    color: var(--cr-text);
    font-size: 15px;
    line-height: 1.6;
}

.cr-partner-actions {
    margin-top: auto;
}

.cr-partner-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    padding: 12px 20px;
    background: var(--cr-action-blue);
    color: #ffffff;
    border: 1px solid var(--cr-action-blue);
    border-radius: 3px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.cr-partner-button:hover {
    background: var(--cr-action-blue-hover);
    border-color: var(--cr-action-blue-hover);
    transform: translateY(-1px);
}

@media (max-width: 900px) {
    .cr-partner-grid {
        grid-template-columns: 1fr;
    }
}

/* v59: lighter partner-card typography and aligned featured card */
.cr-partner-card {
    padding: 24px 22px 22px;
}

.cr-partner-card-featured {
    padding-top: 24px;
}

.cr-partner-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    margin-bottom: 0;
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.cr-partner-logo {
    max-width: calc(100% - 96px);
    margin-bottom: 10px;
    font-size: 20px;
    font-weight: 750;
    letter-spacing: -0.025em;
}

.cr-partner-rating {
    gap: 8px;
    margin-bottom: 12px;
}

.cr-partner-stars {
    font-size: 13px;
    letter-spacing: 0.01em;
}

.cr-partner-rating-text {
    font-size: 12px;
    font-weight: 650;
}

.cr-partner-desc {
    margin-bottom: 18px;
    font-size: 14px;
    line-height: 1.55;
}

.cr-partner-button {
    min-height: 40px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

@media (max-width: 900px) {
    .cr-partner-logo {
        max-width: calc(100% - 90px);
    }
}

/* v60: airier partner cards */
.cr-partner-grid {
    gap: 28px;
    align-items: stretch;
}

.cr-partner-card {
    min-height: 310px;
    padding: 36px 28px 28px;
}

.cr-partner-card-featured {
    padding-top: 36px;
}

.cr-partner-badge {
    top: 16px;
    right: 16px;
}

.cr-partner-logo {
    margin-bottom: 16px;
    font-size: 21px;
}

.cr-partner-rating {
    margin-bottom: 18px;
}

.cr-partner-desc {
    margin-bottom: 26px;
    line-height: 1.65;
}

.cr-partner-button {
    min-height: 44px;
}

@media (max-width: 900px) {
    .cr-partner-grid {
        gap: 18px;
    }

    .cr-partner-card {
        min-height: 260px;
        padding: 32px 24px 24px;
    }

    .cr-partner-card-featured {
        padding-top: 32px;
    }
}



/* v64: final section background rhythm
   - TOC is always white
   - Partners are always white
   - All ordinary content sections alternate automatically and start with blue/soft background
   - Partner section is excluded from the count
*/
.cr-toc-section,
.cr-main-content > .cr-container > section.cr-partner-options-section {
    background: var(--cr-surface) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:not(.cr-partner-options-section) {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:not(.cr-partner-options-section):nth-child(odd of section.cr-info-card:not(.cr-partner-options-section)) {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:not(.cr-partner-options-section):nth-child(even of section.cr-info-card:not(.cr-partner-options-section)) {
    background: var(--cr-surface) !important;
}

/* v65: final, stable background rhythm
   TOC and partner block are always white.
   All ordinary content sections inside main alternate automatically and start from soft blue.
   If partner is the first section inside main, it is excluded visually from the rhythm. */
.cr-toc-section {
    background: var(--cr-surface) !important;
}

.cr-partner-options-section,
section.cr-info-card.cr-partner-options-section,
.cr-main-content > .cr-container > section.cr-info-card.cr-partner-options-section {
    background: var(--cr-surface) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:not(.cr-partner-options-section) {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > section.cr-info-card:not(.cr-partner-options-section):nth-of-type(even) {
    background: var(--cr-surface) !important;
}

.cr-main-content > .cr-container > section.cr-partner-options-section:first-child ~ section.cr-info-card:not(.cr-partner-options-section):nth-of-type(even) {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > section.cr-partner-options-section:first-child ~ section.cr-info-card:not(.cr-partner-options-section):nth-of-type(odd) {
    background: var(--cr-surface) !important;
}

/* V67 FINAL FIX: global page rhythm and restored utility pages
   - TOC is always white.
   - Partner block is always white and does not participate in content-section rhythm.
   - Ordinary content sections inside main alternate automatically and start from soft blue.
   - Contact / Disclaimer / Do Not Sell utility styles are restored below. */
:root {
    --cr-white: #ffffff;
}

.cr-toc-section {
    background: var(--cr-surface) !important;
}

.cr-partner-options-section,
section.cr-info-card.cr-partner-options-section,
.cr-main-content > .cr-container > section.cr-info-card.cr-partner-options-section {
    background: var(--cr-surface) !important;
}

.cr-partner-options-section .cr-partner-card {
    background: var(--cr-surface) !important;
}

.cr-main-content > .cr-container > .cr-info-card:not(.cr-partner-options-section):nth-child(odd of .cr-info-card:not(.cr-partner-options-section)) {
    background: var(--cr-surface-soft) !important;
}

.cr-main-content > .cr-container > .cr-info-card:not(.cr-partner-options-section):nth-child(even of .cr-info-card:not(.cr-partner-options-section)) {
    background: var(--cr-surface) !important;
}


.cr-utility-main {
    padding: 70px 0;
}

.cr-utility-main > .cr-container {
    max-width: 1040px;
}

.cr-utility-card {
    padding: 0;
    background: transparent;
    border: 0;
}

.cr-utility-section-shell {
    max-width: 920px;
}

.cr-utility-section {
    margin-bottom: 52px;
}

.cr-utility-section:last-child {
    margin-bottom: 0;
}

.cr-utility-copy {
    max-width: 820px;
    color: var(--cr-text);
    font-size: 1rem;
    line-height: 1.75;
}

.cr-utility-copy p + p {
    margin-top: 16px;
}

.cr-utility-lede {
    max-width: 820px;
    font-size: 1.05rem;
    line-height: 1.75;
    color: #475569;
    margin-bottom: 24px;
}

.cr-utility-panel {
    background: var(--cr-surface);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
    padding: 28px;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.06);
}

.cr-utility-panel + .cr-utility-panel {
    margin-top: 18px;
}

.cr-utility-panel h3 {
    color: var(--cr-primary);
    font-size: 1.08rem;
    line-height: 1.35;
    margin-bottom: 10px;
}

.cr-utility-panel p {
    color: #475569;
}

.cr-utility-list {
    list-style: none;
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.cr-utility-list li {
    position: relative;
    padding-left: 22px;
    color: #475569;
    line-height: 1.65;
}

.cr-utility-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--cr-accent);
    opacity: 0.75;
}

.cr-contact-section,
.cr-dns-form-section {
    max-width: 880px;
}

.cr-contact-form,
.cr-dns-form {
    display: grid;
    gap: 18px;
}

.cr-page-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.cr-page-form-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cr-page-form-field-wide {
    grid-column: 1 / -1;
}

.cr-page-form-field label,
.cr-page-checkbox-label {
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cr-primary);
}

.cr-page-form-field input,
.cr-page-form-field select,
.cr-page-form-field textarea {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    background: #ffffff;
    color: var(--cr-primary);
    font: inherit;
    font-size: 0.98rem;
    padding: 13px 14px;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.cr-page-form-field textarea {
    min-height: 150px;
    resize: vertical;
}

.cr-page-form-field input:focus,
.cr-page-form-field select:focus,
.cr-page-form-field textarea:focus {
    border-color: var(--cr-accent);
    box-shadow: 0 0 0 3px rgba(23, 70, 111, 0.13);
}

.cr-page-form-field.is-error input,
.cr-page-form-field.is-error select,
.cr-page-form-field.is-error textarea,
.cr-page-checkbox.is-error {
    border-color: red;
}

.cr-page-field-error {
    display: none;
    align-self: flex-start;
    background: red;
    color: #ffffff;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.25;
    padding: 6px 9px;
    border-radius: 3px;
}

.cr-page-form-field.is-error .cr-page-field-error,
.cr-page-checkbox.is-error .cr-page-field-error {
    display: inline-block;
}

.cr-page-checkbox {
    border: 1px solid transparent;
    border-radius: 4px;
    padding: 10px 0 0;
}

.cr-page-checkbox-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.cr-page-checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--cr-accent);
    flex: 0 0 auto;
}

.cr-page-checkbox-label {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 650;
    line-height: 1.5;
    color: #475569;
}

.cr-page-form-note {
    color: var(--cr-muted);
    font-size: 0.9rem;
    line-height: 1.65;
    border-top: 1px solid var(--cr-border);
    padding-top: 16px;
}

.cr-page-form-button {
    justify-self: start;
    border: 0;
    background: var(--cr-accent);
    color: #ffffff;
    font-weight: 800;
    font-size: 0.98rem;
    padding: 13px 26px;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.18s ease, transform 0.18s ease;
}

.cr-page-form-button:hover,
.cr-page-form-button:focus-visible {
    background: var(--cr-accent-hover);
    transform: translateY(-1px);
}

.cr-honeypot-field {
    position: absolute;
    left: -9999px;
    opacity: 0;
    pointer-events: none;
}

.cr-disclaimer-article {
    max-width: 940px;
}

.cr-disclaimer-block {
    background: var(--cr-surface);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
    padding: 28px;
    margin-bottom: 18px;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.05);
}

.cr-disclaimer-block h3 {
    color: var(--cr-primary);
    font-size: 1.08rem;
    margin-bottom: 10px;
}

.cr-disclaimer-block p {
    color: #475569;
    line-height: 1.75;
}

.cr-disclaimer-block p + p {
    margin-top: 14px;
}

.cr-disclaimer-alert {
    border-left: 4px solid var(--cr-accent);
    background: #eef2f4;
}

.cr-dns-rights-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.cr-dns-right-card {
    background: var(--cr-surface);
    border: 1px solid var(--cr-border);
    border-radius: 4px;
    padding: 22px;
}

.cr-dns-right-card h3 {
    color: var(--cr-primary);
    font-size: 1.02rem;
    margin-bottom: 8px;
}

.cr-dns-right-card p {
    color: #475569;
    font-size: 0.95rem;
    line-height: 1.65;
}

.cr-utility-mini-note {
    display: inline-block;
    margin-top: 18px;
    color: var(--cr-muted);
    font-size: 0.9rem;
    line-height: 1.6;
}

@media (max-width: 760px) {
    .cr-utility-main {
        padding: 48px 0;
    }

    .cr-utility-panel,
    .cr-disclaimer-block {
        padding: 22px;
    }

    .cr-page-form-grid,
    .cr-dns-rights-grid {
        grid-template-columns: 1fr;
    }

    .cr-page-form-button {
        width: 100%;
    }
}

/* V56: unify footer content width across top menu and disclaimer */
.cr-footer > .cr-container {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 25px;
    padding-right: 25px;
}

.cr-footer-top {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
    margin-left: auto;
    margin-right: auto;
}

.cr-footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 12px 24px;
    max-width: 720px;
}

.cr-footer-nav a {
    margin-left: 0;
}

.cr-disclaimer {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

@media (max-width: 900px) {
    .cr-footer-top {
        align-items: flex-start;
        gap: 22px;
    }

    .cr-footer-nav {
        justify-content: flex-start;
        max-width: none;
        gap: 8px 18px;
    }
}


/* V68: fallback formatting for any links inside Related Pages grid */
.cr-internal-link-grid > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 100%;
    min-height: 56px;
    padding: 16px 46px 16px 18px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(23, 70, 111, 0.16);
    border-radius: 4px;
    color: var(--cr-primary);
    font-size: 0.98rem;
    font-weight: 750;
    line-height: 1.35;
    text-decoration: none;
    text-transform: capitalize;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.cr-internal-link-grid > a::after {
    content: '→';
    position: absolute;
    right: 18px;
    top: 50%;
    color: var(--cr-action-blue);
    font-size: 1rem;
    font-weight: 800;
    transform: translateY(-50%);
}

.cr-internal-link-grid > a:hover {
    color: var(--cr-action-blue);
    border-color: rgba(23, 70, 111, 0.36);
    background: rgba(255, 255, 255, 0.88);
}

@media (max-width: 768px) {
    .cr-internal-link-grid > a {
        min-height: 58px;
    }
}

/* V69: TOC links wrap normally instead of forcing one long horizontal line.
   CSS-only fix: label stays on the first line, links flow on the second line. */
.cr-toc-section {
    background: var(--cr-surface) !important;
}

.cr-toc-shell {
    display: block !important;
}

.cr-toc-label {
    display: block !important;
    margin: 0 0 8px !important;
}

.cr-toc-links {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 9px 18px !important;
    width: 100% !important;
    overflow: visible !important;
    overflow-x: visible !important;
    scrollbar-width: auto !important;
    white-space: normal !important;
}

.cr-toc-links::-webkit-scrollbar {
    display: none !important;
}

.cr-toc-links a {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

@media (max-width: 768px) {
    .cr-toc-links {
        gap: 8px 14px !important;
    }
}

@media (max-width: 420px) {
    .cr-toc-links {
        gap: 7px 12px !important;
    }

    .cr-toc-links a {
        font-size: 0.8rem !important;
    }
}

.insights-frame {
  width: 100%;
  height: 520px;
  border: 0;
  display: block;
  overflow: hidden;
}

@media (max-width: 992px) {
  .insights-frame {
    height: 1100px;
  }
}
.cr-utility-main > .cr-container {
    width: 100%;
    max-width: 1040px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 25px !important;
    padding-right: 25px !important;
}

.cr-utility-main .cr-section-head,
.cr-utility-main .cr-utility-panel,
.cr-utility-main .cr-disclaimer-article,
.cr-utility-main .cr-dns-scope-section {
    max-width: 100%;
}

@media (max-width: 760px) {
    .cr-utility-main > .cr-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .cr-utility-panel,
    .cr-disclaimer-block,
    .cr-dns-right-card {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 420px) {
    .cr-utility-main > .cr-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .cr-utility-panel,
    .cr-disclaimer-block,
    .cr-dns-right-card {
        padding-left: 18px;
        padding-right: 18px;
    }
}

#cr-contact-result,
#cr-dns-result {
    display: none;
    margin-top: 22px;
    padding: 16px 18px;
    border-radius: 4px;
    background: #eef6ff;
    border: 1px solid #b7d4ef;
    color: #123b5d;
    font-size: 15px;
    line-height: 1.55;
    font-weight: 600;
}

#cr-contact-result:not(:empty),
#cr-dns-result:not(:empty) {
    display: block;
}

#cr-contact-result.is-success,
#cr-dns-result.is-success {
    background: #edf8f1;
    border-color: #b9dec6;
    color: #17462a;
}

#cr-contact-result.is-error,
#cr-dns-result.is-error {
    background: #fff0f0;
    border-color: red;
    color: #7a0000;
}

#cr-contact-result a,
#cr-dns-result a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 640px) {
    #cr-contact-result,
    #cr-dns-result {
        margin-top: 18px;
        padding: 14px 15px;
        font-size: 14px;
    }
}