From 42c23cc62d812c29c431977934af7b0f2a24b04b Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 03 May 2026 22:12:18 +0000
Subject: [PATCH] =mergin conflict?

---
 nav.css | 1219 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 694 insertions(+), 525 deletions(-)

diff --git a/nav.css b/nav.css
index c001d87..c0b5410 100644
--- a/nav.css
+++ b/nav.css
@@ -1,619 +1,788 @@
-/**********************************************************
-BASE NAV STYLES
-**********************************************************/
-nav {
-    --py: .25rem;
-    --px: 1rem;
-    max-width: 100%;
-}
+/**************************************************************
+BASE NAVIGATION - Works for 80% of cases
+**************************************************************/
 nav,
 nav ol,
-nav ul,
-nav li,
-nav a {
-    height: var(--height);
-    display: flex;
-    justify-content: var(--justify);
-    align-items: var(--align);
-    gap: var(--gap);
-    flex-wrap: var(--wrap);
-    flex-direction: var(--dir);
-}
-
-nav:not(:has(> ul)),
-nav > ul {
-    --justify: flex-start;
-    --align: center;
+nav ul {
+    --padding: 0 1rem;
     --wrap: nowrap;
-    --w: 1em;
-    --dir: row;
-    position: relative;
-    overflow: auto hidden;
-    touch-action: pan-x;
+    display: flex;
+    flex-direction: var(--dir, row);
+    justify-content: var(--justify, flex-start);
+    align-items: var(--align, center);
+    gap: var(--gap, 0);
+    flex-wrap: var(--wrap, nowrap);
+    height: var(--btn, 3rem);
+    max-width: 100%;
+    font-family: var(--heading);
+    padding: 0;
+    margin: 0;
 }
 
-nav a {
-    padding: 0 var(--px);
+/* Items fill parent */
+nav li {
+    display: flex;
+    align-items: center;
+    height: max(var(--btn), max-content);
+    width: 100%;
+    max-inline-size: none;
+    padding: 0;
+}
+
+/* Links fill parent */
+nav a,
+nav button {
+    display: flex;
+    text-decoration: none;
+    align-items: center;
+    justify-content: center;
+    height: var(--btn);
+    width: 100%;
     white-space: nowrap;
     text-transform: uppercase;
+    transition: var(--trans-color);
+    border-radius: 0;
+    background-color: transparent;
 }
-nav .current a,
-nav a.current,
-nav a:hover,
-nav a:focus,
-nav a:hover:visited,
-nav a:focus:visited {
-    background-color: var(--action-0);
-    color: var(--action-contrast);
-    transition: background-color var(--transition-base),
-    color var(--transition-base);
+nav a {
+    height: var(--btn);
+    padding: var(--padding);
 }
-
-nav ol,
-nav ul {
-    list-style: none;
-    margin: 0;
+/* Buttons */
+nav button {
+    justify-content: center;
+    aspect-ratio: 1;
     padding: 0;
-}
-
-/**************************************************************
-SUBMENU
-**************************************************************/
-.has-submenu button:hover,
-nav a:hover {
-    background-color: var(--action-0);
-    color: var(--action-contrast);
-}
-.has-submenu button {
-    height: var(--height);
-    width: var(--height);
-    padding: 0;
-    background-color: var(--base);
+    border: 2px solid var(--base);
     color: var(--contrast);
     border-radius: 0;
 }
 
-.toggle svg {
-    transform: rotate(0deg);
-    transition: transform var(--timing) var(--function);
-    transition-property: transform, background-color, color;
+/**************************************************************
+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);
+    color: var(--action-contrast);
 }
-.has-submenu.open > button:not(.notifications, .quick-help) svg,
-.has-submenu:hover > button:not(.notifications, .quick-help) svg {
+
+
+/* Icon rotation */
+.toggle .icon-caret-down {
+    transform: rotate(0deg);
+    transition: transform var(--trans-base);
+}
+
+.has-submenu.open > button .icon-caret-down {
     transform: rotate(900deg);
 }
 
+/**************************************************************
+SUBMENUS - Generic pattern
+**************************************************************/
+.has-submenu {
+    position: relative;
+}
+
 ul.submenu {
     --dir: column;
-    --wrap: nowrap;
-    --gap: 0;
+    height: max-content;
     position: absolute;
     top: 100%;
-    left: 0;
+    right: 0;
     max-height: 0;
     transform: scaleY(0);
     transform-origin: top;
-    width: max-content;
-    min-width: 100%;
-    background-color: var(--overlay-light);
-    border: 2px solid var(--overlay-light);
-    transition: all var(--timing) var(--function);
-    box-shadow: var(--shadow-none);
+    width: 100%;
+    min-width: 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);
+    box-shadow: var(--shdw-none);
+    overflow: hidden;
 }
-    .submenu li {
-        background-color: var(--overlay-heavy);
-        border: 1px solid var(--base-50);
-    }
-        .submenu li:hover {
-            --c: var(--action-rgb);
-            background-color: var(--overlay-heavy);
-        }
-        .submenu a:hover {
-            background-color: transparent;
-        }
-        .wp-site-blocks > header ul.submenu {
-            right: 0;
-            left: auto;
-        }
 
-/**
-Opening Submenus
- */
-.has-submenu.open > ul.submenu,
-.has-submenu:hover > ul.submenu {
+.submenu li {
+    background-color: rgba(var(--base-rgb),var(--op-6));
+    border: 1px solid var(--base-50);
+}
+.submenu a {
+    height: var(--chipchip);
+}
+
+/* Open state */
+.open > ul.submenu {
     transform: scaleY(1);
     max-height: 1000%;
-    box-shadow: var(--shadow);
+    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
 }
+
 /**************************************************************
-BREADCRUMBS
+ACCESSIBILITY - Universal
 **************************************************************/
-nav#breadcrumbs {
-    --height: fit-content;
-    --w: 20px;
-    width: fit-content;
-    max-width: var(--full);
+.screen-reader-text {
     position: absolute;
-    background-color: var(--overlay-medium);
-    font-size: var(--small);
-    padding: .125em;
-    overflow:visible;
-    --gap: 0;
+    width: 1px;
+    height: 1px;
+    padding: 0;
+    margin: -1px;
+    overflow: hidden;
+    clip: rect(0, 0, 0, 0);
+    white-space: nowrap;
+    border-width: 0;
 }
-    nav#breadcrumbs li + li::before {
-        content: '/';
-        color: var(--contrast-200);
-    }
-    nav#breadcrumbs li:last-of-type {
-        margin-right: .5em;
-    }
-    nav#breadcrumbs span,
-    nav#breadcrumbs a {
-        padding: 0 .125rem;
-        white-space: nowrap;
-        height: 2em;
-        color: var(--contrast);
-        text-transform: none;
-        width: max-content;
-    }
-    nav#breadcrumbs span {
-        display: flex;
-        align-items: center;
-        padding-left: .5em;
-    }
-    nav#breadcrumbs a:focus:visited,
-    nav#breadcrumbs a:hover:visited,
-    nav#breadcrumbs a:focus,
-    nav#breadcrumbs a:hover {
-        background-color: transparent;
-        color: var(--action-0);
-    }
-    nav#breadcrumbs a:has(.icon) {
-        width: 2rem;
-    }
+
+nav a:focus:not(:focus-visible) {
+    outline: none;
+}
+
+nav a:focus-visible {
+    outline: 2px solid var(--action-0);
+    outline-offset: 2px;
+}
+
 /**************************************************************
-MOBILE
+VARIANT: MOBILE NAV (.always)
+Only define what makes it different from base
 **************************************************************/
 nav.always {
-    z-index: 9999;
+    /* Different positioning */
+    --dir: column;
+    --wrap: nowrap;
     position: fixed;
-    width: var(--height);
     bottom: 0;
     right: 0;
+    width: var(--btn);
+    z-index: var(--z-10);
 }
-    /*nav.always.open {*/
-    /*    width: 100vw;*/
-    /*    height: 100vh;*/
-    /*    padding-bottom:var(--height);*/
-    /*    background-color: var(--overlay-heavy);*/
-    /*    backdrop-filter: blur(5px);*/
-    /*    z-index: 999999;*/
-    /*}*/
-    nav.always > ul {
-        --dir: column;
-        --wrap: nowrap;
-        --justify: flex-end;
-        --align: center;
-        position: fixed;
-        background-color: var(--overlay-heavy);
-        backdrop-filter: blur(5px);
-        z-index: var(--zz-top);
-        top: 0;
-        right: -300vw;
-        padding: 0;
-        width: 100%;
-        height: 100vh;
-        overflow: hidden auto;
-        transition: right var(--timing) var(--function);
-    }
-    @media (min-width: 768px) {
-        nav.always > ul {
-            --justify: flex-start;
-        }
-    }
-        nav.always.open > ul {
-            width: 100%;
-            right: 0;
-            gap: 0;
-        }
-    nav.always > ul li:hover,
-    nav.always > ul li:focus-within,
-    nav.always > ul li.active {
-        background-color: var(--overlay-heavy);
-    }
-    nav.always li {
-        width: 100%;
-        height: fit-content;
-    }
-        nav.always a {
-            --py: 1rem;
-            width: 100%;
-        }
 
-    nav.always > button {
-        position: fixed;
-        bottom: 0;
-        right: 0;
-        width: var(--height);
-        height: var(--height);
-        border-radius: 0;
-        background-color: var(--base);
-        color: var(--contrast);
-        transition: width var(--timing) var(--function);
-        transition-property: width, background-color;
-        box-shadow: var(--shadow);
-    }
-        nav.always > button:hover {
-            background-color: var(--action-0);
-            color: var(--action-contrast);
-        }
-        nav.always.open > button {
-            --c: var(--action-rgb);
-            z-index: 1000000;
-            width: 100%;
-            background-color: var(--overlay-heavy);
-            color: var(--contrast);
-            backdrop-filter: blur(5px);
-        }
-        nav.always.open > button:hover,
-        nav.always.open > button:focus {
-            background-color: var(--action-0);
-            color: var(--action-contrast);
-        }
-        nav.always.open > button .list,
-        nav.always >button .x {
-            transform: scale(0);
-            height: 0;
-            width: 0;
-            position: absolute;
-        }
-        nav.always > button .list,
-        nav.always.open > button .x {
-            transform: scale(1);
-            height: 32px;
-            width: 32px;
-        }
-        @media (min-width: 768px) {
-            nav.always a {
-                padding: 2rem 0;
-            }
-            nav.always > ul {
-                padding: var(--height) 0;
-            }
-        }
-/**************************************************************
-FIXED
-**************************************************************/
-nav.on-this-page,
-nav.fixed.bottom {
-    --dir: row;
-    --gap: 0;
-    width: calc(100% - var(--height));
-    left: 0;
-    bottom: 0;
-    position: fixed;
-    box-shadow: var(--shadow);
-    z-index: 999;
+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.fixed.bottom ul {
+
+nav.always > ul {
+    --dir: column;
+    --align: center;
+    --justify: flex-start;
+    --gap: 0;
+    height: 100%;
+    position: relative;
+    right: -300vw;
+    width: 100vw;
+    max-height: 100%;
+    padding: 1rem 0 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;
+    width: var(--btn);
+    height: var(--btn);
+    background-color: var(--base);
+    color: var(--contrast);
+    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
+    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;
+}
+
+/* Icon toggle */
+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;
+    width: 32px;
+    height: 32px;
+}
+
+@media (min-width: 768px) {
+    nav.always > ul {
+        padding-top: var(--btn);
+    }
+}
+
+/**************************************************************
+VARIANT: BREADCRUMBS (#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));
+    font-size: var(--txt-x-small);
+    padding: .125em;
+    z-index: var(--z-7);
+}
+#breadcrumbs ol {
+    height: max-content;
+    --wrap: wrap!important;
+    --justify: flex-start!important;
+}
+#breadcrumbs li {
+    width: max-content;
+}
+#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) {
+    padding: 0 .125rem;
+    color: var(--contrast);
+    text-transform: none;
+}
+
+#breadcrumbs a:focus {
+    background-color: transparent;
+    color: var(--action-0);
+}
+
+/**************************************************************
+VARIANT: FIXED BOTTOM (nav.fixed.bottom)
+Only define what makes it different
+**************************************************************/
+nav.fixed.bottom {
+    /* Different positioning */
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    width: calc(100% - var(--btn));
+    box-shadow: rgba(var(--base-rgb),var(--op-45)) var(--shdw);
+    z-index: var(--z-9);
+}
+
+nav.fixed.bottom ul {
     --justify: space-between;
+    width: 100%;
     background-color: var(--base);
     padding: 0 .25rem;
 }
-nav.fixed li,
-nav.fixed a {
-    --justify: center;
-    width: 100%;
-}
-nav.fixed.bottom a:visited,
-nav.fixed.bottom a {
-    color: var(--contrast);
-    font-size: var(--small);
-    padding: 0;
-}
-    nav.fixed.bottom a:hover,
-    nav.fixed.bottom a:hover:visited,
-    nav.fixed.bottom a:focus,
-    nav.fixed.bottom a:focus:visited {
-        color: var(--action-contrast);
-    }
-.fixed.bottom li {
+
+nav.fixed.bottom li {
     flex: 1;
+    justify-content: center;
 }
-@media (min-width: 768px) {
-    nav.fixed.bottom a {
-        font-size: var(--large);
-    }
-}
-/**************************************************************
-ON THIS PAGE
-**************************************************************/
-nav.on-this-page {
-    --justify: space-between;
-    max-width: none;
-    z-index: 99;
-    margin: 0;
-    padding: 0 .5rem;
-    background-color: var(--overlay-medium);
-    color: var(--base-200);
-}
-body:has(nav.fixed) nav.on-this-page {
-    bottom: var(--offHeight);
-}
-.on-this-page ul {
-    --justify: flex-start;
-    gap: 0;
-    width: 100%;
-}
-.on-this-page li:not(.has) {
-    padding: 0;
-}
-nav.letters li {
-    width: 100%;
-    max-width: calc(7.69% - 2px);
-}
-.on-this-page .active a {
-    --c: var(--action-rgb);
-    background-color: var(--overlay-heavy);
-    color: var(--action-contrast);
+
+nav.fixed.bottom a {
+    gap: 1rem;
+    --w: var(--chip_);
+    color: var(--contrast);
+    font-size: var(--txt-x-small);
 }
 
 @media (min-width: 768px) {
+    nav.fixed.bottom a {
+        font-size: var(--txt-medium);
+    }
+}
+
+/**************************************************************
+VARIANT: ON THIS PAGE (nav.on-this-page)
+Only define what makes it different
+**************************************************************/
+nav.on-this-page {
+    --justify: space-between;
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    width: calc(100% - var(--btn));
+    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);
+
+}
+.on-this-page li,
+.on-this-page a {
+    width: 100%;
+    height: 100%;
+}
+
+body:has(nav.fixed) nav.on-this-page {
+    bottom: var(--btn);
+}
+body:has(.additional-actions button) nav.on-this-page{
+    width: calc(100vw - var(--btn_) - 1rem);
+}
+.on-this-page button {
+    order: 3;
+    padding: 0 1rem;
+    width: max-content;
+    aspect-ratio: unset;
+    height: var(--btn);
+}
+.on-this-page.open button {
+    order: 0;
+}
+.on-this-page ul {
+    width: 100%;
+    gap: 0;
+}
+
+.on-this-page li {
+    justify-content: center;
+}
+.on-this-page .active a {
+    background-color: rgba(var(--base-rgb),var(--op-6));
+    color: var(--action-contrast);
+}
+.on-this-page a {
+    padding: 0;
+}
+.on-this-page #back-to-top span {
+    display: none;
+}
+.on-this-page.open #back-to-top span {
+    display: block;
+}
+
+/**************************************************************
+VARIANT: LETTERS (nav.letters)
+Only define what makes it different
+**************************************************************/
+nav.letters li {
+    height: var(--chip);
+    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 {
+        height: var(--chip);
+    }
+    nav.letters ul {
+        --wrap: nowrap;
+    }
     nav.letters li {
         max-width: none;
-        width: fit-content;
     }
-    nav.letters a,
-    nav.letters li:not(.has) {
+
+    nav.letters a {
         padding: .25rem .66rem;
     }
 }
+
 /**************************************************************
-Table of Contents TOC
+VARIANT: INDEX/TOC (nav.index)
+Only define what makes it different
 **************************************************************/
 nav.index {
-    --justify: flex-start;
-    --px: 0;
-    background-color: var(--overlay-heavy);
+    --justify: space-between;
+    --padding: 0;
+    background-color: rgba(var(--base-rgb),var(--op-6));
 }
-    .index ul {
-        --justify: flex-start;
-        width: fit-content;
-    }
-    .index li {
-        flex-shrink: 0;
-        transform: scaleX(0);
-        transform-origin: right;
-        max-width: 0;
-        overflow: hidden;
-        transition: transform var(--timing) var(--function);
-    }
-        .index li.active {
-            transform: scaleX(1);
-            transform-origin: left;
-            width: 100%;
-            flex-shrink: 1;
-            max-width: fit-content;
-        }
-@media (min-width: 768px ){
+
+.index ul {
+    width: 100%;
+}
+
+.index li {
+    flex-shrink: 0;
+    transform: scaleX(0);
+    max-width: 0;
+    overflow: hidden;
+}
+
+.index li.active,
+.index li.adj {
+    transform: scaleX(1);
+    width: calc(100% - var(--btn_));
+    flex-shrink: 1;
+    max-width: none;
+}
+.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) {
     .index li.adj {
-        transform: scaleX(1);
-        transform-origin: left;
-        width: 100%;
-        flex-shrink: 1;
-        max-width: fit-content;
+        transform: scaleX(0);
+        max-width: 0;
     }
 }
+
 .index a {
     border-bottom: 4px solid transparent;
 }
+
 .index .active a {
     border-color: var(--action-0);
     color: var(--contrast);
 }
-    .index a:hover,
-    .index .active a:hover {
-        background-color: var(--action-0);
-        color: var(--action-contrast);
-    }
-    .index label {
-        display: flex;
-        color: var(--contrast);
-        align-items: center;
-        margin: 0;
-    }
-        .index label button {
-            margin-left: 1em;
-        }
 
-    .index.open {
-        --dir: column-reverse;
-        height: calc(100% - 8rem);
-        z-index: 99999999;
-        width: 100%;
-        background-color: var(--overlay-heavy);
-        backdrop-filter: blur(5px);
-        align-items: flex-end;
-    }
-        .index.open label {
-            max-width: 90%;
-            margin-top: 1rem;
-            margin-right: 2rem;
-        }
-        .index.open .toggle svg {
-            transform: rotate(45deg);
-        }
-        .index.open ul {
-            --dir: column;
-            --justify: flex-end;
-            height: 100%;
-            max-width: 100%;
-            width: 100%;
-        }
-        .index.open li {
-            background-color: transparent;
-            max-width: 100%!important;
-            width: 100%;
-            height: var(--height);
-            transform: scaleX(1);
-            flex-shrink: 1;
-            overflow: visible;
-        }
-        .index.open a {
-            --justify: flex-end;
-            background-color: transparent;
-            padding: 0 2rem 0 0;
-        }
-/**************************************************************
-CONDENSED
-**************************************************************/
-.is-style-condensed {
-    --dir: row;
-    --wrap: wrap;
-    --height: fit-content;
-    --py: .2rem;
-    --px: 1rem;
-}
-    .is-style-condensed > ul {
-        --wrap: wrap;
-    }
-    .is-style-condensed ul {
-        --justify: center;
-        --gap: 0;
-    }
-    .is-style-condensed li {
-        width: fit-content;
-    }
-    .is-style-condensed li + li::before {
-        content: '·';
-        display: block;
-        padding: 0 .5em;
-    }
-    .is-style-condensed a {
-        text-transform: none;
-        white-space: nowrap;
-        border-bottom: 2px solid transparent;
-    }
-    .is-style-condensed a:hover,
-    .is-style-condensed a:focus,
-    .is-style-condensed a:hover:visited,
-    .is-style-condensed a:focus:visited {
-
-    }
-/**************************************************************
-ADDITIONAL HEADER STUFF
-**************************************************************/
-.dashboard-nav {
+/* Index open state */
+.index.open {
+    --dir: column-reverse;
+    height: var(--maxHeight);
     width: 100%;
-    --dir: row;
-    --justify: flex-start;
-    --wrap: nowrap;
-}
-body > header,
-.wp-site-blocks > header {
-    --dir: row;
-    position: sticky;
-    top: 0;
-    left: 0;
-    right: 0;
-    height: var(--height);
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    padding: 0 .5rem;
-    background-color: var(--base);
-    z-index: 9999;
-    box-shadow: var(--shadow);
-    border-bottom: 1px solid var(--action-0);
+    align-items: flex-end;
+    background-color: rgba(var(--base-rgb),var(--op-6));
+    backdrop-filter: blur(5px);
+    z-index: var(--z-10);
 }
 
-body > header {
-    justify-content: flex-end;
-}
-header .title {
-    --w: 5em;
-    margin: 0;
-    position: absolute;
-    width: 100%;
+.index.open ul {
+    --dir: column;
+    --justify: flex-end;
     height: 100%;
-    display: flex;
-    justify-content: center;
-    align-items: flex-start;
+    width: 100%;
 }
-.current-hours {
-    position: sticky;
-    top: var(--height);
-    z-index: 100;
-    background-color: var(--action-0);
-    color: var(--action-contrast);
-    box-shadow: var(--shadow);
-    padding: .25rem 1rem;
-    display: flex;
-    justify-content: space-between;
-}
-.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 a:hover {
-    color: var(--action-200);
-}
-.current-hours b {
-    margin-right: .25rem;
-}
-.find-us {
-    display: flex;
-    align-items: center;
-    gap: 0 .5rem;
-}
-.find-us p {
 
+.index.open li {
+    width: 100%;
+    height: var(--btn);
+    max-width: 100%!important;
+    transform: scaleX(1);
+    overflow: visible;
 }
-.find-us a {
-    display: flex;
-    padding: .25rem 1rem;
-    border: 1px solid var(--action-contrast);
-    border-radius: var(--innerRadius);
+
+.index.open a {
+    justify-content: flex-end;
+    padding: 0 2rem 0 0;
+    background-color: transparent;
 }
-.find-us a:hover {
+
+/**************************************************************
+VARIANT: CONDENSED (nav.condensed)
+Only define what makes it different
+**************************************************************/
+nav.condensed {
+    height: max-content;
+    --wrap: wrap;
+    --gap: 0 .25rem;
+}
+
+nav.condensed ul {
+    min-height: var(--chip_);
+    height: max-content;
+    --justify: center;
+    --wrap: wrap;
+}
+.condensed li {
+    width: max-content;
+    min-height: var(--chip);
+}
+.condensed li + li::before {
+    content: '·';
+    padding: 0 .25em;
+}
+
+.condensed a {
+    height: max-content;
+    min-height: var(--chip);
+    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);
+}
+
+/**************************************************************
+VARIANT: SOCIALS (ul.socials)
+Only define what makes it different
+**************************************************************/
+ul.socials {
+    --dir: row;
+    height: max-content;
+    --gap: .5rem;
+    --justify: stretch;
+    --wrap:nowrap;
+    overflow: auto hidden;
+    touch-action: pan-x;
+}
+.always ul.socials,
+.always ul.socials li,
+.always ul.socials a {
+    width: 100%;
+}
+
+ul.socials a {
+    padding: .5rem;
+    max-width: none;
+}
+
+ul.socials .icon {
+    margin: 0;
+}
+
+/**************************************************************
+VARIANT: TABS (nav.tabs)
+Only define what makes it different
+**************************************************************/
+nav.tabs {
+    position: fixed;
+    bottom: var(--btn);
+    left: var(--btnbtn);
+    right: var(--btnbtn);
+    padding-bottom: 2px;
+    z-index: var(--z-6);
+    touch-action: pan-x pan-y;
+    --wrap:nowrap;
+    overflow: auto hidden;
+}
+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-size: var(--txt-x-small);
+}
+.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);
-    color: var(--contrast);
-    border-color: var(--contrast);
+    --gap: 0;
 }
-nav.menu {
-    --justify: flex-start;
-    --height: fit-content;
-}
+    .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
+**************************************************************/
 nav.menu a {
     padding: .5rem .66rem;
 }
 
-/*************
-TABS
-*************/
-nav.tabs {
-    --gap: 0;
-    --height: fit-content;
-    --wrap: nowrap;
-    padding-bottom: 2px;
-    z-index: var(--z-6);
+/**************************************************************
+VARIANT: SHARE (nav.share)
+Only define what makes it different
+**************************************************************/
+nav.share {
+    height: max-content;
+    margin: 1rem 0;
 }
-/*@media (min-width: 768px) {*/
-/*    nav.tabs {*/
-/*        --wrap: wrap;*/
-/*        overflow: hidden;*/
-/*    }*/
+
+nav.share ul {
+    overflow: visible;
+}
+
+nav.share h4 {
+    display: inline-block;
+    width: max-content;
+    margin: .25rem .5rem .25rem 0;
+    font-size: var(--txt-x-small);
+}
+
+/**************************************************************
+HEADER ELEMENTS
+**************************************************************/
+:where(body > header, .wp-site-blocks > header) {
+    --dir: row;
+    --justify: space-between;
+    position: sticky;
+    top: 0;
+    left: 0;
+    right: 0;
+    height: var(--btn);
+    width: 100vw;
+    display: flex;
+    align-items: center;
+    padding: 0 .5rem;
+    background-color: var(--base);
+    box-shadow: rgba(var(--base-rgb),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;*/
 /*}*/
 
+/*.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
+**************************************************************/
+
+/* Hide navigation when empty */
 nav.term-navigation:has(*[hidden]) {
     display: none;
+}
+
+/* Dashboard nav */
+.dashboard-nav {
+    --justify: flex-start;
+    width: 100%;
+}
+
+nav.filters {
+    --dir: row;
+    --justify: flex-start;
+    overflow: auto hidden;
+}
+nav.filters .filter {
+    width: auto;
+    padding: .25rem .75rem;
 }
\ No newline at end of file

--
Gitblit v1.10.0