::selection {
    color: var(--bs-light);
    background: var(--bs-primary);
}

.bg-primary *::selection {
    color: var(--bs-primary);
    background: var(--bs-light);
}

svg {
    fill: currentColor;
}

:root {
  --font-header: "Averia Serif Libre",Georgia,serif;
  --font-alt: "Oswald", serif;
}

/*////////////////////////////////////////////////
/////////EXTRAS//////////////////////////////////
//////////////////////////////////////////////*/

.isolate {
    isolation: isolate;
}

.cursor-default {
    cursor: default;
}

.cursor-help {
    cursor: help;
}

.max-ch {
    max-width: 65ch;
}

.min-lvh-100 {
    min-height: 100vh;
    min-height: 100lvh;
}

.mirror {
    transform: scaleX(-1);
}

.flip {
    transform: scaleY(-1);
}

.mirror.flip {
    transform: scale(-1, -1);
}

.rotate {
    rotate: 90deg;
}

.flex-even {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
}

.ratio-self {
    padding-top: var(--bs-aspect-ratio);
}

.square {
    width: 1px !important;
    height: 1px !important;
}

.stretched-link-overflow::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    bottom: 0;
    left: 50%;
    z-index: 1;
    width: 200vw;
    height: 200vh;
    transform: translate(-50%, -50%);
}

.shadow-btn-wrapper {
    box-shadow: var(--bs-box-shadow-sm);
}

.shadow-btn-wrapper:hover,
.shadow-btn-wrapper:focus,
.shadow-btn-wrapper:focus-within {
    transform: scale(1.01);
    box-shadow: var(--bs-box-shadow)
}

/*///////FONT////////////////////////////////*/

.font-header {
    font-family: var(--font-header);
}

.font-alt {
    font-family: var(--font-alt);
}

.letter-space-wide {
    letter-spacing: .07em;
}

.text-wrap-balance {
    text-wrap: balance;
}

/*///////BACKGROUNDS/////////////////////////*/
.bg-gradient-linear {
    background: linear-gradient(0deg, rgba(0,0,0,0) 0%, currentColor 100%);
}

.filter-grayscale-50 {
    filter: grayscale(50%) contrast(50%);
}

/*////////////////////////////////////////////////
/////////NAVIGATION//////////////////////////////
//////////////////////////////////////////////*/

#navigation-btn {
    color: var(--bs-white);
    --bs-nav-link-hover-color: var(--bs-nav-link-hover-color);
}

#navigation .nav-link {
    padding: 1rem 1.5rem;
    --nav-border: 1px solid var(--bs-white);
    border-left: var(--nav-border);
}

#sidebar-navigation .nav-link {
    padding: 1rem 1rem 1rem 1.5rem;
}

#sidebar-navigation .nav-link:hover,
#sidebar-navigation .nav-link:focus,
#navigation .nav-link:hover,
#navigation .nav-link:focus {
    background-color: rgba(var(--bs-light-rgb), .85);
    color: var(--bs-primary);
}

#navigation li:last-child .nav-link {
    border-right: var(--nav-border);
}

#navigation .nav-link[aria-current] {
    background-color: rgba(var(--bs-primary-rgb), .75);
    color: var(--bs-navbar-active-color);
}

#navigation.show .nav-link {
    --bs-nav-link-color: var(--bs-primary-rgb);
}

#sidebar-navigation .nav-link[aria-current],
#navigation.show .nav-link[aria-current] {
    color: var(--bs-white);
    background-color: var(--bs-primary);
}

#sidebar-navigation .nav-link.section-home {
    background-color: transparent;
    color: var(--bs-body-color);
    border-bottom: 1px solid var(--bs-primary);
}

.navbar .offcanvas-lg,
.navbar .offcanvas-backdrop {
    top: 65px;
}

.btn-toggle .icon.close,
.btn-toggle[aria-pressed="true"] .icon.open,
.btn-toggle[aria-expanded="true"] .icon.open {
    display: none;
}

.btn-toggle[aria-pressed="true"] .icon.close,
.btn-toggle[aria-expanded="true"] .icon.close {
    display: block;
}

/*////////////////////////////////////////////////
/////////LAYOUTS/////////////////////////////////
//////////////////////////////////////////////*/

.layout {
    display: grid;
    grid-template-rows: 1fr;
    column-gap: var(--bs-gutter-x);
    grid-template-columns: repeat(2, .5fr) repeat(7, 1fr) repeat(2, .5fr);
}

/*///////LAYOUT: SINGLE COLUMN///////////////*/

@media (min-width: 768px) {

    .layout-single {
        grid-template-columns: 1.5fr repeat(2, .5fr) repeat(5, 1fr) repeat(2, .5fr) 1.5fr;
    }
}

/*///////LAYOUT: SIDEBAR/////////////////////*/

.layout-sidebar .sidebar {
    grid-row: -1337;
}

.layout .sidebar,
.layout .content,
.layout .content-wide,
.layout .content-skinny {
    grid-column-start: 1;
    grid-column-end: 12;
}

@media (min-width: 576px) {
    
    .layout .sidebar,
    .layout .content {
        grid-column-start: 2;
        grid-column-end: 11;
    }

    .layout .content-wide {
        grid-column-start: 1;
        grid-column-end: 12;
    }

    .layout .content-skinny {
        grid-column-start: 3;
        grid-column-end: 10;
    }
}

@media (min-width: 768px) {

    .layout-sidebar {
        grid-template-columns: 3fr repeat(2, .5fr) repeat(5, 1fr) repeat(2, .5fr);
    }

    .layout .sidebar {
        grid-column-start: 1;
        grid-column-end: 2;
    }

    .layout .content {
        grid-column-start: 3;
        grid-column-end: 10;
    }

    .layout .content-wide {
        grid-column-start: 2;
        grid-column-end: 11;
    }

    .layout .content-skinny {
        grid-column-start: 4;
        grid-column-end: 9;
    }
}

/*////////////////////////////////////////////////
/////////FOOTER//////////////////////////////////
//////////////////////////////////////////////*/

.bg-primary * .btn:hover,
.bg-primary * .btn:focus-visible {
    --bs-btn-hover-color: var(--bs-gray-500);
}

.bg-primary * .btn:active {
    --bs-btn-active-color: var(--bs-gray-500);
}

/*////////////////////////////////////////////////
/////////VIEW TRANSITIONS////////////////////////
//////////////////////////////////////////////*/

.tbd {}

/*////////////////////////////////////////////////
/////////ANIMATIONS//////////////////////////////
//////////////////////////////////////////////*/

.transition-ease {
    transition: all .25s ease-in-out;
}

.animation-spin {
    animation-name: animation-spin;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes animation-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}

/*///////ACCESSIBILITY///////////////////////*/
@media (prefers-reduced-motion) {
    .transition-ease {
        transition: unset;
        animation: unset;
    }
}

/*////////////////////////////////////////////////
/////////CALENDAR////////////////////////////////
//////////////////////////////////////////////*/

.fc .fc-toolbar-chunk .btn {
    text-transform: uppercase;
    font-family: "Oswald", serif;
}

.fc-header-toolbar {
    flex-wrap: wrap;
}

.fc .fc-toolbar-title {
    margin: 1rem 0 3rem 0;
}

.fc .fc-day-today {
    background-color: rgba(251, 200, 58, 0.25);
}

.fc .fc-header-toolbar .fc-toolbar-chunk:nth-child(2) {
    order: -1;
    width: 100%;
    text-align: center;
}

.fc .btn-group .btn {
    border: 1px solid var(--bs-light);
}

.fc a.fc-event,
.fc .fc-event.fc-list-event {
    cursor: pointer;
}

.fc .fc-event-title {
    font-weight: normal;
}

.fc .fc-list-day {
    cursor: default;
}

.fc .fc-list-sticky .fc-list-day > * {
    z-index: 1;
}

.fc {
    --fc-event-border-color: var(--bs-primary);
    --fc-event-bg-color: var(--bs-primary);
    --fc-event-border-color: var(--bs-primary);
}

/*////////////////////////////////////////////////
/////////PRINT///////////////////////////////////
//////////////////////////////////////////////*/

.tbd {}

/*////////////////////////////////////////////////
/////////FONTS///////////////////////////////////
//////////////////////////////////////////////*/

@font-face {
    font-family: 'Averia Serif Libre';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/AveriaSerifLibre-Regular.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/Oswald-Regular.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}