/*
   Whitener Associates — Version 3
   Static institutional system: one stylesheet, no framework, no webfont.
*/

:root {
    --paper: #fffdf7;
    --ink: #181821;
    --navy: #000066;
    --link: #0000b8;
    --visited: #551a8b;
    --active: #a00000;
    --muted: #52515b;
    --rule: #aaa89f;
    --rule-light: #d8d6ce;
    --button: #efeee8;
    --focus: #20208c;
    --body-font: "Times New Roman", Times, serif;
    --display-font: Georgia, "Times New Roman", Times, serif;
}

* { box-sizing: border-box; }

html {
    min-width: 280px;
    background: var(--paper);
    color-scheme: light;
    scroll-behavior: auto;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 1.38;
    font-kerning: normal;
}

p, ul, ol, dl, blockquote { orphans: 3; widows: 3; }
img, svg { max-width: 100%; }

a:link {
    color: var(--link);
    text-decoration: underline;
    text-decoration-thickness: from-font;
    text-underline-offset: 0.08em;
}

a:visited { color: var(--visited); }
a:hover { text-decoration-thickness: 0.11em; }
a:active { color: var(--active); }

a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--focus);
    outline-offset: 2px;
}

button, input, select, textarea { font: inherit; }

.skip-link {
    position: fixed;
    z-index: 100;
    top: -5rem;
    left: 0.75rem;
    padding: 0.35rem 0.55rem;
    color: var(--navy);
    background: var(--paper);
    border: 1px solid var(--navy);
}

.skip-link:focus { top: 0.75rem; }

.site {
    width: calc(100% - 2.5rem);
    margin: 0.7rem auto 0.9rem;
}

.site--home { max-width: 1180px; }
.site--page { max-width: 920px; }
.site--archive { max-width: 980px; }

.rule {
    height: 0;
    margin: 0.82rem 0;
    border: 0;
    border-top: 1px solid var(--rule);
}

.rule--compact { margin: 0.66rem 0; }

/* Institutional masthead */

.masthead {
    color: var(--navy);
    text-align: center;
}

.brand {
    margin: 0;
    color: var(--navy);
    font-family: var(--display-font);
    font-weight: 700;
    line-height: 0.96;
    white-space: nowrap;
}

.brand a,
.brand a:link,
.brand a:visited {
    color: inherit;
    text-decoration: none;
}

.brand__initial {
    display: inline-block;
    font-size: 1.36em;
    line-height: 0.74;
    vertical-align: -0.045em;
}

.brand__rest {
    font-size: 0.92em;
    letter-spacing: -0.02em;
}

.brand--home { font-size: 25px; }
.brand--page { font-size: 19px; }

.masthead__descriptor {
    margin: 0.24rem 0 0;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.075em;
    line-height: 1.15;
    text-transform: uppercase;
}

.masthead__meta {
    margin: 0.08rem 0 0;
    font-size: 12px;
    line-height: 1.15;
}

.masthead--page .masthead__descriptor {
    margin-top: 0.18rem;
    font-size: 10.5px;
    letter-spacing: 0.06em;
}

.masthead--page .masthead__meta { font-size: 11.5px; }

/* Homepage directory */

.no-script-note {
    max-width: 760px;
    margin: 0 auto 0.75rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--rule);
    font-size: 12px;
    line-height: 1.28;
}

.directory { padding: 0.08rem clamp(0.25rem, 1.6vw, 1.25rem) 0; }

.directory__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(3.5rem, 8vw, 7.25rem);
}

.directory__list {
    margin: 0;
    padding-left: 1.35rem;
}

.directory__item {
    margin: 0 0 0.9rem;
    padding-left: 0.08rem;
}

.directory__item:last-child { margin-bottom: 0; }

.directory__link {
    display: inline-block;
    padding: 0.04rem 0;
    font-size: 17px;
    line-height: 1.18;
}

.directory__note {
    display: block;
    max-width: 32rem;
    margin-top: 0.06rem;
    color: var(--navy);
    font-size: 12px;
    line-height: 1.2;
}

.latest-record {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.3;
    text-align: center;
}

.latest-record__label {
    color: var(--navy);
    font-weight: 700;
}

.latest-record__date {
    color: var(--muted);
    white-space: nowrap;
}

.home-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem 2rem;
    align-items: start;
    padding-bottom: 0.15rem;
    font-size: 11.75px;
    line-height: 1.3;
}

.home-footer address {
    margin: 0;
    font-style: normal;
}

.home-footer__label {
    color: var(--navy);
    font-weight: 700;
}

.home-footer__legal { text-align: right; }
.home-footer__legal p { margin: 0; }
.home-footer__legal p + p { margin-top: 0.12rem; }

/* Inner-page framework */

.page-heading {
    margin: 0.95rem 0 1.1rem;
    color: var(--navy);
    font-family: var(--display-font);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.14;
    text-align: center;
    text-transform: uppercase;
}

.page-heading--plain {
    font-size: 21px;
    letter-spacing: 0;
    text-transform: none;
}

.page-deck {
    max-width: 48rem;
    margin: 0 auto 1.15rem;
    font-size: 16px;
    line-height: 1.42;
    text-align: center;
}

.page-deck--left { text-align: left; }

.prose {
    max-width: 46rem;
    margin-right: auto;
    margin-left: auto;
    font-size: 16.5px;
    line-height: 1.48;
}

.prose--wide {
    max-width: 70rem;
}

.prose--letter { max-width: 44rem; }
.prose p { margin: 0 0 0.92rem; }

.section-heading {
    margin: 1.4rem 0 0.62rem;
    color: var(--navy);
    font-family: var(--display-font);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.025em;
    line-height: 1.15;
    text-align: center;
    text-transform: uppercase;
}

.signature {
    margin-top: 1.35rem !important;
    line-height: 1.22;
}

.signature__role { font-size: 15px; }

.page-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem 2rem;
    padding-bottom: 0.15rem;
    color: var(--ink);
    font-size: 11.5px;
    line-height: 1.25;
}

.page-footer p { margin: 0; }

/* Company information */

.fact-list {
    max-width: 45rem;
    margin: 0 auto 1.4rem;
    border-top: 1px solid var(--rule);
}

.fact-list__row {
    display: grid;
    grid-template-columns: minmax(10.75rem, 12.75rem) minmax(0, 1fr);
    gap: 1rem;
    padding: 0.39rem 0.25rem;
    border-bottom: 1px solid var(--rule);
}

.fact-list dt,
.fact-list dd { margin: 0; }

.fact-list dt {
    color: var(--navy);
    font-weight: 700;
}

/* Principles */

.principle-list {
    margin: 0.95rem 0 0 1.45rem;
    padding: 0;
}

.principle-list li {
    margin: 0 0 0.78rem;
    padding-left: 0.18rem;
}

/* Chronological archives */

.archive-nav {
    margin: 0 0 1rem;
    color: var(--navy);
    font-size: 13px;
    line-height: 1.2;
    text-align: center;
}

.archive-nav > * + *::before {
    display: inline-block;
    margin: 0 0.5rem;
    color: var(--muted);
    content: "\00b7";
    text-decoration: none;
}

.archive-year {
    max-width: 49rem;
    margin: 1.1rem auto 0;
    scroll-margin-top: 1rem;
}

.archive-year__heading {
    margin: 0;
    padding: 0 0 0.28rem;
    color: var(--navy);
    border-bottom: 1px solid var(--rule);
    font-family: var(--display-font);
    font-size: 17px;
    line-height: 1.15;
}

.archive-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.archive-entry {
    display: grid;
    grid-template-columns: 9.4rem minmax(0, 1fr) auto;
    gap: 0.8rem 1rem;
    align-items: baseline;
    padding: 0.58rem 0.12rem 0.62rem;
    border-bottom: 1px solid var(--rule-light);
}

.archive-entry time {
    color: var(--ink);
    font-size: 13.5px;
    line-height: 1.25;
}

.archive-title {
    min-width: 0;
    font-size: 16px;
    line-height: 1.25;
}

.archive-format {
    color: var(--muted);
    font-size: 11.5px;
    line-height: 1.25;
    white-space: nowrap;
}

.archive-note {
    max-width: 49rem;
    margin: 1.45rem auto 0;
    padding-top: 0.52rem;
    color: var(--muted);
    border-top: 1px solid var(--rule);
    font-size: 12px;
    line-height: 1.3;
}

.empty-archive {
    padding: 0.68rem 0.12rem;
    border-bottom: 1px solid var(--rule-light);
    font-size: 15.5px;
}

.empty-archive p { margin: 0; }

/* Company document index */

.document-index {
    max-width: 49rem;
    margin: 0 auto;
    padding: 0;
    border-top: 1px solid var(--rule);
    list-style: none;
}

.document-index li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
    padding: 0.55rem 0.12rem 0.58rem;
    border-bottom: 1px solid var(--rule);
}

.document-title { min-width: 0; }

.document-description {
    display: block;
    margin-top: 0.06rem;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.document-format {
    color: var(--muted);
    font-size: 11.5px;
    line-height: 1.25;
    white-space: nowrap;
}

/* Contact and legal */

.contact-list {
    display: grid;
    grid-template-columns: 8.75rem minmax(0, 1fr);
    gap: 0.52rem 1.25rem;
    max-width: 37rem;
    margin: 1.25rem auto 0;
}

.contact-list dt,
.contact-list dd { margin: 0; }

.contact-list dt {
    color: var(--navy);
    font-weight: 700;
}

.contact-list address { font-style: normal; }

.legal-copy {
    max-width: 46rem;
    margin: 0 auto;
    font-size: 16.5px;
    line-height: 1.48;
}

.legal-copy p { margin: 0 0 0.92rem; }

.disclosure-actions {
    margin: 1.4rem 0 0;
    text-align: center;
}

.disclosure-actions button {
    min-height: 38px;
    padding: 0.38rem 0.9rem;
    color: var(--ink);
    background: var(--button);
    border: 1px solid #77766f;
    border-radius: 0;
    cursor: pointer;
    font-size: 14px;
}

.disclosure-actions button:hover { background: #e5e4de; }

.disclosure-note {
    margin: 0.5rem 0 0;
    color: var(--muted);
    font-size: 11.5px;
    line-height: 1.3;
}

.not-found {
    max-width: 34rem;
    margin: 3.25rem auto 3.6rem;
    text-align: center;
}

.not-found p { margin: 0.7rem 0 0; }

/* Compact laptop-height tuning */

@media (min-width: 721px) and (max-height: 760px) {
    .site--home {
        margin-top: 0.5rem;
        margin-bottom: 0.6rem;
    }

    .rule {
        margin-top: 0.65rem;
        margin-bottom: 0.65rem;
    }

    .rule--compact {
        margin-top: 0.52rem;
        margin-bottom: 0.52rem;
    }

    .directory__item { margin-bottom: 0.72rem; }
    .directory__note { margin-top: 0.03rem; }
}

/* Mobile */

@media (max-width: 720px) {
    body {
        font-size: 16px;
        line-height: 1.42;
    }

    .site,
    .site--home,
    .site--page,
    .site--archive {
        width: calc(100% - 1.6rem);
        margin-top: 0.75rem;
        margin-bottom: 0.85rem;
    }

    .brand--home { font-size: 22px; }
    .brand--page { font-size: 18px; }

    .masthead__descriptor {
        font-size: 10.5px;
        letter-spacing: 0.06em;
    }

    .masthead__meta { font-size: 11.5px; }
    .rule { margin: 0.72rem 0; }
    .rule--compact { margin: 0.62rem 0; }
    .directory { padding: 0 0.15rem; }
    .directory__grid { display: block; }
    .directory__list { padding-left: 1.25rem; }
    .directory__list + .directory__list { margin-top: 0.9rem; }
    .directory__item { margin-bottom: 0.78rem; }

    .directory__link {
        min-height: 34px;
        padding: 0.3rem 0 0.12rem;
        font-size: 17px;
        line-height: 1.2;
    }

    .directory__note {
        margin-top: 0;
        font-size: 12.5px;
        line-height: 1.25;
    }

    .latest-record { font-size: 12.5px; }

    .latest-record__label {
        display: block;
        margin-bottom: 0.04rem;
    }

    .home-footer {
        display: block;
        font-size: 12px;
    }

    .home-footer__separator { display: none; }

    .home-footer address a[href^="tel:"] {
        display: block;
        margin-top: 0.1rem;
    }

    .home-footer__legal {
        margin-top: 0.55rem;
        text-align: left;
    }

    .page-heading {
        margin-top: 1rem;
        margin-bottom: 1rem;
        font-size: 18px;
    }

    .page-heading--plain { font-size: 20px; }

    .page-deck,
    .prose,
    .legal-copy {
        font-size: 16.25px;
        line-height: 1.5;
    }

    .page-footer {
        display: block;
        font-size: 12px;
    }

    .page-footer p + p { margin-top: 0.32rem; }

    .fact-list__row {
        grid-template-columns: 39% minmax(0, 1fr);
        gap: 0.65rem;
        padding: 0.42rem 0.12rem;
    }

    .archive-entry {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.12rem 0.75rem;
        padding-top: 0.62rem;
        padding-bottom: 0.64rem;
    }

    .archive-entry time { grid-column: 1 / -1; }
    .archive-title { font-size: 16.25px; }

    .document-index li {
        gap: 0.75rem;
        padding-top: 0.62rem;
        padding-bottom: 0.64rem;
    }

    .contact-list {
        grid-template-columns: 1fr;
        gap: 0.08rem;
        margin-top: 1.15rem;
    }

    .contact-list dd + dt { margin-top: 0.72rem; }

    .disclosure-actions button {
        min-height: 44px;
        padding-right: 1.2rem;
        padding-left: 1.2rem;
    }

    .not-found {
        margin-top: 2.7rem;
        margin-bottom: 3rem;
    }
}

@media (max-width: 360px) {
    .site,
    .site--home,
    .site--page,
    .site--archive { width: calc(100% - 1.2rem); }

    .brand--home { font-size: 20px; }
    .brand--page { font-size: 17px; }

    .fact-list__row {
        grid-template-columns: 1fr;
        gap: 0.08rem;
    }
}

/* Print */

@media print {
    :root {
        --paper: #ffffff;
        --ink: #000000;
        --navy: #000000;
        --link: #000000;
        --visited: #000000;
        --muted: #000000;
        --rule: #777777;
        --rule-light: #bbbbbb;
    }

    body { font-size: 11pt; }

    .site,
    .site--home,
    .site--page,
    .site--archive {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .skip-link,
    .disclosure-actions { display: none; }

    a:link,
    a:visited { color: #000000; }
}
/* Homepage only — desktop proportion refinement */

@media screen and (min-width: 900px) {
    body[data-page="home"] .site--home {
        width: min(96rem, calc(100% - 4rem));
        max-width: none;
        margin-top: clamp(0.65rem, 1.35vh, 1rem);
        margin-bottom: clamp(0.75rem, 1.5vh, 1.1rem);
        padding: 0;
    }

    body[data-page="home"] .brand--home {
        font-size: clamp(27px, calc(17px + 1.7vh), 36px);
    }

    body[data-page="home"] .masthead__descriptor {
        margin-top: clamp(0.22rem, 0.45vh, 0.3rem);
        font-size: clamp(11.75px, calc(8px + 0.55vh), 13.75px);
        letter-spacing: 0.075em;
    }

    body[data-page="home"] .masthead__meta {
        margin-top: clamp(0.08rem, 0.18vh, 0.12rem);
        font-size: clamp(12px, calc(8.5px + 0.52vh), 14px);
    }

    body[data-page="home"] .rule {
        margin-top: clamp(0.8rem, 2.8vh, 1.9rem);
        margin-bottom: clamp(0.8rem, 2.8vh, 1.9rem);
    }

    body[data-page="home"] .rule--compact {
        margin-top: clamp(0.65rem, 2.1vh, 1.45rem);
        margin-bottom: clamp(0.65rem, 2.1vh, 1.45rem);
    }

    body[data-page="home"] .directory {
        margin: 0;
        padding:
            clamp(0.25rem, 1.2vh, 0.9rem)
            clamp(1rem, 2.5vw, 3rem)
            clamp(0.2rem, 1vh, 0.75rem);
    }

    body[data-page="home"] .directory__grid {
        column-gap: clamp(5rem, 10vw, 10rem);
    }

    body[data-page="home"] .directory__list {
        padding-left: clamp(1.3rem, 1.5vw, 1.55rem);
    }

    body[data-page="home"] .directory__item {
        margin-bottom: clamp(0.85rem, 3.9vh, 2.5rem);
        padding-left: 0.1rem;
    }

    body[data-page="home"] .directory__item:last-child {
        margin-bottom: 0;
    }

    body[data-page="home"] .directory__link {
        padding: 0.05rem 0;
        font-size: clamp(17px, calc(10.5px + 0.95vh), 21px);
        line-height: 1.17;
    }

    body[data-page="home"] .directory__note {
        max-width: 35rem;
        margin-top: clamp(0.05rem, 0.18vh, 0.11rem);
        font-size: clamp(12px, calc(7.8px + 0.58vh), 14px);
        line-height: 1.22;
    }

    body[data-page="home"] .latest-record {
        padding: clamp(0.05rem, 0.28vh, 0.2rem) 0;
        font-size: clamp(12.5px, calc(8.5px + 0.56vh), 14.5px);
        line-height: 1.3;
    }

    body[data-page="home"] .home-footer {
        display: block;
        padding-bottom: 0.2rem;
        font-size: clamp(12px, calc(8px + 0.55vh), 13.75px);
        line-height: 1.38;
    }

    body[data-page="home"] .home-footer__legal {
        margin-top: clamp(0.3rem, 0.65vh, 0.48rem);
        text-align: left;
    }

    body[data-page="home"] .home-footer__legal p + p {
        margin-top: clamp(0.1rem, 0.22vh, 0.16rem);
    }
}