/********************************************************** BASE NAV STYLES **********************************************************/ nav { --py: .25rem; --px: 1rem; max-width: 100%; font-family: var(--heading); } 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); } ul.socials { --w: 1.2em; --height: fit-content; gap: .5rem; display: flex; justify-content: center; align-items: center; flex-wrap: nowrap; flex-direction: row; overflow: auto hidden; touch-action: pan-x; list-style: none; } 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);*/ border: 2px solid var(--base); color: var(--contrast); border-radius: 0; } .toggle .icon { transform: rotate(0deg); transition: transform var(--timing) var(--function); transition-property: transform, background-color, color; } .has-submenu.open > button:not(.notifications, .quick-help) .icon, .has-submenu:hover > button:not(.notifications, .quick-help) .icon { 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); } .always ul.submenu { position: relative; top: 0; left: 0; } .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); } /************************************************************** 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: var(--zz-top); } 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; } @media (min-width:768px) { nav.fixed.bottom a:visited, nav.fixed.bottom a { font-size: var(--medium); } } 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; } nav.always a { padding: 0; --justify: center; } nav.always .socials { width: 100%; } nav.always .socials li { width: 100%; } nav.always li { gap: 0; --justify:flex-start; } nav.always > ul > li > a { width: 80%; } nav.always .submenu { width: 80%; min-width: 80%; box-shadow: none!important; border: 2px solid var(--action-0); background-color: rgba(var(--contrast-rgb), var(--rgb-subtle)); } nav.always .submenu li { background-color: var(--overlay-light); } nav.fixed .has-submenu > a, nav.always .has-submenu > a { width: 80%; } .has-submenu > button { width: 20%; } /************************************************************** BREADCRUMBS **************************************************************/ nav#breadcrumbs { --height: 1.5em; --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: var(--z-above); position: fixed; width: var(--height); bottom: 0; right: 0; } nav.always.open { width: 100vw; height: 100vh; padding-bottom:var(--offHeight); background-color: var(--overlay-heavy); backdrop-filter: blur(5px); justify-content: flex-end; flex-direction: column; z-index: var(--z-above); } nav.always > ul { --dir: column; --wrap: nowrap; --justify: flex-start; --align: center; --gap: 0; position: relative; right: -300vw; padding: 1rem 0 0; width: 100vw; height: fit-content; max-height: 100%; overflow:hidden auto; transition: right var(--transition-base); } nav.always.open > ul { right: 0; transition: right var(--transition-base); } /*nav.always > ul li:hover,*/ /*nav.always > ul li:focus-within,*/ /*nav.always > ul li.active {*/ /* background-color: var(--overlay-heavy);*/ /*}*/ nav.always li { max-inline-size: none; width: 100%; height: fit-content; --dir: row; --wrap: wrap; } nav.always a { --py: 1rem; width: 100%; min-height: var(--height); } 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 .icon-list, nav.always >button .icon-x { transform: scale(0); height: 0; width: 0; position: absolute; } nav.always > button .icon-list, nav.always.open > button .icon-x { transform: scale(1); height: 32px; width: 32px; } nav.always .has-submenu:hover > .submenu, nav.always .has-submenu.open > .submenu { height: max-content; } nav.always .has-submenu:hover > a, nav.always .submenu > li > a:hover, nav.always .submenu > li > a:focus { background-color: var(--action-0); color: var(--action-contrast); } @media (min-width: 768px) { /*nav.always a {*/ /* padding: 2rem 0;*/ /*}*/ nav.always > ul { padding: var(--height) 0 0; } } /************************************************************** ON THIS PAGE **************************************************************/ nav.on-this-page { --justify: space-between; max-width: none; z-index: var(--z-6); 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: var(--z-above); 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 .icon { 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 **************************************************************/ .condensed { --dir: row; --wrap: wrap; --height: 1.2em; --py: .25rem; --px:.25rem; height: fit-content; } .condensed > ul { --wrap: wrap; height: fit-content } .condensed ul { --justify: center; --gap: 0; } .condensed li { width: fit-content; } .condensed li + li::before { content: 'ยท'; display: block; padding: 0 .25em; } nav.condensed a { text-transform: none; white-space: nowrap; border-bottom: 2px solid transparent; } .condensed a:hover, .condensed a:focus, .condensed a:hover:visited, .condensed a:focus:visited { border-color: var(--action-0); } /************************************************************** 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); width: 100vw; display: flex; justify-content: space-between; align-items: center; padding: 0 .5rem; background-color: var(--base); z-index: var(--zz-top); box-shadow: var(--shadow); border-bottom: 1px solid var(--action-0); } .wp-site-blocks > header img { width: var(--height); } body > header { justify-content: space-between; } /** MOVE TO NORTHEH **/ /*header a[rel=home],*/ /*header > img {*/ /* position: absolute;*/ /* width: var(--offHeight);*/ /* left: calc(50% - (var(--offHeight) / 2));*/ /*}*/ header .title { --w: 5em; margin: 0; position: absolute; width: 100%; height: 100%; display: flex; justify-content: center; align-items: flex-start; max-inline-size: none; } .current-hours { position: sticky; top: var(--height); bottom: unset; width: unset; 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; } nav.menu a { padding: .5rem .66rem; } /************* TABS *************/ nav.tabs { --gap: 0; --wrap: nowrap; padding-bottom: 2px; z-index: var(--z-6); position: fixed; bottom: var(--height); left: var(--doubleHeight); right: var(--doubleHeight); } /*@media (min-width: 768px) {*/ /* nav.tabs {*/ /* --wrap: wrap;*/ /* overflow: hidden;*/ /* }*/ /*}*/ nav.term-navigation:has(*[hidden]) { display: none; } ul.socials a { padding: .5rem; } ul.socials a .icon { margin: 0; }