Jake Vanderwerf
5 days ago 92e80666d516de64e488e04911c09e65a32e2a05
nav.css
@@ -1,11 +1,17 @@
/**************************************************************
BASE NAVIGATION - Works for 80% of cases
**************************************************************/
nav,
nav ol,
nav ul {
    --padding: 0 1rem;
    --wrap: nowrap;
    font-family: var(--heading);
}
ul.socials,
nav,
nav ol,
nav ul,
nav li,
nav a {
    display: flex;
    flex-direction: var(--dir, row);
    justify-content: var(--justify, flex-start);
@@ -14,112 +20,105 @@
    flex-wrap: var(--wrap, nowrap);
    height: var(--btn, 3rem);
    max-width: 100%;
    font-family: var(--heading);
    padding: 0;
    margin: 0;
}
/* Items fill parent */
nav li {
    display: flex;
    align-items: center;
    height: max(var(--btn), max-content);
    width: 100%;
    max-inline-size: none;
    padding: 0;
nav.col,
nav.col ul {
    height: max-content;
}
/* Links fill parent */
nav a,
nav button {
    display: flex;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    height: var(--btn);
nav > ul {
    width: 100%;
    overflow: auto hidden;
}
nav li {
    width: max-content;
    --justify: center;
    max-inline-size: none;
    padding: 0;
    list-style: none;
}
nav.fill li {
    width: 100%;
}
nav a, nav button {
    --justify: center;
    width: 100%;
    white-space: nowrap;
    text-transform: uppercase;
    transition: var(--trans-color);
    border-radius: 0;
    background-color: transparent;
    text-decoration: none;
}
nav a {
    height: var(--btn);
    padding: var(--padding);
}
/* Buttons */
nav button {
    justify-content: center;
nav .toggle {
    aspect-ratio: 1;
    padding: 0;
    border: 2px solid var(--base);
    color: var(--contrast);
    border-radius: 0;
    border: 1px solid rgb(var(--base));
    color: rgb(var(--contrast));
}
/**************************************************************
STATES - Apply to all navs
**************************************************************/
/* Active/Focus states */
    nav a:hover,
    nav .current a,
    nav a.current,
    nav a:focus,
    nav a:focus:visited,
    nav button:focus {
    background-color: var(--action-0);
nav .current a,
nav a.current,
nav a:focus,
nav a:focus:visited,
nav button:focus {
    background-color: rgb(var(--action-0));
    color: var(--action-contrast);
}
/* Icon rotation */
.toggle .icon {
.toggle .icon-caret-down {
    transform: rotate(0deg);
    transition: transform var(--trans-base);
}
.has-submenu.open > button .icon {
.open > .row > .toggle .icon-caret-down,
.open > .toggle .icon-caret-down {
    transform: rotate(900deg);
}
/**************************************************************
SUBMENUS - Generic pattern
**************************************************************/
/****************************************************
SUBMENUS
****************************************************/
.has-submenu {
    position: relative;
}
ul.submenu {
    --dir: column;
    height: max-content;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: 0;
    transform: scaleY(0);
    transform-origin: top;
    width: max(100%, max-content);
    background-color: rgba(var(--base-rgb),var(--op-3));
    border: 2px solid rgba(var(--base-rgb),var(--op-3));
    transition: all var(--trans-t) var(--trans-fn);
    width: 100%;
    min-width: max-content;
    background-color: rgba(var(--base),var(--op-3));
    border: 2px solid rgba(var(--base),var(--op-3));
    transition: max-height var(--trans-base), transform var(--trans-base);
    box-shadow: var(--shdw-none);
    overflow: hidden;
}
.submenu li {
    background-color: rgba(var(--base-rgb),var(--op-6));
    border: 1px solid var(--base-50);
    background-color: rgba(var(--base),var(--op-6));
    border: 1px solid rgb(var(--base-50));
}
.submenu a {
    height: var(--chipchip);
}
/* Open state */
.open > ul.submenu {
    transform: scaleY(1);
    max-height: 1000%;
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
    box-shadow: rgba(var(--base), var(--op-45)) var(--shdw);
}
/**************************************************************
ACCESSIBILITY - Universal
ACCESSIBILITY
**************************************************************/
.screen-reader-text {
    position: absolute;
@@ -138,270 +137,395 @@
}
nav a:focus-visible {
    outline: 2px solid var(--action-0);
    outline-offset: 2px;
    outline: 1px solid rgb(var(--action-0));
    outline-offset: 1px;
}
/**************************************************************
VARIANT: MOBILE NAV (.always)
Only define what makes it different from base
**************************************************************/
/*************************************************************
ALWAYS MOBILE NAV
*************************************************************/
/*nav.always {*/
/*    --dir: column;*/
/*    --justify: flex-end;*/
/*    position: fixed;*/
/*    bottom: 0;*/
/*    right: 0;*/
/*    width: var(--btn);*/
/*    z-index: var(--z-10);*/
/*}*/
/*nav.always.open {*/
/*    width: 100vw;*/
/*    height: 100vh;*/
/*    padding-bottom: var(--btn_);*/
/*    background-color: rgba(var(--base),var(--op-6));*/
/*    backdrop-filter: blur(5px);*/
/*    z-index: var(--z-10);*/
/*}*/
/*nav.always > ul {*/
/*    z-index: 1;*/
/*    --dir: column;*/
/*    --align: center;*/
/*    --justify: flex-start;*/
/*    --gap: 0;*/
/*    height: 100%;*/
/*    max-height: 100%;*/
/*    position: relative;*/
/*    right: -300vw;*/
/*    width: 100vw;*/
/*    padding: var(--btn) 0 0;*/
/*    overflow: hidden auto;*/
/*    transition: right var(--trans-base);*/
/*}*/
/*nav.always.open > ul {*/
/*    right: 0;*/
/*}*/
/*nav.always li {*/
/*    --wrap: wrap;*/
/*    --dir: row;*/
/*    height: max-content;*/
/*    --justify: flex-start;*/
/*    background-color: rgba(var(--base), var(--op-6));*/
/*}*/
/*nav.always a {*/
/*    padding: 1rem;*/
/*    --justify: center;*/
/*    max-width: calc(100% - var(--btn));*/
/*}*/
/*nav.always .has-submenu > a {*/
/*    z-index: var(--z-3);*/
/*}*/
/*nav.always .has-submenu > button {*/
/*    width: var(--btn);*/
/*}*/
/*nav.always .submenu {*/
/*    position: relative;*/
/*    padding-right: 4rem;*/
/*    top: 0;*/
/*    border: 1px solid rgb(var(--action-0));*/
/*    background-color: rgba(rgb(var(--contrast)), var(--op-1));*/
/*}*/
/*nav.always .submenu li {*/
/*    background-color: rgba(var(--base),var(--op-3));*/
/*}*/
/*nav.always > .toggle {*/
/*    position: fixed;*/
/*    bottom: 0;*/
/*    right: 0;*/
/*    width: var(--btn);*/
/*    height: var(--btn);*/
/*    background-color: rgb(var(--base));*/
/*    color: rgb(var(--contrast));*/
/*    box-shadow: rgba(var(--base),var(--op-45)) var(--shdw);*/
/*    transition: width var(--trans-base);*/
/*}*/
/*nav.always > .toggle:hover {*/
/*    background-color: rgb(var(--action-0));*/
/*    color: var(--action-contrast);*/
/*}*/
/*nav.always.open > .toggle {*/
/*    width: 100%;*/
/*    background-color: rgba(var(--base),var(--op-6));*/
/*    backdrop-filter: blur(5px);*/
/*    z-index: 1000000;*/
/*}*/
/*nav.always.open > .toggle:hover {*/
/*    background-color: rgb(var(--action-0));*/
/*    color: var(--action-contrast);*/
/*}*/
/*nav.always button .icon-x,*/
/*nav.always.open button .icon-list {*/
/*    display: none;*/
/*}*/
/*nav.always button .icon-list,*/
/*nav.always.open button .icon-x {*/
/*    display: block;*/
/*    --w: 32px;*/
/*}*/
/*nav.always.fixed > ul {*/
/*    padding-top: var(--btn);*/
/*}*/
nav.always {
    /* Different positioning */
    --dir: column;
    --wrap: nowrap;
    position: fixed;
    bottom: 0;
    right: 0;
    width: var(--btn);
    z-index: var(--z-10);
    overflow: visible;
    transition: width var(--trans-base);
    width: max-content;
}
nav.always.open {
    --justify: flex-end;
    width: 100vw;
    height: 100vh;
    padding-bottom: var(--btn_);
    background-color: rgba(var(--base-rgb),var(--op-6));
    backdrop-filter: blur(5px);
}
nav.always > ul {
    --dir: column;
    --align: center;
    --justify: flex-start;
    --justify: flex-end;
    --gap: 0;
    height: 100%;
    position: relative;
    height: 100vh;
    max-height: none;
    position: fixed;
    right: -300vw;
    bottom: 0;
    width: 100vw;
    max-height: 100%;
    padding: 1rem 0 0;
    padding: var(--btn) 0;
    overflow: hidden auto;
    transition: right var(--trans-base);
}
nav.always.open > ul {
    right: 0;
}
nav.always li {
    flex-wrap: wrap;
    background-color: rgba(var(--base-rgb), var(--op-6));
}
nav.always a {
    padding: 1rem;
    max-width: calc(100% - var(--btn));
    text-align: center;
}
/* Split layout for items with submenus */
nav.always .has-submenu {
    display: flex;
}
nav.always .has-submenu > a {
    flex: 1;
}
nav.always .has-submenu > button {
    flex: 0 0 var(--btn);
}
/* Submenu adjustments */
nav.always .submenu {
    position: relative;
    padding-right: 4rem;
    height: max-content;
    top: 0;
    width: 100%;
    border: 2px solid var(--action-0);
    background-color: rgba(var(--contrast-rgb), var(--op-1));
}
nav.always .submenu li {
    background-color: rgba(var(--base-rgb),var(--op-3));
}
/* Toggle button */
nav.always > button {
    position: fixed;
    bottom: 0;
    right: 0;
    nav.always.open > ul {
        right: 0;
    }
    nav.always li {
        width: 100%;
    }
/*******************************************************
ALWAYS MOBILE FIXED NAV
*******************************************************/
nav.always.fixed {
    width: var(--btn);
    height: var(--btn);
    background-color: var(--base);
    color: var(--contrast);
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
    bottom: 0;
    right: 0;
    overflow: hidden;
}
    nav.always.fixed .toggle.main {
        background-color: rgb(var(--base));
    }
        nav.always.fixed .toggle.main:hover,
        nav.always.fixed .toggle.main:focus {
            background-color: rgb(var(--action-0));
            color: var(--action-contrast);
        }
/*******************************************************
MOBILE NAV
*******************************************************/
nav.mobile .toggle.main {
    width: var(--btn);
    transition: width var(--trans-base);
}
    nav.always > button:hover {
        background-color: var(--action-0);
        color: var(--action-contrast);
    }
nav.always.open > button {
    width: 100%;
    background-color: rgba(var(--base-rgb),var(--op-6));
    backdrop-filter: blur(5px);
    z-index: 1000000;
nav.mobile .icon-x,
nav.mobile .icon-list {
    --w: 32px;
}
/* Icon toggle */
nav.always > button .icon-x,
nav.always.open > button .icon-list {
nav.mobile .icon-x,
nav.mobile.open .icon-list {
    display: none;
}
    nav.mobile .icon-list,
    nav.mobile.open .icon-x {
        display: block;
    }
nav.always > button .icon-list,
nav.always.open > button .icon-x {
    display: block;
    width: 32px;
    height: 32px;
nav.mobile.open > ul {
    --dir: column;
    z-index: var(--z-9);
    background-color: rgba(var(--base), var(--op-6));
    width: 100vw;
    height: 100vh;
    overflow: hidden auto;
    right: 0;
    bottom: 0;
    position: fixed;
    padding: var(--btn) 0;
}
    nav.always > ul::before,
    nav.mobile.open > ul::before {
        content: '';
        z-index: -1;
        position: absolute;
        inset: 0;
        filter: blur(5px);
    }
    nav.always.open .main.toggle,
    nav.mobile.open .main.toggle {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100vw;
        z-index: var(--z-10);
        aspect-ratio: unset;
    }
    nav.always > ul,
    nav.always > ul:before,
    nav.mobile.open > ul,
    nav.mobile.open > ul::before {
        background-color: rgba(var(--base), var(--op-6));
    }
@media (min-width: 768px) {
    nav.always > ul {
        padding-top: var(--btn);
@media (max-width:767px) {
    nav.col {
        height: var(--btn);
    }
    nav.mobile > ul {
        --dir: column;
        --align: center;
        --justify: flex-end;
        --gap: 0;
        height: 100%;
        max-height: none;
        position: relative;
        right: -300vw;
        width: 100vw;
        padding: var(--btn) 0 0;
        overflow: hidden auto;
        /*transition: right var(--trans-base);*/
    }
    nav.mobile.open > ul {
        right: 0;
    }
}
/**************************************************************
VARIANT: BREADCRUMBS (#breadcrumbs)
Only define what makes it different
**************************************************************/
@media (min-width:768px) {
    nav.mobile:not(.always) .toggle.main {
        display: none;
    }
}
/*******************************************************
BREADCRUMBS
*******************************************************/
nav#breadcrumbs {
    /* Different sizing */
    height: max-content;
    --wrap: wrap;
    --gap: 0;
    width: max-content;
    max-width: var(--full);
    position: absolute;
    background-color: rgba(var(--base-rgb),var(--op-4));
    background-color: rgba(var(--base),var(--op-4));
    font-size: var(--txt-x-small);
    padding: .125em;
    z-index: var(--z-7);
    z-index: var(--z-5);
}
#breadcrumbs ol {
nav#breadcrumbs ol {
    height: max-content;
    --wrap: wrap;
}
#breadcrumbs li {
nav#breadcrumbs li {
    width: max-content;
    height: var(--chip);
    --wrap: nowrap;
}
#breadcrumbs a {
nav#breadcrumbs li::after {
    content: '/';
    color: rgb(var(--contrast-200));
    padding: 0 .25rem;
}
nav#breadcrumbs li:last-of-type::after {
    display: none;
}
nav#breadcrumbs a {
    height: var(--chip);
}
#breadcrumbs li::after {
    content: '/';
    color: var(--contrast-200);
    padding: 0 .25rem;
}
    #breadcrumbs li:last-of-type::after {
        display: none;
    }
#breadcrumbs :is(a, span) {
nav#breadcrumbs a, nav#breadcrumbs span {
    padding: 0 .125rem;
    color: var(--contrast);
    color: rgb(var(--contrast));
    text-transform: none;
}
#breadcrumbs a:focus {
nav#breadcrumbs a:focus {
    background-color: transparent;
    color: var(--action-0);
    color: rgb(var(--action-0));
}
/**************************************************************
VARIANT: FIXED BOTTOM (nav.fixed.bottom)
Only define what makes it different
**************************************************************/
nav.fixed.bottom {
    /* Different positioning */
/************************************************************
FIXED BOTTOM
************************************************************/
nav.fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    width: calc(100% - var(--btn));
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
    box-shadow: rgba(var(--base),var(--op-45)) var(--shdw);
    z-index: var(--z-9);
}
nav.fixed.bottom {
    left: 0;
    bottom: 0;
    width: calc(100% - var(--btn));
}
nav.fixed.bottom ul {
nav.fixed:not(.always) ul {
    --justify: space-between;
    width: 100%;
    background-color: var(--base);
    background-color: rgb(var(--base));
    padding: 0 .25rem;
}
nav.fixed.bottom li {
nav.fixed:not(.always) li {
    flex: 1;
    justify-content: center;
}
nav.fixed.bottom a {
    gap: 1rem;
nav.fixed a {
    --align: center;
    --gap: 1rem;
    --w: var(--chip_);
    color: var(--contrast);
    color: rgb(var(--contrast));
    font-size: var(--txt-x-small);
}
@media (min-width: 768px) {
    nav.fixed.bottom a {
    nav.fixed a {
        font-size: var(--txt-medium);
    }
}
/**************************************************************
VARIANT: ON THIS PAGE (nav.on-this-page)
Only define what makes it different
**************************************************************/
/************************************************************
ON THIS PAGE
************************************************************/
nav.on-this-page {
    --justify: space-between;
    position: fixed;
    bottom: 0;
    left: 0;
    width: calc(100% - var(--btn));
    width: 100vw;
    z-index: var(--z-5);
    background-color: rgba(var(--base), var(--op-45));
    max-width: none;
    padding: 0 .5rem;
    background-color: rgba(var(--base-rgb),var(--op-4));
    color: var(--base-200);
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
    z-index: var(--z-6);
}
body:has(nav.fixed) nav.on-this-page {
    bottom: var(--btn);
}
.on-this-page ul {
    width: 100%;
nav.on-this-page button {
    order: 3;
    padding: 0 1rem;
    width:max-content;
    aspect-ratio: unset;
}
.on-this-page .active a {
    background-color: rgba(var(--base-rgb),var(--op-6));
nav.on-this-page.open button {
    order: 0;
}
nav.on-this-page ul {
    width: 100%;
    --gap: 0;
}
nav.on-this-page a {
    padding: 0;
}
nav.on-this-page .active a {
    background-color: rgba(var(--base),var(--op-6));
    color: var(--action-contrast);
}
nav.on-this-page #back-to-top span {
    display: none;
}
nav.on-this-page .active a {
    background-color: rgb(var(--action-0));
    color: var(--action-contrast);
}
/**************************************************************
VARIANT: LETTERS (nav.letters)
Only define what makes it different
**************************************************************/
nav.letters li {
/****************************************************
LETTERS
****************************************************/
nav.letters,
nav.letters ul,
nav.letters li,
nav.letters a{
    height: var(--chip);
    max-width: calc(7.69% - 2px); /*Fit 26 letters over 2 rows) */
}
nav.letters li {
    max-width: calc(7.69% - 2px); /* Fit 26 letters over 2 rows */
}
nav.letters ul {
    --wrap: wrap;
}
nav.letters,
nav.letters ul {
    height: var(--chipchip);
}
@media (min-width: 768px) {
    nav.letters,
    nav.letters ul {
@media (min-width:768px) {
    nav.letters, nav.letters ul {
        height: var(--chip);
    }
    nav.letters ul {
@@ -410,42 +534,42 @@
    nav.letters li {
        max-width: none;
    }
    nav.letters a {
        padding: .25rem .66rem;
    }
}
/**************************************************************
VARIANT: INDEX/TOC (nav.index)
Only define what makes it different
**************************************************************/
/********************************************************
INDEX/TOC
********************************************************/
nav.index {
    --justify: flex-start;
    --justify: space-between;
    --padding: 0;
    background-color: rgba(var(--base-rgb),var(--op-6));
    background-color: rgba(var(--base),var(--op-6));
}
.index ul {
    width: max-content;
nav.index ul {
    width: 100%;
}
.index li {
    flex-shrink: 0;
nav.index li {
    flex-shrink:0;
    transform: scaleX(0);
    transform-origin: right;
    max-width: 0;
    overflow: hidden;
    transition: transform var(--trans-base);
}
.index li.active,
.index li.adj {
nav.index li.active,
nav.index li.adj {
    transform: scaleX(1);
    transform-origin: left;
    width: 100%;
    width: calc(100% - var(--btn_));
    flex-shrink: 1;
    max-width: fit-content;
    max-width: none;
}
nav.index li:first-of-type {
    flex-shrink: 1;
    transform: scaleX(1);
    order: 9999;
    width: var(--btn);
    height: var(--btn);
    max-width: none;
}
@media (max-width: 767px) {
@@ -454,191 +578,190 @@
        max-width: 0;
    }
}
.index a {
nav.index a {
    border-bottom: 4px solid transparent;
}
.index .active a {
    border-color: var(--action-0);
    color: var(--contrast);
nav.index .active a {
    border-color: rgb(var(--action-0));
    color: rgb(var(--contrast));
}
/* Index open state */
.index.open {
nav.index.open {
    --dir: column-reverse;
    height: var(--maxHeight);
    width: 100%;
    align-items: flex-end;
    background-color: rgba(var(--base-rgb),var(--op-6));
    --align: flex-end;
    background-color: rgba(var(--base),var(--op-6));
    backdrop-filter: blur(5px);
    z-index: var(--z-10);
}
.index.open ul {
    --dir: column;
    --justify: flex-end;
    height: 100%;
    width: 100%;
}
.index.open li {
nav.index.open li {
    width: 100%;
    height: var(--btn);
    max-width: 100%!important;
    transform: scaleX(1);
    overflow: visible;
}
.index.open a {
    justify-content: flex-end;
nav.index.open a {
    --justify: flex-end;
    padding: 0 2rem 0 0;
    background-color: transparent;
}
/**************************************************************
VARIANT: CONDENSED (nav.condensed)
Only define what makes it different
**************************************************************/
nav.condensed {
    height: max-content;
    --wrap: wrap;
    --gap: 0 .25rem;
}
/***************************************************************
CONDENSED
***************************************************************/
nav.condensed ul {
    min-height: var(--chip_);
nav.condensed,
nav.condensed ul,
nav.condensed li,
nav.condensed a {
    height: max-content;
    --justify: center;
    --wrap: wrap;
}
.condensed li {
    width: max-content;
    --wrap: wrap;
    min-height: var(--chip);
}
.condensed li + li::before {
    .condensed ul {
        --justify: center;
        --dir: row;
    }
nav.condensed {
    --gap: 0 .25rem;
    width: 100%;
    --justify: center;
}
nav.condensed li + li::before {
    content: '·';
    padding: 0 .25em;
}
.condensed a {
    height: max-content;
    min-height: var(--chip);
    font-size:var(--txt-x-small);
nav.condensed a {
    font-size: var(--txt-x-small);
    padding: 0 .25rem;
    text-transform: none;
    border-bottom: 2px solid transparent;
}
.condensed a:focus {
    border-color: var(--action-0);
nav .current a,
nav a.current,
nav a:focus,
nav a:focus:visited,
nav button:focus {
    background-color: transparent;
    color: rgb(var(--contrast));
    border-color: rgb(var(--action-0));
}
/**************************************************************
VARIANT: SOCIALS (ul.socials)
Only define what makes it different
**************************************************************/
/********************************************************************
SOCIALS
********************************************************************/
ul.socials {
    --dir: row;
    height: max-content;
    --gap: .5rem;
    --justify: stretch;
    --wrap:nowrap;
    --justify: flex-end;
    --wrap: nowrap;
    overflow: auto hidden;
    touch-action: pan-x;
}
.always ul.socials,
.always ul.socials li,
.always ul.socials a {
    width: 100%;
}
ul.socials li {
    list-style: none;
}
.always ul.socials {
    width: 100vw;
    --justify: stretch;
}
    .always ul.socials li {
        flex: 1;
        --justify: center;
        --align: center;
    }
        .always ul.socials a {
            display: inline-flex;
        }
ul.socials a {
    padding: .5rem;
    display: inline-block;
    font-size: var(--txt-x-small);
    padding: .25rem .5rem;
    max-width: none;
}
ul.socials .icon {
    margin: 0;
}
/**************************************************************
VARIANT: TABS (nav.tabs)
Only define what makes it different
**************************************************************/
ul.socials .icon + span:not(.screen-reader-text) {
    margin-left: .5rem;
}
/********************************************************************
TABS
********************************************************************/
nav.tabs {
    position: fixed;
    bottom: var(--btn);
    left: var(--btnbtn);
    right: var(--btnbtn);
    /*position: fixed;*/
    /*bottom: var(--btn);*/
    /*left: var(--btnbtn);*/
    /*right: var(--btnbtn);*/
    padding-bottom: 2px;
    z-index: var(--z-6);
    /*z-index: var(--z-6);*/
    touch-action: pan-x pan-y;
    --wrap:nowrap;
    --wrap: nowrap;
    overflow: auto hidden;
}
nav.tabs button.active {
    cursor: default;
}
nav.tabs button {
    aspect-ratio: unset;
}
    nav.tabs button.active {
        cursor: default;
    }
    nav.tabs button.active:hover {
        background-color: var(--base-100);
        color: var(--contrast);
    }
nav.tabs button h2 {
    --wrap: nowrap;
    margin: 0;
    font-family: var(--heading);
    font-size: var(--txt-x-small);
    border-bottom: 4px solid transparent;
}
nav.tabs button.active,
nav.tabs button.active:hover {
    background-color: rgb(var(--action-0));
    color: var(--action-contrast);
    border-color: rgb(var(--base));
}
.tab-content nav.tabs button {
    height: var(--chip_);
    padding: .25rem .75rem;
    min-height: 0;
}
.tab-content.active {
    padding: 1rem 0;
}
.tab-content h2 {
    margin: 0 0 .5rem;
}
.tab-content nav.tabs {
    height: max-content;
    background-color: var(--base);
    background-color: rgb(var(--base));
    --gap: 0;
}
    .tab-content .tab-content nav.tabs {
        background-color: var(--base-100);
    }
    .tab-content .tab-content .tab-content nav.tabs {
        background-color: var(--base-200);
    }
    .tab-content nav.tabs button.active h2 {
        color: var(--action-0);
    }
/**************************************************************
VARIANT: MENU (nav.menu)
Only define what makes it different
**************************************************************/
.tab-content .tab-content nav.tabs {
    background-color: rgb(var(--base-100));
}
.tab-content .tab-content .tab-content nav.tabs {
    background-color: rgb(var(--base-200));
}
.tab-content nav.tabs button.active h2 {
    color: rgb(var(--action-0));
}
/********************************************************
MENU (as in food menu)
********************************************************/
nav.menu a {
    padding: .5rem .66rem;
}
/**************************************************************
VARIANT: SHARE (nav.share)
Only define what makes it different
**************************************************************/
/********************************************************
SHARE
********************************************************/
nav.share {
    height: max-content;
    margin: 1rem 0;
}
nav.share ul {
    overflow: visible;
}
nav.share h4 {
    display: inline-block;
    width: max-content;
@@ -646,10 +769,10 @@
    font-size: var(--txt-x-small);
}
/**************************************************************
/************************************************************
HEADER ELEMENTS
**************************************************************/
:where(body > header, .wp-site-blocks > header) {
************************************************************/
body > header, .wp-site-blocks > header {
    --dir: row;
    --justify: space-between;
    position: sticky;
@@ -659,87 +782,66 @@
    height: var(--btn);
    width: 100vw;
    display: flex;
    align-items: center;
    align-items: var(--align, center);
    justify-content: var(--justify, space-between);
    padding: 0 .5rem;
    background-color: var(--base);
    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
    background-color: rgb(var(--base));
    box-shadow: rgba(var(--base),var(--op-45)) var(--shdw);
    z-index: var(--z-9);
}
.wp-site-blocks > header img {
    width: var(--btn);
}
/**************************************************************
CURRENT HOURS BANNER
**************************************************************/
/*.current-hours {*/
/*    position: sticky;*/
/*    top: var(--nav-height);*/
/*    padding: .25rem 1rem;*/
/*    background-color: var(--action-0);*/
/*    color: var(--action-contrast);*/
/*    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);*/
/*    display: flex;*/
/*    justify-content: space-between;*/
/*    z-index: 100;*/
/*}*/
/************************************************************
DASH
************************************************************/
.dashboard-nav {
    width: 100%;
}
/*.current-hours p {*/
/*    margin: 0;*/
/*    display: flex;*/
/*    flex-wrap: wrap;*/
/*    flex: 1;*/
/*}*/
/*.current-hours p + p {*/
/*    justify-content: flex-end;*/
/*}*/
/*.current-hours a {*/
/*    color: var(--action-contrast);*/
/*}*/
/*.current-hours b {*/
/*    margin-right: .25rem;*/
/*}*/
/**************************************************************
FIND US BUTTONS
**************************************************************/
/*.find-us {*/
/*    display: flex;*/
/*    align-items: center;*/
/*    gap: 0 .5rem;*/
/*}*/
/*.find-us a {*/
/*    padding: .25rem 1rem;*/
/*    border: 1px solid var(--action-contrast);*/
/*    border-radius: var(--radius);*/
/*}*/
/**************************************************************
UTILITIES
**************************************************************/
nav.filters {
    --dir: row;
    overflow: auto hidden;
}
nav.filters .filter {
    width: auto;
    padding: .25rem .75rem;
}
/* Hide navigation when empty */
nav.term-navigation:has(*[hidden]) {
    display: none;
}
/* Dashboard nav */
.dashboard-nav {
    --justify: flex-start;
nav.pagination {
    width: 100%;
}
nav.filters {
    --dir: row;
    --justify: flex-start;
    overflow: auto hidden;
nav.pagination > a {
    min-width: var(--chipchip);
}
nav.filters .filter {
    width: auto;
    padding: .25rem .75rem;
}
nav.pagination > ul {
    margin: 0 auto;
}
nav.pagination:not(:has(a + ul)) {
    margin-left: var(--chipchip);
}
nav.pagination:not(:has(ul + a)) {
    margin-right: var(--chipchip);
}
.pagination.condensed li + li::before {
    display: none;
}
.pagination li.current {
    width: var(--chip_);
    height: var(--chip_);
    background-color: rgb(var(--action-0));
    border-radius: var(--radius);
    line-height: 1;
}
.pagination.condensed a {
    font-size: var(--txt-medium);
    width: var(--chip_);
    height: var(--chip_);
}