/* Partners 3.0 shell and layout styles. */

.ss3-site-shell {
    min-height: 100vh;
}

.ss3-site-menu {
    background: var(--ss3-shell-menu-bg);
    color: var(--ss3-color-text);
    box-shadow: var(--ss3-shadow-md);
}

.ss3-site-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ss3-space-3);
    padding: var(--ss3-space-4);
    border-bottom: 1px solid var(--ss3-color-border);
}

.ss3-site-menu-title {
    color: var(--ss3-color-text);
    font-size: var(--ss3-font-size-section-title);
    font-weight: var(--ss3-font-weight-strong);
    line-height: var(--ss3-line-height-tight);
}

.ss3-site-menu-list a {
    display: flex;
    align-items: center;
    gap: var(--ss3-space-2);
}

.ss3-site-header {
    background: var(--ss3-shell-header-bg);
    color: var(--ss3-shell-header-text);
    box-shadow: var(--ss3-shadow-sm);
}

.ss3-site-header a,
.ss3-site-header .menu-text,
.ss3-site-header .top-bar,
.ss3-site-header .top-bar ul {
    color: var(--ss3-shell-header-link);
}

.ss3-site-header .top-bar,
.ss3-site-header .top-bar ul {
    background: transparent;
}

.ss3-site-header-mobile {
    padding: var(--ss3-space-2) 0;
}

.ss3-mobile-toolbar {
    display: flex;
    align-items: center;
    gap: var(--ss3-space-2);
}

.ss3-mobile-title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--ss3-font-size-app-title);
    font-weight: var(--ss3-font-weight-strong);
    line-height: var(--ss3-line-height-tight);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss3-site-header-desktop {
    padding-top: var(--ss3-space-2);
    padding-bottom: var(--ss3-space-2);
}

.ss3-site-name a {
    color: inherit;
    font-size: var(--ss3-font-size-app-title);
    font-weight: var(--ss3-font-weight-strong);
    line-height: var(--ss3-line-height-tight);
}

.ss3-site-search {
    margin-top: var(--ss3-space-2);
}

.ss3-site-search .input-group {
    margin-bottom: 0;
}

.ss3-site-search-mobile {
    margin-top: var(--ss3-space-2);
}

.ss3-mobile-search-tools {
    display: flex;
    align-items: center;
    gap: var(--ss3-space-1);
    margin-top: var(--ss3-space-2);
}

.ss3-site-main {
    max-width: var(--ss3-site-max-width);
    padding-top: var(--ss3-space-4);
    padding-bottom: var(--ss3-space-6);
}

.ss3-site-footer {
    padding: var(--ss3-space-4) 0;
    background: var(--ss3-shell-footer-bg);
    color: var(--ss3-shell-footer-text);
    border-top: 1px solid rgb(255 255 255 / 0.18);
}

.ss3-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ss3-space-4);
}

.ss3-footer-links a {
    color: var(--ss3-shell-footer-text);
}

.ss3-copyright {
    padding: var(--ss3-space-2) 0;
    color: var(--ss3-shell-footer-text);
    font-size: var(--ss3-font-size-supporting);
    line-height: var(--ss3-line-height-body);
    background: var(--ss3-shell-footer-bg);
    border-top: 1px solid rgb(255 255 255 / 0.18);
}

.ss3-icon-button.button.clear {
    color: inherit;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border-radius: var(--ss3-radius-sm);
}

.ss3-icon-button.button.clear:hover,
.ss3-icon-button.button.clear:focus,
.ss3-search-scope-button.active {
    background: rgb(255 255 255 / 0.16);
    color: inherit;
}

@media screen and (max-width: 39.9375em) {
    .ss3-site-main {
        padding-top: var(--ss3-space-3);
        padding-bottom: var(--ss3-space-4);
    }
}

/* Peer-section composition. Hidden sections contribute no boundary or empty slot.
   The workbench owns the complete relationship between a record summary and its
   first section, and between successive peer sections. */
.ss3-workbench {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ss3-record-context + .ss3-workbench {
    margin-top: var(--ss3-gap-section-before);
}

.ss3-workbench > .ss3-section {
    margin: 0;
    padding: 0;
    border-top: 0;
}

.ss3-workbench > .ss3-section:not([hidden]) ~ .ss3-section:not([hidden]) {
    margin-top: var(--ss3-gap-section-before);
    padding-top: var(--ss3-gap-section-after);
    border-top: 1px solid var(--ss3-color-border);
}

.ss3-workbench[data-boundary="undivided"] > .ss3-section:not([hidden]) ~ .ss3-section:not([hidden]) {
    margin-top: calc(var(--ss3-gap-section-before) + var(--ss3-gap-section-after));
    padding-top: 0;
    border-top: 0;
}

/* Contained is the preferred conventional workbench variant. Each peer section
   supplies one card boundary. Existing card padding and the inter-card gap combine
   to the same visible-content hierarchy as divided sections without adding a
   second divider allowance. */
.ss3-record-context + .ss3-workbench[data-boundary="contained"] {
    margin-top: calc(var(--ss3-gap-section-before) - var(--ss3-space-4));
}

.ss3-workbench[data-boundary="contained"] {
    gap: var(--ss3-space-4);
}

.ss3-workbench[data-boundary="contained"] > .ss3-section {
    padding: var(--ss3-space-4);
    background: var(--ss3-color-surface);
    border: 1px solid var(--ss3-color-border);
    border-radius: var(--ss3-radius-lg);
    box-shadow: var(--ss3-shadow-sm);
}

.ss3-workbench[data-boundary="contained"] > .ss3-section:not([hidden]) ~ .ss3-section:not([hidden]) {
    margin-top: 0;
}

@media screen and (max-width: 39.9375em) {
    /* Recover the normal Foundation phone gutter while retaining clear top/bottom
       containment, 16px vertical padding, and 12px horizontal content padding. */
    .ss3-workbench[data-boundary="contained"] {
        gap: var(--ss3-space-2);
        margin-inline: calc(0rem - var(--ss3-space-2));
    }

    .ss3-workbench[data-boundary="contained"] > .ss3-section {
        padding: var(--ss3-space-4) var(--ss3-space-3);
        border-right: 0;
        border-left: 0;
        border-radius: 0;
        box-shadow: none;
    }

    /* Edge-contained peer transitions use one horizontal boundary. Preserve the
       complete 16px section padding and 8px inter-section gap; only the redundant
       bottom rule is removed while another visible peer follows. */
    .ss3-workbench[data-boundary="contained"] > .ss3-section:not([hidden]):has(~ .ss3-section:not([hidden])) {
        border-bottom: 0;
    }
}
