/* TexSTAR consolidated site styles */

/* ===== Participant Services ===== */
/* ============================================================
   Participant Services — shared left navigation + panel styles
   Consolidated from Default.ascx / CustomizedReports.ascx /
   AccountInformation.ascx so the shared leftNavigation.ascx
   control is styled consistently on every page.
   ============================================================ */

.tx-ps-menu ul { list-style: none; margin: 0; padding: 0; }
.tx-ps-menu__solo { margin-bottom: 18px; }
.tx-ps-menu__group { margin-bottom: 18px; }
.tx-ps-menu__grouphead {
    font-size: 10.5px;
    letter-spacing: .2em;
    text-transform: uppercase;
    font-weight: 600;
    color: #B58A4F;
    padding: 0 14px 6px;
}

.tx-ps-menu__item {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    cursor: pointer;
    padding: 9px 14px;
    border-left: 2px solid var(--color-border);
    font-size: 14px;
    line-height: 1.35;
    color: var(--color-muted);
    text-decoration: none;
    transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.tx-ps-menu__item:hover { color: var(--color-fg); background: rgba(14,31,58,.04); }
.tx-ps-menu__item.is-active {
    color: var(--color-fg);
    font-weight: 600;
    border-left-color: #B58A4F;
    background: rgba(181,138,79,.08);
}

/* Submenu (e.g. Customized Reporting > Account Information) */
.tx-ps-menu .tx-ps-menu__submenu { margin: 2px 0 4px; padding: 0 0 0 24px; }
.tx-ps-menu__subitem {
    display: block;
    padding: 7px 14px 7px 12px;
    border-left: 2px solid var(--color-border);
    font-size: 13px;
    line-height: 1.35;
    color: var(--color-muted);
    text-decoration: none;
    transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.tx-ps-menu__subitem:hover { color: var(--color-fg); background: rgba(14,31,58,.04); }
.tx-ps-menu__subitem.is-active {
    color: var(--color-fg);
    font-weight: 600;
    border-left-color: #B58A4F;
    background: rgba(181,138,79,.08);
}

@media (min-width: 900px) {
    .tx-ps-menu { position: sticky; top: 24px; align-self: start; }
}

/* Panels */
.tx-ps-panel { display: none; }
.tx-ps-panel.is-active { display: block; }
.tx-ps-panel__title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.6rem,2.6vw,2.2rem);
    line-height: 1.15;
    color: var(--color-fg);
    margin-bottom: clamp(16px,2.4vh,24px);
}
.tx-ps-panel__title em { font-style: normal; color: #B58A4F; }
.tx-ps-panel__body p { font-size: 16px; line-height: 1.7; color: var(--color-muted); }
.tx-ps-panel__body p + p { margin-top: 14px; }

/* Reports list */
.tx-ps-reports { list-style: none; margin: 0; padding: 0; max-width: 72ch; }
.tx-ps-reports li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.7; color: var(--color-muted); }
.tx-ps-reports li + li { margin-top: 14px; }
.tx-ps-reports li::before { content: "\25A0"; position: absolute; left: 0; top: 1px; font-size: 9px; color: #B58A4F; }
.tx-ps-reports a { font-weight: 700; color: var(--color-fg); text-decoration: none; border-bottom: 1.5px solid #B58A4F; transition: color .18s ease; }
.tx-ps-reports a:hover { color: #B58A4F; }

/* Newsletters accordion */
.tx-newsletters .tx-ps-panel__body {
    max-width: 820px;
}

.tx-newsletters .accordionHeader,
.tx-newsletters .accordionHeaderSelected {
    position: relative;
    display: block;
    width: 100%;
    margin: 0 0 10px;
    padding: 10px 48px 10px 16px;
    border: 1px solid rgba(14, 31, 58, .14);
    border-radius: 3px;
    background: #0E1F3A;
    color: #FFFFFF;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(14, 31, 58, .10);
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.tx-newsletters .accordionHeader:hover,
.tx-newsletters .accordionHeaderSelected {
    color: #FFFFFF;
    background: #132B4F;
    border-color: #B58A4F;
    box-shadow: 0 4px 12px rgba(14, 31, 58, .16);
}

.tx-newsletters .accordionHeader h3,
.tx-newsletters .accordionHeaderSelected h3 {
    margin: 0;
    color: #FFFFFF;
    font-family: var(--font-display);
    font-size: clamp(18px, 1.5vw, 22px);
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: .01em;
}

.tx-newsletters .accordionHeader::after,
.tx-newsletters .accordionHeaderSelected::after {
    content: "+";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1;
}

.tx-newsletters .accordionHeaderSelected::after {
    content: "\2013";
    background: rgba(255, 255, 255, .12);
}

.tx-newsletters .accordionContent {
    display: block;
    padding: 0 0 20px 16px;
}

.tx-newsletters .accordionContent table {
    width: auto;
    min-width: 320px;
    max-width: 560px;
    border-collapse: collapse;
    margin: 0 0 4px;
}

.tx-newsletters .accordionContent tr {
    background: transparent;
}

.tx-newsletters .accordionContent td {
    padding: 10px 0;
    border-bottom: 1px solid rgba(14, 31, 58, .10);
}

.tx-newsletters .accordionContent a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-fg);
    font-weight: 600;
    text-decoration: none;
    transition: color .18s ease;
}

.tx-newsletters .accordionContent a::before {
    content: "";
    width: 7px;
    height: 7px;
    background: #B58A4F;
    flex: 0 0 7px;
}

.tx-newsletters .accordionContent a:hover {
    color: #B58A4F;
}

.tx-newsletters .accordionContent .tx-news__mo::before {
    content: none;
}

/* Report forms */
.tx-report-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--color-border);
}

.tx-report-toolbar .tx-ps-panel__title { margin-bottom: 0; }

.tx-report-actions {
    flex-shrink: 0;
    padding-top: 8px;
    font-size: 14px;
}

.tx-report-actions a {
    color: var(--color-fg);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid #B58A4F;
}

.tx-report-actions a:hover { color: #B58A4F; }

.tx-report-client {
    margin-bottom: 16px;
    color: var(--color-fg);
    font-weight: 600;
}

.tx-report-filter {
    margin-bottom: 28px;
    padding: clamp(18px, 2.4vw, 26px);
    background: #FBF6EC;
    border: 1px solid var(--color-border);
    border-top: 3px solid #B58A4F;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(14, 31, 58, 0.06);
}

.tx-report-filter__header {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(14, 31, 58, 0.10);
}

.tx-report-filter__eyebrow {
    display: block;
    margin-bottom: 6px;
    color: #B58A4F;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.tx-report-filter__header p {
    margin: 0;
    color: var(--color-muted);
    font-size: 15px;
    line-height: 1.5;
}

.tx-report-form {
    display: grid;
    grid-template-columns: minmax(240px, 2fr) minmax(150px, 1fr) minmax(120px, .8fr) auto;
    gap: 16px;
    align-items: end;
}

/* Interest Earned table form */
.tx-report-form-table {
    width: auto;
    max-width: 760px;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 0 16px;
    margin: -18px 0 0;
}

.tx-report-form-table td {
    padding: 0 18px 0 0;
    vertical-align: bottom;
}

.tx-report-form-table td:first-child { padding-left: 0; }
.tx-report-form-table td:last-child { padding-right: 0; }

.tx-report-form-table .tx-report-field { width: auto; }

.tx-report-form-table .RadComboBox,
.tx-report-form-table .RadComboBox table { max-width: 350px; }

.tx-report-form-table .tx-report-select,
.tx-report-form-table select {
    width: 280px !important;
}

.tx-report-form-table .tx-report-date-input {
    width: 145px !important;
    vertical-align: middle;
}

.tx-report-form-table .tx-report-calendar {
    margin-left: 6px;
    vertical-align: middle;
}

.tx-report-form-table .tx-report-submit {
    white-space: nowrap;
    text-align: right;
}

.tx-report-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--color-fg);
    font-size: 13px;
    font-weight: 700;
}

.tx-report-select,
.tx-report-field select,
.tx-report-field input[type="text"] {
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: #fff;
    color: var(--color-fg);
    font-size: 14px;
}

.tx-report-field .RadComboBox,
.tx-report-field .RadComboBox table {
    max-width: 100%;
}

.tx-report-calendar {
    width: 20px;
    height: 20px;
}

.tx-report-submit { text-align: right; }

.tx-report-button {
    min-height: 38px;
    padding: 9px 22px;
    border: 0;
    border-radius: 6px;
    background: var(--color-fg);
    color: var(--color-bg);
    font-weight: 700;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease;
}

.tx-report-button:hover {
    background: #1A2D4D;
    transform: translateY(-1px);
}

.tx-report-results {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: #fff;
}

.tx-report-results > div {
    width: 100% !important;
    max-width: none !important;
}

.tx-report-grid {
    width: 100% !important;
    max-width: none;
    border-collapse: collapse;
    margin: 0;
}

.tx-account-summary-grid {
    min-width: 720px;
    max-width: 868px !important;
    table-layout: fixed;
}

.tx-account-summary-results {
    max-width: 868px;
}

.tx-account-summary-results > div {
    max-width: 868px !important;
}

.tx-interest-earned-grid {
    min-width: 720px;
    max-width: 868px !important;
    table-layout: fixed;
}

.tx-interest-earned-results {
    max-width: 868px;
}

.tx-interest-earned-results > div {
    max-width: 868px !important;
}

.tx-interest-earned-grid th:nth-child(1) { width: 16%; }
.tx-interest-earned-grid th:nth-child(2) { width: 18%; }
.tx-interest-earned-grid th:nth-child(3) { width: 30%; }
.tx-interest-earned-grid th:nth-child(4) { width: 18%; }
.tx-interest-earned-grid th:nth-child(5) { width: 18%; }

.tx-interest-earned-grid th,
.tx-interest-earned-grid td {
    box-sizing: border-box;
}

.tx-interest-earned-grid th:not(:nth-child(3)),
.tx-interest-earned-grid td:not(:nth-child(3)) {
    white-space: nowrap;
}

.tx-account-summary-grid th:nth-child(1) { width: 18%; }
.tx-account-summary-grid th:nth-child(2) { width: 16%; }
.tx-account-summary-grid th:nth-child(3) { width: 26%; }
.tx-account-summary-grid th:nth-child(4),
.tx-account-summary-grid th:nth-child(5) { width: 20%; }

.tx-account-summary-grid th,
.tx-account-summary-grid td {
    box-sizing: border-box;
}

.tx-account-summary-grid th:not(:nth-child(3)),
.tx-account-summary-grid td:not(:nth-child(3)) {
    white-space: nowrap;
}

.tx-report-grid th,
.tx-report-grid td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--color-border);
}

.tx-report-grid th {
    background: rgba(181, 138, 79, .10);
    color: var(--color-fg);
    font-weight: 700;
}

@media (max-width: 900px) {
    .tx-report-toolbar { flex-direction: column; }
    .tx-report-actions { padding-top: 0; }
    .tx-report-form { grid-template-columns: 1fr 1fr; }
    .tx-report-field--entity,
    .tx-report-submit { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
    .tx-report-form { grid-template-columns: 1fr; }
}


/* ===== Secure Participant Pages ===== */
/* ============================================================
   Secure participant page styles
   Consolidated from secure/usercontrols/Default.ascx,
   AccountInformation.ascx, and CustomizedReports.ascx.
   ============================================================ */

.nav-mobile {
        display: none;
    }

        .nav-mobile.is-open {
            display: flex;
        }

    .tx-logo-img {
        height: 48px;
        width: auto;
        flex-shrink: 0;
        display: block;
        filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }

    @media (min-width: 768px) {
        .tx-logo-img {
            height: 66px;
        }
    }

    /* Shared header */
    .tx-header {
        background: rgba(14, 31, 58, 0.72);
        backdrop-filter: blur(14px) saturate(140%);
        -webkit-backdrop-filter: blur(14px) saturate(140%);
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .tx-logo-mark {
        height: 26px;
        width: auto;
        flex-shrink: 0;
        display: block;
        filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }

    @media (min-width: 768px) {
        .tx-logo-mark {
            height: 30px;
        }
    }

    .tx-header nav a:hover {
        color: #D2A86B;
    }

    .tx-nav-link[aria-current="page"] {
        color: #D2A86B;
    }

        .tx-nav-link[aria-current="page"]::after {
            content: '';
            display: block;
            height: 1px;
            background: #D2A86B;
            margin-top: 3px;
        }

    .tx-header__contact {
        display: none;
        align-items: center;
        gap: 6px;
        font-size: 13px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        font-weight: 500;
        color: rgba(255, 255, 255, 0.78);
        transition: color 0.2s ease;
    }

        .tx-header__contact:hover {
            color: #FFFFFF;
        }

    @media (min-width: 768px) {
        .tx-header__contact {
            display: inline-flex;
        }
    }

    /* Page hero */
    .tx-ph {
        position: relative;
        isolation: isolate;
        /* PILOT 2026-07-06: hero reduced to match program-info — revert to 63vh / 600px */
        min-height: 46vh;
        min-height: 440px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        background: #1A2D4D;
    }

    .tx-ph__bg {
        position: absolute;
        inset: 0;
        z-index: 0;
    }

    .tx-ph__slide {
        position: absolute;
        inset: 0;
        background-size: cover;
        background-position: center 32%;
        filter: brightness(1.02) saturate(1.04);
        opacity: 0;
        transition: opacity 800ms ease-in-out;
        will-change: opacity;
    }

        .tx-ph__slide.is-active {
            opacity: 1;
        }

    .tx-ph__slide--downtown {
        background-image: url('/images/team-hero-downtown.jpg');
        filter: brightness(1.32) contrast(1.03) saturate(1.05);
    }

    .tx-ph__slide--hilltop {
        background-image: url('/images/team-hero-hilltop.jpg');
        background-position: 40% 18%;
    }

    .tx-ph__slide--jp {
        background-image: url('/images/team-hero-jp.jpg');
        filter: brightness(1.42) contrast(1.04) saturate(1.05);
    }

    @media (prefers-reduced-motion: reduce) {
        .tx-ph__slide {
            transition: none;
        }
    }

    .tx-ph__overlay {
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(14, 31, 58, 0.46) 0%, rgba(14, 31, 58, 0.24) 42%, rgba(14, 31, 58, 0.08) 78%, rgba(14, 31, 58, 0.16) 100%), linear-gradient(180deg, rgba(14, 31, 58, 0.12) 0%, transparent 30%, rgba(14, 31, 58, 0.26) 100%);
        z-index: 1;
    }

    .tx-ph__content {
        position: relative;
        z-index: 2;
        flex: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding-top: clamp(140px, 22vh, 220px);
        padding-bottom: clamp(56px, 7vh, 80px);
    }

    .tx-ph__eyebrow {
        font-size: clamp(11px, 0.85vw, 12px);
        letter-spacing: 0.22em;
        text-transform: uppercase;
        font-weight: 500;
        color: rgba(255,255,255,0.92);
    }

    .tx-ph__title {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-size: clamp(2.5rem, 5.5vw, 4.5rem);
        line-height: 1;
        letter-spacing: -0.022em;
        color: #FFFFFF;
        margin-top: clamp(20px, 2.4vh, 28px);
        max-width: 16ch;
        text-shadow: 0 1px 3px rgba(8,16,32,0.45);
        font-weight: 500;
    }

        .tx-ph__title em {
            font-style: normal;
            color: #D2A86B;
            font-weight: 400;
        }

    .tx-ph__sub {
        margin-top: clamp(22px, 2.6vh, 32px);
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-weight: 400;
        font-size: clamp(1rem, 1.4vw, 1.3rem);
        line-height: 1.5;
        color: rgba(255,255,255,0.88);
        max-width: 54ch;
        text-shadow: 0 1px 2px rgba(8,16,32,0.3);
    }

    .tx-meet-team-page .tx-ph {
        min-height: 46vh;
        min-height: 440px;
        background: #1A2D4D;
    }

    .tx-meet-team-page .tx-ph__slide {
        background-size: cover;
        background-position: center 32%;
        filter: brightness(1.02) saturate(1.04);
    }

    .tx-meet-team-page .tx-ph__slide--downtown {
        background-image: url('/images/team-hero-downtown.jpg');
        background-position: center 62%;
        filter: saturate(1.05);
    }

    .tx-meet-team-page .tx-ph__slide--hilltop {
        background-image: url('/images/team-hero-hilltop.jpg');
        background-position: center 22%;
        filter: saturate(1.05);
    }

    .tx-meet-team-page .tx-ph__slide--jp1 {
        background-image: url('/images/team-hero-jp1.jpg');
        background-position: center 50%;
        filter: saturate(1.05);
    }

    .tx-meet-team-page .tx-ph__content {
        padding-top: clamp(140px, 22vh, 220px);
        padding-bottom: clamp(56px, 7vh, 80px);
    }

    .tx-meet-team-page .tx-ph__title {
        font-size: clamp(2.5rem, 5.5vw, 4.5rem);
        max-width: 16ch;
    }

    /* ================================================
       Background / Intro above the team accordion
       ================================================ */
    .tx-team-intro {
        max-width: none;
        margin: 0 0 clamp(56px, 6.5vh, 80px);
        padding-bottom: clamp(40px, 5vh, 56px);
        border-bottom: 1px solid var(--color-border);
        position: relative;
    }

    .tx-team-intro__rule {
        width: 48px;
        height: 1px;
        background: #B58A4F;
        margin-bottom: clamp(20px, 2.4vh, 28px);
    }

    .tx-team-intro__eyebrow {
        font-size: 11px;
        letter-spacing: 0.24em;
        text-transform: uppercase;
        font-weight: 600;
        color: #B58A4F;
    }

    .tx-team-intro__title {
        font-family: "Playfair Display", serif;
        font-optical-sizing: auto;
        font-size: clamp(1.5rem, 2.2vw, 1.875rem);
        line-height: 1.1;
        letter-spacing: -0.01em;
        color: var(--color-fg);
        margin-top: 12px;
        margin-bottom: clamp(18px, 2.4vh, 24px);
    }

        .tx-team-intro__title em {
            font-style: normal;
            color: #B58A4F;
            font-weight: 400;
        }

    .tx-team-intro__body {
        font-size: 16px;
        line-height: 1.7;
        color: var(--color-muted);
    }

        .tx-team-intro__body p + p {
            margin-top: clamp(14px, 1.8vh, 18px);
        }

        .tx-team-intro__body em {
            font-style: italic;
            color: var(--color-fg);
        }

        .tx-team-intro__body strong {
            color: var(--color-fg);
            font-weight: 500;
        }

    /* Three-column roles — Governing Board / JPMAM / Hilltop — lifted cards */
    .tx-team-roles {
        display: grid;
        grid-template-columns: 1fr;
        gap: clamp(16px, 2vw, 22px);
        margin-top: clamp(28px, 3.6vh, 36px);
        margin-bottom: clamp(28px, 3.6vh, 36px);
    }

    .tx-team-role {
        position: relative;
        background: #FBF6EC;
        border: 1px solid var(--color-border);
        border-radius: 14px;
        padding: clamp(24px, 2.6vw, 32px);
        overflow: hidden;
        box-shadow: 0 1px 2px rgba(14, 31, 58, 0.03);
        transition: transform 0.25s ease, box-shadow 0.25s ease;
    }

        .tx-team-role::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, #B58A4F, #D2A86B);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform 0.4s ease;
        }

        .tx-team-role:hover {
            transform: translateY(-4px);
            box-shadow: 0 18px 40px rgba(14, 31, 58, 0.10);
        }

            .tx-team-role:hover::before {
                transform: scaleX(1);
            }

    .tx-team-role__icon {
        width: 46px;
        height: 46px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 12px;
        background: rgba(181, 138, 79, 0.10);
        color: #B58A4F;
        margin-bottom: 18px;
    }

        .tx-team-role__icon svg {
            width: 23px;
            height: 23px;
        }

    @media (min-width: 720px) {
        .tx-team-roles {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    /* Two-tone partner cards (about block only) — lighter-navy header + cream body */
    .tx-team-roles--partners .tx-team-role {
        padding: 0;
        background: transparent;
    }

        .tx-team-roles--partners .tx-team-role::before {
            content: none;
        }

    .tx-team-roles--partners .tx-team-role__head {
        background: #1F3D63;
        padding: 22px clamp(20px, 2vw, 26px);
        border-bottom: 3px solid #B58A4F;
    }

    .tx-team-roles--partners .tx-team-role__label {
        color: #FFFFFF;
        margin-bottom: 0;
    }

        .tx-team-roles--partners .tx-team-role__label em {
            color: #D2A86B;
            font-style: italic;
        }

    .tx-team-roles--partners .tx-team-role__body {
        background: #FBF6EC;
        padding: clamp(20px, 2vw, 26px);
    }

    .tx-team-role__label {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-size: clamp(18px, 1.5vw, 21px);
        line-height: 1.2;
        letter-spacing: -0.005em;
        color: var(--color-fg);
        font-weight: 500;
        margin-bottom: 10px;
    }

        .tx-team-role__label em {
            font-style: italic;
            color: #B58A4F;
            font-weight: 400;
        }

    .tx-team-role__body {
        font-size: 16px;
        line-height: 1.6;
        color: var(--color-muted);
    }

    /* Stats variant — JPMAM credentials. Editorial display numbers,
       lifted cream-on-cream cards, hairline gold top rule. */
    .tx-team-roles--stats {
        gap: 0;
    }

    @media (min-width: 720px) {
        .tx-team-roles--stats {
            grid-template-columns: repeat(3, 1fr);
            gap: clamp(16px, 1.6vw, 22px);
        }
    }

    .tx-team-roles--stats .tx-team-role {
        position: relative;
        padding: clamp(26px, 3vh, 34px) clamp(22px, 2vw, 28px) clamp(24px, 2.8vh, 30px);
        background: #FBF6EC;
        border: 1px solid var(--color-border);
        border-top: 2px solid #B58A4F;
        border-radius: 4px;
        box-shadow: 0 1px 0 rgba(14, 31, 58, 0.04), 0 6px 18px -12px rgba(14, 31, 58, 0.12);
        transition: transform 220ms ease, box-shadow 220ms ease;
    }

        .tx-team-roles--stats .tx-team-role:hover {
            transform: translateY(-2px);
            box-shadow: 0 2px 0 rgba(14, 31, 58, 0.05), 0 14px 28px -16px rgba(14, 31, 58, 0.18);
        }

    .tx-team-role__eyebrow {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-size: clamp(14px, 1.05vw, 16px);
        line-height: 1.2;
        letter-spacing: -0.01em;
        color: var(--color-fg);
        font-weight: 600;
        margin-bottom: clamp(12px, 1.4vh, 16px);
    }

    .tx-team-role__figure {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-style: italic;
        font-weight: 400;
        color: #B58A4F;
        font-size: clamp(1.5rem, 2vw, 1.875rem);
        line-height: 0.95;
        letter-spacing: -0.02em;
        margin-bottom: clamp(16px, 2vh, 22px);
        display: block;
    }

        .tx-team-role__figure sup {
            font-size: 0.42em;
            vertical-align: super;
            top: -0.3em;
            position: relative;
            letter-spacing: 0;
            margin-left: 0.08em;
        }

    .tx-team-roles--stats .tx-team-role__body {
        border-top: 1px solid var(--color-border);
        padding-top: clamp(14px, 1.6vh, 18px);
        font-size: 13.5px;
        line-height: 1.6;
        color: var(--color-muted);
    }

    @media (max-width: 719px) {
        .tx-team-roles--stats {
            gap: 14px;
        }

            .tx-team-roles--stats .tx-team-role {
                border-top: 2px solid #B58A4F;
            }
    }

    .tx-team-intro__footer {
        font-size: 16px;
        line-height: 1.65;
        color: var(--color-muted);
        font-style: italic;
        text-align: center;
        max-width: 60ch;
        margin: 0 auto;
    }

    .tx-jpmam-footnote {
        font-size: 11.5px;
        line-height: 1.5;
        color: var(--color-muted);
        font-style: italic;
        margin-top: clamp(18px, 2.2vh, 24px);
        margin-bottom: clamp(28px, 3.6vh, 36px);
        max-width: 72ch;
    }

    /* ================================================
       Team accordion — collapsible groups
       ================================================ */
    .tx-team-deck {
        max-width: 1100px;
        margin: 0 auto;
    }

    .tx-team-group {
        border-top: 1px solid var(--color-border);
    }

        .tx-team-group:not(:first-of-type) {
            margin-top: clamp(40px, 6vh, 72px);
        }

        .tx-team-group:last-child {
            border-bottom: 1px solid var(--color-border);
        }
    /* <summary> resets */
    .tx-team-group__header {
        list-style: none;
        cursor: pointer;
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        justify-content: space-between;
        gap: 14px 20px;
        padding: clamp(20px, 2.6vh, 28px) 0;
        background: rgba(14, 31, 58, 0.025);
        transition: background 0.2s ease, padding-left 0.2s ease, padding-right 0.2s ease;
    }

        .tx-team-group__header::-webkit-details-marker {
            display: none;
        }

        .tx-team-group__header:hover {
            background: rgba(14, 31, 58, 0.055);
            padding-left: 12px;
            padding-right: 12px;
        }

    .tx-team-group__label {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-size: clamp(24px, 2.8vw, 36px);
        line-height: 1.1;
        letter-spacing: -0.012em;
        color: var(--color-fg);
    }

        .tx-team-group__label em {
            font-style: italic;
            color: #B58A4F;
        }

    .tx-amp {
        font-family: var(--font-body);
        font-style: normal;
        font-weight: 400;
    }

    .tx-team-group__meta {
        display: inline-flex;
        align-items: center;
        gap: 18px;
        margin-left: auto;
    }

    .tx-team-group__count {
        font-size: 12px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--color-muted);
        font-weight: 500;
        font-style: italic;
    }

    .tx-team-group__count--toggle::after {
        content: "Expand";
    }

    .tx-team-group[open] .tx-team-group__count--toggle::after {
        content: "Collapse";
    }

    .tx-team-group__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s cubic-bezier(0.2, 0.7, 0.3, 1);
        flex-shrink: 0;
    }

        .tx-team-group__toggle svg {
            width: 14px;
            height: 14px;
            stroke: var(--color-fg);
            transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1);
        }

    .tx-team-group[open] .tx-team-group__toggle {
        background: var(--color-fg);
        border-color: var(--color-fg);
        transform: rotate(180deg);
    }

        .tx-team-group[open] .tx-team-group__toggle svg {
            stroke: var(--color-bg);
        }

    .tx-team-group__header:hover .tx-team-group__toggle {
        border-color: #B58A4F;
    }

    .tx-team-group[open] .tx-team-group__header:hover .tx-team-group__toggle {
        border-color: #B58A4F;
        background: #B58A4F;
    }

    .tx-team-group__body {
        padding: 0 0 clamp(32px, 4.2vh, 44px) 0;
        animation: tx-team-fade 0.35s cubic-bezier(0.2, 0.7, 0.3, 1);
    }

    @keyframes tx-team-fade {
        from {
            opacity: 0;
            transform: translateY(-4px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .tx-team-group__intro {
        font-size: 16px;
        line-height: 1.55;
        color: var(--color-muted);
        max-width: 92ch;
        margin-bottom: clamp(20px, 2.6vh, 28px);
        font-style: italic;
    }

    /* Card grid */
    .tx-board__grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: clamp(28px, 3.6vw, 36px) clamp(20px, 2.4vw, 28px);
    }

    @media (min-width: 600px) {
        .tx-board__grid--3,
        .tx-board__grid--4 {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    @media (min-width: 960px) {
        .tx-board__grid--4 {
            grid-template-columns: repeat(4, 1fr);
            max-width: 1080px;
        }

        .tx-board__grid--3 {
            grid-template-columns: repeat(3, 1fr);
            max-width: 820px;
        }
    }

    .tx-board-card {
        display: flex;
        flex-direction: column;
    }

    .tx-board-card__photo {
        position: relative;
        aspect-ratio: 1 / 1;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        overflow: hidden;
        margin-bottom: clamp(16px, 2vh, 22px);
        border-radius: 50%;
    }

        .tx-board-card__photo img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center top;
            transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
            z-index: 2;
        }

    .tx-board-card:hover .tx-board-card__photo img {
        transform: scale(1.04);
    }

    .tx-board-card__initials {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-weight: 400;
        font-size: clamp(2.25rem, 3.8vw, 2.875rem);
        letter-spacing: -0.02em;
        color: rgba(14, 31, 58, 0.22);
        z-index: 1;
        user-select: none;
    }

    .tx-board-card.is-tbd .tx-board-card__photo {
        background: repeating-linear-gradient(135deg, var(--color-surface) 0, var(--color-surface) 10px, var(--color-bg) 10px, var(--color-bg) 20px);
    }

    .tx-board-card.is-tbd .tx-board-card__initials {
        color: rgba(14, 31, 58, 0.30);
        font-size: clamp(1.5rem, 2.4vw, 2rem);
        letter-spacing: 0.18em;
        text-transform: uppercase;
        font-family: var(--font-body);
        font-weight: 500;
    }

    .tx-board-card__role {
        font-size: 11px;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        font-weight: 500;
        color: #B58A4F;
        margin-bottom: 10px;
    }

    .tx-board-card__name {
        font-family: var(--font-display);
        font-optical-sizing: auto;
        font-size: clamp(1.25rem, 1.6vw, 1.5rem);
        line-height: 1.15;
        letter-spacing: -0.005em;
        color: var(--color-fg);
        margin-bottom: 8px;
    }

    .tx-board-card.is-senior .tx-board-card__name {
        font-size: clamp(1.5rem, 2vw, 1.75rem);
        letter-spacing: -0.01em;
    }

    .tx-board-card.is-tbd .tx-board-card__name {
        color: var(--color-muted);
        font-style: italic;
    }

    .tx-board-card__entity {
        font-size: 14px;
        line-height: 1.5;
        color: var(--color-muted);
        font-style: italic;
        max-width: 28ch;
    }

/* Keep modifier hero backgrounds from being reset by generic .tx-ph rules. */
.tx-ph.tx-ph--resources {
    background-image: url('/images/resources-hero.jpg');
    background-size: cover;
    background-position: center 45%;
    background-color: #0E1F3A;
}

.tx-ph.tx-ph--ps {
    background-image: url('/images/ps-hero-dallas.jpg');
    background-size: cover;
    background-position: center 40%;
    background-color: #0E1F3A;
}

.tx-ph.tx-ph--resources .tx-ph__content,
.tx-ph.tx-ph--ps .tx-ph__content {
    padding-top: clamp(140px, 22vh, 220px);
    padding-bottom: clamp(56px, 7vh, 80px);
}

.tx-ph.tx-ph--resources .tx-ph__title,
.tx-ph.tx-ph--ps .tx-ph__title {
    font-size: clamp(2.5rem, 5.5vw, 4.5rem);
    max-width: 16ch;
    font-weight: 500;
}

    .tx-board-card__term {
        margin-top: 10px;
        font-size: 11px;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--color-muted);
        font-weight: 500;
    }

        .tx-board-card__term strong {
            color: var(--color-fg);
            font-weight: 500;
        }

    /* ===== Resources page ===== */
    .tx-ph--resources {
        background-image: url('/images/resources-hero.jpg');
        background-size: cover;
        background-position: center 45%;
        background-color: #0E1F3A;
    }

    .tx-res {
        padding: clamp(20px,3vh,34px) 0 clamp(48px,7vh,88px);
    }

    .tx-res__head {
        margin-bottom: clamp(26px,4vh,42px);
    }

    .tx-res__eyebrow {
        font-size: 11px;
        letter-spacing: .24em;
        text-transform: uppercase;
        font-weight: 600;
        color: #B58A4F;
    }

    .tx-res__title {
        font-family: var(--font-display);
        font-weight: 600;
        font-size: clamp(1.75rem,3vw,2.5rem);
        line-height: 1.1;
        color: var(--color-fg);
        margin-top: 8px;
    }

        .tx-res__title em {
            font-style: normal;
            color: #B58A4F;
        }

    .tx-res-commentary {
        border-top: 1px solid var(--color-border);
    }

    .tx-amp {
        font-family: "Inter",sans-serif;
        font-style: normal;
        font-weight: 400;
        font-size: 0.85em;
    }

    html {
        scroll-behavior: smooth;
    }

    #document-center, #commentary-jpm, #commentary-hilltop {
        scroll-margin-top: 24px;
    }

    .tx-resnav {
        display: grid;
        grid-template-columns: 1fr;
        gap: 12px;
        padding-top: clamp(18px,2.6vh,28px);
    }

    @media (min-width:640px) {
        .tx-resnav {
            grid-template-columns: 1fr 1fr;
        }
    }

    @media (min-width:1024px) {
        .tx-resnav {
            grid-template-columns: repeat(3,1fr);
        }
    }

    .tx-resnav__card {
        display: flex;
        flex-direction: column;
        gap: 5px;
        padding: 14px 16px 12px;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-radius: 12px;
        text-decoration: none;
        color: inherit;
        transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    }

        .tx-resnav__card:hover {
            transform: translateY(-3px);
            box-shadow: 0 14px 32px rgba(14,31,58,.10);
            border-color: #B58A4F;
        }

    .tx-resnav__name {
        font-family: var(--font-display);
        font-weight: 600;
        font-size: 0.95rem;
        line-height: 1.25;
        color: var(--color-fg);
    }

    .tx-resnav__desc {
        font-size: 12px;
        line-height: 1.45;
        color: var(--color-muted);
        margin: 0;
    }

    .tx-resnav__go {
        margin-top: auto;
        padding-top: 4px;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: 10.5px;
        letter-spacing: .08em;
        text-transform: uppercase;
        font-weight: 600;
        color: #B58A4F;
    }

    .tx-docs {
        display: grid;
        grid-template-columns: 1fr;
        gap: clamp(30px,5vw,64px);
    }

    @media (min-width:820px) {
        .tx-docs {
            grid-template-columns: 1fr 1fr;
        }
    }

    .tx-docs__colhead {
        font-family: var(--font-display);
        font-weight: 600;
        font-size: 1.25rem;
        color: var(--color-fg);
        padding-bottom: 12px;
        border-bottom: 2px solid #B58A4F;
        margin-bottom: 4px;
    }

    .tx-doclist {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .tx-doclink {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        padding: 13px 4px;
        border-bottom: 1px solid var(--color-border);
        color: var(--color-fg);
        text-decoration: none;
        font-size: 15px;
        line-height: 1.35;
        transition: color .2s ease, padding-left .2s ease;
    }

        .tx-doclink:hover {
            color: #B58A4F;
            padding-left: 8px;
        }

    .tx-doclink__badge {
        flex-shrink: 0;
        width: 22px;
        height: 22px;
        margin-top: 1px;
    }

    .tx-doclink__note {
        display: block;
        font-size: 12.5px;
        color: var(--color-muted);
        margin-top: 2px;
    }

    .tx-comm__firm {
        margin-top: clamp(30px,4vh,44px);
    }

    .tx-comm__firmhead {
        font-family: var(--font-display);
        font-size: clamp(1.5rem,2.2vw,1.875rem);
        line-height: 1.1;
        letter-spacing: -0.01em;
        color: var(--color-fg);
        position: relative;
        padding-bottom: 12px;
        margin-bottom: 22px;
    }

        .tx-comm__firmhead::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: 0;
            width: 52px;
            height: 2px;
            background: linear-gradient(90deg,#B58A4F 0%,rgba(181,138,79,0.25) 100%);
        }

        .tx-comm__firmhead em {
            font-style: normal;
            color: #B58A4F;
        }

    .tx-comm__meta {
        font-size: 12.5px;
        letter-spacing: .04em;
        color: var(--color-muted);
        margin-top: 10px;
        margin-bottom: 18px;
    }

    .tx-comm__grid {
        display: grid;
        grid-template-columns: repeat(auto-fill,minmax(320px,1fr));
        gap: 18px;
    }

    .tx-comm__letter {
        display: block;
        text-decoration: none;
        color: inherit;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }

        .tx-comm__letter:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 22px rgba(14,31,58,0.10);
            border-color: #B58A4F;
        }

    .tx-comm__letterhead {
        display: flex;
        align-items: center;
        background: #0E1F3A;
        padding: 15px 22px;
    }

    .tx-comm__letterfirm {
        font-size: 11.5px;
        letter-spacing: .2em;
        text-transform: uppercase;
        font-weight: 700;
        color: #FFFFFF;
    }

    .tx-comm__letterbody {
        display: block;
        padding: 20px 22px 20px;
    }

    .tx-comm__lettertitle {
        display: block;
        font-family: var(--font-display);
        font-size: 17.5px;
        line-height: 1.35;
        color: var(--color-fg);
        margin-bottom: 14px;
    }

    .tx-comm__card {
        display: block;
        text-decoration: none;
        color: inherit;
        border: 1px solid var(--color-border);
        border-radius: 14px;
        overflow: hidden;
        background: var(--color-surface);
        transition: transform .25s ease, box-shadow .25s ease;
    }

        .tx-comm__card:hover {
            transform: translateY(-4px);
            box-shadow: 0 18px 40px rgba(14,31,58,.10);
        }

    .tx-comm__titlebox {
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        min-height: 122px;
        padding: 24px 22px;
        background: linear-gradient(135deg,#12294a,#1F3D63);
        color: #FFFFFF;
        font-family: var(--font-display);
        font-weight: 600;
        font-size: 1.1rem;
        line-height: 1.3;
    }

    .tx-comm__body {
        padding: 16px 18px 18px;
    }

    .tx-comm__label {
        font-family: var(--font-display);
        font-weight: 600;
        font-size: 1.05rem;
        color: var(--color-fg);
    }

    .tx-comm__date {
        font-size: 12.5px;
        color: var(--color-muted);
        margin-top: 3px;
    }

    .tx-comm__dl {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin-top: 12px;
        font-size: 12px;
        letter-spacing: .08em;
        text-transform: uppercase;
        font-weight: 600;
        color: #B58A4F;
    }

    .tx-resbar-wrap {
        background: #0E1F3A;
        border-top: 3px solid #D2A86B;
    }

    .tx-resbar {
        display: flex;
        flex-direction: column;
    }

    @media (min-width:768px) {
        .tx-resbar {
            flex-direction: row;
        }
    }

    .tx-resbar a {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 16px 10px;
        color: rgba(255,255,255,.88);
        text-decoration: none;
        font-size: 13px;
        letter-spacing: .06em;
        text-transform: uppercase;
        font-weight: 500;
        border-bottom: 1px solid #D2A86B;
        transition: background .2s ease, color .2s ease;
        white-space: nowrap;
    }

        .tx-resbar a:last-child {
            border-bottom: 0;
        }

    @media (min-width:768px) {
        .tx-resbar a {
            border-bottom: 0;
            border-right: 1px solid #D2A86B;
        }

            .tx-resbar a:last-child {
                border-right: 0;
            }
    }

        .tx-resbar a:hover {
            background: rgba(255,255,255,.08);
            color: #FFFFFF;
        }

    .tx-resbar__tick {
        color: #D2A86B;
        font-size: 11px;
    }

    .tx-ph--ps {
        background-image: url('/images/ps-hero-dallas.jpg');
        background-size: cover;
        background-position: center 40%;
        background-color: #0E1F3A;
    }

    .tx-ps {
        display: grid;
        grid-template-columns: 1fr;
        gap: clamp(28px,4vw,56px);
    }

    @media (min-width:900px) {
        .tx-ps {
            grid-template-columns: 260px minmax(0,1fr);
        }
    }

    /* .tx-ps-menu* / .tx-ps-panel* / .tx-ps-reports moved to /css/participant-services.css */
    /* Newsletters panel — year accordions (Option 1, chosen 2026-07-16) */
    .tx-news__year {
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        margin-bottom: 12px;
    }

        .tx-news__year summary {
            list-style: none;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 9px 18px;
            background: #0E1F3A;
        }

            .tx-news__year summary::-webkit-details-marker {
                display: none;
            }

            .tx-news__year summary:hover {
                background: #1F3D63;
            }

    .tx-news__yr {
        font-family: 'Prata',serif;
        font-size: 17px;
        color: #FFFFFF;
    }

    .tx-news__cnt {
        font-size: 11.5px;
        color: rgba(255,255,255,0.65);
        flex: 1 1 auto;
    }

    .tx-news__chev {
        transition: transform .2s ease;
        color: #D2A86B;
        flex-shrink: 0;
    }

    .tx-news__year[open] .tx-news__chev {
        transform: rotate(180deg);
    }

    .tx-news__months {
        display: grid;
        grid-template-columns: repeat(4,1fr);
        gap: 10px;
        padding: 18px 20px;
    }

    @media (max-width:760px) {
        .tx-news__months {
            grid-template-columns: repeat(2,1fr);
        }
    }

    .tx-news__badge {
        flex-shrink: 0;
        width: 18px;
        height: 18px;
    }

    .tx-news__mo {
        display: flex;
        align-items: center;
        gap: 9px;
        padding: 10px 12px;
        border: 1px solid var(--color-border);
        text-decoration: none;
        color: inherit;
        font-size: 13.5px;
        font-weight: 500;
        transition: border-color .15s ease, background .15s ease;
    }

        .tx-news__mo:hover {
            border-color: #B58A4F;
            background: rgba(181,138,79,0.06);
        }



/* ===== Master Page ===== */
.nav-mobile { display: none; }
    .nav-mobile.is-open { display: flex; }

    /* ================================================
       Hero — Texas Capitol full-bleed
       ================================================ */
    .tx-hero {
      position: relative;
      isolation: isolate;
      /* min-height (not fixed height) so the rates strip can NEVER be clipped:
         if the content is taller than the window, the hero grows instead of cutting */
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background: #0E1F3A;
    }
    .tx-hero__bg {
      position: absolute;
      inset: 0;
      background-image: url('/images/capitol-hero.jpg');
      background-size: cover;
      background-position: center 30%;
      /* Lightening FINAL (2026-07-29): team chose step 1 — brightness 1.10 (original was 1.04; step 2 tried 1.16, reverted) */
      filter: brightness(1.10) saturate(1.05);
      z-index: 0;
    }
    .tx-hero__overlay {
      position: absolute;
      inset: 0;
      /* Lightening FINAL (2026-07-29): team chose step 1 (original was 0.45/0.14/0.62/0.82 + 0.32/0.06; step 2 tried lighter, reverted) */
      background:
        linear-gradient(180deg, rgba(14, 31, 58, 0.38) 0%, rgba(14, 31, 58, 0.11) 32%, rgba(14, 31, 58, 0.55) 78%, rgba(14, 31, 58, 0.75) 100%),
        linear-gradient(90deg, rgba(14, 31, 58, 0.27) 0%, rgba(14, 31, 58, 0.05) 60%, transparent 100%);
      z-index: 1;
    }
    .tx-hero__content {
      position: relative;
      z-index: 2;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      padding-top: clamp(120px, 18vh, 200px);
      padding-bottom: clamp(72px, 9vh, 110px);
      gap: clamp(48px, 6vh, 96px);
    }
    @media (max-width: 767px) {
      .tx-hero { min-height: 100vh; min-height: 100dvh; }
      .tx-hero__overlay {
        background:
          linear-gradient(180deg, rgba(14, 31, 58, 0.40) 0%, rgba(14, 31, 58, 0.18) 30%, rgba(14, 31, 58, 0.78) 100%);
      }
    }

    /* ================================================
       Hero stats (bottom of photo)
       ================================================ */
    .tx-hero__stats-rule {
      height: 1px;
      width: 100%;
      background: rgba(255,255,255,0.20);
      margin-bottom: clamp(20px, 3vh, 32px);
    }
    .tx-stats-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px 16px;
    }
    .tx-stats-grid > * {
      text-align: center;
    }
    @media (min-width: 768px) {
      .tx-stats-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
      }
      .tx-stats-grid > * {
        padding: 0 clamp(12px, 1.5vw, 24px);
        position: relative;
      }
      .tx-stats-grid > *:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 14%;
        bottom: 14%;
        width: 1px;
        background: rgba(255, 255, 255, 0.18);
      }
    }
    .tx-stat__value {
      font-family: "Prata", serif;
      font-optical-sizing: auto;
      font-feature-settings: "tnum";
      font-weight: 400;
      color: #FFFFFF;
      line-height: 1;
      font-size: clamp(2rem, 3.5vw, 2.875rem);
      letter-spacing: -0.01em;
      text-shadow: 0 1px 2px rgba(8,16,32,0.35);
    }
    .tx-stat__label {
      margin-top: 12px;
      font-size: 12px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.92);
      font-weight: 500;
      text-shadow: 0 1px 2px rgba(8,16,32,0.35);
    }

    /* Hover interaction on hero stat cells (desktop only) */
    @media (min-width: 768px) {
      .tx-stats-grid > * {
        transition: transform 0.32s cubic-bezier(0.2, 0.7, 0.3, 1);
      }
      .tx-stats-grid > *:hover {
        transform: translateY(-3px);
      }
      .tx-stat__value {
        position: relative;
        display: inline-block;
      }
      .tx-stat__value::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: -10px;
        height: 2px;
        background: linear-gradient(90deg, #D2A86B 0%, rgba(210, 168, 107, 0.35) 100%);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 0.42s cubic-bezier(0.2, 0.7, 0.3, 1);
      }
      .tx-stats-grid > *:hover .tx-stat__value::after {
        transform: scaleX(1);
      }
      .tx-stat__label {
        transition: color 0.32s ease;
      }
      .tx-stats-grid > *:hover .tx-stat__label {
        color: #FFFFFF;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .tx-stats-grid > *,
      .tx-stat__value::after,
      .tx-stat__label {
        transition: none;
      }
      .tx-stats-grid > *:hover {
        transform: none;
      }
    }

    .tx-stats__footer {
      margin-top: clamp(18px, 2.5vh, 28px);
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 18px;
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.62);
      font-weight: 500;
    }
    .tx-stats__footer .sep { opacity: 0.35; }

    /* ================================================
       Hero typography refinements (tightened per spec)
       ================================================ */
    .tx-hero__eyebrow {
      font-size: clamp(11px, 0.85vw, 12px);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255,255,255,0.72);
    }
    .tx-hero__headline {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2.75rem, 6.5vw, 5.25rem);
      line-height: 0.98;
      letter-spacing: -0.022em;
      text-shadow: 0 1px 3px rgba(8,16,32,0.35);
      margin-top: clamp(20px, 2.4vh, 28px);
    }
    .tx-hero__headline .roman {
      color: #FFFFFF;
      font-weight: 500;
    }
    .tx-hero__headline em {
      font-style: italic;
      color: #D2A86B;
      font-weight: 400;
    }
    .tx-hero__headline .tx-amp {
      font-family: "Inter", sans-serif;
      font-style: normal;
      font-weight: 400;
    }
    .tx-f-alt {
      font-family: "Playfair Display", serif;
      font-style: normal;
    }
    h2.tx-pf { font-family: "Playfair Display", serif; }
    .tx-hero__subhead {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-weight: 400;
      color: rgba(255,255,255,0.82);
      max-width: 54ch;
      font-size: clamp(1rem, 1.45vw, 1.375rem);
      line-height: 1.45;
      margin-top: clamp(22px, 2.6vh, 32px);
      text-shadow: 0 1px 2px rgba(8,16,32,0.3);
    }

    /* Short laptop screens (e.g. 1366x768 at 125% Windows scaling): compress the hero
       so headline, CTAs, AND the rates strip all fit above the fold — no zooming needed.
       NOTE: must stay BELOW the base .tx-hero__headline/.tx-stat__value rules to win. */
    @media (min-width: 768px) and (max-height: 740px) {
      .tx-hero { min-height: 100vh; min-height: 100dvh; }
      .tx-hero__content { padding-top: 104px; padding-bottom: 20px; gap: 16px; }
      /* same size formula as the interior page heroes (program-info etc.) */
      .tx-hero__headline { font-size: clamp(2.5rem, 5.5vw, 4.5rem); margin-top: 12px; }
      .tx-hero__subhead { margin-top: 12px; font-size: 1.05rem; }
      .tx-hero__stats-rule { margin-bottom: 14px; }
      .tx-stat__value { font-size: clamp(1.6rem, 2.8vw, 2.1rem); }
      .tx-stat__label { margin-top: 8px; }
    }
    /* Smallest laptop windows (older Dells at high Windows scaling): rates step down,
       headline keeps the interior-page size from the tier above */
    @media (min-width: 768px) and (max-height: 600px) {
      .tx-stat__value { font-size: clamp(1.35rem, 2.3vw, 1.7rem); }
    }

    /* Hero CTA pair */
    .tx-hero__cta-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 14px 28px;
      margin-top: clamp(30px, 4vh, 44px);
    }
    .tx-hero__cta-primary {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: #FFFFFF;
      color: var(--color-fg);
      padding: 15px 28px;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 13px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-weight: 500;
      transition: gap 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
      box-shadow: 0 10px 28px rgba(8,16,32,0.30);
    }
    .tx-hero__cta-primary:hover {
      gap: 14px;
      transform: translateY(-1px);
      box-shadow: 0 14px 36px rgba(8,16,32,0.36);
    }
    .tx-hero__cta-primary svg {
      width: 14px;
      height: 14px;
    }
    .tx-hero__cta-secondary {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: rgba(255,255,255,0.92);
      padding: 6px 0;
      font-family: var(--font-body);
      font-size: 13px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-weight: 500;
      border-bottom: 1px solid rgba(255,255,255,0.55);
      transition: border-color 0.2s ease, color 0.2s ease, gap 0.2s ease;
    }
    .tx-hero__cta-secondary:hover {
      border-color: #D2A86B;
      color: #D2A86B;
      gap: 12px;
    }
    .tx-hero__cta-secondary svg {
      width: 13px;
      height: 13px;
    }

    /* ================================================
       Header bar (translucent navy + backdrop blur)
       ================================================ */
    .tx-header {
      background: rgba(14, 31, 58, 0.72);
      backdrop-filter: blur(14px) saturate(140%);
      -webkit-backdrop-filter: blur(14px) saturate(140%);
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }
    .tx-header nav a:hover { color: #D2A86B; }
    .tx-logo-mark {
      height: 26px;
      width: auto;
      flex-shrink: 0;
      display: block;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }
    .tx-logo-img {
      height: 48px;
      width: auto;
      flex-shrink: 0;
      display: block;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }
    @media (min-width: 768px) {
      .tx-logo-mark { height: 30px; }
      .tx-logo-img { height: 66px; }
    }
    .tx-header__contact {
      display: none;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.78);
      transition: color 0.2s ease;
    }
    .tx-header__contact:hover { color: #FFFFFF; }
    @media (min-width: 768px) { .tx-header__contact { display: inline-flex; } }

    /* ================================================
       Investment Solutions — asymmetric pillar splits
       ================================================ */
    .tx-pillar {
      display: grid;
      grid-template-columns: 1fr;
      background: var(--color-bg);
      min-height: auto;
    }
    .tx-pillar__image {
      background-size: cover;
      background-position: center;
      min-height: 320px;
      order: 1;
    }
    .tx-pillar__content {
      padding: clamp(48px, 6vh, 80px) clamp(24px, 5vw, 80px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      order: 2;
    }
    @media (min-width: 768px) {
      .tx-pillar {
        grid-template-columns: 1fr 1fr;
        min-height: 70vh;
      }
      .tx-pillar__image {
        min-height: 560px;
        order: 1;
      }
      .tx-pillar__content {
        padding: clamp(56px, 8vh, 120px) clamp(48px, 6vw, 96px);
        order: 2;
      }
      .tx-pillar.reverse .tx-pillar__image { order: 2; }
      .tx-pillar.reverse .tx-pillar__content { order: 1; }
    }
    .tx-pillar__num {
      font-size: 12px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: #B58A4F;
      font-weight: 500;
      margin-bottom: 22px;
    }
    .tx-pillar__title {
      font-family: "Playfair Display", serif;
      font-optical-sizing: auto;
      font-size: clamp(2rem, 3.6vw, 2.875rem);
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--color-fg);
      max-width: 18ch;
    }
    .tx-pillar__title em {
      font-style: normal;
      color: #B58A4F;
    }
    .tx-pillar__body {
      margin-top: 24px;
      font-size: clamp(16.5px, 1.2vw, 18.5px);
      line-height: 1.65;
      color: var(--color-muted);
      max-width: 48ch;
    }
    .tx-pillar__cta {
      margin-top: 32px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.05em;
      color: var(--color-fg);
      border-bottom: 1px solid var(--color-fg);
      padding-bottom: 4px;
      width: fit-content;
      transition: color 0.2s, border-color 0.2s;
    }
    .tx-pillar__cta:hover {
      color: #B58A4F;
      border-color: #B58A4F;
    }

    /* ================================================
       Enrollment — vertical timeline with hairline + serif numerals
       ================================================ */
    .tx-timeline {
      position: relative;
    }
    .tx-timeline::before {
      content: '';
      position: absolute;
      left: 30px;
      top: 28px;
      bottom: 28px;
      width: 1px;
      background: var(--color-border);
      z-index: 0;
    }
    .tx-timeline__step {
      display: grid;
      grid-template-columns: 60px 1fr;
      gap: clamp(20px, 3vw, 40px);
      padding: clamp(20px, 2.6vh, 32px) 0;
      align-items: start;
      position: relative;
      z-index: 1;
    }
    .tx-timeline__step:first-child { padding-top: 0; }
    .tx-timeline__step:last-child { padding-bottom: 0; }
    .tx-timeline__num {
      position: relative;
      z-index: 2;
      text-align: center;
      background: var(--color-bg);
      padding: 8px 0;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-variation-settings: "opsz" 96, "WONK" 1;
      font-feature-settings: "tnum";
      font-size: clamp(2rem, 3vw, 2.5rem);
      line-height: 1;
      letter-spacing: -0.01em;
      color: var(--color-fg);
    }
    .tx-timeline__body {
      font-size: clamp(15px, 1.05vw, 17px);
      line-height: 1.6;
      color: var(--color-fg);
      max-width: 60ch;
      padding-top: 10px;
    }
    @media (min-width: 768px) {
      .tx-timeline::before { left: 40px; }
      .tx-timeline__step { grid-template-columns: 80px 1fr; }
    }
    .tx-contact-band {
      margin-top: clamp(28px, 4vh, 48px);
      padding: clamp(20px, 3vh, 32px) clamp(20px, 3vw, 32px);
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 32px;
      font-size: 14px;
      color: var(--color-fg);
    }
    .tx-contact-band__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      margin-right: 8px;
    }
    .tx-contact-band a:hover { color: #B58A4F; }

    /* ================================================
       Board Members — photo card grid
       ================================================ */
    .tx-board__group + .tx-board__group {
      margin-top: clamp(64px, 9vh, 112px);
    }
    .tx-board__group-header {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 16px;
      padding-bottom: 18px;
      margin-bottom: clamp(32px, 5vh, 48px);
      border-bottom: 2px solid var(--color-fg);
    }
    .tx-board__group-label {
      font-size: 13px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-fg);
      font-weight: 600;
    }
    .tx-board__group-count {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      font-style: italic;
    }

    .tx-board__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(32px, 4vw, 44px) clamp(20px, 2.4vw, 32px);
      max-width: 1080px;
    }
    @media (min-width: 600px) {
      .tx-board__grid--3,
      .tx-board__grid--4 {
        grid-template-columns: repeat(2, 1fr);
      }
    }
    @media (min-width: 960px) {
      .tx-board__grid--4 {
        grid-template-columns: repeat(4, 1fr);
      }
      .tx-board__grid--3 {
        grid-template-columns: repeat(3, 1fr);
        max-width: 820px;
      }
    }

    .tx-board-card {
      display: flex;
      flex-direction: column;
    }
    .tx-board-card__photo {
      position: relative;
      aspect-ratio: 1 / 1;
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      overflow: hidden;
      margin-bottom: clamp(16px, 2vh, 22px);
    }
    .tx-board-card__photo img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
      transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
      z-index: 2;
    }
    .tx-board-card:hover .tx-board-card__photo img {
      transform: scale(1.04);
    }
    .tx-board-card__initials {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-weight: 400;
      font-size: clamp(2.25rem, 3.8vw, 2.875rem);
      letter-spacing: -0.02em;
      color: rgba(14, 31, 58, 0.22);
      z-index: 1;
      user-select: none;
    }
    /* Subtle texture on placeholder cards so they read as "intentional" not "missing" */
    .tx-board-card__photo:not(:has(img)),
    .tx-board-card__photo img[style*="display: none"] + .tx-board-card__initials,
    .tx-board-card__photo:has(img[style*="display: none"]) {
      background:
        linear-gradient(135deg, rgba(14, 31, 58, 0.025) 0%, transparent 60%),
        var(--color-surface);
    }

    .tx-board-card__role {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      color: #B58A4F;
      margin-bottom: 10px;
    }
    .tx-board-card__name {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.25rem, 1.6vw, 1.5rem);
      line-height: 1.15;
      letter-spacing: -0.005em;
      color: var(--color-fg);
      margin-bottom: 8px;
    }
    .tx-board-card.is-senior .tx-board-card__name {
      font-size: clamp(1.5rem, 2vw, 1.75rem);
      letter-spacing: -0.01em;
    }
    .tx-board-card__entity {
      font-size: 14px;
      line-height: 1.5;
      color: var(--color-muted);
      font-style: italic;
      max-width: 28ch;
    }

    /* ================================================
       Rate Information — navy data zone
       ================================================ */
    .tx-rate-section {
      background: var(--color-fg);
      color: var(--color-bg);
    }
    .tx-rate-section .tx-section-eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.65);
      font-weight: 500;
    }
    .tx-rate-section h2 {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2rem, 3.6vw, 2.875rem);
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--color-bg);
    }
    .tx-rate-section h2 em { color: #D2A86B; font-style: italic; }
    .tx-rate-section .tx-cob {
      font-size: 12px;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.55);
      font-weight: 500;
    }
    .tx-rate-section .tx-cob strong {
      color: var(--color-bg);
      font-weight: 500;
      letter-spacing: 0;
      text-transform: none;
      font-size: 14px;
      margin-left: 8px;
    }

    /* 6-stat grid */
    .tx-rates-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      border-top: 1px solid rgba(246, 241, 231, 0.20);
      border-left: 1px solid rgba(246, 241, 231, 0.20);
    }
    .tx-rate-cell {
      padding: clamp(20px, 3vw, 32px);
      border-right: 1px solid rgba(246, 241, 231, 0.20);
      border-bottom: 1px solid rgba(246, 241, 231, 0.20);
    }
    .tx-rate-cell__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.62);
      font-weight: 500;
      margin-bottom: 16px;
    }
    .tx-rate-cell__value {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-variation-settings: "opsz" 96, "WONK" 1;
      font-feature-settings: "tnum";
      font-size: clamp(1.75rem, 3vw, 2.625rem);
      line-height: 1;
      letter-spacing: -0.01em;
      color: #FFFFFF;
    }
    .tx-rate-cell__value .unit {
      color: rgba(246, 241, 231, 0.45);
      font-size: 0.55em;
      margin-left: 8px;
      letter-spacing: 0;
    }
    @media (min-width: 768px) {
      .tx-rates-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    /* daily rate history table */
    .tx-rate-table {
      width: 100%;
      border-collapse: collapse;
      font-feature-settings: "tnum";
    }
    .tx-rate-table th {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.55);
      font-weight: 500;
      text-align: left;
      padding: 16px 0 12px;
      border-bottom: 1px solid rgba(246, 241, 231, 0.30);
    }
    .tx-rate-table td {
      padding: 14px 0;
      font-size: 14px;
      color: rgba(246, 241, 231, 0.92);
      border-bottom: 1px solid rgba(246, 241, 231, 0.10);
    }
    .tx-rate-table th:nth-child(2),
    .tx-rate-table td:nth-child(2),
    .tx-rate-table th:nth-child(3),
    .tx-rate-table td:nth-child(3) {
      text-align: right;
    }
    .tx-rate-table tbody tr:last-child td {
      border-bottom: 0;
    }
    .tx-rate-table .num {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-feature-settings: "tnum";
      font-size: 15px;
      letter-spacing: -0.005em;
    }
    .tx-rate-table__footer {
      margin-top: 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      font-size: 13px;
      color: rgba(246, 241, 231, 0.62);
    }
    .tx-rate-table__footer a {
      color: rgba(246, 241, 231, 0.92);
      border-bottom: 1px solid rgba(246, 241, 231, 0.40);
      padding-bottom: 2px;
      transition: color 0.2s, border-color 0.2s;
    }
    .tx-rate-table__footer a:hover { color: #D2A86B; border-color: #D2A86B; }

    /* ================================================
       Yield Calculator — below rate table, navy data zone
       ================================================ */
    .tx-calc__intro {
      margin-bottom: clamp(40px, 5vh, 56px);
      max-width: 56ch;
    }
    .tx-calc__intro h3 {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2rem, 3.6vw, 2.875rem);
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--color-bg);
      margin-top: 16px;
      max-width: 18ch;
    }
    .tx-calc__intro h3 em {
      color: #D2A86B;
      font-style: italic;
    }
    .tx-calc__intro p {
      margin-top: 14px;
      font-size: clamp(15.5px, 1.15vw, 17.5px);
      line-height: 1.55;
      color: rgba(246, 241, 231, 0.78);
    }

    .tx-calc__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(32px, 4vh, 48px);
    }
    @media (min-width: 900px) {
      .tx-calc__grid {
        grid-template-columns: 5fr 7fr;
        gap: clamp(36px, 4.5vw, 56px);
        align-items: center;
      }
    }

    /* Form — bordered fields on navy */
    .tx-calc__form {
      display: grid;
      gap: 14px;
      color-scheme: dark;
    }
    .tx-calc__row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }
    .tx-calc__field {
      position: relative;
      border: 1.5px solid rgba(246, 241, 231, 0.32);
      background: rgba(14, 31, 58, 0.22);
      border-radius: 4px;
      transition: border-color 0.2s, background 0.2s;
    }
    .tx-calc__field:hover { border-color: rgba(246, 241, 231, 0.50); }
    .tx-calc__field:focus-within {
      border-color: rgba(246, 241, 231, 0.90);
      background: rgba(14, 31, 58, 0.40);
    }
    .tx-calc__field.is-error {
      border-color: #D2A86B;
      background: rgba(210, 168, 107, 0.08);
    }
    .tx-calc__field label {
      display: block;
      padding: 12px 16px 0;
      font-size: 10px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.65);
      font-weight: 500;
      pointer-events: none;
    }
    .tx-calc__field input {
      width: 100%;
      padding: 4px 16px 14px;
      border: 0;
      background: transparent;
      font-family: var(--font-body);
      font-size: 16px;
      color: var(--color-bg);
      outline: none;
      font-feature-settings: "tnum";
    }
    .tx-calc__field input::placeholder {
      color: rgba(246, 241, 231, 0.35);
    }
    .tx-calc__field input[type="date"]::-webkit-calendar-picker-indicator {
      filter: invert(1) opacity(0.55);
      cursor: pointer;
      margin-right: 0;
    }
    .tx-calc__field input[type="date"]::-webkit-calendar-picker-indicator:hover {
      filter: invert(1) opacity(0.85);
    }
    .tx-calc__amount input {
      padding-left: 30px;
    }
    .tx-calc__amount::before {
      content: '$';
      position: absolute;
      left: 16px;
      bottom: 14px;
      font-family: var(--font-body);
      font-size: 16px;
      color: rgba(246, 241, 231, 0.50);
      pointer-events: none;
      line-height: 1;
    }
    .tx-calc__submit {
      margin-top: 10px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: var(--color-bg);
      color: var(--color-fg);
      padding: 18px 30px;
      border: 0;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      cursor: pointer;
      width: 100%;
      transition: background 0.2s, transform 0.15s;
    }
    .tx-calc__submit:hover { background: #FFFFFF; }
    .tx-calc__submit:active { transform: scale(0.99); }
    .tx-calc__error {
      min-height: 18px;
      margin-top: 4px;
      font-size: 13px;
      color: #D2A86B;
      letter-spacing: 0.01em;
      opacity: 0;
      transition: opacity 0.2s;
    }
    .tx-calc__error.is-visible { opacity: 1; }

    /* Result panel */
    .tx-calc__result {
      display: flex;
      flex-direction: column;
    }
    .tx-calc__result-label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.62);
      font-weight: 500;
    }
    .tx-calc__result-value {
      margin-top: 18px;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-variation-settings: "opsz" 144, "WONK" 1;
      font-feature-settings: "tnum";
      font-style: italic;
      font-weight: 400;
      font-size: clamp(2.75rem, 6.5vw, 5.25rem);
      line-height: 1;
      letter-spacing: -0.022em;
      color: #D2A86B;
      word-break: break-word;
    }
    .tx-calc__result-value .currency {
      font-style: normal;
      color: rgba(210, 168, 107, 0.65);
      font-size: 0.55em;
      vertical-align: 0.22em;
      margin-right: 6px;
      font-feature-settings: normal;
    }
    .tx-calc__result-sub {
      margin-top: 22px;
      font-size: clamp(14px, 1vw, 16px);
      line-height: 1.6;
      color: rgba(246, 241, 231, 0.82);
      max-width: 46ch;
    }
    .tx-calc__result-sub strong {
      color: var(--color-bg);
      font-weight: 500;
      font-feature-settings: "tnum";
    }
    .tx-calc__disclaimer {
      margin-top: 22px;
      font-size: 12px;
      line-height: 1.55;
      color: rgba(246, 241, 231, 0.55);
      max-width: 48ch;
    }
    .tx-calc__disclaimer a {
      color: rgba(246, 241, 231, 0.85);
      border-bottom: 1px solid rgba(246, 241, 231, 0.30);
      padding-bottom: 1px;
      transition: color 0.2s, border-color 0.2s;
      white-space: nowrap;
    }
    .tx-calc__disclaimer a:hover { color: #D2A86B; border-color: #D2A86B; }

    /* ================================================
       Contact — closing split (photo left, headline right on cream)
       ================================================ */
    .tx-close-split {
      display: grid;
      grid-template-columns: 1fr;
      background: var(--color-bg);
    }
    .tx-close-split__image {
      background-image: url('/images/contact-courthouse.jpg');
      background-size: cover;
      background-position: center;
      min-height: 380px;
      order: 1;
    }
    .tx-close-split__content {
      padding: clamp(48px, 7vh, 96px) clamp(24px, 5vw, 80px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      order: 2;
    }
    @media (min-width: 768px) {
      .tx-close-split {
        grid-template-columns: 5fr 7fr;
        min-height: 70vh;
      }
      .tx-close-split__image {
        min-height: 620px;
      }
      .tx-close-split__content {
        padding: clamp(72px, 10vh, 128px) clamp(56px, 7vw, 112px);
      }
    }
    .tx-close__eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
    }
    .tx-close__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2.25rem, 4.5vw, 3.75rem);
      line-height: 1.02;
      letter-spacing: -0.022em;
      color: var(--color-fg);
      margin-top: 20px;
      max-width: 14ch;
    }
    .tx-close__title em {
      font-style: italic;
      color: #B58A4F;
    }
    .tx-close__sub {
      margin-top: clamp(20px, 2.6vh, 32px);
      font-size: clamp(15px, 1.05vw, 17px);
      line-height: 1.65;
      color: var(--color-muted);
      max-width: 42ch;
    }

    /* Contact details + form */
    .tx-contact-info__group + .tx-contact-info__group {
      margin-top: 28px;
      padding-top: 28px;
      border-top: 1px solid var(--color-border);
    }
    .tx-contact-info__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      margin-bottom: 10px;
    }
    .tx-contact-info__lines {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.125rem, 1.6vw, 1.375rem);
      line-height: 1.4;
      color: var(--color-fg);
    }
    .tx-contact-info__lines a {
      color: var(--color-fg);
      border-bottom: 1px solid transparent;
      transition: border-color 0.2s, color 0.2s;
      font-feature-settings: "tnum";
    }
    .tx-contact-info__lines a:hover { border-color: #B58A4F; color: #B58A4F; }
    .tx-contact-info__sub {
      font-size: 13px;
      color: var(--color-muted);
      margin-top: 6px;
    }

    /* Form (no card, no shadow — hairline-divided fields) */
    .tx-form {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0;
    }
    .tx-form__row { display: contents; }
    @media (min-width: 640px) {
      .tx-form__row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
      }
      .tx-form__row .tx-form__field + .tx-form__field {
        border-left: 1px solid var(--color-border);
        margin-left: -1px;
      }
    }
    .tx-form__field {
      position: relative;
      border-bottom: 1px solid var(--color-border);
    }
    .tx-form__field:first-child { border-top: 1px solid var(--color-border); }
    .tx-form__row .tx-form__field:first-child { border-top: 1px solid var(--color-border); }
    .tx-form__field label {
      position: absolute;
      top: 12px;
      left: 0;
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      pointer-events: none;
    }
    .tx-form__field input,
    .tx-form__field textarea {
      width: 100%;
      border: 0;
      background: transparent;
      padding: 36px 0 16px;
      font-family: var(--font-body);
      font-size: 16px;
      color: var(--color-fg);
      outline: none;
    }
    .tx-form__field textarea {
      min-height: 120px;
      resize: vertical;
      line-height: 1.5;
    }
    .tx-form__field input:focus,
    .tx-form__field textarea:focus {
      background: rgba(14, 31, 58, 0.02);
    }
    .tx-form__submit {
      margin-top: 24px;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: var(--color-fg);
      color: var(--color-bg);
      padding: 16px 28px;
      border: 0;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.05em;
      cursor: pointer;
      transition: background 0.2s;
    }
    .tx-form__submit:hover { background: #1A2D4D; }

    /* ================================================
       Contact — full-bleed flag bg + bordered form
       ================================================ */
    .tx-contact-section {
      position: relative;
      isolation: isolate;
      background: var(--color-fg);
      color: var(--color-bg);
      overflow: hidden;
    }
    .tx-contact-section__bg {
      position: absolute;
      inset: 0;
      background-image: url('/images/contact-flags.jpg');
      background-size: cover;
      background-position: center 30%;
      filter: brightness(1.10) saturate(1.08);
      z-index: 0;
    }
    .tx-contact-section__overlay {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(14, 31, 58, 0.58) 0%, rgba(14, 31, 58, 0.50) 50%, rgba(14, 31, 58, 0.72) 100%),
        linear-gradient(90deg, rgba(14, 31, 58, 0.10) 0%, rgba(14, 31, 58, 0.02) 60%, transparent 100%);
      z-index: 1;
    }
    .tx-contact-section__content {
      position: relative;
      z-index: 2;
    }
    /* Mobile: the tall narrow section reduced the flag photo to an abstract sliver.
       Show the flags as a real banner at the top; content sits on solid navy below. */
    @media (max-width: 767px) {
      .tx-contact-section { background: #16294a; }
      .tx-contact-section__bg {
        inset: 0 0 auto 0;
        height: 300px;
        background-position: center 32%;
      }
      .tx-contact-section__overlay {
        inset: 0 0 auto 0;
        height: 300px;
        background: linear-gradient(180deg, rgba(14, 31, 58, 0.30) 0%, rgba(14, 31, 58, 0.45) 55%, #16294a 100%);
      }
      .tx-form-dark__submit-row { flex-wrap: wrap; }
    }
    .tx-contact-section h2 {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2.25rem, 4.5vw, 3.75rem);
      line-height: 1.02;
      letter-spacing: -0.022em;
      color: var(--color-bg);
      max-width: 14ch;
      text-shadow: 0 1px 3px rgba(8,16,32,0.35);
    }
    .tx-contact-section h2.tx-pf-head { font-family: "Playfair Display", serif; }
    .tx-contact-section h2.tx-pf-head em { font-style: normal; }
    .tx-contact-section h2 em {
      font-style: italic;
      color: #D2A86B;
    }
    .tx-contact-section h3 {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.5rem, 2.4vw, 2rem);
      line-height: 1.1;
      letter-spacing: -0.015em;
      color: var(--color-bg);
    }
    .tx-contact-section .eyebrow,
    .tx-contact-section__eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.72);
      font-weight: 500;
    }
    .tx-contact-section__sub {
      font-size: clamp(15px, 1.05vw, 17px);
      line-height: 1.65;
      color: rgba(246, 241, 231, 0.85);
      max-width: 44ch;
    }

    /* Contact info groups (dark) */
    .tx-contact-info-dark__group + .tx-contact-info-dark__group {
      margin-top: 22px;
      padding-top: 22px;
      border-top: 1px solid rgba(246, 241, 231, 0.18);
    }
    .tx-contact-info-dark__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.60);
      font-weight: 500;
      margin-bottom: 8px;
    }
    .tx-contact-info-dark__lines {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.125rem, 1.5vw, 1.3rem);
      line-height: 1.4;
      color: var(--color-bg);
    }
    .tx-contact-info-dark__lines a {
      color: var(--color-bg);
      border-bottom: 1px solid transparent;
      transition: border-color 0.2s, color 0.2s;
      font-feature-settings: "tnum";
    }
    .tx-contact-info-dark__lines a:hover { border-color: #D2A86B; color: #D2A86B; }
    .tx-contact-info-dark__lines a.tx-addr-link { border-bottom: none; transition: color 0.2s; }
    .tx-contact-info-dark__lines a.tx-addr-link:hover { color: #D2A86B; font-weight: 600; }
    .tx-contact-info-dark__sub {
      font-size: 13px;
      color: rgba(246, 241, 231, 0.62);
      margin-top: 6px;
    }

    /* Bordered form fields (clear "fill me in" boxes) */
    .tx-form-dark {
      display: grid;
      gap: 14px;
    }
    .tx-form-dark__row {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
    }
    @media (min-width: 640px) {
      .tx-form-dark__row {
        grid-template-columns: 1fr 1fr;
      }
    }
    .tx-form-dark__field {
      position: relative;
      border: 2px solid rgba(246, 241, 231, 0.62);
      background: rgba(8, 18, 36, 0.62);
      border-radius: 4px;
      transition: border-color 0.2s, background 0.2s;
    }
    .tx-form-dark__field:hover {
      border-color: rgba(246, 241, 231, 0.80);
      background: rgba(8, 18, 36, 0.72);
    }
    .tx-form-dark__field:focus-within {
      border-color: #FFFFFF;
      background: rgba(8, 18, 36, 0.85);
    }
    .tx-form-dark__field label {
      display: block;
      padding: 12px 16px 0;
      font-size: 10px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.95);
      font-weight: 500;
      pointer-events: none;
    }
    .tx-form-dark__field input,
    .tx-form-dark__field textarea {
      width: 100%;
      padding: 4px 16px 14px;
      border: 0;
      background: transparent;
      font-family: var(--font-body);
      font-size: 16px;
      color: #FFFFFF;
      outline: none;
    }
    .tx-form-dark__field input::placeholder,
    .tx-form-dark__field textarea::placeholder {
      color: rgba(255, 255, 255, 0.65);
    }
    .tx-form-dark__field textarea {
      min-height: 110px;
      padding-bottom: 16px;
      resize: vertical;
      line-height: 1.5;
    }
    .tx-form-dark__submit-row {
      margin-top: 26px;
      display: flex;
      align-items: center;
      gap: 24px;
      flex-wrap: wrap;
    }
    .tx-form-dark__submit {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: var(--color-bg);
      color: var(--color-fg);
      padding: 15px 26px;
      border: 0;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.05em;
      cursor: pointer;
      transition: background 0.2s, transform 0.2s;
    }
    .tx-form-dark__submit:hover {
      background: #FFFFFF;
    }
    .tx-form-dark__status {
      min-height: 22px;
      font-size: 14px;
      color: rgba(246, 241, 231, 0.82);
    }
    .tx-form-dark__status.is-error { color: #F2A0A0; }
    .tx-form-dark__status.is-success { color: #D2A86B; }
    .altcha-box {
      display: inline-flex;
      align-items: center;
      min-height: 46px;
      padding: 0 16px;
      border: 1px solid rgba(246, 241, 231, 0.45);
      border-radius: 999px;
      background: rgba(8, 18, 36, 0.50);
      color: var(--color-bg);
      font-size: 14px;
    }
    .altcha-label {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      user-select: none;
    }
    .altcha-label input {
      width: 18px;
      height: 18px;
      accent-color: #D2A86B;
    }
    .altcha-label input:disabled + span { opacity: .78; }

    /* ================================================
       First-paint stagger animation
       (only when html[data-animate-hero] is set, only first-load per session)
       ================================================ */
    [data-animate-hero] .hero-fade-in {
      opacity: 0;
      transform: translateY(14px);
      animation: heroFadeIn 0.85s cubic-bezier(0.2, 0.7, 0.3, 1) var(--delay, 0s) forwards;
    }
    @keyframes heroFadeIn {
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }
    @media (prefers-reduced-motion: reduce) {
      [data-animate-hero] .hero-fade-in {
        animation: none;
        opacity: 1;
        transform: none;
      }
    }

/********************************* Accordian ***************************************************/
.accordionHeader {
    /* background-color:Silver; */
    background-color: #e8eaec;
    border: 1px solid #2F4F4F;
    cursor: pointer;
    padding: 5px;
    margin-top: 5px;
}

.accordionHeaderSelected {
    background-color: white;
    border: 1px solid #2F4F4F;
    cursor: pointer;
    padding: 5px;
    margin-top: 5px;
}

.accordionContent {
    background-color: white;
    border: 1px dashed #2F4F4F;
    border-top: none;
    padding: 5px;
    padding-top: 10px;
}
/********************************* End of Accordian ********************************************/


/* ===== ProgramInformation.ascx ===== */
.nav-mobile { display: none; }
    .nav-mobile.is-open { display: flex; }
    .tx-logo-img { height: 48px; width: auto; flex-shrink: 0; display: block; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25)); }
    @media (min-width: 768px) { .tx-logo-img { height: 66px; } }

    /* ================================================
       Header — translucent navy + blur (shared)
       ================================================ */
    .tx-header {
      background: rgba(14, 31, 58, 0.72);
      backdrop-filter: blur(14px) saturate(140%);
      -webkit-backdrop-filter: blur(14px) saturate(140%);
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }
    .tx-logo-mark {
      height: 26px;
      width: auto;
      flex-shrink: 0;
      display: block;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }
    @media (min-width: 768px) {
      .tx-logo-mark { height: 30px; }
    }
    .tx-header nav a:hover { color: #D2A86B; }
    .tx-nav-link[aria-current="page"] { color: #D2A86B; }
    .tx-nav-link[aria-current="page"]::after {
      content: '';
      display: block;
      height: 1px;
      background: #D2A86B;
      margin-top: 3px;
    }
    .tx-header__contact {
      display: none;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.78);
      transition: color 0.2s ease;
    }
    .tx-header__contact:hover { color: #FFFFFF; }
    @media (min-width: 768px) { .tx-header__contact { display: inline-flex; } }

    /* ================================================
       Page Hero — Texas bluebonnets + star photo
       ================================================ */
    .tx-ph {
      position: relative;
      isolation: isolate;
      /* PILOT 2026-07-06: hero reduced ~27% — revert to 63vh / 600px */
      min-height: 46vh;
      min-height: 440px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background-color: #0E1F3A;
    }
    /* Hero = licensed fence-star photo (CHOSEN by team 2026-07-20); previous star+bluebonnets preserved at images/program-info-hero.jpg */
    .tx-ph__rbg { position: absolute; inset: 0; z-index: 0; }
    .tx-ph__slide {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      opacity: 0;
      transition: opacity 800ms ease-in-out;
      will-change: opacity;
    }
    .tx-ph__slide.is-active { opacity: 1; }
    .tx-ph__slide--fencestar { background-image: url('../images/pi-hero-fencestar.jpg'); background-position: 62% 45%; }
    @media (prefers-reduced-motion: reduce) { .tx-ph__slide { transition: none; } }
    .tx-ph__overlaygrad {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(90deg, rgba(10, 26, 48, 0.36) 0%, rgba(14, 31, 58, 0.20) 38%, rgba(14, 31, 58, 0.12) 68%, rgba(14, 31, 58, 0.20) 100%),
        linear-gradient(180deg, rgba(14, 31, 58, 0.08) 0%, transparent 30%, rgba(14, 31, 58, 0.14) 100%);
      pointer-events: none;
    }
    .tx-ph__bg-grain {
      position: absolute;
      inset: 0;
      opacity: 0.5;
      mix-blend-mode: overlay;
      background-image:
        radial-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px);
      background-size: 6px 6px;
      z-index: 0;
      pointer-events: none;
    }
    .tx-ph__content {
      position: relative;
      z-index: 2;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding-top: clamp(120px, 18vh, 180px);
      padding-bottom: clamp(56px, 7vh, 80px);
    }
    .tx-ph__eyebrow {
      font-size: clamp(11px, 0.85vw, 12px);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255,255,255,0.92);
    }
    .tx-ph__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2.25rem, 4.8vw, 3.875rem);
      line-height: 1;
      letter-spacing: -0.022em;
      color: #FFFFFF;
      margin-top: clamp(20px, 2.4vh, 28px);
      max-width: 14ch;
      text-shadow: 0 1px 3px rgba(8,16,32,0.45);
      font-weight: 500;
    }
    .tx-ph__title em {
      font-style: normal;
      color: #D2A86B;
      font-weight: 400;
    }
    .tx-ph__sub {
      margin-top: clamp(20px, 2.4vh, 28px);
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-weight: 500;
      font-size: clamp(0.95rem, 1.2vw, 1.15rem);
      line-height: 1.5;
      color: rgba(255,255,255,0.92);
      max-width: 44ch;
      text-shadow: 0 1px 2px rgba(8,16,32,0.3);
    }

    /* Two-column hero layout: text on left, Texas-chart viz on right */
    .tx-rates-hero {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(32px, 5vh, 56px);
      align-items: center;
    }
    @media (min-width: 900px) {
      .tx-rates-hero {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        gap: clamp(40px, 5vw, 72px);
      }
    }
    .tx-rates-hero__period {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 22px;
      padding: 6px 14px;
      border: 1px solid rgba(210, 168, 107, 0.35);
      border-radius: 999px;
      background: rgba(210, 168, 107, 0.08);
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.82);
    }
    .tx-rates-hero__period::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #D2A86B;
      animation: tx-live-blink 2s ease-in-out infinite;
    }
    @keyframes tx-live-blink {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.35; }
    }

    .tx-rates-hero__viz {
      position: relative;
      width: 100%;
      max-width: 640px;
      margin: 0 auto;
    }
    .tx-rates-viz {
      width: 100%;
      height: auto;
      display: block;
    }

    /* Chart line draw-in animation */
    .tx-chart-line {
      stroke-dasharray: 1000;
      stroke-dashoffset: 1000;
      animation: tx-draw-line 1.8s cubic-bezier(0.2, 0.7, 0.3, 1) 0.5s forwards;
    }
    @keyframes tx-draw-line {
      to { stroke-dashoffset: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .tx-chart-line {
        animation: none;
        stroke-dashoffset: 0;
      }
      .tx-rates-hero__period::before { animation: none; }
    }

    /* Live dot fades in after the line finishes drawing */
    .tx-chart-live {
      opacity: 0;
      animation: tx-fade-in 0.6s ease 2.1s forwards;
    }
    @keyframes tx-fade-in { to { opacity: 1; } }

    .tx-chart-annotation {
      opacity: 0;
      animation: tx-fade-up 0.6s ease 2.3s forwards;
    }
    @keyframes tx-fade-up {
      from { opacity: 0; transform: translateY(4px); }
      to { opacity: 1; transform: translateY(0); }
    }

    /* ================================================
       Two-column main layout — sticky sidebar + content
       ================================================ */
    .tx-pi-main {
      display: block;
    }

    /* Horizontal sub-nav above the rate history (replaces left sidebar) */
    .tx-pi-subnav {
      display: flex;
      flex-wrap: wrap;
      align-items: stretch;
      margin-bottom: clamp(28px, 4vh, 44px);
      border-top: 1px solid var(--color-border);
      border-bottom: 1px solid var(--color-border);
      background: var(--color-surface);
    }
    .tx-pi-subnav__item {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 16px clamp(18px, 2vw, 26px);
      font-family: var(--font-body);
      font-size: 12px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--color-muted);
      transition: color 0.2s ease, background 0.2s ease;
      white-space: nowrap;
    }
    .tx-pi-subnav__item:not(:last-child) {
      border-right: 1px solid var(--color-border);
    }
    .tx-pi-subnav__item:hover {
      color: var(--color-fg);
      background: rgba(14, 31, 58, 0.025);
    }
    .tx-pi-subnav__item.is-current {
      color: var(--color-fg);
      font-weight: 600;
    }
    .tx-pi-subnav__item.is-current::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: -1px;
      height: 2px;
      background: linear-gradient(90deg, #B58A4F 0%, rgba(181, 138, 79, 0.35) 100%);
    }
    .tx-pi-subnav__dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #B58A4F;
      flex-shrink: 0;
    }
    .tx-pi-subnav__icon {
      width: 18px;
      height: 18px;
      flex-shrink: 0;
      opacity: 0.85;
      transition: opacity 0.2s ease;
    }
    .tx-pi-subnav__item:hover .tx-pi-subnav__icon { opacity: 1; }
    @media (max-width: 640px) {
      .tx-pi-subnav {
        display: grid;
        grid-template-columns: 1fr;
      }
      .tx-pi-subnav__item {
        padding: 12px 16px;
        font-size: 11px;
      }
      .tx-pi-subnav__item:not(:last-child) {
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
      }
      .tx-pi-subnav__item.is-current::after {
        left: 0; right: auto; bottom: 0; top: 0; width: 3px; height: 100%;
        background: #B58A4F;
      }
    }

    /* Funds Information — downloadable fund documents */
    .tx-funds-info { margin-bottom: clamp(28px, 4vh, 44px); }
    .tx-funds-info__label {
      font-family: var(--font-display);
      font-size: clamp(1.5rem, 2.2vw, 1.875rem);
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--color-fg);
      margin-bottom: 14px;
    }
    .tx-funds-info__label em { font-style: normal; color: #B58A4F; }
    .tx-funds-info__grid {
      display: flex;
      border: 1px solid var(--color-border);
      border-radius: 12px;
      overflow: hidden;
      background: #FFFFFF;
    }
    .tx-funds-card {
      flex: 1 1 0;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 22px 14px;
      color: var(--color-fg);
      border-right: 1px solid var(--color-border);
      font-size: 13.5px;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      line-height: 1.3;
      text-align: center;
      transition: background 0.2s, color 0.2s;
    }
    .tx-funds-card:last-child { border-right: 0; }
    .tx-funds-card:hover { background: rgba(181, 138, 79, 0.08); color: #B58A4F; }
    .tx-funds-card--lead {
      position: relative;
      color: var(--color-fg);
      font-weight: 700;
    }
    .tx-funds-card__jump {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      border: 1.5px solid #B58A4F;
      color: #B58A4F;
      flex-shrink: 0;
      transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    }
    .tx-funds-card__jump svg { width: 12px; height: 12px; }
    .tx-funds-card--lead:hover .tx-funds-card__jump {
      background: #B58A4F;
      color: #FFFFFF;
      transform: translateY(2px);
    }
    .tx-funds-card--lead::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 3px;
      background: #B58A4F;
      transition: height 0.2s ease, opacity 0.2s ease;
    }
    .tx-funds-card--lead:hover { background: transparent; color: #B58A4F; }
    .tx-funds-card--lead:hover::after { height: 5px; }
    .tx-funds-card__icon { order: 2; width: 21px; height: 21px; flex-shrink: 0; }
    .tx-funds-card__name { order: 1; white-space: nowrap; }
    .tx-funds-card__arrow { display: none; }
    .tx-funds-card.is-placeholder { color: var(--color-muted); cursor: default; }
    .tx-funds-card.is-placeholder:hover { background: transparent; color: var(--color-muted); }
    @media (max-width: 760px) {
      .tx-funds-info__grid { flex-direction: column; }
      .tx-funds-card { border-right: 0; border-bottom: 1px solid var(--color-border); justify-content: flex-start; }
      .tx-funds-card:last-child { border-bottom: 0; }
    }

    /* ================================================
       Right column content
       ================================================ */
    .tx-pi-content {
      min-width: 0;
    }
    .tx-pi-disclaimer {
      padding: clamp(20px, 2.4vh, 26px) clamp(20px, 2.4vw, 28px);
      background: var(--color-surface);
      border-left: 3px solid #B58A4F;
      font-size: clamp(13px, 0.95vw, 14px);
      line-height: 1.6;
      color: var(--color-muted);
      margin-bottom: clamp(24px, 3vh, 32px);
    }
    .tx-pi-disclaimer strong {
      color: var(--color-fg);
      font-weight: 500;
    }
    .tx-pi-disclaimer p + p { margin-top: 12px; }

    /* Today's snapshot — 6-stat grid on cream */
    .tx-pi-snapshot {
      margin-bottom: clamp(40px, 5vh, 56px);
    }
    .tx-pi-snapshot__header {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      justify-content: space-between;
      gap: 12px;
      padding-bottom: 14px;
      margin-bottom: 20px;
      border-bottom: 1px solid var(--color-border);
    }
    .tx-pi-snapshot__title {
      font-family: var(--font-display);
      font-size: clamp(1.25rem, 1.8vw, 1.625rem);
      line-height: 1.15;
      letter-spacing: -0.008em;
      color: var(--color-fg);
    }
    .tx-pi-snapshot__title em { font-style: italic; color: #B58A4F; }
    .tx-pi-snapshot__cob {
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
    }
    .tx-pi-snapshot__cob strong {
      color: var(--color-fg);
      font-weight: 500;
      letter-spacing: 0;
      text-transform: none;
      font-size: 13px;
      margin-left: 6px;
    }
    .tx-pi-snapshot__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      border-top: 1px solid var(--color-border);
      border-left: 1px solid var(--color-border);
    }
    @media (min-width: 700px) {
      .tx-pi-snapshot__grid { grid-template-columns: repeat(3, 1fr); }
    }
    .tx-pi-snapshot__cell {
      padding: clamp(16px, 2.2vw, 22px);
      border-right: 1px solid var(--color-border);
      border-bottom: 1px solid var(--color-border);
      background: var(--color-surface);
    }
    .tx-pi-snapshot__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      margin-bottom: 10px;
    }
    .tx-pi-snapshot__value {
      font-family: "Prata", serif;
      font-optical-sizing: auto;
      font-feature-settings: "tnum";
      font-size: clamp(1.5rem, 2.4vw, 2rem);
      line-height: 1;
      letter-spacing: -0.01em;
      color: var(--color-fg);
    }
    .tx-pi-snapshot__value .unit {
      color: var(--color-muted);
      font-size: 0.55em;
      margin-left: 6px;
      letter-spacing: 0;
    }

    /* Rate history section */
    .tx-rate-history {
      margin-bottom: clamp(48px, 6vh, 72px);
    }
    .tx-rate-history__header {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      justify-content: space-between;
      gap: 16px;
      padding-bottom: 14px;
      margin-bottom: 24px;
      border-bottom: 1px solid var(--color-border);
    }
    .tx-rate-history__title-group {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .tx-rate-history__eyebrow {
      font-family: var(--font-body);
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
    }
    .tx-rate-history__title {
      font-family: var(--font-display);
      font-size: clamp(1.5rem, 2.2vw, 1.875rem);
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--color-fg);
      position: relative;
      padding-bottom: 12px;
    }
    .tx-rate-history__title::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      width: 52px;
      height: 2px;
      background: linear-gradient(90deg, #B58A4F 0%, rgba(181, 138, 79, 0.25) 100%);
    }
    .tx-rate-history__title em { font-style: normal; color: #B58A4F; }

    /* Tab toggle — sliding pill */
    .tx-rate-tabs {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 0;
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      border-radius: 999px;
      padding: 3px;
    }
    .tx-rate-tabs::before {
      content: '';
      position: absolute;
      top: 3px;
      bottom: 3px;
      left: 3px;
      width: calc(50% - 3px);
      background: var(--color-fg);
      border-radius: 999px;
      transition: transform 0.34s cubic-bezier(0.2, 0.7, 0.3, 1);
      z-index: 0;
    }
    body[data-rate-tab-state="monthly"] .tx-rate-tabs::before {
      transform: translateX(100%);
    }
    .tx-rate-tab {
      position: relative;
      z-index: 1;
      min-width: 110px;
      padding: 10px 22px;
      font-family: var(--font-body);
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--color-muted);
      background: transparent;
      border: 0;
      border-radius: 999px;
      cursor: pointer;
      transition: color 0.28s ease;
    }
    .tx-rate-tab:hover:not(.is-active) { color: var(--color-fg); }
    .tx-rate-tab.is-active {
      color: var(--color-bg);
    }
    @media (prefers-reduced-motion: reduce) {
      .tx-rate-tabs::before { transition: none; }
    }

    /* Controls row — Year, Month, From/To */
    .tx-rate-controls {
      display: flex;
      flex-wrap: wrap;
      gap: 14px 20px;
      align-items: flex-end;
      margin-bottom: 20px;
    }
    .tx-control { position: relative; }
    /* "+ Custom date range" toggle (discreet text link, inline with dropdowns) */
    .tx-range-toggle {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: transparent;
      border: 0;
      padding: 0 0 10px 0;
      font-family: var(--font-body);
      font-size: 11.5px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--color-muted);
      cursor: pointer;
      border-bottom: 1px dashed var(--color-border);
      transition: color 0.2s ease, border-color 0.2s ease;
      align-self: flex-end;
    }
    .tx-range-toggle:hover {
      color: #B58A4F;
      border-bottom-color: #B58A4F;
    }
    .tx-range-toggle__icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 16px;
      height: 16px;
      border-radius: 50%;
      border: 1px solid currentColor;
      font-size: 12px;
      line-height: 1;
      font-weight: 600;
      letter-spacing: 0;
      text-transform: none;
    }
    .tx-range-toggle[aria-expanded="true"] .tx-range-toggle__icon::before {
      content: '\2212';  /* en-dash for "-" */
    }
    .tx-range-toggle[aria-expanded="true"] .tx-range-toggle__icon { font-size: 0; }
    .tx-range-toggle[aria-expanded="true"] .tx-range-toggle__icon::before { font-size: 14px; }
    .tx-range-toggle[aria-expanded="true"] {
      color: #B58A4F;
      border-bottom-color: #B58A4F;
    }

    /* Custom date range panel (collapsible) */
    .tx-range-panel {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 12px 16px;
      margin-top: -4px;
      margin-bottom: 20px;
      padding: 16px 18px 18px;
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      border-radius: 4px;
      animation: tx-range-fade 0.3s cubic-bezier(0.2, 0.7, 0.3, 1);
    }
    .tx-range-panel[hidden] { display: none; }
    @keyframes tx-range-fade {
      from { opacity: 0; transform: translateY(-6px); }
      to { opacity: 1; transform: translateY(0); }
    }
    .tx-control label {
      display: block;
      font-size: 10px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      margin-bottom: 6px;
    }
    .tx-control select,
    .tx-control input[type="date"] {
      appearance: none;
      -webkit-appearance: none;
      padding: 10px 36px 10px 14px;
      font-family: var(--font-body);
      font-size: 14px;
      color: var(--color-fg);
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      border-radius: 4px;
      cursor: pointer;
      font-feature-settings: "tnum";
      min-width: 120px;
    }
    .tx-control select {
      background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230E1F3A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
      background-repeat: no-repeat;
      background-position: right 12px center;
    }
    .tx-control input[type="date"] {
      padding-right: 14px;
      min-width: 150px;
    }
    .tx-control select:focus,
    .tx-control input[type="date"]:focus {
      outline: none;
      border-color: #B58A4F;
      box-shadow: 0 0 0 3px rgba(181, 138, 79, 0.18);
    }
    .tx-range-clear {
      background: transparent;
      border: 0;
      padding: 8px 0;
      font-size: 11px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--color-muted);
      cursor: pointer;
      transition: color 0.2s ease;
      margin-bottom: 2px;
    }
    .tx-range-clear:hover { color: #B58A4F; }
    .tx-rate-submit {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 10px 20px;
      background: var(--color-fg);
      color: var(--color-bg);
      border: 1px solid var(--color-fg);
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 500;
      cursor: pointer;
      transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease;
    }
    .tx-rate-submit:hover { background: #B58A4F; border-color: #B58A4F; }
    .tx-rate-submit:disabled { opacity: 0.65; cursor: wait; }
    .tx-rate-submit:active { transform: scale(0.99); }
    /* Monthly view hides the daily-only controls */
    [data-rate-tab-state="monthly"] [data-show-on="daily"] { display: none; }

    /* Rate tables (cream / hairline) */
    .tx-rate-table-wrap {
      overflow-x: auto;
      border-top: 1px solid var(--color-border);
      border-bottom: 1px solid var(--color-border);
    }
    .tx-rate-table-cream {
      width: 100%;
      border-collapse: collapse;
      font-feature-settings: "tnum";
    }
    .tx-rate-table-cream th {
      font-size: 13px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.92);
      font-weight: 700;
      text-align: center;
      padding: 16px 3px 14px;
      border-bottom: 0;
      background: var(--color-fg);
      white-space: nowrap;
    }
    .tx-rate-table-cream th sup {
      color: rgba(255, 255, 255, 0.55);
      font-weight: 400;
    }
    .tx-rate-table-cream th.is-sortable {
      cursor: pointer;
      user-select: none;
    }
    .tx-rate-table-cream th.is-sortable:hover { color: #FFFFFF; }
    .tx-sort-arrow {
      display: inline-block;
      margin-left: 6px;
      font-size: 9px;
      color: #D2A86B;
      vertical-align: 1px;
    }
    .tx-rate-table-cream td {
      padding: 12px 3px;
      font-size: 17px;
      color: var(--color-fg);
      border-bottom: 1px solid var(--color-border);
      white-space: nowrap;
      text-align: center;
    }
    .tx-rate-table-cream tr:last-child td { border-bottom: 0; }
    .tx-rate-table-cream .num,
    .tx-rate-table-cream th.num,
    .tx-rate-table-cream td.num {
      text-align: center;
      font-feature-settings: "tnum";
    }
    /* Header tooltip cue — dotted underline indicates explanatory term */
    .tx-rate-table-cream th.has-tooltip {
      text-decoration: underline dotted rgba(255, 255, 255, 0.45);
      text-underline-offset: 4px;
      text-decoration-thickness: 1px;
      cursor: help;
    }
    /* Muted unit symbols (%, $) — digits dominate visually */
    .tx-rate-table-cream td .unit {
      color: var(--color-muted);
      font-weight: 400;
      opacity: 0.7;
      margin-left: 1px;
    }
    .tx-rate-table-cream td .unit:first-child {
      margin-left: 0;
      margin-right: 1px;
    }
    /* Primary metric column — Daily Rate / Avg. Rate — header gets brighter, body matches other cells */
    .tx-rate-table-cream th.is-primary {
      color: #FFFFFF;
    }

    /* Zebra striping — subtle alternating row tint */
    .tx-rate-table-cream tbody tr:nth-child(even) {
      background: rgba(14, 31, 58, 0.015);
    }
    .tx-rate-table-cream tbody tr:hover { background: rgba(14, 31, 58, 0.04); }

    /* Today's row emphasis — navy left bar + tinted background (weight matches other rows) */
    .tx-rate-table-cream tbody tr.is-today {
      background: rgba(14, 31, 58, 0.05);
      box-shadow: inset 3px 0 0 0 var(--color-fg);
    }
    .tx-rate-table-cream tbody tr.is-today td { color: var(--color-fg); }
    .tx-rate-table-cream tbody tr.is-today:hover { background: rgba(14, 31, 58, 0.07); }

    /* Week separator — thin rule above each Monday row */
    .tx-rate-table-cream tbody tr.is-week-start > td {
      border-top: 1px solid rgba(14, 31, 58, 0.10);
    }
    /* Month separator — heavier gold-tinted rule between months */
    .tx-rate-table-cream tbody tr.is-month-start > td {
      border-top: 2px solid rgba(181, 138, 79, 0.45);
    }

    /* Gated columns — hidden entirely for anonymous users (Mary Ann preference) */
    body:not(.is-logged-in) .tx-rate-table-cream .is-gated-col { display: none; }

    /* ================================================
       Yield Calculator — full-width navy section
       ================================================ */
    .tx-pi-calc-section {
      background: var(--color-fg);
      color: var(--color-bg);
    }
    .tx-pi-calc-section .tx-section-eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.65);
      font-weight: 500;
    }
    .tx-calc__intro {
      margin-bottom: clamp(40px, 5vh, 56px);
      max-width: 56ch;
    }
    .tx-calc__intro h3 {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2rem, 3.6vw, 2.875rem);
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--color-bg);
      margin-top: 16px;
      max-width: 18ch;
    }
    .tx-calc__intro h3 em { color: #D2A86B; font-style: italic; }
    .tx-calc__intro p {
      margin-top: 14px;
      font-size: clamp(15.5px, 1.15vw, 17.5px);
      line-height: 1.55;
      color: rgba(246, 241, 231, 0.78);
    }
    .tx-calc__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(32px, 4vh, 48px);
    }
    @media (min-width: 900px) {
      .tx-calc__grid {
        grid-template-columns: 5fr 7fr;
        gap: clamp(36px, 4.5vw, 56px);
        align-items: center;
      }
    }
    .tx-calc__form {
      display: grid;
      gap: 14px;
      color-scheme: dark;
    }
    .tx-calc__row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }
    .tx-calc__field {
      position: relative;
      border: 1.5px solid rgba(246, 241, 231, 0.32);
      background: rgba(14, 31, 58, 0.22);
      border-radius: 4px;
      transition: border-color 0.2s, background 0.2s;
    }
    .tx-calc__field:hover { border-color: rgba(246, 241, 231, 0.50); }
    .tx-calc__field:focus-within {
      border-color: rgba(246, 241, 231, 0.90);
      background: rgba(14, 31, 58, 0.40);
    }
    .tx-calc__field.is-error {
      border-color: #D2A86B;
      background: rgba(210, 168, 107, 0.08);
    }
    .tx-calc__field label {
      display: block;
      padding: 12px 16px 0;
      font-size: 10px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.65);
      font-weight: 500;
      pointer-events: none;
    }
    .tx-calc__field input {
      width: 100%;
      padding: 4px 16px 14px;
      border: 0;
      background: transparent;
      font-family: var(--font-body);
      font-size: 16px;
      color: var(--color-bg);
      outline: none;
      font-feature-settings: "tnum";
    }
    .tx-calc__field input::placeholder { color: rgba(246, 241, 231, 0.35); }
    .tx-calc__field input[type="date"]::-webkit-calendar-picker-indicator {
      filter: invert(1) opacity(0.55);
      cursor: pointer;
      margin-right: 0;
    }
    .tx-calc__field input[type="date"]::-webkit-calendar-picker-indicator:hover {
      filter: invert(1) opacity(0.85);
    }
    .tx-calc__amount input { padding-left: 30px; }
    .tx-calc__amount::before {
      content: '$';
      position: absolute;
      left: 16px;
      bottom: 14px;
      font-family: var(--font-body);
      font-size: 16px;
      color: rgba(246, 241, 231, 0.50);
      pointer-events: none;
      line-height: 1;
    }
    .tx-calc__submit {
      margin-top: 8px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: var(--color-bg);
      color: var(--color-fg);
      padding: 16px 28px;
      border: 0;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      cursor: pointer;
      width: 100%;
      transition: background 0.2s, transform 0.15s;
    }
    .tx-calc__submit:hover { background: #FFFFFF; }
    .tx-calc__submit:active { transform: scale(0.99); }
    .tx-calc__error {
      min-height: 18px;
      margin-top: 4px;
      font-size: 13px;
      color: #D2A86B;
      letter-spacing: 0.01em;
      opacity: 0;
      transition: opacity 0.2s;
    }
    .tx-calc__error.is-visible { opacity: 1; }
    .tx-calc__result { display: flex; flex-direction: column; }
    .tx-calc__result-label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.62);
      font-weight: 500;
    }
    .tx-calc__result-value {
      margin-top: 16px;
      font-family: "Prata", serif;
      font-optical-sizing: auto;
      font-feature-settings: "tnum";
      font-style: normal;
      font-weight: 400;
      font-size: clamp(2.5rem, 5.5vw, 4.5rem);
      line-height: 1;
      letter-spacing: -0.022em;
      color: #D2A86B;
      word-break: break-word;
    }
    .tx-calc__result-value .currency {
      font-style: normal;
      color: rgba(210, 168, 107, 0.65);
      font-size: 0.55em;
      vertical-align: 0.22em;
      margin-right: 6px;
      font-feature-settings: normal;
    }
    .tx-calc__result-sub {
      margin-top: 18px;
      font-size: clamp(14.5px, 1.1vw, 16.5px);
      line-height: 1.55;
      color: rgba(246, 241, 231, 0.82);
      max-width: 46ch;
    }
    .tx-calc__result-sub strong {
      color: var(--color-bg);
      font-weight: 500;
      font-feature-settings: "tnum";
    }
    .tx-calc__disclaimer {
      margin-top: 18px;
      font-size: 11.5px;
      line-height: 1.55;
      color: rgba(246, 241, 231, 0.55);
      max-width: 48ch;
    }
    .tx-calc__disclaimer a {
      color: rgba(246, 241, 231, 0.85);
      border-bottom: 1px solid rgba(246, 241, 231, 0.30);
      padding-bottom: 1px;
      transition: color 0.2s, border-color 0.2s;
      white-space: nowrap;
    }
    .tx-calc__disclaimer a:hover { color: #D2A86B; border-color: #D2A86B; }

    /* Empty / loading state */
    .tx-rate-empty {
      padding: 32px 16px;
      text-align: center;
      font-size: 14px;
      color: var(--color-muted);
      font-style: italic;
    }

    /* Footnotes */
    .tx-footnotes {
      margin-top: clamp(20px, 2.6vh, 28px);
      padding-top: 20px;
      border-top: 1px solid var(--color-border);
      font-size: 12px;
      line-height: 1.6;
      color: var(--color-muted);
    }
    .tx-footnotes p + p { margin-top: 10px; }
    .tx-footnotes em { font-style: italic; }

    /* Download buttons (inline in the controls row, right-aligned) */
    .tx-download-row {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-left: auto;
      align-self: flex-end;
    }
    .tx-download-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 14px 8px 8px;
      background: var(--color-surface);
      color: var(--color-fg);
      border: 1px solid var(--color-border);
      border-radius: 6px;
      font-family: var(--font-body);
      font-size: 12px;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      font-weight: 500;
      cursor: pointer;
      transition: border-color 0.2s ease, background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
    }
    .tx-download-btn:hover {
      border-color: var(--color-fg);
      background: var(--color-bg);
      box-shadow: 0 4px 10px rgba(14, 31, 58, 0.06);
      transform: translateY(-1px);
    }
    .tx-download-logo {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      filter: drop-shadow(0 1px 2px rgba(14, 31, 58, 0.12));
    }
    .tx-download-btn--pdf:hover { border-color: #E2453C; }
    .tx-download-btn--excel:hover { border-color: #107C41; }
    .tx-download-split { position: relative; }
    .tx-download-caret { font-size: 9px; margin-left: 2px; opacity: 0.65; }
    .tx-download-menu {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      min-width: 210px;
      background: #FFFFFF;
      border: 1px solid var(--color-border);
      border-radius: 10px;
      box-shadow: 0 16px 38px rgba(14, 31, 58, 0.14);
      padding: 6px;
      z-index: 40;
    }
    .tx-download-menu button {
      display: block;
      width: 100%;
      text-align: left;
      padding: 9px 12px;
      border-radius: 7px;
      font-size: 13px;
      color: var(--color-fg);
      background: none;
      border: 0;
      cursor: pointer;
    }
    .tx-download-menu button:hover { background: rgba(14, 31, 58, 0.06); }
    .tx-download-menu .ext { color: var(--color-muted); font-size: 12px; }

    /* ================================================
       Print stylesheet — when user exports as PDF,
       only the rate-history block (table + footnotes) prints.
       ================================================ */
    .tx-print-brand { display: none; }
    @media print {
      @page { margin: 0; }
      body { background: #FFFFFF; }
      body * { visibility: hidden; }
      .tx-print-brand { display: block; margin-bottom: 18px; }
      .tx-print-brand img { height: 44px; width: auto; }
      .tx-rate-history,
      .tx-rate-history * { visibility: visible; }
      .tx-rate-history {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        padding: 40px 48px;
      }
      .tx-rate-history .tx-rate-controls,
      .tx-rate-history .tx-range-panel,
      .tx-rate-history .tx-download-row,
      .tx-rate-history .tx-rate-tabs {
        display: none !important;
        visibility: hidden !important;
      }
      .tx-rate-table-cream {
        min-width: 0 !important;
        font-size: 11px !important;
      }
      .tx-rate-table-cream th { font-size: 9px !important; padding: 6px 4px !important; }
      .tx-rate-table-cream td { padding: 6px 4px !important; font-size: 10.5px !important; }
      .tx-footnotes { font-size: 10px !important; line-height: 1.5 !important; margin-top: 16px !important; padding-top: 12px !important; }
      .tx-rate-history__title { font-size: 18px !important; margin-bottom: 8px !important; }
    }

    /* ================================================
       Board Members — photo card grid (kept from previous)
       ================================================ */
    .tx-board-section {
      background: var(--color-surface);
      border-top: 1px solid var(--color-border);
    }
    .tx-board__group + .tx-board__group {
      margin-top: clamp(64px, 9vh, 112px);
    }
    .tx-board__group-header {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 16px;
      padding-bottom: 18px;
      margin-bottom: clamp(32px, 5vh, 48px);
      border-bottom: 2px solid var(--color-fg);
    }
    .tx-board__group-label {
      font-size: 13px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-fg);
      font-weight: 600;
    }
    .tx-board__group-count {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-muted);
      font-weight: 500;
      font-style: italic;
    }
    .tx-board__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(32px, 4vw, 44px) clamp(20px, 2.4vw, 32px);
      max-width: 1080px;
    }
    @media (min-width: 600px) {
      .tx-board__grid--3,
      .tx-board__grid--4 { grid-template-columns: repeat(2, 1fr); }
    }
    @media (min-width: 960px) {
      .tx-board__grid--4 { grid-template-columns: repeat(4, 1fr); }
      .tx-board__grid--3 {
        grid-template-columns: repeat(3, 1fr);
        max-width: 820px;
      }
    }
    .tx-board-card { display: flex; flex-direction: column; }
    .tx-board-card__photo {
      position: relative;
      aspect-ratio: 1 / 1;
      background: var(--color-bg);
      border: 1px solid var(--color-border);
      overflow: hidden;
      margin-bottom: clamp(16px, 2vh, 22px);
    }
    .tx-board-card__photo img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
      transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
      z-index: 2;
    }
    .tx-board-card:hover .tx-board-card__photo img { transform: scale(1.04); }
    .tx-board-card__initials {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-weight: 400;
      font-size: clamp(2.25rem, 3.8vw, 2.875rem);
      letter-spacing: -0.02em;
      color: rgba(14, 31, 58, 0.22);
      z-index: 1;
      user-select: none;
    }
    .tx-board-card__role {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      color: #B58A4F;
      margin-bottom: 10px;
    }
    .tx-board-card__name {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.25rem, 1.6vw, 1.5rem);
      line-height: 1.15;
      letter-spacing: -0.005em;
      color: var(--color-fg);
      margin-bottom: 8px;
    }
    .tx-board-card.is-senior .tx-board-card__name {
      font-size: clamp(1.5rem, 2vw, 1.75rem);
      letter-spacing: -0.01em;
    }
    .tx-board-card__entity {
      font-size: 14px;
      line-height: 1.5;
      color: var(--color-muted);
      font-style: italic;
      max-width: 28ch;
    }


/* ===== EnrollmentInformation.ascx ===== */
.nav-mobile { display: none; }
    .nav-mobile.is-open { display: flex; }
    .tx-logo-img { height: 48px; width: auto; flex-shrink: 0; display: block; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25)); }
    @media (min-width: 768px) { .tx-logo-img { height: 66px; } }

    /* ================================================
       Header — shared with home (translucent navy + blur)
       ================================================ */
    .tx-header {
      background: rgba(14, 31, 58, 0.72);
      backdrop-filter: blur(14px) saturate(140%);
      -webkit-backdrop-filter: blur(14px) saturate(140%);
      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }
    .tx-logo-mark {
      height: 26px;
      width: auto;
      flex-shrink: 0;
      display: block;
      filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
    }
    @media (min-width: 768px) {
      .tx-logo-mark { height: 30px; }
    }
    .tx-header nav a:hover { color: #D2A86B; }
    .tx-nav-link[aria-current="page"] {
      color: #D2A86B;
    }
    .tx-nav-link[aria-current="page"]::after {
      content: '';
      display: block;
      height: 1px;
      background: #D2A86B;
      margin-top: 3px;
    }
    .tx-header__contact {
      display: none;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255, 255, 255, 0.78);
      transition: color 0.2s ease;
    }
    .tx-header__contact:hover { color: #FFFFFF; }
    @media (min-width: 768px) { .tx-header__contact { display: inline-flex; } }

    /* ================================================
       Enrollment Hero — wax-seal envelope full-bleed
       ================================================ */
    .tx-eh {
      position: relative;
      isolation: isolate;
      /* PILOT 2026-07-06: hero reduced to match program-info — revert to 63vh / 600px */
      min-height: 46vh;
      min-height: 440px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      background: #1A2F22;
    }
    .tx-eh__bg {
      position: absolute;
      inset: 0;
      background-image: url('../images/enrollment-seal.png');
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
      filter: brightness(1.02) saturate(1.08) contrast(1.02);
      z-index: 0;
    }
    .tx-eh__overlay {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(14, 31, 58, 0.48) 0%, rgba(14, 31, 58, 0.26) 38%, rgba(14, 31, 58, 0.08) 70%, rgba(14, 31, 58, 0.16) 100%),
        linear-gradient(180deg, rgba(14, 31, 58, 0.08) 0%, transparent 30%, rgba(14, 31, 58, 0.16) 100%);
      z-index: 1;
    }
    @media (max-width: 767px) {
      .tx-eh { min-height: 380px; } /* PILOT 2026-07-06: revert to 520px */
      .tx-eh__bg {
        background-position: 65% center;
      }
      .tx-eh__overlay {
        background:
          linear-gradient(180deg, rgba(14, 31, 58, 0.40) 0%, rgba(14, 31, 58, 0.28) 45%, rgba(14, 31, 58, 0.58) 100%);
      }
    }
    .tx-eh__content {
      position: relative;
      z-index: 2;
      flex: 1;
      display: flex;
      flex-direction: column;
      justify-content: center;
      /* PILOT 2026-07-06: matched to program-info — revert to clamp(140px,22vh,220px) / clamp(72px,9vh,110px) */
      padding-top: clamp(110px, 15vh, 150px);
      padding-bottom: clamp(40px, 5vh, 60px);
    }
    .tx-eh__eyebrow {
      font-size: clamp(11px, 0.85vw, 12px);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      font-weight: 500;
      color: rgba(255,255,255,0.78);
    }
    .tx-eh__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2.5rem, 5.5vw, 4.5rem); /* PILOT 2026-07-06: was 5.8vw / 4.75rem */
      line-height: 1;
      letter-spacing: -0.022em;
      color: #FFFFFF;
      margin-top: clamp(20px, 2.4vh, 28px);
      max-width: 14ch;
      text-shadow: 0 1px 3px rgba(8,16,32,0.45);
      font-weight: 500;
    }
    .tx-eh__title em {
      font-style: normal;
      color: #D2A86B;
      font-weight: 400;
    }
    .tx-eh__sub {
      margin-top: clamp(16px, 2vh, 24px); /* PILOT 2026-07-06: was clamp(22px,2.6vh,32px) */
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-weight: 400;
      font-size: clamp(1rem, 1.4vw, 1.3rem);
      line-height: 1.5;
      color: rgba(255,255,255,0.85);
      max-width: 50ch;
      text-shadow: 0 1px 2px rgba(8,16,32,0.3);
    }

    /* ================================================
       Process timeline — animated progress + download CTAs
       ================================================ */
    .tx-timeline {
      position: relative;
    }
    .tx-timeline::before {
      content: '';
      position: absolute;
      left: 30px;
      top: 28px;
      bottom: 28px;
      width: 1px;
      background: var(--color-border);
      z-index: 0;
    }
    .tx-timeline__progress {
      position: absolute;
      left: 30px;
      top: 28px;
      width: 1px;
      height: 0;
      background: #B58A4F;
      z-index: 1;
      transition: height 0.2s linear;
      pointer-events: none;
    }
    .tx-timeline__step {
      display: grid;
      grid-template-columns: 60px 1fr;
      gap: clamp(20px, 3vw, 40px);
      padding: clamp(24px, 3.4vh, 40px) 0;
      align-items: start;
      position: relative;
      z-index: 2;
      transition: transform 0.3s cubic-bezier(0.2, 0.7, 0.3, 1);
    }
    .tx-timeline__step:first-child { padding-top: 0; }
    .tx-timeline__step:last-child { padding-bottom: 0; }
    .tx-timeline__step:hover { transform: translateX(4px); }
    .tx-timeline__num {
      position: relative;
      z-index: 3;
      text-align: center;
      background: var(--color-bg);
      padding: 8px 0;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-variation-settings: "opsz" 96, "WONK" 1;
      font-feature-settings: "tnum";
      font-size: clamp(2rem, 3vw, 2.5rem);
      line-height: 1;
      letter-spacing: -0.01em;
      color: var(--color-fg);
      transition: color 0.25s ease, transform 0.25s ease;
    }
    .tx-timeline__step:hover .tx-timeline__num {
      color: #B58A4F;
    }
    .tx-timeline__step.is-active .tx-timeline__num {
      color: #B58A4F;
    }

    /* Inline step CTA — outlined pill that fills on hover */
    .tx-step-cta {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: clamp(18px, 2.4vh, 24px);
      padding: 9px 18px 9px 16px;
      background: transparent;
      color: var(--color-fg);
      border: 1px solid var(--color-fg);
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 12px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 500;
      transition: background 0.25s ease, color 0.25s ease, gap 0.25s ease, border-color 0.25s ease;
    }
    .tx-step-cta svg {
      width: 14px;
      height: 14px;
      flex-shrink: 0;
    }
    .tx-step-cta:hover {
      background: var(--color-fg);
      color: var(--color-bg);
      gap: 12px;
      border-color: var(--color-fg);
    }
    .tx-step-cta--gold {
      border-color: #B58A4F;
      color: #B58A4F;
    }
    .tx-step-cta--gold:hover {
      background: #B58A4F;
      color: var(--color-bg);
      border-color: #B58A4F;
    }
    @media (prefers-reduced-motion: reduce) {
      .tx-timeline__step,
      .tx-step-cta,
      .tx-timeline__num,
      .tx-timeline__progress { transition: none; }
    }

    /* ================================================
       Option C — process step cards (replaces timeline)
       ================================================ */
    .tx-step-deck {
      display: grid;
      gap: clamp(8px, 1vh, 12px);
    }
    .tx-step-card {
      position: relative;
      display: grid;
      grid-template-columns: auto 1fr;
      gap: clamp(14px, 1.8vw, 22px);
      padding: clamp(14px, 1.8vh, 20px) clamp(18px, 2.2vw, 26px);
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1),
                  box-shadow 0.4s cubic-bezier(0.2, 0.7, 0.3, 1),
                  border-color 0.3s ease,
                  opacity 0.7s cubic-bezier(0.2, 0.7, 0.3, 1);
      opacity: 0;
      transform: translateY(22px);
    }
    .tx-step-card.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .tx-step-card::before {
      content: '';
      position: absolute;
      top: -1px;
      left: -1px;
      right: -1px;
      height: 2px;
      background: #B58A4F;
      transform: scaleX(0);
      transform-origin: left center;
      transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.3, 1);
      z-index: 1;
    }
    .tx-step-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 18px 40px rgba(14, 31, 58, 0.10), 0 2px 6px rgba(14, 31, 58, 0.04);
      border-color: rgba(181, 138, 79, 0.35);
    }
    .tx-step-card:hover::before { transform: scaleX(1); }

    .tx-step-card__num {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-feature-settings: "tnum";
      font-size: clamp(1rem, 1.3vw, 1.25rem);
      line-height: 1.1;
      letter-spacing: -0.005em;
      color: var(--color-fg);
      font-weight: 500;
      white-space: nowrap;
      transition: color 0.3s ease;
      padding-top: 4px;
    }
    .tx-step-card:hover .tx-step-card__num { color: #B58A4F; }

    .tx-step-card__body {
      min-width: 0;
      display: grid;
      grid-template-columns: 1fr auto;
      column-gap: clamp(16px, 2vw, 24px);
      row-gap: 6px;
      align-items: end;
    }
    .tx-step-card__title {
      grid-column: 1 / -1;
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.1875rem, 1.5vw, 1.4375rem);
      line-height: 1.2;
      letter-spacing: -0.008em;
      color: var(--color-fg);
      margin-bottom: 6px;
    }
    .tx-step-card__copy {
      grid-column: 1 / -1;
      font-size: clamp(14px, 1vw, 15.5px);
      line-height: 1.55;
      color: var(--color-muted);
    }
    .tx-step-card__copy strong { color: var(--color-fg); font-weight: 500; }
    .tx-step-card__copy em { color: var(--color-fg); font-style: italic; }

    .tx-step-card__meta {
      grid-column: 1 / 2;
      display: flex;
      flex-wrap: wrap;
      gap: 6px 16px;
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--color-border);
      align-self: end;
    }
    .tx-step-card__meta-item {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      font-size: 12px;
      letter-spacing: 0.01em;
      color: var(--color-muted);
      line-height: 1.35;
    }
    .tx-step-card__meta-item svg {
      width: 13px;
      height: 13px;
      color: #B58A4F;
      flex-shrink: 0;
    }
    .tx-step-card__meta-item strong {
      color: var(--color-fg);
      font-weight: 500;
    }

    .tx-step-card__cta {
      grid-column: 2 / 3;
      align-self: end;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin-top: 10px;
      padding: 9px 16px;
      background: var(--color-fg);
      color: var(--color-bg);
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 11.5px;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-weight: 500;
      white-space: nowrap;
      transition: background 0.25s ease, gap 0.25s ease;
    }
    .tx-step-card__cta svg {
      width: 13px;
      height: 13px;
    }
    .tx-step-card__cta:hover {
      background: #1A2D4D;
      gap: 10px;
    }
    .tx-step-card__cta--gold {
      background: #B58A4F;
    }
    .tx-step-card__cta--gold:hover {
      background: #9F7740;
    }

    @media (max-width: 768px) {
      .tx-step-card__body {
        grid-template-columns: 1fr;
      }
      .tx-step-card__meta {
        grid-column: 1 / -1;
      }
      .tx-step-card__cta {
        grid-column: 1 / -1;
        justify-self: start;
      }
    }
    @media (max-width: 640px) {
      .tx-step-card {
        grid-template-columns: 1fr;
        gap: 8px;
      }
    }

    /* ================================================
       PDF Download Module — single prominent CTA
       (narrow variant lives in left column, sticky on desktop)
       ================================================ */
    .tx-process-left {
      display: flex;
      flex-direction: column;
      gap: clamp(12px, 1.6vh, 18px);
    }
    .tx-app-download {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(28px, 4vw, 48px);
      margin-top: clamp(36px, 5vh, 56px);
      padding: clamp(28px, 3.6vw, 44px) clamp(24px, 3vw, 40px);
      background: var(--color-surface);
      border: 1px solid var(--color-border);
      border-left: 4px solid #B58A4F;
      position: relative;
      overflow: hidden;
      transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.3, 1),
                  box-shadow 0.35s cubic-bezier(0.2, 0.7, 0.3, 1),
                  border-color 0.3s ease;
      cursor: pointer;
      text-decoration: none;
      color: inherit;
    }

    /* Narrow variant — stacked vertical for sidebar column */
    .tx-app-download--narrow {
      grid-template-columns: 1fr;
      gap: clamp(18px, 2.4vh, 24px);
      margin-top: 0;
      padding: clamp(22px, 2.6vw, 28px) clamp(20px, 2.4vw, 26px);
    }
    @media (min-width: 768px) {
      .tx-app-download--narrow {
        position: sticky;
        top: 108px;
      }
    }
    .tx-app-download::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at right top, rgba(181, 138, 79, 0.06) 0%, transparent 55%);
      pointer-events: none;
      opacity: 0.7;
      transition: opacity 0.35s ease;
    }
    .tx-app-download:hover {
      transform: translateY(-4px);
      box-shadow: 0 22px 50px rgba(14, 31, 58, 0.12), 0 4px 10px rgba(14, 31, 58, 0.05);
      border-left-color: #D2A86B;
    }
    .tx-app-download:hover::before { opacity: 1; }

    @media (min-width: 768px) {
      .tx-app-download:not(.tx-app-download--narrow) {
        grid-template-columns: 220px 1fr;
        align-items: center;
        padding: clamp(36px, 4vh, 48px) clamp(36px, 4vw, 56px);
      }
    }
    @media (min-width: 1024px) {
      .tx-app-download:not(.tx-app-download--narrow) { grid-template-columns: 260px 1fr; }
    }
    /* Doc preview sizing for narrow variant */
    .tx-app-download--narrow .tx-app-download__doc {
      max-width: 150px;
    }
    .tx-app-download--narrow .tx-app-download__title {
      font-size: clamp(1.2rem, 1.6vw, 1.45rem);
      margin-top: 8px;
    }
    .tx-app-download--narrow .tx-app-download__desc {
      margin-top: 10px;
      font-size: 14.5px;
      line-height: 1.5;
    }
    .tx-app-download--narrow .tx-app-download__cta {
      width: 100%;
      justify-content: center;
      margin-top: 20px;
      padding: 15px 26px;
      font-size: 13.5px;
    }
    .tx-app-download--narrow .tx-app-download__meta {
      margin-top: 12px;
      text-align: center;
    }

    /* Stylized PDF document preview (CSS-only) */
    .tx-app-download__visual {
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      z-index: 1;
    }
    .tx-app-download__doc {
      position: relative;
      width: 100%;
      max-width: 220px;
      aspect-ratio: 8.5 / 11;
      background: #FFFFFF;
      border: 1px solid var(--color-border);
      box-shadow: 0 14px 32px rgba(14, 31, 58, 0.10), 0 2px 6px rgba(14, 31, 58, 0.04);
      padding: 14px 16px;
      display: flex;
      flex-direction: column;
      transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.3, 1), box-shadow 0.4s ease;
    }
    .tx-app-download:hover .tx-app-download__doc {
      transform: translateY(-2px) rotate(-1.2deg);
      box-shadow: 0 22px 44px rgba(14, 31, 58, 0.16), 0 4px 8px rgba(14, 31, 58, 0.05);
    }
    .tx-app-download__doc-corner {
      position: absolute;
      top: 0;
      right: 0;
      width: 22px;
      height: 22px;
      background: linear-gradient(135deg, transparent 50%, var(--color-border) 50%);
    }
    .tx-app-download__doc-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--color-border);
      margin-bottom: 12px;
    }
    .tx-app-download__doc-mark {
      font-family: var(--font-display);
      font-size: 11px;
      font-weight: 500;
      color: var(--color-fg);
      letter-spacing: -0.005em;
    }
    .tx-app-download__doc-badge {
      font-size: 7.5px;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: #B58A4F;
      font-weight: 600;
      border: 1px solid #B58A4F;
      padding: 2px 5px;
      border-radius: 2px;
    }
    .tx-app-download__doc-title {
      font-family: var(--font-display);
      font-style: italic;
      font-size: 11px;
      line-height: 1.2;
      color: var(--color-fg);
      margin-bottom: 12px;
    }
    .tx-app-download__doc-lines {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .tx-app-download__doc-lines span {
      display: block;
      height: 2px;
      width: 100%;
      background: rgba(14, 31, 58, 0.12);
      border-radius: 1px;
    }
    .tx-app-download__doc-sig {
      display: flex;
      gap: 10px;
      margin-top: 12px;
      padding-top: 10px;
      border-top: 1px solid var(--color-border);
    }
    .tx-app-download__doc-sig > div { flex: 1; }
    .tx-app-download__doc-sig-line {
      display: block;
      height: 1px;
      background: rgba(14, 31, 58, 0.35);
      margin-bottom: 3px;
    }
    .tx-app-download__doc-sig-label {
      font-size: 7px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(14, 31, 58, 0.45);
      font-weight: 500;
    }

    /* Body content */
    .tx-app-download__body {
      position: relative;
      z-index: 1;
    }
    .tx-app-download__eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: #B58A4F;
      font-weight: 600;
    }
    .tx-app-download__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.5rem, 2.4vw, 2rem);
      line-height: 1.1;
      letter-spacing: -0.012em;
      color: var(--color-fg);
      margin-top: 10px;
      max-width: 24ch;
    }
    .tx-app-download__title em {
      font-style: italic;
      color: #B58A4F;
    }
    .tx-app-download__desc {
      margin-top: 14px;
      font-size: clamp(14px, 1vw, 15.5px);
      line-height: 1.55;
      color: var(--color-muted);
      max-width: 56ch;
    }
    .tx-app-download__list {
      margin-top: 16px;
      display: grid;
      gap: 6px;
      list-style: none;
      padding: 0;
    }
    .tx-app-download__list li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      font-size: 13.5px;
      line-height: 1.45;
      color: var(--color-fg);
    }
    .tx-app-download__check {
      flex-shrink: 0;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: #B58A4F;
      position: relative;
      margin-top: 2px;
    }
    .tx-app-download__check::after {
      content: '';
      position: absolute;
      top: 4px;
      left: 3px;
      width: 7px;
      height: 3.5px;
      border-left: 1.5px solid #FFFFFF;
      border-bottom: 1.5px solid #FFFFFF;
      transform: rotate(-45deg);
    }
    .tx-app-download__cta {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-top: 22px;
      padding: 14px 26px;
      background: #B58A4F;
      color: #FFFFFF;
      border-radius: 999px;
      font-family: var(--font-body);
      font-size: 13px;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      font-weight: 600;
      transition: background 0.25s ease, gap 0.25s ease, box-shadow 0.3s ease;
      box-shadow: 0 6px 16px rgba(181, 138, 79, 0.25);
    }
    .tx-app-download__cta svg {
      width: 16px;
      height: 16px;
    }
    .tx-app-download:hover .tx-app-download__cta {
      background: #9F7740;
      gap: 14px;
      box-shadow: 0 10px 24px rgba(181, 138, 79, 0.35);
    }
    .tx-app-download__meta {
      margin-top: 14px;
      font-size: 11.5px;
      letter-spacing: 0.04em;
      color: var(--color-muted);
      font-style: italic;
    }

    @media (prefers-reduced-motion: reduce) {
      .tx-app-download,
      .tx-app-download__doc,
      .tx-app-download__cta,
      .tx-app-download::before { transition: none; }
      .tx-app-download:hover { transform: none; box-shadow: none; }
      .tx-app-download:hover .tx-app-download__doc { transform: none; }
    }
    @media (prefers-reduced-motion: reduce) {
      .tx-step-card {
        opacity: 1;
        transform: none;
        transition: border-color 0.3s ease;
      }
      .tx-step-card:hover { transform: none; box-shadow: none; }
      .tx-step-card::before { display: none; }
    }
    .tx-timeline__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.25rem, 1.6vw, 1.5rem);
      line-height: 1.2;
      letter-spacing: -0.008em;
      color: var(--color-fg);
      margin-bottom: 10px;
    }
    .tx-timeline__body {
      font-size: clamp(15px, 1.05vw, 17px);
      line-height: 1.65;
      color: var(--color-muted);
      max-width: 62ch;
    }
    .tx-timeline__body strong {
      color: var(--color-fg);
      font-weight: 500;
    }
    .tx-timeline__body em {
      color: var(--color-fg);
      font-style: italic;
    }
    @media (min-width: 768px) {
      .tx-timeline::before { left: 40px; }
      .tx-timeline__step { grid-template-columns: 80px 1fr; }
    }

    /* ================================================
       Submission band — navy data zone
       ================================================ */
    .tx-submit {
      background: var(--color-fg);
      color: var(--color-bg);
    }
    .tx-submit__eyebrow {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.65);
      font-weight: 500;
    }
    .tx-submit__title {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(2rem, 3.6vw, 2.875rem);
      line-height: 1.05;
      letter-spacing: -0.018em;
      color: var(--color-bg);
      margin-top: 16px;
      max-width: 18ch;
    }
    .tx-submit__title em {
      font-style: italic;
      color: #D2A86B;
    }
    .tx-submit-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: clamp(28px, 3.6vh, 40px);
      margin-top: clamp(40px, 5vh, 64px);
      padding-top: clamp(36px, 5vh, 56px);
      border-top: 1px solid rgba(246, 241, 231, 0.20);
    }
    @media (min-width: 768px) {
      .tx-submit-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: clamp(32px, 4vw, 64px);
        max-width: 900px;
      }
      .tx-submit-cell {
        padding-right: clamp(16px, 2vw, 32px);
      }
      .tx-submit-cell + .tx-submit-cell {
        border-left: 1px solid rgba(246, 241, 231, 0.16);
        padding-left: clamp(32px, 4vw, 64px);
      }
    }
    .tx-submit-cell__label {
      font-size: 11px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(246, 241, 231, 0.62);
      font-weight: 500;
      margin-bottom: 14px;
    }
    .tx-submit-cell__lines {
      font-family: var(--font-display);
      font-optical-sizing: auto;
      font-size: clamp(1.125rem, 1.5vw, 1.375rem);
      line-height: 1.4;
      color: var(--color-bg);
    }
    .tx-submit-cell__lines a {
      color: var(--color-bg);
      border-bottom: 1px solid transparent;
      transition: border-color 0.2s, color 0.2s;
      font-feature-settings: "tnum";
    }
    .tx-submit-cell__lines a:hover { border-color: #D2A86B; color: #D2A86B; }
    .tx-submit-cell__sub {
      margin-top: 10px;
      font-size: 13px;
      line-height: 1.5;
      color: rgba(246, 241, 231, 0.62);
      font-style: italic;
    }

    /* ================================================
       Processing note — cream closing band
       ================================================ */
    .tx-note {
      background: var(--color-bg);
      border-top: 1px solid var(--color-border);
    }
    .tx-note__rule {
      width: 48px;
      height: 1px;
      background: #B58A4F;
      margin: 0 auto 28px;
    }
    .tx-note p {
      font-family: var(--font-display);
      font-style: normal;
      font-size: clamp(1.375rem, 2vw, 1.75rem);
      line-height: 1.45;
      color: var(--color-fg);
      max-width: 36ch;
      margin: 0 auto;
      letter-spacing: -0.005em;
    }
    .tx-note p strong {
      font-style: normal;
      font-weight: 500;
      color: #B58A4F;
    }

/* ===== Business Development ===== */
.tx-business-development-page .tx-ph {
    min-height: 300px;
    background: #1A2D4D;
}

.tx-business-development-page .tx-ph__content {
    justify-content: flex-end;
    padding-top: clamp(120px, 18vh, 180px);
    padding-bottom: clamp(40px, 5vh, 56px);
}

.tx-business-development-page .tx-ph__title {
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    line-height: 1.05;
    letter-spacing: -0.01em;
    max-width: none;
    margin-top: 0;
    text-shadow: none;
}

.tx-business-development-page .tx-ph__title em {
    font-style: normal;
    color: #D2A86B;
}

.tx-business-development-page .tx-ph__title .tx-amp {
    font-family: "Inter", sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 0.85em;
}

.tx-bd {
    padding: clamp(32px, 4.5vh, 48px) 0 clamp(48px, 6.5vh, 72px);
}

.tx-team-subhead {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 clamp(20px, 2.6vh, 28px);
}

.tx-team-subhead + .tx-board__grid {
    margin-bottom: clamp(40px, 5.5vh, 60px);
}

.tx-team-subhead__label {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-weight: 600;
    color: #B58A4F;
    white-space: nowrap;
}

.tx-team-subhead__rule {
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

.tx-business-development-page .tx-board-card__photo {
    background: var(--color-surface);
    width: 80%;
}

.tx-business-development-page .tx-board-card__name {
    font-size: clamp(1.125rem, 1.6vw, 1.3rem);
}

.tx-business-development-page .tx-board-card__title {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: #B58A4F;
    margin-top: 6px;
}

.tx-business-development-page .tx-board__grid--contact .tx-board-card__title {
    min-height: 2.9em;
}

.tx-business-development-page .tx-board-card__contact {
    font-size: 12px;
    margin-top: 10px;
    line-height: 1.65;
}

.tx-business-development-page .tx-board-card__contact a {
    color: var(--color-fg);
    text-decoration: none;
    border-bottom: 1px solid rgba(181, 138, 79, 0.5);
}

.tx-business-development-page .tx-board-card__contact a:hover {
    color: #B58A4F;
}

/* ===== Privacy Statement ===== */
.tx-privacy-page .tx-ph {
    min-height: 300px;
    background: #1A2D4D;
}

.tx-privacy-page .tx-ph__content {
    justify-content: flex-end;
    padding-top: clamp(120px, 18vh, 180px);
    padding-bottom: clamp(40px, 5vh, 56px);
}

.tx-privacy-page .tx-ph__title {
    max-width: none;
    margin: 0;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    font-weight: 400;
    line-height: 1.05;
    letter-spacing: -0.01em;
    text-shadow: none;
    text-wrap: balance;
}

.tx-privacy-page .tx-privacy {
    padding: clamp(48px, 7vh, 80px) 0 clamp(64px, 9vh, 104px);
}

.tx-privacy-page .tx-privacy__body {
    max-width: 76ch;
}

.tx-privacy-page .tx-privacy__body p {
    margin-bottom: 1.25em;
    color: rgba(26, 32, 44, 0.82);
    font-size: 16px;
    line-height: 1.75;
}

.tx-privacy-page .tx-privacy__body h2 {
    margin: 1.8em 0 0.8em;
    color: #1A2D4D;
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 1.8vw, 1.5rem);
}
