/* shared mobile foundation patch */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

img,
video,
iframe,
object,
embed,
canvas {
    max-width: 100%;
}

img,
video {
    height: auto;
}

iframe,
object,
embed,
canvas {
    display: block;
}

pre,
code,
kbd,
samp {
    max-width: 100%;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.page-shell,
.content-shell,
.section-card,
.container,
.board,
.card,
.rail,
.grid,
.modal,
[class*="-board"],
[class*="-card"],
[class*="-rail"],
[class*="-modal"],
[class*="-panel"],
[class*="-shell"] {
    min-width: 0;
}

.page-shell,
.content-shell,
.section-card,
.container,
.board,
.card,
.rail,
.grid,
.modal {
    max-width: 100%;
}

.content-shell,
.section-card,
.chapter-home-panel,
.chapter-home-about,
.chapter-home-feature-card,
.home-folder-panel,
.admin-panels,
.advisor-panels,
.modal,
[class*="-modal-card"],
[class*="-modal-body"] {
    overflow-wrap: anywhere;
}

.table-wrap,
.chapter-table-wrap,
.admin-table-wrap,
.member-table-wrap,
.manage-table-wrap,
.reference-table-wrap,
.orders-table-wrap,
.cart-table-wrap,
.photo-table-wrap,
.issue-table-wrap,
.nrr-table-search-wrap,
.nrr-chapter-people-table-wrap,
.merch-products-table-wrap,
.merch-categories-table-wrap,
.merch-orders-table-wrap,
.merch-approvals-table-wrap,
.merch-schedule-table-wrap,
.order-items-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.table-wrap > table,
.chapter-table-wrap > table,
.admin-table-wrap > table,
.member-table-wrap > table,
.manage-table-wrap > table,
.reference-table-wrap > table,
.orders-table-wrap > table,
.cart-table-wrap > table,
.photo-table-wrap > table,
.issue-table-wrap > table,
.nrr-table-search-wrap > table,
.nrr-chapter-people-table-wrap > table,
.merch-products-table-wrap > table,
.merch-categories-table-wrap > table,
.merch-orders-table-wrap > table,
.merch-approvals-table-wrap > table,
.merch-schedule-table-wrap > table,
.order-items-table-wrap > table {
    max-width: none;
}

.member-profile-link,
.chapter-sort-link,
.modern-table a,
.data-table a,
.admin-table a,
.members-table a,
.manage-table a,
.reference-table a,
.chapters-table a {
    overflow-wrap: anywhere;
    word-break: break-word;
}

@media (max-width: 900px) {
    .header-desktop {
        display: none;
    }

    .header-mobile {
        display: block;
    }

    .site-header {
        position: sticky;
        top: 0;
    }

    .mobile-top {
        flex-wrap: wrap;
    }

    .mobile-logo,
    .mobile-menu-button {
        flex: 0 0 auto;
    }

    .mobile-account {
        flex: 1 1 180px;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .mobile-nav-track {
        width: 100%;
        min-width: 0;
    }

    .mobile-nav-track .nav-button {
        flex: 1 1 calc(50% - 10px);
        min-width: min(100%, 150px);
    }
}

@media (max-width: 760px) {
    .page-shell {
        width: 100%;
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    .content-shell {
        padding: 16px 12px 22px;
    }

    .section-card,
    .chapter-home-panel,
    .chapter-home-motto-card,
    .chapter-home-feature-card,
    .chapter-home-about,
    .home-folder-panel,
    .advisor-panel,
    .admin-panels,
    .modal,
    [class*="-modal-card"] {
        width: 100%;
        max-width: 100%;
        padding-left: min(18px, 5vw);
        padding-right: min(18px, 5vw);
    }

    .two-col,
    .three-col,
    .login-grid,
    .member-name-grid,
    .admin-grid-tight,
    .merch-manage-grid,
    .merch-form-inline,
    .chapter-location-grid,
    .auth-create-layout,
    .chapter-create-layout,
    .nrr-create-two,
    .chapter-home-shell,
    .chapter-home-feature-grid,
    .chapter-home-about-card-grid,
    .chapter-home-card-grid,
    .chapter-home-contact-grid,
    .home-current-chapter-layout,
    .home-overview-grid,
    .home-overview-columns,
    .home-preview-list,
    .home-preview-list-links,
    .home-photo-preview-grid,
    .home-member-layout,
    .home-newsletter-grid,
    .advisor-shell,
    .advisor-card-grid,
    .advisor-form-grid,
    .admin-shell,
    .shopping-layout,
    .shopping-grid,
    [class$="-grid"],
    [class*="-grid "],
    [class$="-layout"],
    [class*="-layout "] {
        grid-template-columns: 1fr !important;
    }

    .chapter-home-sidebar,
    .chapter-home-side-stack,
    .chapter-home-right-rail,
    .home-chapter-right-rail,
    .advisor-workbench-rail,
    .admin-tabs,
    .rail,
    [class*="-rail"] {
        width: 100% !important;
        max-width: 100% !important;
        position: static !important;
        order: 0;
    }

    .chapter-home-main,
    .advisor-panels,
    .admin-panels {
        width: 100%;
        max-width: 100%;
        order: 1;
    }

    .chapter-home-side-stack,
    .chapter-home-right-rail,
    .home-chapter-right-rail {
        order: 2;
    }

    .chapter-home-page .chapter-home-main {
        order: 2;
    }

    .chapter-home-page .chapter-home-side-stack,
    .chapter-home-page .chapter-home-right-rail,
    .home-member-chapter-home .home-chapter-right-rail {
        order: 1;
    }

    .chapter-home-side-nav,
    .admin-tabs .chapter-home-side-nav,
    .advisor-workbench-rail .chapter-home-side-nav {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .chapter-home-link,
    .home-folder-tab,
    .nav-button,
    .mobile-menu-button,
    .mobile-admin-toggle,
    .table-toolbar-pill,
    .shopping-button,
    .shopping-button-secondary,
    .chapter-home-tab-action,
    .advisor-primary-action,
    .admin-mini-action,
    button,
    input[type="submit"],
    input[type="button"],
    input[type="reset"] {
        max-width: 100%;
        min-height: 44px;
        white-space: normal;
        text-align: center;
        overflow-wrap: anywhere;
    }

    .cta-row,
    .form-actions,
    .modal-actions,
    .advisor-form-actions,
    .chapter-email-modal-actions,
    .chapter-pending-modal-actions,
    .chapter-vote-modal-actions,
    .photo-group-modal-actions,
    .creator-modal-actions,
    .member-modal-actions,
    .login-duplicate-actions,
    .password-recovery-actions,
    [class*="-modal-actions"] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 10px;
        width: 100%;
    }

    .form-actions > :is(button:not(.alt), input[type="submit"], input[type="button"], .nrr-action-cud, .shopping-button),
    .modal-actions > :is(button:not(.alt), input[type="submit"], input[type="button"], .nrr-action-cud, .shopping-button),
    .advisor-form-actions > :is(button:not(.alt), input[type="submit"], input[type="button"], .nrr-action-cud, .shopping-button),
    [class*="-modal-actions"] > :is(button:not(.alt), input[type="submit"], input[type="button"], .nrr-action-cud, .shopping-button) {
        order: 1;
    }

    .form-actions > :is(.alt, .shopping-button-secondary, .nrr-action-read),
    .modal-actions > :is(.alt, .shopping-button-secondary, .nrr-action-read),
    .advisor-form-actions > :is(.alt, .shopping-button-secondary, .nrr-action-read),
    [class*="-modal-actions"] > :is(.alt, .shopping-button-secondary, .nrr-action-read) {
        order: 2;
    }

    .form-actions > *,
    .modal-actions > *,
    .advisor-form-actions > *,
    [class*="-modal-actions"] > * {
        width: 100%;
    }

    .inline-form,
    .inline-actions,
    .inline-controls,
    .actions-inline,
    .table-admin-toolbar,
    .member-admin-toolbar,
    .links-toolbar.is-manage,
    .table-toolbar-panel__bulk-actions,
    .table-toolbar-panel__search-form,
    .table-search-inline,
    .member-manage-search-inline,
    .table-admin-actions,
    .member-admin-actions,
    .table-search-actions,
    .member-search-actions,
    .table-pagination-bar,
    .manage-pagination,
    .members-pagination,
    .reference-pagination,
    .pagination-row,
    .chapter-table-pagination,
    .chapter-table-actions {
        width: 100%;
        max-width: 100%;
        flex-wrap: wrap;
    }

    .table-toolbar-panel__search-form,
    .table-search-inline,
    .member-manage-search-inline,
    .links-search-form {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 8px;
    }

    .table-toolbar-search-field,
    .table-search-inline .field,
    .member-manage-search-inline .field,
    .field--search-panel {
        flex: 1 1 0;
        min-width: 0 !important;
        max-width: none;
    }

    .table-search-actions,
    .member-search-actions,
    .table-toolbar-panel__search-actions,
    .links-search-actions {
        flex: 0 0 auto;
        width: auto;
        min-width: 0;
    }

    .table-pagination-links,
    .pagination-links,
    .nrr-pagination {
        justify-content: center;
    }

    .table-pagination-links a,
    .table-pagination-links span,
    .pagination-links a,
    .pagination-links span,
    .nrr-pagination a,
    .nrr-pagination span {
        min-width: 42px;
        min-height: 42px;
    }

    table:not(.nrr-select-native),
    .members-table,
    .manage-table,
    .reference-table,
    .chapters-table,
    .admin-table,
    .modern-table,
    .data-table,
    .orders-table,
    .cart-table,
    .merch-orders-table,
    .merch-approvals-table,
    .merch-categories-table,
    .merch-products-table,
    .merch-schedule-table,
    .order-items-table,
    .nrr-chapter-people-table,
    .nrr-chapter-member-table {
        max-width: 100%;
    }

    main > table,
    .section-card > table,
    .chapter-home-panel > table,
    .chapter-home-about > table,
    .home-folder-panel > table,
    .advisor-panel > table,
    .admin-panels > table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    th,
    td {
        overflow-wrap: anywhere;
    }

    .table-actions,
    .member-actions,
    .chapter-action-buttons,
    .manage-actions,
    .reference-actions,
    .issue-page .issue-action-icons,
    .admin-region-row-actions,
    .nrr-chapter-member-actions {
        gap: 8px;
        white-space: normal;
    }

    .nrr-select,
    .field--select,
    .control-label--wide,
    .reference-header-filter,
    .reference-header-filter .enum-filter,
    .filter-menu {
        width: 100%;
        min-width: 0 !important;
        max-width: 100%;
    }

    .filter-menu,
    .nrr-select-panel,
    [class*="-modal-card"] {
        max-height: calc(100vh - 32px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    .page-shell {
        padding-left: 10px;
        padding-right: 10px;
    }

    .content-shell {
        padding-left: 10px;
        padding-right: 10px;
    }

    .mobile-top {
        gap: 10px;
    }

    .mobile-logo img {
        width: min(86px, 24vw);
    }

    .mobile-menu-button {
        flex: 1 1 100%;
        width: 100%;
    }

    .mobile-nav-track .nav-button {
        flex-basis: 100%;
        width: 100%;
    }

    .section-title {
        font-size: clamp(1.65rem, 8vw, 2rem);
    }

    .section-subtitle {
        font-size: clamp(1.15rem, 6vw, 1.45rem);
    }

    .lede {
        font-size: 1rem;
    }

    .table-admin-toolbar,
    .member-admin-toolbar,
    .links-toolbar.is-manage {
        padding-left: 10px;
        padding-right: 10px;
    }

    .table-toolbar-panel__search-form,
    .table-search-inline,
    .member-manage-search-inline,
    .links-search-form {
        flex-wrap: nowrap;
    }

    .table-search-actions .table-toolbar-pill,
    .member-search-actions .table-toolbar-pill,
    .table-toolbar-panel__search-actions .table-toolbar-pill,
    .links-search-actions .table-toolbar-pill {
        padding-left: 14px;
        padding-right: 14px;
    }
}


/* phone header auth emphasis and public home wrapping fixes */
.mobile-auth-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.mobile-login-button,
.mobile-login-button:link,
.mobile-login-button:visited,
.mobile-login-button:hover,
.mobile-login-button:focus-visible {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid var(--nrr-action-cud-border, var(--nrr-mobile-mobile-login-button-focus-visible-focus-border));
    border-radius: 999px;
    background: var(--nrr-action-cud-bg, var(--nrr-mobile-mobile-login-button-focus-visible-focus-background));
    color: var(--nrr-mobile-mobile-login-button-focus-visible-focus-text);
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 2px 7px var(--nrr-mobile-mobile-login-button-focus-visible-focus-shadow);
}

.mobile-signup-link,
.mobile-signup-link:link,
.mobile-signup-link:visited,
.mobile-signup-link:hover,
.mobile-signup-link:focus-visible,
.mobile-cart-line a,
.mobile-cart-line a:link,
.mobile-cart-line a:visited,
.mobile-cart-line a:hover,
.mobile-cart-line a:focus-visible {
    color: var(--nrr-action-cud-bg, var(--nrr-mobile-mobile-cart-line-focus-visible-focus-text));
    font-weight: 800;
    text-decoration: none;
}

.home-visitor-card-heading h1,
.home-visitor-welcome-list,
.home-visitor-welcome-list li,
.home-visitor-welcome-list li > span:last-child {
    min-width: 0;
    max-width: 100%;
}

.home-visitor-welcome-list li > span:last-child {
    display: block;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: auto;
}

@media (max-width: 640px) {
    .home-visitor-card-heading {
        grid-template-columns: 1fr !important;
        min-height: 0;
        padding: 16px 10px 14px;
    }

    .home-visitor-card-heading h1 {
        grid-column: 1 / -1;
        justify-self: center;
        width: 100%;
        font-size: clamp(1.45rem, 8.4vw, 2rem);
        line-height: 1.12;
        letter-spacing: 0.01em;
        overflow-wrap: normal;
        word-break: normal;
    }

    .home-visitor-welcome-list {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .home-visitor-welcome-list li {
        grid-template-columns: 40px minmax(0, 1fr) !important;
        gap: 8px;
        font-size: clamp(1rem, 5.2vw, 1.2rem);
        line-height: 1.35;
    }

    .home-visitor-welcome-icon {
        justify-content: center;
        min-width: 0;
    }

    .mobile-account {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
}

@media (max-width: 480px) {
    .mobile-top {
        align-items: center;
    }

    .mobile-account {
        flex: 1 1 150px;
    }

    .mobile-auth-actions {
        gap: 7px;
    }

    .mobile-login-button,
    .mobile-login-button:link,
    .mobile-login-button:visited,
    .mobile-login-button:hover,
    .mobile-login-button:focus-visible {
        min-height: 42px;
        padding-left: 18px;
        padding-right: 18px;
        font-size: 1rem;
    }

    .mobile-menu-button {
        flex: 0 0 auto;
        width: auto;
        min-height: 42px;
        padding-left: 18px;
        padding-right: 18px;
    }
}

/* mobile rail tap focus target */
@media (max-width: 760px) {
    .chapter-home-main,
    .advisor-panels,
    .admin-panels {
        scroll-margin-top: 92px;
    }

    .chapter-home-main:focus,
    .advisor-panels:focus,
    .admin-panels:focus {
        outline: none;
    }
}

/* mobile header action menus */
.mobile-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
    min-width: 0;
    flex-wrap: wrap;
}

.mobile-shopping-toggle,
.mobile-advisor-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 25px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid var(--nrr-mobile-mobile-advisor-toggle-border);
    background: var(--nrr-mobile-mobile-advisor-toggle-background);
    color: var(--nrr-mobile-mobile-advisor-toggle-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.mobile-advisor-toggle,
.mobile-advisor-toggle:hover,
.mobile-advisor-toggle:focus-visible {
    border-color: var(--nrr-action-cud-border, var(--nrr-mobile-mobile-advisor-toggle-focus-visible-focus-border));
    background: var(--nrr-action-cud-bg, var(--nrr-mobile-mobile-advisor-toggle-focus-visible-focus-background));
    color: var(--nrr-mobile-mobile-advisor-toggle-focus-visible-focus-text);
}

.mobile-shopping-toggle:hover,
.mobile-shopping-toggle:focus-visible,
.mobile-menu-button:hover,
.mobile-menu-button:focus-visible {
    background: var(--nrr-mobile-mobile-menu-button-focus-visible-focus-background);
    color: var(--nrr-mobile-mobile-menu-button-focus-visible-focus-text);
}

.mobile-advisor-panel .nav-button--advisor-workbench,
.mobile-advisor-panel .nav-button--advisor-workbench:link,
.mobile-advisor-panel .nav-button--advisor-workbench:visited,
.mobile-advisor-panel .nav-button--advisor-workbench:hover,
.mobile-advisor-panel .nav-button--advisor-workbench:focus-visible {
    border-color: var(--nrr-action-cud-border, var(--nrr-mobile-mobile-advisor-panel-nav-button-advisor-workbench-focus-visible-focus-border));
    background: var(--nrr-action-cud-bg, var(--nrr-mobile-mobile-advisor-panel-nav-button-advisor-workbench-focus-visible-focus-background));
    color: var(--nrr-mobile-mobile-advisor-panel-nav-button-advisor-workbench-focus-visible-focus-text);
}

@media (max-width: 640px) {
    .mobile-top {
        align-items: flex-start;
    }

    .mobile-header-actions {
        flex: 1 1 100%;
        width: 100%;
        justify-content: flex-end;
        order: 3;
    }
}

@media (max-width: 480px) {
    .mobile-header-actions {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
        gap: 8px;
    }

    .mobile-menu-button,
    .mobile-shopping-toggle,
    .mobile-advisor-toggle {
        width: 100%;
        min-height: 42px;
        padding-left: 12px;
        padding-right: 12px;
        font-size: 0.98rem;
    }
}
