/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

@font-face {
    font-family: 'Gideon Roman';
    src: local('Gideon Roman Regular'),
    url(/assets/GideonRoman-Regular-11774561a0a890de3a15c66825c194f9ad1fb23441d5372a0746004dfc07fbbb.woff2) format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Globals */
* {
    box-sizing: border-box;
    font-family: "Gideon Roman", serif;
}
a { text-shadow: 0 0 currentColor; font-weight: normal; text-decoration: none; color: currentColor;  }
a:hover { opacity: 60% }
b { text-shadow: 0 0 currentColor; font-size: inherit; } /* Looks nicer than bold */
img.image-pending {
    background-color: #A5A5A5;
}

div.list {
    display: inline-flex;
    width: 100%;
    align-items: center;
}
div.list div.items, div.values div.items {
    display: inline-flex;
    flex-flow: row;
    justify-content: space-between;
}
div.list div.items a, div.values div.items a:not(:first-of-type) {
    color: #144DE0;
    font-weight: 600;
    text-shadow: none;
    margin-left: 0.2em;
}
div.list div.items a:not(:last-of-type)::after, div.values div.items a:not(:last-of-type)::after {
    content: ",";
    color: black;
}
.w-fit-content {
    width: fit-content;
}

/* Trix content */
.trix-content b, .trix-content strong, .trix-content strong * {
    font-weight: bold;
    text-shadow: 0px 0px 0px black;
}

/* Components */
/* Component - Card */
div.card {
    display: flex;
    flex-flow: column;
    justify-content: space-between;
    align-items: center;
    width: 12em;
    height: 18em;
    background-color: #1A2E4B;
    border: 9px solid #1A2E4B;
    min-width: fit-content;
}
div.card.reverse {
    flex-flow: column-reverse;
}
div.card.card-link:hover {
    opacity: 60%;
    cursor: pointer;
}
div.card:not(:first-of-type), a.card-link-parent:not(:first-of-type) {
    margin-left: 1em;
}
div.card div.name {
    width: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    text-align: center;
    color: #FFCC00;
}
div.card img {
    max-width: 100%;
    margin: 0.5em 0;
    flex: 1 1;
}
div.card .button {
    width: inherit;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
div.card.card-link .button:hover {
    opacity: initial;
}
div.labelled-card {
    display: flex;
    flex-flow: column;
    align-items: center;
}
div.labelled-card h3 {
    margin: 0;
}
div.labelled-card h3.underline {
    text-decoration: underline 1px;
}

div.button, a.button, input.button {
    width: fit-content;
    padding: 0.3em;
    text-align: center;
    color: black;
    background-color: #ffcc00;
    border: 1px solid black;
    font-size: 1em;
    /*text-transform: uppercase;*/ /* Wasn't in original design; don't know how to feel about it :) */
}
div.button:hover, a.button:hover, input.button:hover {
    opacity: 80%;
    cursor: pointer;
}
div.button.cta, a.button.cta, input.button.cta {
    font-size: 1.5rem;
    font-weight: 600;
    text-shadow: none;
}

/* Overrides */
.left {
    text-align: left !important;
}
.justify-start {
    justify-content: flex-start !important;
}

html {
    display: flex;
    justify-content: center;
    background-color: #A5A5A5;
    font-size: 14px;

    /* Stop scrollbar from pushing site */
    padding-left: calc(100vw - 100%);
    overflow-y: overlay;
}
body {
    display: flex;
    flex-flow: column;
    width: 1200px; /* TODO: Consider changing to 63% or some vw property for responsiveness */
    background-color: #F5F5F5;
    border: 1px solid #000000;
    margin: 0;
}
body header, body footer {
    display: flex;
    flex-flow: row;
}
body main {
    flex: 8 8;
}
body footer {
    justify-content: space-evenly;
    background-color: black;
    color: white;
}

/* Header */
body header div.left-container, body header div.right-container {
    display: flex;
    flex-flow: row;
    justify-content: space-evenly;
    align-items: center;
    flex: 1 1;
}
body header div.left-container {
    background-color: #1A2E4B;
    justify-content: space-between;
}
body header div.left-container div.logo {
    margin: 0.2em 0 0.2em 2.375em;
}
body header div.left-container div.logo img {
    vertical-align: middle;
}
body header div.left-container div.title {
    flex-basis: 60%;
    color: white;
}
body header div.left-container div#nav-open {
    display: none;
    cursor: pointer;
}
body header div.right-container {
    position: relative;
    background-color: #FFCC00;
}
body header div.right-container nav {
    width: 100%;
}
body header div.right-container nav {
    list-style: none;
    display: flex;
    flex-flow: row;
    justify-content: space-evenly;
    align-items: center;
}
body header div.right-container nav div.nav-item {
    font-size: 1.5rem;
}
body header div.right-container nav div.nav-item a {
    color: black;
    text-shadow: none;
}
body header div.right-container nav div.nav-item.join {
    font-size: 1.7rem;
}
body header div.right-container nav div.nav-item.join a {
    text-shadow: 0 0 currentColor;
}
body header div.right-container nav div.sub-menu {
    display: none;
    position: absolute;
    flex-flow: column;
    background-color: #1A2E4B;
    padding: 0.2em;
}
body header div.right-container nav div.sub-menu div.nav-item {
}
body header div.right-container nav div.sub-menu div.nav-item a {
    color: white;
    font-size: 1.2rem;
}
body header div.right-container nav div.nav-item:hover div.sub-menu {
    display: block;
}
body header div.right-container div#nav-close {
    display: none;
    cursor: pointer;
}

/* Main - General */
body main section.page-part {
    display: flex;
    flex-flow: column;
    align-items: center;
    padding: 0.5625em 2.375em;
}
body main section.page-part:nth-of-type(odd) {
    background-color: #D9D9D9;
}
body main section.page-part:nth-child(even) {
    background-color: #E6E6E6;
}
body main section.page-part div.title {
    width: 100%;
    height: fit-content;
    padding: 0.1em;
    margin-bottom: 0.5em;
    text-align: center;
    background-color: #556884;
    color: white;
}
body main section.page-part div.title h2 {
    margin: 0;
    font-size: 2em;
}
body main section.page-part div.title.introduction h2 {
    font-size: 2.2em; /* Introductions are treated as headers for the page */
}
body main section.page-part div.title.introduction + div.content {
    text-align: center;
}
body main section.page-part div.content {
    display: flex;
    flex-flow: row;
    justify-content: space-evenly;
    width: 100%;
    height: auto;
    font-size: 1.2em;
    overflow-x: auto;
}
body main section.page-part div.content p {
    margin: 0;
}
body main section.page-part div.all-button {
    margin: 1em;
    margin-bottom: 0.4em; /* 1-(0.3*2) to compensate for button padding (and card border) */
}
body main section.page-part div.all-button a {
    font-size: 1.25em;
}
body main section.page-part div.wide-container {
    display: flex;
    flex-flow: row;
    width: 100%;
    justify-content: space-between;
}
body main section.page-part div.wide-container > div.subcontainer {
    display: flex;
    flex-flow: column;
    max-width: 48%;
    min-width: 48%;
}
body main section.page-part div.wide-container > div.subcontainer.w-100 {
    max-width: 100%;
}
body main section.page-part div.wide-container > div.subcontainer:first-child {
    /* margin-right: 2em; */
}
body main section.page-part div.wide-container > div.subcontainer > h3.title {
    width: 100%;
}
body main section.page-part div.wide-container > div.subcontainer > div {
    display: flex;
    overflow: auto;
}

/* Footer */
body footer div.left-container, body footer div.right-container {
    display: flex;
    flex-flow: column;
    justify-content: space-evenly;
    align-items: center;
    flex: 1 1;
}
body footer div.left-container > div {
    width: 100%;
    text-align: center;
}
body footer div.left-container h2 {
    margin-bottom: 0;
}
body footer div.left-container ul {
    list-style: none;
    padding: 0;
}
body footer div.left-container ul li {
    /*font-size: 1.5em;*/
    text-align: center;
}

body footer div.right-container div.hook {
    /*font-size: 1.5em;*/
    font-weight: normal;
    text-align: center;
}
body footer div.right-container div.button.cta {
    border: 1px solid white; /* Override */
}
body footer div.social-links img {
    margin: 0 0.2em;
    width: 25px;
}


/****/

/* /discipline/[:id] */
section.page-part.discipline div.content {
    position: relative;        /* Set axes of children to where this begins */
    flex-flow: column;
    justify-content: flex-end; /* Render from the right; absolute img is coming in from the left */
}
section.page-part.discipline div.content > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.discipline div.content div.list div.items {
    font-size: 1.2em;
}

section.page-part.discipline div.content > div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}

section.page-part.discipline div.content > div.top-container {
    display: flex;
    flex-flow: row;
    justify-content: space-between;
}

section.page-part.discipline div.content > div.top-container > div.left-container {
    width: 49%;
    align-self: center;
}
section.page-part.discipline div.content > div.top-container > div.left-container img {
    object-fit: cover;
    object-position: center;
    height: 100%;
    width: 100%;
}
section.page-part.discipline div.content > div.top-container > div.right-container {
    display: flex;
    flex-flow: column;
    flex-basis: 49%;
    width: 49%;
}
section.page-part.discipline div.content > div.top-container > div.right-container > div:not(:first-child) {
    margin-top: 0.5em;
}
section.page-part.discipline div.content > div.bottom-container {
    overflow-x: hidden;
    margin-top: 0.5em;
}
section.page-part.discipline div.content > div.bottom-container div.wide-container div.subcontainer {
    min-width: 49%;
    max-width: 49%;
}
section.page-part.discipline div.content > div.bottom-container div.disciplines {
    display: flex;
    flex-flow: row;
    overflow-x: auto;
}


/* /weapon/[:id] */
section.page-part.weapon div.content {
    justify-content: space-between; /* Render from the right; absolute img is coming in from the left */
}
section.page-part.weapon div.content div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.weapon div.left-container {
    flex: 1 1;
    flex-basis: 40%;
    max-width: 40%;
}
section.page-part.weapon div.left-container img {
    /* Note: Image won't prevent flexbox expansion like it does on instructor page. Can be changed later. */
    width: 100%;
    height: 99%;          /* <- Uncomment to make image center along the y axis */
    object-fit: contain;  /* Change to contain to have it be real-size (scaled down to fit in container) */
    border: 1px solid black;
}
section.page-part.weapon div.right-container {
    display: flex;
    flex-flow: column;
    flex: 2 2 59%;
    max-width: 59%;
}
section.page-part.weapon div.content div.right-container > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.weapon div.content div.right-container div.sources {
    display: flex;
    flex-flow: row;
    overflow-x: auto;
}
section.page-part.weapon div.list div.items {
    font-size: 1.2em;
}

/* /instructor/[:id] */
section.page-part.instructor div.content {
    position: relative;        /* Set axes of children to where this begins */
    justify-content: flex-end; /* Render from the right; absolute img is coming in from the left */
}
section.page-part.instructor div.content div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.instructor div.content div.left-container {
    /* Make flex-box expand to fit *content*, rather than the image */
    position: absolute;
    float: left;
    left: 0;
    display: flex;
    max-height: 100%;
    justify-content: center;
    align-items: center;
    flex-basis: 40%;
    width: 40%;
    height: 100%;
    border: 1px solid black;
}
section.page-part.instructor div.content div.left-container img {
    object-fit: cover;
    object-position: center;
    height: 100%;
    width: 100%;
}
section.page-part.instructor div.content div.right-container {
    display: flex;
    flex-flow: column;
    flex-basis: 59%;
    width: 59%;
}
section.page-part.instructor div.content div.right-container > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.instructor div.content div.right-container div.disciplines {
    display: flex;
    flex-flow: row;
    overflow-x: auto;
}
section.page-part.instructor div.list div.items {
    font-size: 1.2em;
}

/* /source/[:id] */
section.page-part.source div.content {
    flex-flow: row;
    justify-content: space-between;
}
section.page-part.source div.left-container {
    display: flex;
    flex-flow: column;
    flex: 2 2 60%;
    max-width: 60%;
}
section.page-part.source div.left-container div.wide-container > div.subcontainer {
    max-width: 90%;
}
section.page-part.source div.right-container {
    flex: 1 1;
    flex-basis: 40%;
    max-width: 40%;
}
section.page-part.source div.right-container img {
    /* Note: Image won't prevent flexbox expansion like it does on instructor page. Can be changed later. */
    width: 100%;
    height: 99%;       /* <- Uncomment to make image center along the y axis */
    object-fit: contain;  /* Change to contain to have it be real-size (scaled down to fit in container) */
    border: 1px solid black;
}
section.page-part.source div.content div.properties {
    display: flex;
    flex-flow: row;
}
section.page-part.source div.content div.keys {
    display: flex;
    flex-flow: column;
    margin-right: 0.5em;
}
section.page-part.source div.content div.values {
    display: flex;
    flex-flow: column;
    font-size: 1.2em;
}
section.page-part.source div.content div.values a {
    color: #144DE0;
    font-weight: 600;
    text-shadow: none;
}
section.page-part.source div.content div.left-container > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.source div.content > div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.source div.list div.items {
    font-size: 1.2em;
}

/* /suppliers */
section.page-part.supplier div.content {
    flex-flow: row;
    justify-content: space-between;
}
section.page-part.supplier div.left-container {
    display: flex;
    flex-flow: column;
    flex: 2 2 60%;
    max-width: 60%;
}
section.page-part.supplier div.left-container div.wide-container > div.subcontainer {
    max-width: 90%;
}
section.page-part.supplier div.right-container {
    display:flex;
    align-items: center;
    justify-content: center;
    flex: 1 1;
    flex-basis: 40%;
    max-width: 40%;
}
section.page-part.supplier div.right-container a.image-container {
    display: flex;
    flex-flow: row-reverse;
    justify-content: space-evenly;
    max-width: 40%;
}
section.page-part.supplier div.right-container img {
    width: 100%;
    height: 20%;
    object-fit: contain;
}
section.page-part.supplier div.content div.properties {
    display: flex;
    flex-flow: row;
}
section.page-part.supplier div.content div.keys {
    display: flex;
    flex-flow: column;
    margin-right: 0.5em;
}
section.page-part.supplier div.content div.values {
    display: flex;
    flex-flow: column;
    font-size: 1.2em;
}
section.page-part.supplier div.content div.values a {
    color: #144DE0;
    font-weight: 600;
    text-shadow: none;
}
section.page-part.supplier div.content div.left-container > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.supplier div.content > div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.supplier div.list div.items {
    font-size: 1.2em;
}

/* /author/[:id] */
section.page-part.author div.content {
    position: relative;        /* Set axes of children to where this begins */
    justify-content: flex-end; /* Render from the right; absolute img is coming in from the left */
}
section.page-part.author div.content div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.author div.content div.left-container {
    /* Make flex-box expand to fit *content*, rather than the image */
    position: absolute;
    float: left;
    left: 0;
    display: flex;
    max-height: 100%;
    justify-content: center;
    align-items: center;
    flex-basis: 40%;
    width: 40%;
    height: 100%;
    border: 1px solid black;
}
section.page-part.author div.content div.left-container img {
    object-fit: cover;
    object-position: center;
    height: 100%;
    width: 100%;
}
section.page-part.author div.content div.right-container {
    display: flex;
    flex-flow: column;
    flex-basis: 59%;
    width: 59%;
}
section.page-part.author div.content div.right-container > div:not(:first-of-type) {
    margin-top: 0.5em;
}
section.page-part.author div.content div.right-container div.sources {
    display: flex;
    flex-flow: row;
    overflow-x: auto;
}
section.page-part.author div.list div.items {
    font-size: 1.2em;
    margin-left: 0.3em;
}

/* /gallery/[:id] */
section.page-part.gallery_entry div.content {
    flex-flow: column;
    justify-content: space-between;
}
section.page-part.gallery_entry div.content div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}
section.page-part.gallery_entry div.content div.top-container {
    display: flex;
    max-height: 100%;
    justify-content: center;
    align-items: center;
    height: 100%;
}
section.page-part.gallery_entry div.content div.bottom-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 1em;
}
section.page-part.gallery_entry div.content div.top-container img, section.page-part.gallery_entry div.content div.top-container video {
    object-fit: cover;
    object-position: center;
    max-height: 500px;
}

/* /blog/ */
section.page-part.blog.article div.content {
    justify-content: initial;
    font-size: initial;
    display: flex;
    flex-flow: column;
    width: 100%;
    background-color: white;
    padding: 0.5em;
}
section.page-part.blog.article div.content .trix-content {
    padding-top: 0.5em;
    border-top: 1px solid black;
}
section.page-part.blog.article div.left-container {
}
section.page-part.blog.article div.content div.properties {
    display: flex;
    flex-flow: row;
    padding-bottom: 0.5em;
}
section.page-part.blog.article div.content div.keys {
    display: flex;
    flex-flow: column;
    margin-right: 0.5em;
}
section.page-part.blog.article div.content div.values {
    display: flex;
    flex-flow: column;
    font-size: 1.2em;
}
section.page-part.blog.article div.content div.values a {
    color: #144DE0;
    font-weight: 600;
    text-shadow: none;
}
section.page-part.blog.article div.content > div h3.title {
    font-size: 1.2em;
    font-weight: 600;
    margin: 0;
}

/* Join */
body main section.page-part.payment-information > div.content {
    flex-flow: column;
    text-align: center;
}
body main section.page-part.payment-information > div.content table {
    width: 30%;
    margin: 0 auto;
    margin-bottom: 0.5em;
}
body main section.page-part.payment-information > div.content table th {
    font-weight: bold;
    text-shadow: 0 0 black;
}
body main section.page-part.contact-us > div.content {
    flex-flow: column;
    text-align: center;
}
body main section.page-part.contact-us > div.content form {
    align-self: center;
    width: 30%;
    margin-top: 1em;
}
body main section.page-part.contact-us > div.content form div.input {
    display: flex;
    flex-flow: column;
    width: 100%;
    align-items: flex-start;
}
body main section.page-part.contact-us > div.content form div.input input,
body main section.page-part.contact-us > div.content form div.input textarea{
    width: 100%;
}
body main section.page-part.contact-us > div.content form input[type="submit"] {
    margin-top: 0.3em;
}


/* Devise */
div.flash {
    text-align: center;
}
