/* global 
------------------------------------- */

:root {
    --ff-primary: "Source Sans 3", sans-serif;
    --ff-secondary: "Oxygen", sans-serif;
    
    --fw-light: 300;
    --fw-normal: 400;
    --fw-medium: 600;
    --fw-bold: 700;
    
    --fs-h2: 5rem;
    --fs-h3: 2.5rem;
    --fs-body: 1.125rem;
    
    --clr-primary: #225560;
    --clr-secondary: #36213E;
    --clr-secondary-light: #fff;
    --clr-accent: #EF6461;
    
    --spacer: 1rem;
    --spacer-md: calc(var(--spacer) * 2);
    --spacer-lg: calc(var(--spacer) * 3);
    
    --shadow: 0 0 1em rgba(0,0,0,.25);
    --border-radius: 5px;
    }



html, 
body {
	margin: 0;
	padding: 0;
	}

*, *:before, *:after {
    box-sizing: border-box;
    }

/* layout 
------------------------------------- */
body {
    background: radial-gradient(#ffffff, #f0efef);
    background-attachment: fixed;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
}
}


[id^="main-"] {
	position: relative;
	}

.full-width {
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	}
	
.content-width {
	max-width: 1200px;
	}

.main-header {
    z-index: 999;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    background: rgba(255,255,255,.93);
    backdrop-filter: blur(5px); 
}

.main-header > div {
    display: flex;
    justify-content: space-between;
    align-content: space-around;
    align-items: center;
    flex-wrap: wrap;
    }

#branding {
    display: flex;
    align-items: center;
    padding: .75rem .125rem .75rem 2rem;
    }
	
#main-navigation {
	background: #ccc;
	display: none;
	}
	
#main-navigation-trigger {
	display: none;
	}

#main-navigation-trigger:checked ~ #main-navigation {
	display: block;
	}

#main-navigation-label {
	display: block;
	width: 2.75em;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	cursor: pointer;
	}

#main-navigation-label span,
#main-navigation-label span::before,
#main-navigation-label span::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1.5em;
	height: .25em;
	border-radius: .25em;
	background: #000;
	}

#main-navigation-label span {
	top: 1.35em;
	}

#main-navigation-label span::before {
	top: .5em;
	}

#main-navigation-label span::after {
	top: 1em;
	}

#main-navigation .nav-link:last-of-type {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5rem;
	}


.nav-link {
    display: block;
    padding: .5rem 1rem;
    text-transform: uppercase;
    font-weight: var(--fw-bold);
    }

/* Meet Us */
.bio-card-img {
    height: 240px;
    object-fit: cover;
    opacity: .95; 
    -webkit-filter: brightness(95%);
    filter: brightness(95%);
    -webkit-transform: scale(.985);
    transform: scale(.985);
    transition: all .5s ease-in-out;
    }

.bio-card:hover .bio-card-img {
    opacity: 1;
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
    -webkit-transform: scale(1);
            transform: scale(1);
    }


/* Featured Work */
figure.featured-work-gallery-image {
    position: relative;
    }
figure.featured-work-gallery-image > figcaption.featured-work-gallery-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    min-height: 15%;
    width: 100%;
    z-index: 1;
    padding: 20px 1em 1em;
    font-size: 1.25rem;
    color: white;
    background: linear-gradient(360deg, black, transparent);
    }

/* Fonts 
------------------------------------- */

.oxygen-light {
    font-family: "Oxygen", sans-serif;
    font-weight: 300;
    font-style: normal;
    }
  
.oxygen-regular {
    font-family: "Oxygen", sans-serif;
    font-weight: 400;
    font-style: normal;
    }

.oxygen-bold {
    font-family: "Oxygen", sans-serif;
    font-weight: 700;
    font-style: normal;
    }

    /* <weight>: Use a value from 200 to 900 */
    /* <uniquifier>: Use a unique and descriptive class name */
.source-sans-3-light {
    font-family: "Source Sans 3", sans-serif;
    font-optical-sizing: auto;
    font-weight: 200;
    font-style: normal;
    }

.source-sans-3-regular {
    font-family: "Source Sans 3", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    }

.source-sans-3-bold {
    font-family: "Source Sans 3", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    }

body {
    color: #000;
    font-family: var(--ff-primary), sans-serif;
    font-size: var(--fs-body);
    font-optical-sizing: auto;
    font-weight: var(--fw-normal); 
    font-style: normal;
    line-height: 1.35em;
    }

p {
    max-width: 75ch;
    text-align: justify;
    }

h1,
h2,
h3,
h4 {
    font-family: var(--ff-secondary), sans-serif;
    font-weight: var(--fw-bold); 
    font-style: normal;
    font-stretch: 100%;
    line-height: 1.1;
    text-transform: uppercase;
    max-width: 75ch;
    }

/* Misc 
------------------------------------- */
img, picture, svg {
    max-width: 100%;
    display: block;
    }

.loading-spinner {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100vh;
    }

ul.list-horz {
	margin: 0;
	padding: 0;
	list-style-type: none;
	display: flex;
	}

ul.list-horz li {
	margin: .25em .5em;
	padding: 0;	
	justify-content: center;
	align-items: center;
	}

.list-unstyled {
    padding-left: 0;
    list-style: none;
}

/* */
.fade-in {
	opacity: 1;
	animation-name: fadeInOpacity;
	animation-iteration-count: 1;
	animation-timing-function: ease-in;
	animation-duration: 2s;
}

@keyframes fadeInOpacity {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}




/* Desktop layout */
@media (min-width: 700px) {

    #main-content {
        /*
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        grid-template-rows: auto;
        */
        }

    #main-header > div {
        display: flex;
        justify-content: space-between;
        align-content: space-around;
        align-items: center;
        flex-wrap: wrap;
        }

    #branding {

        }

    #main-navigation {
        display: block;
        margin-block: .5rem 0;
        /* margin-inline: auto; */
        background: none;
        }
        
    #main-navigation ul {
        display: flex;
        justify-content: center;
        align-items: center;
        }
        
    #main-navigation-label {
        display: none;
        }
        
    #main-footer {
        display: flex;
        justify-content: center;
        align-content: center;		
        }

}