@charset "UTF-8";

/* HOME */

main.home div.grid-container {
    display: grid;
    row-gap: 30px;
}

main.home div.intro figure.profile {
    display: inline-block;
    position: relative;
    border-radius: 10px;
    width: 100%;
    overflow: hidden;
}

main.home div.intro figure.profile img {
    width: 100%;
}

main.home div.intro figure.profile figcaption {
    position: absolute;
    bottom: 0;
    width: 100%;
    font-size: 10px;
    text-align: center;
    color: #888;
    background-color: rgba(0,0,0,0.7);
}

img.signature {
    float: right;
    width: 140px;
}


/* CARDS */

div.card {
    position: relative;
    margin-bottom: 32px;
    border: 1px solid #666;
    border-radius: 10px;
    overflow: hidden;
}

div.card.attention {
    border: 1px solid #b597d1;
    border-radius: 10px;
    background-color: rgba(181, 151, 209, 0.2);
    text-shadow: none;
}

div.card.attention div.content {
    text-align: center;
}

div.card.attention div.content * {
    color: #eee !important;
}

div.card div.content {
    margin: 0 16px 16px;
}


/* TILES */

div.tiles {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

div.tiles > div.tile {
    position: relative;
    flex: 1 0 auto;
    border: 1px solid #666;
    border-radius: 10px;
    overflow: hidden;
    /* background-color: rgba(24,24,27,0.6); */
    transition: all 0.3s;
}

div.tiles > div.tile > a {
    display: block;
    height: 100%;
    transition: all 0.3s;
}

.no-touch div.tiles > div.tile:hover {
    /*box-shadow: 0 0 10px rgba(255,255,255,0.5);*/
}

.no-touch div.tiles > div.tile > a:hover {
    /*background-color: rgba(0,0,0,0);*/
}

div.tiles div.tile.icon h1 {
    margin-top: 0;
}

div.tiles svg {
    /*
    overflow: visible !important;
    filter: drop-shadow(3px 5px 2px rgb(143 75 207 / 0.4));
    */
}

div.tiles svg,
div.tiles img {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    padding: 16px 16px 0 16px;
    box-sizing: border-box;
}

div.tiles article {
    padding: 10px 16px 16px 8px;
}

div.tiles h1 {
    text-align: center;
    color: #d47aff;
}

div.tiles h3 {
    text-align: center;
}

div.tiles div.content {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    z-index: 30;
}

div.tiles header {
    position: relative;
    margin: 0;
    min-height: 34px;
    font-size: 22px;
    font-weight: 400;
    line-height: 34px;
    background-color: rgba(0,0,0,0.8);
    transition: all 0.3s;
}

div.tiles header[data-tagline]::after {
    display: block;
    position: absolute;
    bottom: 0;
    padding: 0 8px;
    width: 100%;
    content: attr(data-tagline);
    font-size: 14px;
    color: #888;
    opacity: 0;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    transition: all 0.3s;
}

.no-touch div.tiles a:hover header {
    min-height: 54px;
    background-color: rgba(0,0,0,0.9);
    color: #0077c9;
}

.no-touch div.tiles a:hover header[data-tagline]::after {
    opacity: 1;
}

div.card h1.heading {
    text-align: center;
    color: #BB8EE1;
}


/* BUTTONS */

div.cta.center {
    position: relative;
    left: 50%;
    margin-top: 16px;
    text-align: center;
    transform: translateX(-50%);
}

div.button-group > div.system-button:first-child {
    margin-right: 8px;
}

div.system-button {
    height: 38px;
    border-color: #888;
    background-color: rgba(128, 128, 128, 0.5);
    text-shadow: none;
    padding: 0 8px;
    line-height: 36px;
    font-size: 16px;
    color: #fff;
}

div.system-button.fullwidth {
    width: 100%;
}

div.system-button:hover {
    background-color: rgba(128, 128, 128, 0.8);
}

div.system-button + div.system-button {
    margin-top: 12px;
    margin-left: 0;
}

div.system-button.icon {
    padding-left: 30px;
    background-repeat: no-repeat;
    background-position: left 12px center;
    background-size: 16px;
}

div.system-button.icon.email {
    background-image: url("../icon/envelope-dddddd.svg");
}

div.system-button.icon.phone {
    background-image: url("../icon/phone-alt-dddddd.svg");
}

div.system-button.icon.cart {
    margin-top: 8px;
    background-image: url("../icon/shopping-cart-dddddd.svg");
}



/* ZOOMABLE IMAGES */

a.zoomable,
img.zoomable {
    /* this rule correctly wraps an anchor tag around a floating image to make the entire image accept an event */
    position: relative;
    z-index: 10;
}

.no-touch img.zoomable.inset:hover,
.no-touch img.zoomable:hover {
    cursor: zoom-in;
}

a.file:not(.inset),
a.zoomable:not(.inset) {
    display: inline-block;
}

div.node img.zoomable {
    display: inherit;
}


/* FRONTBACK OVERLAY */

div.frontback-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.6);
    background-position: center;
    background-size: 50%;
    background-repeat: no-repeat;
    background-image: url("../icon/frontback.svg");
    z-index: 11;
    opacity: 0;
    transition: all 0.7s;
    cursor: zoom-in;
}

figure.hero div.frontback-overlay {
    width: 180px;
    height: 180px;
}

.no-touch div.node div.patch div.frontback-overlay {
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
}

.no-touch a.zoomable.backside:hover div.frontback-overlay {
    opacity: 1;
}


/* FANCYBOX */

.fancybox__caption {
    text-align: center;
}


/* ZOOM-IN & PDF BUTTON */

div.file,
div.zoom-in {
    position: absolute;
    left: 0px;
    bottom: 0px;
    width: 44px;
    height: 44px;
    background-repeat: no-repeat;
    background-position: center;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    transition: all 0.5s;
    cursor: pointer;
    z-index: 11;
}

div.zoom-in {
    background-size: 24px;
    background-image: url("../icon/zoom-plus.svg");
}

div.file {
    background-size: 20px;
    background-image: url("../icon/file.svg");
}

.no-touch div.file:hover,
.no-touch div.zoom-in:hover {
    background-color: rgba(128, 128, 128, 0.8);
}

img.zoomable.inset + div.zoom-in {
    top: 0;
    left: 0;
}

img.zoomable.inset.right + div.zoom-in {
    left: auto;
    right: 0;
}

.no-touch img.zoomable:hover {
    cursor: zoom-in;
}


/* ZOOM-IN COLLECTION BUTTON */

div.zoom-in.collection {
    padding-left: 40px;
    padding-right: 10px;
    width: auto;
    font-size: 32px;
    line-height: 44px;
    color: #fff;
    text-shadow: none;
    border-radius: 998px;
    text-align: right;
    background-position: left 10px center;
}


/* ZOOM-IN + FRONTBACK ICON */

div.zoom-in.frontback {
    width: 76px;
    border-radius: 998px;
    background-size: 24px, 26px;
    background-position: left 10px center, right 10px center;
    background-image: url("../icon/zoom-plus.svg"), url("../icon/frontback.svg");
}
/* ------------------------------------- */



/* ACCORDION LAYOUT */

section.group > header {
    margin-bottom: 20px;
    border-bottom: 1px solid #666;
    padding-bottom: 8px;
    font-size: 26px;
}

section.group.accordions > header {
    margin-bottom: 0;
}

div.accordion[data-count]::after {
    position: absolute;
    right: 16px;
    content: attr(data-count);
}

div.accordion {
    position: relative;
    padding-left: 40px;
    padding-right: 60px;
    font-size: 22px;
    color: #71bae8;
    border-bottom: 1px solid #666;
    line-height: 40px;
    background-color: rgba(255,255,255,0.1);
    text-shadow: 1px 1px 1px #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: all 0.3s;
}

.no-touch div.accordion:hover {
    background-color: rgba(0,0,0,0.4);
    color: #3a8bbb;
    cursor: pointer;
}

div.accordion::before {
    content: '';
    display: block;
    position: absolute;
    height: 40px;
    width: 40px;
    top: 50%;
    left: 0;
    background-repeat: no-repeat;
    background-size: 18px auto;
    background-position: center;
    background-image: url(../acf/img/close-dddddd.svg);
    transform: translateY(-50%) rotate(45deg);
    transition: all 0.3s;
}

div.accordion.active,
div.accordion.active:hover {
    background-color: rgba(0,0,0,1);
    border-bottom-color: transparent;
    border-top: 1px solid #666;
    color: #3a8bbb;
    cursor: pointer;
}

div.accordion.active::before {
    background-size: 18px auto;
    transform: translateY(-50%) rotate(0deg);
}

div.accordion + section {
    margin: 0 12px 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.3s;
}

.accordion:not(.active) + section + .accordion.active {
    border-top: none;
}

div.accordion.active + section {
    margin: 16px 12px 40px;
    max-height: 1000000px;
    opacity: 1;
}

div.accordion + section p.intro {
    margin: 0 0 24px;
}

div.collection + div.collection,
div.collection + article.image {
    margin-top: 16px;
    border-top: 5px solid #444;
    padding-top: 20px;
}

article.image + div.collection {
    margin-top: 16px;
    border-top: 1px dashed #444;
    padding-top: 16px;
}

div.expand-collection + article.image,
div.collection article.image + article.image,
article.image.fade-in {
    display: none;
    opacity: 0;
    transition: opacity 0.5s linear;
}

div.expand-collection + article.image.flex,
div.collection article.image + article.image.flex,
article.image.fade-in.flex {
    display: flex;
}

div.expand-collection + article.image.active,
div.collection article.image + article.image.active,
article.image.fade-in.active {
    opacity: 1;
}

article.image h3 {
    color: #ddd;
}
/* ------------------------------------- */



/* EXPAND COLLECTION */

div.expand-collection {
    margin-top: 16px;
    height: 44px;
    text-align: center;
    background-repeat: no-repeat;
    background-position: center bottom 10px;
    background-size: 30px;
    background-image: url("../acf/img/chevron-down-wide-ffffff.svg");
}

div.expand-collection a {
    display: block;
    height: 100%;
}
/* ------------------------------------- */



/* CROPPED TEXT: SHOW MORE */

div.cropped-text {
    position: relative;
    width: 100%;
    max-height: 80px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s;
}

div.cropped-text.active {
    max-height: 10000px;
}

div.cropped-text div.show-more {
    position: absolute;
    bottom: 0;
    right: 0;
    padding-left: 30px;
    background-image: linear-gradient(90deg, rgba(24,24,24,0.1), rgba(24,24,24, 1) 36px);
    color: #71bae8;
    transition: all 0.3s;
}

div.cropped-text.active div.show-more {
    display: none;
}

div.cropped-text div.show-more::after {
    content: '... Show more';
}

div.cropped-text p {
    cursor: pointer;
    transition: all 0.2s;
}

.no-touch div.cropped-text:not(.active):hover p {
    color: #ccc;
}

.no-touch div.cropped-text:not(.active):hover div.show-more {
    color: #3a8bbb;
}
/* ------------------------------------- */



/* HOME PAGE PHOTOS */

main.home {
    overflow: hidden;
}

figure.collage {
    position: relative;
    margin: 0 0 40px 0;
    height: calc(100vh - 120px);
}

figure.collage img {
    position: absolute;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 120px);
    border: 1.5vw solid #eee;
    box-sizing: border-box;
    box-shadow: 1px 3px 4px 4px rgb(0 0 0 / 40%);
    transition: all 0.3s;
}

main.home figure.collage.set1 img.photo1 {
    right: 4%;
    top: 6%;
    width: 72%;
    transform: rotate(-6deg);
    z-index: 96;
}

main.home figure.collage.set1 img.photo2 {
    left: 6%;
    top: 3%;
    width: 51%;
    transform: rotate(7deg);
    z-index: 97;
}

main.home figure.collage.set1 img.photo3 {
    left: 6%;
    bottom: 5%;
    width: 62%;
    transform: rotate(4deg);
    z-index: 99;
}

main.home figure.collage.set1 img.photo4 {
    right: 5%;
    bottom: 2%;
    width: 55%;
    transform: rotate(-7deg);
    z-index: 100;
}

main.home figure.collage.set1 img.photo5 {
    right: 17%;
    top: 32%;
    width: 66%;
    transform: rotate(2deg);
    z-index: 98;
}

main.home figure.collage div.announcement {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    padding: 8px 24px;
    margin: 0;
    font-size: 36px;
    font-weight: 900;
    text-align: center;
    text-shadow: 0 0 10px #000, 1px 0 10px #000, 0 1px 10px #000, -1px 0 10px #000, 0 -1px 15px #000, 0 0 15px #000, 2px 0 15px #000, 0 2px 15px #000, -2px 0 15px #000, 0 -2px 15px #000;
    text-transform: uppercase;
    color: #ffffff;
    z-index: 110;
}

.video-container {
    position: relative;
    padding-bottom: 66.25%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
}

.video-container iframe,
.video-container object,
.video-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.notice {
    text-align: center;
}

.notice * {
    color: #ddd;
    font-weight: 500;
}

.notice hr {
    border-color: #aaa;
    width: 50%;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 16px 0;
}

/* INTRO PROFILE IMG */
div.profile {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
    line-height: 0;
    border-radius: 50%;
    overflow: hidden;
}

div.profile img.fill {
    margin: 0;
    width: 100%;
    opacity: 0;
}

div.profile div.disc {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url(../img/Logan_Jaeren.webp);
    animation-name: spin;
    animation-duration: 5s;
    animation-delay: 3s;
    animation-iteration-count: 1;
    animation-direction: forward;
    animation-timing-function: ease-in-out;
    animation-fill-mode: both;
}

@-webkit-keyframes spin {
    0% {
        transform: rotateY(0deg);
        background-image: url(../img/Logan_Jaeren.webp);
    }
    49% {
        background-image: url(../img/Logan_Jaeren.webp);
    }
    50% {
        background-image: url("../img/STEAM4SPACE-Patch-mirror.webp");
    }
    100% {
        transform: rotateY(180deg);
        background-image: url("../img/STEAM4SPACE-Patch-mirror.webp");
    }
}


/* GRID */

div.grid {
    display: grid;
    opacity: 1;
    grid-auto-rows: auto;
    grid-auto-flow: row dense;
    justify-items: center;
}

div.grid.small {
    grid-gap: 16px;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    margin-top: 24px;
    margin-bottom: 24px;
}

div.grid.small div.tile {
    background-color: rgba(0,0,0,0.3);
    border: 1px solid #666;
    border-radius: 10px;
    padding: 16px 8px 8px;
    min-height: 120px;
    min-width: 100%;
    text-align: center;
}

div.grid.small div.tile div.icon {
    height: 60px;
    width: 100%;
    display: inline-block;
}

div.grid.small div.tile div.icon svg {
    max-height: 60px;
}

div.grid.small div.tile div.heading {
    font-weight: 500;
    font-size: 18px;
}

div.grid.small div.tile div.data {
    color: #f8f8f8;
    font-weight: 700;
    font-size: 26px;
}


/* OTHER GENERAL RULES */

br.margin {
    display: block;
    margin: 0.5em 0;
    content: ' ';
}

.off-white {
    color: #aaa;
}

::-moz-selection {
    color: #fff;
    background-color: #6F2DA8;
    text-shadow: none;
}

::selection {
    color: #fff;
    background-color: #6F2DA8;
    text-shadow: none;
}


/* TABLE */
table.lessons {
    width: 100%;
    margin-bottom: 32px;
}

table.lessons tr {
    border-bottom: 1px solid #444;
}

table.lessons tr:nth-child(even) {
    background-color: rgba(255,255,255,0);
    text-shadow: none;
}

table.lessons tr:nth-child(odd) {
    background-color: rgba(255,255,255,0.05);
}

table.lessons tr:first-child {
    background-color: rgba(255,255,255,0.15);
    text-shadow: none;
}

table.lessons th,
table.lessons td {
    padding: 4px 8px;
    line-height: normal;
}

table.lessons tr th:nth-child(2),
table.lessons tr th:nth-child(3),
table.lessons tr th:nth-child(4),
table.lessons tr td:nth-child(2),
table.lessons tr td:nth-child(3),
table.lessons tr td:nth-child(4) {
    text-align: center;
}
