/*
 Theme Name: ISI 22
 Author: Dominik Staros
 Version: 1.0
 Description: ISI theme template that includes a customizable banner above the main menu.
 template: bb-theme
 */


/* -------------------------------
  Global Variables
-------------------------------- */
:root {
    font-size: 10px;

    /* Colors */
    --primary: #333333;
    --secondary: #f2f2f2;
    --cardinal: #990000;
    --brightred: #be0000;
    --gold: #ffcc00;
    --gray: #666666;
    --lightgray: #d6d6d6;
    --mediumgray: #717171;
    --mobilegray: #3c3c3c;
    --darkgray: #2b2b2b;
    --text: #333333;

    /* Font Awesome stacked icons */
    --fa-secondary-opacity: 1.0;
}


/* -------------------------------
  Resets
-------------------------------- */
body {
    background-color: #fff !important;
    color: #333333;
    font-family: "Lato", sans-serif;
    font-size: 1.6rem;
    line-height: 1.65;
}

h1, h2, h3, h4, h5, h6, p {
    font-family: Lato, sans-serif;
    word-spacing: 2px;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.2;
}

main :is(h1, h2, h3) {
    font-weight: bold;
}

main :is(h2, h3) {
    margin: 3.5rem 0 1.5rem;
}

p, ul {
    margin-bottom: 2.2rem;
}

::selection {
    color: #000000;
    background: var(--gold);
}

a, a:hover, a:focus, a:active {
    color: var(--cardinal);
}

@media (max-width: 767px) {
    body {
        font-size: 1.6rem;
    }
}


/* -------------------------------
  Beaver Builder Overrides
-------------------------------- */
.fl-row-content-wrap {
    padding: 0;
}

.fl-row-fixed-width {
    max-width: 100%;
}

.fl-module-content {
    margin: 20px 0;
}

.fl-accordion-button-icon-left, .fl-accordion-button-icon-right {
    opacity: 1;
    filter: alpha(opacity=100);
}

.fl-accordion-button-label:focus, .fl-accordion-button-label:active, .fl-accordion-button-icon:focus, .fl-accordion-button-icon:active {
    outline-style: none;
}

.wp-caption p.wp-caption-text {
    padding: 10px 5px 0;
    font-size: 1.6rem;
}

.fl-photo-caption {
    margin: 1rem 0;
    padding: 1rem 1.5rem;
    background-color: var(--secondary);
    font-size: .9em;
}


/* -------------------------------
  Site Globals
-------------------------------- */

.sr {
    position: absolute;
    width: 1px;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    border: 0;
}


/* -------------------------------
  Buttons & Links
-------------------------------- */

button, input[type="button"], input[type="submit"], a.btn,
.fl-page button, .fl-page input[type="button"], .fl-page input[type="submit"],
.fl-page a.fl-button, .fl-page a.fl-button:visited {
    padding: 1.1rem 2.5rem;
    background-color: var(--cardinal);
    color: #ffffff;
    border: none;
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.8rem;
    text-shadow: none;
    text-transform: uppercase;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    -moz-border-radius: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    transition: all .5s;
}

button:hover, input[type="button"]:hover, input[type="submit"]:hover, a.btn:hover,
.fl-page button:hover, .fl-page input[type="button"]:hover, .fl-page input[type="submit"]:hover,
.fl-page a.fl-button:hover, .fl-page a.fl-button:visited:hover {
    background-color: var(--brightred);
    border: none;
    color: #ffffff;
}


/* -------------------------------
  Site Header
 -------------------------------- */
#site-header * {
    box-sizing: border-box;
}

#site-masthead {
    padding: 1.5rem 0;
    background-color: var(--cardinal);
}

#site-masthead .row,
#site-masthead .col-12 {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

#site-masthead .col-6.logo-container {
    padding-left: 0;
}

#site-masthead .col-12 .row {
    max-height: 50px;
}

#site-masthead .logo {
    display: block;
    width: 187px;
    height: 50px;
    background-image: url(/wp-content/themes/isi-main/img/isi-logo-23.png);
    background-repeat: no-repeat;
    background-size: contain;
    filter: brightness(0) invert(1);
    transition: all 1s;
}

#site-masthead .usc-logo {
    display: inline-block;
    width: 233px;
    height: 50px;
    background-image: url(https://www.isi.edu/wp-content/themes/isi-main/img/usc-primary-logo.png);
    background-repeat: no-repeat;
    background-size: contain;
    transition: all 1s;
}

#site-masthead h1 {
    color: #fff;
}

.site-banner {
    width: 100%;
    padding: 1.5rem 0;
    background-color: #000;
    background-repeat: no-repeat;
    background-size: cover;
}

.site-banner .row,
.site-banner .wrapper {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.site-banner .wrapper {
    display: flex;
}

.site-banner.bg-gray-circuits {
    background-image: url(/wp-content/themes/isi-twentytwo/img/banners/circuits-white.png);
}

.site-banner.bg-red-circuits {
    background-image: url(/wp-content/themes/isi-twentytwo/img/banners/circuits-red.png);
}

.site-banner.bg-circuits-left,
.site-banner.bg-circuits-right {
    background-color: #2C2C2C;
    background-image: url(/wp-content/themes/isi-twentytwo/img/banners/circuits-left.png);
    background-size: auto;
}

.site-banner.bg-circuits-left,
.site-banner.bg-circuits-right {
    background-image: url(/wp-content/themes/isi-twentytwo/img/banners/circuits-right.png);
    background-position: right top;
}

.site-banner.bg-dark-gray,
.site-banner.bg-gray-circuits {
    background-color: #333;
}

#site-logo img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    margin-right: 20px;
}

.site-banner-content {
    display: flex;
    flex-direction: column;
    min-height: 100px;
    justify-content: center;
}

.site-banner-content h1 {
    margin: 0;
    color: #fff;
    font-size: 3.5rem;
    line-height: 1;
    text-transform: uppercase;
    transition: all 1s;
}

.site-banner-content a, .site-banner-content a:hover {
    color: #fff;
    text-decoration: none;
}

.site-banner-content .description {
    margin-bottom: 10px;
    color: var(--gold);
    font-size: 1.6rem;
    line-height: 1;
    text-transform: uppercase;
}

.site-banner-content a.site-title + .description {
    margin: 10px 0 0;
}

/* Mobile banner */
#site-menu .site-banner {
    display: none;
}

@media (max-width: 767px) {
    #site-masthead,
    .site-banner {
        display: none;
    }

    #site-menu .site-banner {
        display: block;
        padding: 0 20px;
    }
}


/* -------------------------------
  Site Menu

  1. Menu wrappers
  2. Level 1
  3. Level 2
  4. Level 3
  5. Colors
  6. Mobile menu
  7. Media queries
-------------------------------- */

/* 1. Menu wrappers */

#site-menu {
    height: 5rem;
    background-color: var(--cardinal);
}

#site-menu .navbar {
    position: relative;
    padding: 0;
}

#site-menu .navbar-nav {
    margin: 0 auto;
}

#site-menu .nav-link {
    color: #ffffff;
}

#site-menu a:hover {
    text-decoration: none;
}

/* 2. Level 1 */

#site-menu .navbar-nav .row {
    display: block;
    width: 100%;
    margin: 0;
}

#site-menu .navbar-nav > li {
    margin: 0;
}

#site-menu .navbar-nav > li > .nav-link {
    padding: 0 1em;
    border-width: 8px;
    border-style: solid;
    border-top: none;
    border-bottom: none;
    border-color: var(--cardinal);
    font-size: 1.8rem;
    line-height: 5rem;
}

#site-menu .navbar-nav > li:hover {
    background-color: var(--brightred);
}

#site-menu span.arrow {
    position: absolute;
    z-index: 12;
    top: 5rem;
    display: none;
    border-right: 10px solid transparent;
    border-top: 10px solid var(--brightred);
    border-left: 10px solid transparent;
    content: '';
}


/* 3. Level 2 */

#site-menu .navbar-nav .wrapper {
    display: none;
    position: absolute;
    z-index: 10;
    left: initial;
    width: initial;
    min-width: 200px;
    margin-left: .8rem;
    padding: 2rem 0 .5rem;
    background-color: var(--primary);
    -moz-box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
    -webkit-box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
    box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
}

#site-menu.menu-dark-gray .navbar-nav .wrapper {
    background-color: #111;
}

#site-menu .navbar-nav .wrapper .container {
    left: initial;
    width: initial;
    max-width: 100%;
}

#site-menu .navbar-nav .sub-menu {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    max-width: 620px;
    height: initial;
    margin: 0;
    padding-left: 1em;
    list-style: none;
}

#site-menu .navbar-nav .sub-menu > li {
    max-width: 300px;
    padding-right: 5rem;
}

#site-menu .navbar-nav .sub-menu .nav-link {
    padding: .5rem 0;
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.4;
}

#site-menu .navbar-nav > li:hover .wrapper {
    display: block;
}

#site-menu .navbar-nav .sub-menu .nav-link:hover {
    color: var(--gold);
}

/* 4. Level 3 */

#site-menu .navbar-nav .sub-menu ul {
    display: none;
    padding: 0;
    list-style: none;
    -moz-box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
    -webkit-box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
    box-shadow: 0 10px 10px rgba(0, 0, 0, .1);
}

#site-menu .navbar-nav .sub-menu ul li {
    white-space: nowrap;
    padding: 0 2rem 0 1rem;
}

#site-menu .navbar-nav .sub-menu ul .nav-link {
    display: inline-block;
    margin-left: -5px;
    padding: .5rem 0;
    color: var(--secondary);
    font-weight: normal;
}

#site-menu .navbar-nav .sub-menu ul li:not(:first-child) a {
    padding-left: 1.625rem;
}

#site-menu .navbar-nav .sub-menu ul li:first-child::before {
    display: inline-block;
    margin-left: -15px;
    padding-right: 1.7rem;
    font: var(--fa-font-solid);
    font-size: 3.0rem;
    font-weight: 600;
    content: "\f0da";
    color: var(--primary);
    transform: none;
    vertical-align: top;
    line-height: 3.0rem;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

#site-menu .navbar-nav .sub-menu li:hover ul {
    display: block;
    position: absolute;
    left: 100%;
    width: initial;
    min-width: 160px;
    margin-top: -34px;
    padding: .25rem 0;
    background-color: #555;
}

#site-menu .navbar-nav .sub-menu .menu-item-has-children::after {
    font-family: "Font Awesome 6 Pro";
    font-size: 1.3rem;
    /* font-weight: 900; */
    line-height: 2;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    content: "\f054";
    color: #999999;
    padding: 0 1em;
    vertical-align: top;
    position: absolute;
    left: 100%;
    margin: -29px 0 0 -34px;
}

#site-menu .navbar-nav .sub-menu .menu-item-has-children li:first-child::before {
    content: none;
}

#site-menu .navbar-nav .sub-menu .menu-item-has-children li:first-child a {
    padding-left: 1.625rem;
}

#site-menu .navbar-nav .sub-menu .menu-item-has-children:hover::after {
    color: #fc0;
}

/* 5. Colors */

#site-menu.menu-black {
    background-color: #000;
}

#site-menu.menu-black .navbar-nav > li > .nav-link {
    border-color: #000;
}

#site-menu.menu-cardinal {
    background-color: #900;
}

#site-menu.menu-cardinal .navbar-nav > li > .nav-link {
    border-color: #900;
}

#site-menu.menu-dark-gray {
    background-color: #333;
}

#site-menu.menu-dark-gray .navbar-nav > li > .nav-link {
    border-color: #333;
}

/* 6. Mobile menu */

#site-menu .mobile-menu {
    display: none;
    flex-direction: column;
    align-items: center;
    padding: 0;
}

#site-menu .mobile-menu .header {
    position: relative;
    width: 100%;
    height: 67px;
    background-color: var(--cardinal);
}

#site-menu .mobile-menu .logo {
    position: absolute;
    top: 20px;
    left: 20px;
    width: 370px;
    height: 37px;
    background-image: url(img/isi-logo.svg);
    background-repeat: no-repeat;
    background-size: contain;
    filter: brightness(0) invert(1);
    transition: all .5s;
}

#site-menu .description {
    margin-bottom: 10px;
    color: var(--gold);
    font-size: 1.5rem;
    line-height: 1;
    text-transform: uppercase;
}

#site-menu .mobile-menu .site-title {
    width: 100%;
}

#site-menu .mobile-menu .site-title a {
    color: #fff;
    font-size: 3rem;
    line-height: 1.2;
    text-transform: uppercase;
}

#site-menu .mobile-menu button {
    position: absolute;
    top: 10px;
    right: 0px;
    display: block;
    cursor: pointer;
}

#site-menu .mobile-menu button, #site-menu .mobile-menu button:hover {
    background: none;
}

#site-menu .mobile-menu button i {
    font-size: 2.5rem;
}

/* 7. Media queries */

@media (max-width: 1199px) {
    #site-menu .wrapper {
        left: 0;
        width: 100%;
        padding: 1.5rem 0;
    }

    #site-menu .wrapper .container {
        max-width: 100%;
        padding: 0;
    }

    #site-menu .wrapper .row {
        margin: 0;
    }

    #site-menu .megamenu .sub-menu {
        margin: 0 0 0 calc((100vw - 640px) / 2);
        padding: 0;
    }

    #site-menu aside {
        display: none;
    }
}

@media (max-width: 1099px) {
    #site-menu .navbar-nav {
        margin-left: 20px;
    }

    #menu-primary > li > .nav-link {
        font-size: 1.7rem;
    }
}

@media (min-width: 768px) {
    #menu-primary > li:hover .wrapper {
        display: block;
    }
}

@media (max-width: 767px) {
    .navbar-expand-md {
        -ms-flex-flow: wrap;
        flex-flow: wrap;
        justify-content: space-between;
    }

    .navbar-expand-md .navbar-collapse {
        flex-basis: 100%;
    }

    #site-menu {
        height: initial;
    }

    #site-menu .description {
        font-size: 1.7rem;
    }

    #site-menu .mobile-menu {
        display: flex;
    }

    #site-menu .navbar {
        padding: 0;
    }

    #site-menu .navbar-nav,
    #site-menu.menu-dark-gray {
        margin: 0;
        padding: 1.5rem 3rem;
        flex-direction: column;
        background-color: var(--darkgray);
    }

    #site-menu.menu-black .navbar-nav {
        background-color: #000;
    }

    #site-menu .navbar-nav {
        background-color: #2C2C2C;
    }

    .site-banner.bg-gray-circuits + #site-menu .navbar-nav {
        background-color: #333;
    }

    #site-menu .navbar-nav .sub-menu .nav-link {
        padding: .8rem 0 .8rem .8rem;
        font-size: 1.6rem;
    }

    #site-menu .navbar-nav > li > .nav-link,
    #site-menu .navbar-nav > li > .nav-link:focus {
        padding: 0;
        border: none !important;
        -webkit-tap-highlight-color: transparent !important;
        outline: none !important;
        box-shadow: none !important;
    }

    #site-menu .navbar-nav > li:hover,
    #site-menu .navbar-nav > li > .nav-link:hover {
        background: none;
        color: var(--gold);
    }

    #site-menu .navbar-nav .wrapper,
    #site-menu .navbar-nav > li:hover .wrapper {
        display: none;
        position: relative;
    }

    #site-menu .navbar-nav > li .arrow,
    #site-menu .navbar-nav .sub-menu ul {
        display: none !important;
    }

    #site-menu .navbar-nav .wrapper {
        display: none;
        left: 0;
        width: 100%;
        margin: 0;
        padding: 0;
        box-shadow: none;
    }

    #site-menu .navbar-nav > li.open:hover .wrapper,
    #site-menu .open .wrapper {
        display: block;
    }

    #site-menu .wrapper .container {
        padding: .8rem 0;
        background-color: var(--mobilegray);
        border-radius: .8rem;
    }
}

@media (max-width: 575px) {
    #site-menu .mobile-menu .header {
        height: 57px;
    }

    #nav-toggle .site-shortcuts {
        padding-left: 20px;
    }

    #site-menu .mobile-menu .logo {
        flex-basis: 260px;
        width: 260px;
        height: 22px;
    }

    #site-menu .mobile-menu button {
        top: 5px;
    }
}

/* -------------------------------
  Main Content

  1. Site content
  2. ISI Page Header
  3. Page header + title
  4. Fixed-width sections
  5. People Cards VIMAL Style
  6. Table of Contents
 -------------------------------- */

/* 1. Site content */

#site-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: calc(100vh - 255px);
}

.admin-bar #site-content {
    min-height: calc(100vh - 287px);
}

#site-header:has(#site-logo) + #site-content {
    min-height: calc(100vh - 275px);
}

.admin-bar #site-header:has(#site-logo) + #site-content {
    min-height: calc(100vh - 307px);
}

#site-content #fl-main-content {
    flex: 1;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    padding-top: 4rem;
    padding-bottom: 3rem;
}

@media (max-width: 768px) {
    #site-content {
        margin: 0;
    }
}

/* 2. ISI Page header */

.page-header {
    padding: 0 0 10px;
    font-size: 18px;
}

.page-template-tpl-full-width-height .page-header {
    margin-top: 40px;
    padding: 0 30px 10px;
}

.page-header p {
    font-size: 1em;
    text-align: center;
}

.page-header .title,
.break {
    position: relative;
    margin: 0;
    padding-bottom: 40px;
    text-align: center;
}

.page-header .title h2 {
    display: inline-block;
    margin: 0;
    padding: 0 100px 2.5rem;
    color: var(--cardinal);
    border-bottom: 2px solid var(--lightgray);
    font-size: 2em;
    font-weight: bold;
    line-height: 1.2;
}

.page-header .title i,
.break i {
    position: absolute;
    bottom: 29px;
    left: 0;
    margin-left: calc((100% / 2) - 8px);
    background: #ffffff;
    color: var(--lightgray);
    font-size: 2.4rem;
}

.break {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 2px solid var(--lightgray);
}

.break i {
    bottom: -13px;
}

@media (max-width: 1024px) {
    .page-header {
        padding: 0;
    }

    .page-header .title h2 {
        width: 100%;
        padding: 0 0 3rem;
        font-size: 3rem;
    }
}

@media (max-width: 575px) {
    .page-header {
        padding-bottom: 0;
    }

    .page-header .title {
        padding-bottom: 30px;
    }

    .page-header .title i {
        bottom: 19px;
    }
}

/* Page subheader */
.page-header h3 {
    display: inline-block;
    min-width: 250px;
    margin: 0;
    padding: 0 2.5rem 30px 2.5rem;
    color: #333;
    font-size: 24px;
    font-weight: 300;
    border-bottom: 2px solid var(--lightgray);
}

.page-header .title .page-subheader h2 {
    padding: 0 15px 2.5rem;
    border-bottom: unset;
}

.page-header .title .page-subheader i {
    position: absolute;
    bottom: 29px;
    left: 0;
    margin-left: calc((100% / 2) - 8px);
    background: #ffffff;
    color: var(--lightgray);
    font-size: 2.4rem;
}

@media (max-width: 1024px) {
    .page-header .title h3 {
        width: 100%;
    }
}

@media (max-width: 575px) {
    #site-banner {
        min-height: 57px;
    }

    .page-header .title .page-subheader i {
        bottom: 19px;
    }
}

/* ---- Page subheader end ---- */

/* 3. Page header + title */

#site-content article > header.fl-post-header {
    display: none;
}

#page-header {
    margin-bottom: 3rem;
}

.fl-builder #page-header {
    margin-bottom: 0;
}

#page-header h1 {
    position: relative;
    z-index: 2;
    display: inline-block;
    margin: 0;
    padding: 0 4rem 2rem 0;
    color: var(--cardinal);
    font-size: 3.5rem;
    font-weight: 600;
    line-height: 1;
    transition: all .5s;
}

#page-header .page-title {
    margin-bottom: 1rem;
    border-bottom: solid 2px var(--secondary);
}

#page-header .featured-image {
    margin-bottom: 4rem;
}

/* 4. Fixed-width sections */

article.fixed-section.container {
    max-width: 100%;
}

.fixed-section {
    margin: 0 auto 60px;
}

.fixed-section .fl-col-group {
    display: flex;
}

.fixed-section.center .fl-col-group {
    align-items: center;
}

.fixed-section.flex-start .fl-col-group {
    align-items: flex-start;
}

.fixed-section.flex-end .fl-col-group {
    align-items: flex-end;
}

.fixed-section .photo {
    flex-basis: 480px;
    flex-shrink: 0;
    margin: 0 60px 0 0;
    overflow: hidden;
}

.fixed-section .photo a:hover img {
    transform: scale(1.1);
}

.fixed-section .photo img {
    transition: all 0.5s ease;
}

.fixed-section.pos-right .photo {
    margin: 0 0 0 60px;
}

.fixed-section .content {
    flex-grow: 2;
}

.fixed-section p {
    line-height: 1.65;
}

.fixed-section .content h3 {
    margin-top: 3rem;
    font-size: 1.1em;
    font-weight: bold;
}

.fixed-section section .btn {
    margin-top: 2.4rem;
}

.fixed-section.shaded {
    padding: 30px;
    background-color: var(--secondary);
}

.fixed-section.shaded .photo {
    margin: 0 0 0 60px;
}

.fixed-section.shaded.pos-left .photo {
    margin: 0 60px 0 0;
}

.fixed-section h2 {
    margin: 0 0 2.4rem;
    font-weight: bold;
}

.fixed-section .content p:last-of-type {
    margin-bottom: 0;
}

.fixed-section ul {
    padding-left: 15px;
}

.fixed-section ul li {
    margin-bottom: 15px;
}

.fixed-section ul li:last-child {
    margin-bottom: 0;
}

@media (max-width: 1099px) {
    .fixed-section {
        margin: 30px auto;
    }

    .fixed-section .content {
        width: 100%;
    }

    .fixed-section.container {
        padding: 0 30px;
    }

    .fixed-section.container.shaded {
        padding: 40px 30px;
    }

    .fixed-section .fl-col-group {
        flex-direction: column;
    }

    .fixed-section.pos-right .fl-col-group {
        flex-direction: column-reverse;
    }

    .fixed-section .photo {
        flex-basis: initial;
        width: clamp(250px, 100%, 500px);
        margin: 0 auto 2.4rem !important;
        text-align: center;
    }

    .fixed-section section .btn {
        margin-top: 1.5rem;
    }
}

@media (max-width: 767px) {
    .fixed-section h2 {
        margin-bottom: 1.5rem;
    }

    .fixed-section section .btn {
        margin-top: 1.2rem;
    }
}

@media (max-width: 575px) {
    .fixed-section.container {
        margin: 30px auto;
    }
}

/* 5. People Cards VIMAL Style */
.isi-module-person {
    text-align: center;
    margin-bottom: 80px;
}

.isi-module-person figure {
    border-radius: 50%;
    overflow: hidden;
    display: inline-block;
    margin: 0 0 10px;
}

.isi-module-person figure.isi-module-image-small {
    max-height: 200px;
    max-width: 200px;
}

.isi-module-person figure.isi-module-image-medium {
    max-height: 300px;
    max-width: 300px;
}

.isi-module-person figure.isi-module-image-large {
    max-height: 400px;
    max-width: 400px;
}

.isi-module-person img {
    display: inline-block;
    width: 100%;
    transition: all 0.5s ease;
}

.isi-module-person a:hover img {
    transform: scale(1.1);
}

.isi-module-person h3 {
    display: inline-block;
    font-size: 2.5rem;
    margin: 0 0 5px 0;
}

.isi-module-person a:hover h3, .isi-module-person .social-media a:hover {
    color: #990000;
    text-decoration: none;
}

.isi-module-person .title {
    text-transform: uppercase;
    font-family: "latolight", sans-serif;
    font-size: 1.8rem;
    letter-spacing: 1px;
}

.isi-module-person .description {
    opacity: 70%;
    margin-top: 20px;
    padding: 0 20px 0;
}

.isi-module-person .social-media {
    margin: 20px 0 0;
}

.isi-module-person ul {
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: center;
    flex-direction: row;
}

.isi-module-person .social-media li {
    margin: 0 12px;
}

.isi-module-person ul .google-scholar a::after {
    font-family: "Font Awesome 6 Brands";
    content: "\f1a0";
}

.isi-module-person ul .linkedin a::after {
    font-family: "Font Awesome 6 Brands";
    content: "\f08c";
}

.isi-module-person ul .twitter a::after {
    font-family: "Font Awesome 6 Brands";
    content: "\e61b";
}

.isi-module-person .social-media a {
    color: black;
}

/* 6. Table of Contents */
.table-of-contents {
    padding: 2.5rem;
    background-color: var(--secondary);
    border-color: #d6d8db;
}

.table-of-contents h2 {
    margin: 0 0 1.5rem;
    padding-bottom: 1rem;
    border-bottom: solid 1px var(--lightgray);
    font-size: 2rem;
    text-transform: uppercase;
}

.table-of-contents ul {
    list-style-type: none;
    margin: 0;
    padding-left: 0;
}

.table-of-contents li {
    position: relative;
    padding: .3rem 0 .3rem 10px;
}

.table-of-contents li.active {
    background-color: #ffffff;
    font-weight: bold;
}

.table-of-contents li::before {
    font-family: "Font Awesome 6 Pro";
    content: "\f054";
    padding-right: 1rem;
    color: var(--mediumgray);
    font-size: 1.2rem;
    font-weight: 900;
    vertical-align: top;
    line-height: 2.5;
}

.table-of-contents ul ul {
    margin-left: 15px;
}

.table-of-contents ul ul li::before {
    content: "\f324";
}

/* -------------------------------
  Footer

  1. Shared properties
  2. Footer title bar
  3. Social links
  4. Site links
  5. USC links
  6. Site info
 -------------------------------- */

/* 1. Shared properties */

#site-footer {
    -webkit-box-ordinal-group: 51;
    -ms-flex-order: 50;
    order: 50;
    width: 100%;
}

#site-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#menu-footer-links li::before,
#menu-social-links-menu a::before,
#site-footer .usc-links li::after {
    font-family: "Font Awesome 6 Pro";
    font-size: 1em;
    font-weight: 500;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

#site-footer .footer-content {
    padding: 3rem 0 1.5rem;
    background-color: #222;
    color: #D6D6D6;
}

@media (max-width: 991px) {
    #site-footer .footer-content .row > div {
        margin: 0;
        padding: 0;
    }

    #site-footer .footer-content .row > div:first-child {
        padding-left: 1.5rem;
    }
}

/* 2. Footer title bar */
#site-footer .title-bar {
    overflow: hidden;
    line-height: 0;
}

#site-footer .title-bar .container div {
    position: relative;
    z-index: 2;
    display: inline-block;
    padding: 1.5rem 1.5rem 1rem 0;
    background-color: var(--cardinal);
}

#site-footer .title-bar div.container div::before {
    display: inline-block;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    left: -100000px;
    right: 0;
    background-color: var(--cardinal);
    content: '';
}

#site-footer .logo {
    display: block;
    width: 300px;
    height: 25px;
    background-image: url(img/isi-logo.svg);
    background-repeat: no-repeat;
    background-size: contain;
    filter: brightness(0) invert(1);
}

/* 3. Social links */

ul#menu-social-links-menu {
    margin-top: 1em;
}

#menu-social-links-menu li {
    display: inline-block;
}

#menu-social-links-menu a {
    display: inline-block;
    height: 5rem;
    margin-right: 2.5rem;
    font-size: 0;
    overflow: hidden;
}

#menu-social-links-menu li:last-child a {
    margin-right: 0;
}

#menu-social-links-menu a::before {
    font-family: "Font Awesome 6 Brands";
    font-size: 2.5rem;
}

#menu-social-links-menu a[href*=facebook]::before {
    content: "\f39e";
}

#menu-social-links-menu a[href*=bsky]::before {
    content: "\e671";
}

#menu-social-links-menu a[href*=twitter]::before {
    content: "\e61b";
}

#menu-social-links-menu a[href*=youtube]::before {
    content: "\f167";
}

#menu-social-links-menu a[href*=linkedin]::before {
    content: "\f08c";
}

/* 4. Site links */

#menu-footer-links li::before {
    display: inline-block;
    width: 2em;
    margin-right: 1rem;
    text-align: center;
}

.footer-contact::before {
    content: "\f095";
}

.footer-locations::before {
    content: "\f3c5";
}

.footer-media-relations::before {
    content: "\f130";
}

.footer-join-us::before {
    content: "\f500";
}

.footer-site-map::before {
    content: "\f279";
}

#menu-footer-links a {
    display: inline-block;
    padding: 0 0 1.2rem 0;
}

#site-footer a,
#site-footer a:visited {
    font-family: "Lato", sans-serif;
    color: #D6D6D6;
}

#site-footer a:hover {
    color: var(--gold);
    text-decoration: none;
}

@media (max-width: 1199px) {
    .menu-footer-links-container {
        text-align: center;
    }

    ul#menu-footer-links {
        text-align: left;
    }

    #menu-footer-links li:last-child {
        margin-right: 0;
    }
}

@media (max-width: 991px) {
    #site-footer {
        font-size: 15px;
    }

    .menu-footer-links-container {
        text-align: left;
    }

    #site-footer .footer-content {
        padding: 3rem 0;
    }

    #site-footer .row > div,
    .menu-footer-links-container {
        margin: 0 1.5rem;
        padding-left: 0;
    }

    #site-footer .row > div:nth-child(2) {
        margin: 2rem 0 0;
        padding: 0;
    }

    #site-footer .usc-links {
        margin-top: 2rem;
    }

    ul#menu-footer-links {
        margin: 0;
        text-align: center;
    }

    #menu-footer-links li {
        display: inline-block;
        margin: 0 1.5rem;
    }

    #menu-footer-links li a {
        padding-bottom: 0;
    }

    #site-footer .usc-links li:last-child a {
        margin-bottom: 0;
    }
}

@media (max-width: 767px) {
    #site-footer .row > div:nth-child(2) {
        margin: 2rem 1.5rem 3.5rem;
        padding: 2.5rem 0;
        border-top: solid 1px var(--gray);
        border-bottom: solid 1px var(--gray);
    }

    .menu-footer-links-container {
        margin: 0;
    }

    ul#menu-footer-links {
        text-align: left;
    }

    #menu-footer-links li {
        display: block;
        margin: 0 0 1.5rem;
    }

    #menu-footer-links li:last-of-type {
        margin-bottom: 0;
    }

    #site-footer .footer-content .row div.usc-links {
        margin-left: 1.5rem;
    }
}

/* 5. USC links */

#site-footer .usc-links {
    position: relative;
}

#site-footer .wrapper {
    display: inline-block;
    position: absolute;
    right: 3rem;
    margin-top: .25rem;
}

#site-footer .viterbi-logo {
    display: block;
    width: 235px;
    height: 40px;
    margin-bottom: 1.5rem;
    background-image: url(img/viterbi-logo.svg);
    background-repeat: no-repeat;
    background-size: contain;
}

#site-footer .usc-links li a {
    display: inline-block;
    width: 280px;
    margin-bottom: .9rem;
}

#site-footer .usc-links li::after {
    content: "\f08e";
}

@media (max-width: 991px) {
    #site-footer .wrapper {
        display: block;
        position: relative;
        right: 0;
    }
}

/* 6. Site info */

#site-info {
    padding: 1.0rem 0;
    background-color: #111;
    font-size: 1.5rem;
    text-align: center;
}

#site-info > div, #site-info ul, #site-info li, #site-info span {
    display: inline-block;
}

#site-info li {
    padding: 0 5rem 0 0;
}

#site-info a, #site-info a:visited, #site-info span {
    color: #b1b1b1;
}

#site-info li::after {
    display: inline-block;
    font-family: "Font Awesome 6 Pro";
    font-size: .8rem;
    font-weight: 900;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    content: "\f111";
    color: var(--gray);
    margin: .8rem 0 0 5rem;
    vertical-align: top;
}

#site-info a:hover {
    color: var(--gold);
    text-decoration: none;
}

@media (max-width: 767px) {
    #site-info ul {
        margin-bottom: 1rem;
    }

    #site-info ul, #site-info span {
        display: block;
    }

    #site-info li:last-child {
        padding: 0;
    }

    #site-info li:last-child::after {
        display: none;
    }
}


/**
 * Search and forms
 */
input[type="text"], input[type="password"], input[type="email"], input[type="tel"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="number"], input[type="search"], input[type="url"], textarea, textarea.form-control, select.form-control {
    padding: 7px 8px;
    border-color: var(--lightgray);
    -moz-border-radius: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    font-size: 1.7rem;
}

.search label, .filters-module label {
    display: block;
    font-weight: bold;
}

.search input[type="search"] {
    width: 250px;
    max-width: calc(100% - 130px);
    height: initial;
    margin-right: 5px;
    text-transform: lowercase;
}

.search button, .search input[type="search"] {
    display: inline-block;
    vertical-align: top;
}


/**
 * Publications
 */
#bibbase-search button {
    padding: .85rem 2rem;
    font-size: 1.7rem;
}

#bibbase .dropdown {
    margin-right: 30px;
}

#bibbase_header .dropdown-menu {
    padding: 10px 0;
    font-size: 1.5rem;
}

#bibbase_header .dropdown-menu li {
    padding: 0 10px;
}

#bibbase_header .dropdown-menu li:hover {
    background-color: var(--cardinal);
}

#bibbase_header .dropdown-menu li:hover a {
    background-color: var(--cardinal);
    color: #fff;
}

#bibbase_header .nav .dropdown-toggle .caret {
    border-top-color: var(--cardinal);
    border-bottom-color: var(--cardinal);
}

#menu_dropdown {
    width: 200px;
}

.bibbase_group {
    position: relative;
    background-color: var(--secondary);
    color: #900;
    font-style: normal;
    font-weight: bold;
    text-shadow: none;
    border-radius: 0px;
    border: solid 1px var(--lightgray);
    margin: 20px 0;
    padding: 10px 15px;
    font-family: "Lato", sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

.bibbase_group .bibbase_group_count {
    margin-left: 10px;
    color: var(--mediumgray);
    font-weight: normal;
}

.bibbase_group i {
    position: absolute;
    top: 12px;
    right: 20px;
    font-size: 24px;
}

.bibbase_group_body {
    font-size: 1.5rem;
}

.bibbase_paper {
    margin-bottom: 10px;
    line-height: 1.5;
}

.bibbase_paper_title, .bibbase_paper_content {
    display: block;
}

.bibbase_paper_title a::after {
    margin-left: .5rem;
    font-family: "Font Awesome 6 Pro";
    font-weight: 900;
    content: "\f08e";
    color: var(--cardinal);
}

.bibbase_paper_content a.link {
    margin-right: 10px;
}

.bibbase_icon {
    display: none;
}

@media (max-width: 767px) {
    #bibbase-search {
        border: solid 1px var(--lightgray);
    }
}

#publications-filter {
    text-align: center;
}

#publications-filter .btn {
    display: inline-block;
    font-size: 1.5rem;
    line-height: 1.5rem;
}

#publications-filter .btn.disabled, #publications-filter .btn.disabled:hover {
    background-color: var(--lightgray);
    color: #999;
}

#publications-filter .newer i {
    margin-left: 10px;
}

#publications-filter > .older i {
    margin-right: 10px;
}

#publications-filter ul {
    display: inline-block;
    list-style: none;
    margin: 0 20px 5rem;
    padding: 0;
}

#publications-filter ul li {
    display: inline-block;
    margin: 0 20px;
}

#publications-filter ul a {
    color: #000000;
    padding-bottom: 5px;
}

#publications-filter ul a:hover {
    color: var(--cardinal);
    text-decoration: none;
}

#publications-filter ul li.active {
    border-bottom: solid 4px var(--cardinal);
}

@media (max-width: 1099px) {
    #publications-filter .btn {
        font-size: 1.4rem;
        line-height: 1.4rem;
        padding: 1.1rem 1.5rem;
    }

    #publications-filter ul li {
        margin: 0 15px;
    }
}

@media (max-width: 1024px) {
    #publications-filter ul li:not(.active) {
        display: none;
    }

    #publications-filter ul li.active {
        border-bottom: none;
        margin: 0;
    }
}