/********************************************************** BASE NAV STYLES **********************************************************/ nav { --py: .25rem; --px: 1rem; max-width: 100%; } 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; --wrap: nowrap; --w: 1em; --dir: row; position: relative; overflow: auto hidden; touch-action: pan-x; } nav a { padding: 0 var(--px); white-space: nowrap; text-transform: uppercase; } 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 ol, nav ul { list-style: none; margin: 0; 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); color: var(--contrast); border-radius: 0; } .toggle svg { transform: rotate(0deg); transition: transform var(--timing) var(--function); transition-property: transform, background-color, color; } .has-submenu.open > button:not(.notifications, .quick-help) svg, .has-submenu:hover > button:not(.notifications, .quick-help) svg { transform: rotate(900deg); } ul.submenu { --dir: column; --wrap: nowrap; --gap: 0; position: absolute; top: 100%; left: 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); } .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 { transform: scaleY(1); max-height: 1000%; box-shadow: var(--shadow); } /************************************************************** BREADCRUMBS **************************************************************/ nav#breadcrumbs { --height: fit-content; --w: 20px; width: fit-content; max-width: var(--full); position: absolute; background-color: var(--overlay-medium); font-size: var(--small); padding: .125em; overflow:visible; --gap: 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; } /************************************************************** MOBILE **************************************************************/ nav.always { z-index: 9999; position: fixed; width: var(--height); bottom: 0; right: 0; } /*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.fixed.bottom ul { width: 100%; --justify: space-between; 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 { flex: 1; } @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); } @media (min-width: 768px) { nav.letters li { max-width: none; width: fit-content; } nav.letters a, nav.letters li:not(.has) { padding: .25rem .66rem; } } /************************************************************** Table of Contents TOC **************************************************************/ nav.index { --justify: flex-start; --px: 0; background-color: var(--overlay-heavy); } .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 li.adj { transform: scaleX(1); transform-origin: left; width: 100%; flex-shrink: 1; max-width: fit-content; } } .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 { 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); } body > header { justify-content: flex-end; } header .title { --w: 5em; margin: 0; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: flex-start; } .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 { } .find-us a { display: flex; padding: .25rem 1rem; border: 1px solid var(--action-contrast); border-radius: var(--innerRadius); } .find-us a:hover { background-color: var(--base); color: var(--contrast); border-color: var(--contrast); } nav.menu { --justify: flex-start; --height: fit-content; } nav.menu a { padding: .5rem .66rem; } /************* TABS *************/ nav.tabs { --gap: 0; --height: fit-content; --wrap: nowrap; padding-bottom: 2px; z-index: var(--z-6); } /*@media (min-width: 768px) {*/ /* nav.tabs {*/ /* --wrap: wrap;*/ /* overflow: hidden;*/ /* }*/ /*}*/ nav.term-navigation:has(*[hidden]) { display: none; }