/* Font Import */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;1,300&family=Oswald:wght@300;400;600&display=swap');
/* PARAGRAPH FONT FAMILY RULES - font-family: 'Open Sans', sans-serif; */
/* HEADING FONT FAMILY RULES - font-family: 'Oswald', sans-serif;  */

:root {
    --blue: #4493C7;
    --black: #00000E;
    --white: #F0F1F7;
}

/* Element Styles */
* {
    margin: 0;
    padding: 0;
    border: none;
}

html {
    font-size: 62.5%;
    scroll-behavior: smooth;
    scroll-padding-top:10rem;
    min-width: 100vw;
}

body {
    font-size: 1.5rem;
    font-family: 'Open Sans', sans-serif;
    min-height: 100vh;
    background-color: var(--white);
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Oswald', sans-serif;
    letter-spacing: 0.1875rem;
}

header {
    min-width: 100%;
    position: sticky;
    top: 0;
    z-index: 10;
}

hr {
    width: 75%;
    margin: 0 12.5% 0 12.5% !important;
}

br {
    display: block;
    margin: 3px 0;
}

/* Hide Scroll Bar */
body {
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
    scrollbar-width: none;  /* Firefox */
}
body::-webkit-scrollbar { 
    display: none;  /* Safari and Chrome */
}

/* Font Helper Classes */
.font-w300 {
    font-weight: 300;
}

.font-w400 {
    font-weight: 400;
}

.font-w600 {
    font-weight: 600;
}

.upper {
    text-transform: uppercase;
}

/* Helper Colour Classes */
.black-bg {
    background-color: var(--black);
}

.black-font {
    color: var(--black);
}

.white-bg {
    background-color: var(--white);
}

.white-font {
    color: var(--white);
}

.blue-bg {
    background-color: var(--blue);
}

.blue-font {
    color: var(--blue);
}

/* Postitioning Helper Classes */
.text-center {
    text-align: center;
}

.img-pos {
    width: 100%;
    height:auto;
}

.circle-container {
    border-radius: 50%;
    border: 1px solid var(--black);
    padding: 2rem;
    margin: 0 1rem;
}

.circle-img {
    max-width: 100%;
    max-height: 100%;
    position: relative;
    text-align: center;
    vertical-align: middle;
    border-radius: 50%;
}

/* Header Styling */
#navigation {
    border-bottom: 4px solid var(--blue);
    background-color: var(--black);
}

.header-grid {
    display: grid;
    grid-template-columns: 1fr 3fr;
    grid-auto-rows: minmax(5rem, auto);
    grid-template-areas:
        "head-logo head-heading"
        "head-logo head-menu";
}

.header-grid-item {
    display: flex;
    align-items: center;
}

.header-grid-menu {
    grid-area: head-menu;

    display: flex;
    justify-content: left;
}

.header-grid-logo {
    grid-area: head-logo;

    flex-shrink: 0;
}

.logo {
    height: 5rem;
    width: 5rem;

    position: relative;
    left: 50%;
    transform: translateX(-2.5rem);

    border-radius: 50%;
    padding: 0.1rem;
    border: 1px solid var(--white);
    margin-top:2.2rem;
}

.logo-image {
    max-width: 100%;
    max-height: 100%;
    position: relative;
    text-align: center;
    vertical-align: middle;
    border-radius: 50%;
}

#title-box {
    position: relative;
    float: left;
}

#title-box>h1 {
    margin-top: 1rem;
    margin-bottom: 0;
    margin-left: 0.3rem;
}

#menu {
    text-transform: capitalize;
    min-width: 100%;
    flex-wrap: wrap;

    display: flex;
    justify-content:flex-start;
}

#menu a {
    font-family: inherit;
    color: inherit;
    text-decoration: none;
}

#menu li {
    display: inline-block;
    padding: 0 0.5rem;
}

/* Landing Section Styling */
#hero-image {
    max-height: 30rem;
    overflow: hidden;
    display: flex;
    align-items: center;
}

#hero-image > img {
    height: auto;
    width: 100%;
}

#blurb {
    padding: 0 2rem 4rem 2rem;
}

#blurb h2 {
    padding-top: 3vh;
}

.blurb-grid {
    display: grid;
    grid-template-columns: 1fr 10fr 1fr;
    grid-auto-rows: minmax(5rem, auto);
    grid-gap: 0.25rem;
    grid-template-areas:
        "heading heading heading"
        ". text .";

    margin-bottom: 1rem;
}

.grid-text {
    grid-area: text;
}

.grid-heading {
    grid-area: heading;
}

/* Performance Section Styling */
#performance {
    border-top: .25rem solid var(--blue);
}

#performance h3 {
    padding-top: 0.25rem;
}

.performance-grid {
    display: grid;
    grid-template-rows: 4rem repeat(2, auto);
    grid-gap: 0.5rem;
    grid-template-areas:
        "heading"
        "video-1"
        "text-1"
        "video-2"
        "text-2";
}

.performance-video-1 {
    grid-area: video-1
}

.performance-video-2 {
    grid-area: video-2
}

.performance-video-1, .performance-video-2 {
    border-top: 0.125rem solid var(--blue) !important;
}

.performance-text-1 {
    grid-area: text-1
}

.performance-text-2 {
    grid-area: text-2
}

.performance-grid-item:not(:first-child) {
    display: flex;
    align-items: center;
    padding: 1rem 10%
}

.video {
    width:100% !important;
    aspect-ratio: 16/9;
}

#information {
    border-top: 0.5rem solid var(--blue);
}

#information-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 1rem;
    grid-template-areas: 
        "corp-img"
        "corp-txt"
        "party-img"
        "party-txt"
        "wed-img"
        "wed-txt";
}

#information-grid > div {
    padding: 1rem;;
}

#corp-img {
    grid-area: corp-img;
}

#corp-txt {
    grid-area: corp-txt;
}

#party-img {
    grid-area: party-img;
}

#party-txt {
    grid-area: party-txt;
}

#wed-img {
    grid-area: wed-img;
}

#wed-txt {
    grid-area: wed-txt;
}

.info-img-container > img {
    border-radius: 2rem;
    border: 0.2rem solid var(--blue);
    box-shadow: 0px 0px 0.5rem 0px rgb(0 0 0 / 50%)
}

.info-txt-container {
    margin: 0 1rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.section-heading {
    padding: 2rem;
    text-align: center;
}

.player {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    margin-bottom: 1rem;
}

.players-txt p {
    padding: 5% 5% 3rem;
}

.players-txt h4 {
    font-size: 2rem;
    padding-left: 1.5rem;
}

/* Contact Section Styling */
form > div, form input, form label, form textarea {
    display: block;
}

form textarea{
    height: 4rem;
}

#contact-section {
    display: flex;
    align-items: center;
    flex-direction: column;
}

#contact-form {
    max-width: 50rem;
}

#contact-form, #contact-info{
    margin: 3rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid var(--black);
}

#contact-form h4 {
    padding: 0 1rem;
}

.form-label {
    padding: 2rem 0 0.4rem 1rem;
    font-family: "Oswald", sans-serif;
    font-weight: 300;
}

.form-input {
    border-radius: 0.3rem;
    width: 98%;
    padding: 0.5rem 3px;
}

#gdpr-notice {
    width: 90%;
    font-size: x-small;
    padding-left: 2rem;
}

#message {
    resize: vertical;
}

#submit-button {
    display: flex;
    justify-content: center;
}

button[type=submit] {
    background-color: var(--white);
    color: var(--black);
    padding: 0.75rem 1rem;
    border: 2px solid var(--blue);
    border-radius: 1rem;
    margin-top: 1.75rem;
}

/* Gallery Section Styling */
#image-gallery{
    border-top: 1rem solid var(--blue);
}

#gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
    background: var(--white);
    padding: 1%;
    margin: 1rem;
}

#gallery img {
    min-height: 100%;
    min-width: 100%;
    object-fit: cover;
    display: block;
    transition: 1s ease-out;
}

#gallery img:hover{
    transform:scale(1.02);
}

/* Footer Styling */
footer {
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    align-items: center;
    flex-direction: column;
    flex-grow: 1;

    border-top: 0.5rem solid var(--blue);
    padding-top: 1rem;
    min-height: 20vh;
}

.footer-list {
    list-style: none;
    padding: 1vw;

    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    flex-wrap: wrap;
}

.footer-list>li {
    padding: 0 3vw !important;
}

.footer-list>li,
.footer-list p {
    padding: 0;
    margin: 0;
}

#footer-contact {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#footer-logo {
    margin: 1rem;
}

#footer-logo>.logo {
    border: 1px solid var(--black);
    margin: 0;
}

a>i {
    font-size: 160%;
    color: var(--black);
}

footer h2{
    font-size: 1.17em;
}

/* Header Media Queries */
@media only screen and (max-width:372px) {
    .header-grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            "head-logo"
            "head-heading"
            "head-menu";
    }

    #menu {
        display: flex;
        flex-flow: row wrap;
        justify-content: space-around;
        padding-left: 0;
    }

    .header-grid-logo {
        grid-area: head-logo;
    }

    .header-grid-heading {
        grid-area: head-heading;
        display: flex;
        justify-content: center !important;
    }

    .header-grid-menu {
        grid-area: head-menu;
    }

    .header-grid-item {
        display: flex;
        justify-content: center;
    }
}

@media only screen and (min-width: 786px) {
    .header-grid {
        grid-template-columns: 10rem 300px 1fr;
        grid-auto-rows: minmax(5rem, auto);
        grid-template-areas:
            "head-logo head-heading head-menu";
    }

    .logo {
        margin-bottom: 2.2rem;
    }

    #title-box > h1 {
        margin-top: 0;
    }
}

/* Blurb Section Media Queries */
@media only screen and (min-width:786px) {
    .blurb-grid {
        grid-template-columns: 2fr 6fr 2fr;
    }
    
    .performance-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "heading heading"
            "video-1 text-1"
            "text-2 video-2";
    }

    #information-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-gap: 1rem;
        max-width:100%;
        grid-template-areas: 
            "corp-img corp-txt"
            "party-txt party-img"
            "wed-img wed-txt";
        margin:5%;
    }
}

/* About Section Media Queries */
@media only screen and (min-width:730px) {
    .player {
        flex-direction: row-reverse;
    }

    .player:nth-of-type(2n) {
        flex-direction: row;
    }

    .circle-container {
        max-width: 40rem  ;
    }

    .players-txt p {
        padding: 3rem 15% 3rem 35%;
        margin-left: -35%;
    }
    
    .player-reverse {
        padding: 3rem 35% 3rem 15% !important;
        margin-right: -35% !important;
        margin-left: 0 !important;
    }

    .text-right {
        text-align:right;
    }
}

/* Footer Media Queries */
@media screen and (min-width: 768px) {
    footer {
        flex-direction: row;
    }

    #footer-contact p {
        padding: 0.8rem 0;
    }
}

/* Button Animations - taken from https://ianlunn.github.io/Hover/*/
.hvr-grow {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
    -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    -webkit-transition-property: transform;
    transition-property: transform;
  }

.hvr-grow:hover, .hvr-grow:focus, .hvr-grow:active {
    transform: scale(1.1);
    -webkit-transform: scale(1.1);
}

#menu .hvr-grow:hover {
    text-decoration: underline;
    background-color: #F0F1F7 !important;
    color: var(--black) !important;
    padding: 2px 4px;
    border-radius: 5px; 
}