/* Default HTML conditions */
html {
    font-size: 16px;
    scroll-behavior: smooth;
}

/* Body Customizations */
body {
    background-color: var(--bg);
    margin: 0;
    overflow-x: hidden;
}

/* Preset */
:root {
  --bg: #1c1c1c;       
  --bg2: #111111;      
  --text: #f4f4f4;     
  --text-light: #ffffff;

  --accent1: #3a5e8c;  
  --accent2: #243b5a;  

  --radius: 6px;
}

/* Custom font meant to embed BBH Hegarty */
@font-face {
    font-family: 'BBH Hegarty';
    src: url('fonts/BBHHegarty-Regular.woff2') format('woff2'),
        url('fonts/BBHHegarty-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Custom font meant to embed Fjalla One */
@font-face {
    font-family: 'Fjalla One';
    src: url('fonts/FjallaOne-Regular.woff2') format('woff2'),
        url('fonts/FjallaOne-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Lato family */
.lato-regular {
  font-family: "Lato", sans-serif;
  font-weight: 400;
  font-style: normal;
}

/* Desktop nav bar */
.navigation {
    position: sticky;
    top: 0;
    z-index: 10;
    background: var(--bg);
    max-width: 100vw;
    opacity: 97%;
    box-sizing: border-box;
}
.headerNav {
    display: flex;
    justify-content:space-between;
    background-color: var(--text);
}
.headerNav > ul {
    list-style: none;
    display: flex;
    padding: 0;
    gap: 3.125rem;
    margin: 1rem 1.875rem 1.25rem 0;
    justify-content: flex-end;
}
.headerNav a {
    font-family: "Lato", sans-serif;
    text-decoration: none;
    color: var(--bg);
    font-size: 1rem;
    font-weight: bold;
    transition: all 0.5s ease;
}
.headerNav h1 a{
    font-family: 'BBH Hegarty', sans-serif;
    justify-content: flex-start;
    font-weight: lighter;
    font-size: 2.5rem;
    letter-spacing: 0.02em;
    color: var(--bg);
}
.headerNav h1 {
    margin: 0 0 0 1.875rem;
}
.headerNav a:hover {
    opacity: 0.5;
}

/* Mobile nav bar */
#menu-toggle {
    display: none;
}
.hamburger {
    display: none;
    cursor: pointer;
    font-weight: bolder;
    color: var(--bg);
    font-size: 2rem;
    user-select: none;
    margin: 0 1.875rem 0 0;
}
.headerNav .mobileNav ul {
    list-style: none;
    line-height: 3;
    text-align: right;
}
.headerNav .mobileNav a {
    text-decoration: none;
    font-family: "Lato", sans-serif;
    font-size: 1.75rem;
    color: var(--bg);
    font-weight: bold;
    transition: all 0.3s ease;
    padding-right: 1.5rem;
}
.mobileNav {
  display: none;
  position: fixed;
  top: 3rem;
  right: 0;
  background: var(--text);
  height: 100dvh;
  width: 50vw;
  padding: 1.75rem;
  box-sizing: border-box;
  z-index: 20;
}
#menu-toggle:checked + .hamburger + .mobileNav {
  display: block;
}
.mobileNav a:hover {
    opacity: 50%;
}

/* Hero Section */
#heroSection {
    scroll-margin-top: 11.75rem;
}
#heroSection img {
    max-width: 100vw;
    height: auto + 100rem;
    align-self: center;
    z-index: -1;
    position: absolute;
    width: 100%;
    overflow: hidden;
    margin-top: -16rem;
}
#heroSection h1 {
    color: var(--accent1);
    font-family: "BBH Hegarty", sans-serif;
    font-size: clamp(4.25rem, 10vw, 8.5rem);
    text-align: center;
    letter-spacing: clamp(0.2rem,0.5vw,0.5rem);
    text-shadow: 1rem 1rem 1.5rem var(--bg);
    margin-top: clamp(2rem,10vw + 0.5rem,9rem);
    user-select: none;
}
.heroButtons {
    display: flex;
    gap: 1.875rem;
    justify-content: center;
}
.heroButtons button {
    border: transparent;
    background-color: var(--accent1);
    padding: clamp(0.5rem,1vw,2rem);
    border-radius: var(--radius);
    box-shadow: 1rem 1rem 1.5rem var(--bg);
    margin-top: -2rem;
    text-decoration: none;
    font-family: "BBH Hegarty", sans-serif;
    color: var(--text);
    font-size: clamp(1.25rem,3vw,2rem);
    letter-spacing: 0.05rem;
    transition: all 0.3s ease;
}
.heroButtons a {
    transition: all 0.3s ease;
}
.heroButtons a:hover button{
    transform: scale(1.03);
}
.heroButtons a:hover button {
    color: var(--text-light);
    text-shadow: 0 0 0.25rem var(--text);
}

/* About Section */
#aboutSection {
    scroll-margin-top: 4rem;
    margin-top: 15rem;
}
#aboutSection img {
    max-height: clamp(30rem, 18vw + 5rem, 70rem);
    width: auto;
    border-radius: 1.5rem;
}
.aboutClass {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.aboutClass h3 {
    font-weight: lighter;
    font-size: 2rem;
    letter-spacing: 0.1rem;
    justify-self: center;
    color: var(--accent2);
    text-shadow: 0.25rem 0.25rem 0.5rem var(--bg2);
    user-select: none;
}
.imgGroup {
    margin-left: clamp(0.75rem, 3vw + 1rem, 5.25rem);
}
.paragraphGroup {
    text-align: flex-end;
    margin-right: clamp(0.75rem, 3vw + 1rem, 5.25rem);
    margin-top: -1.5rem;
}
.paragraphGroup h3 {
    color: var(--accent1);
    justify-self: right;
    text-align: right;
}
.paragraphGroup p {
    justify-self: right;
    text-align: right;
}

/* Impact Section */
#impactSection {
    scroll-margin-top: 5rem;
}
.mainStats {
    display: flex;
    gap: 10rem;
    justify-content: center;
    align-items: center;
    margin: 1.5rem 0 3rem 0;
    flex-wrap: wrap;
}
.mainStats h3{
    text-align: center;
    font-weight: lighter;
    letter-spacing: 0.01rem;
    line-height: 1.8;
    color: var(--text);
}
.impressionsClass, .eventsClass {
    background-image: linear-gradient(45deg, var(--accent2), var(--accent1));
    padding: 2.5rem;
    border-radius: 1rem;
    user-select: none;
    transition: all 0.3s ease;
}
.impressionsClass h3, .eventsClass h3{
    margin: 0;
    margin-top: -1.1rem;
}
.eventsClass h3 {
    padding-top: 1rem;
    line-height: 2;
}
.bigNumber, .bigEvents{
    color: var(--text-light);
    font-size: 3.2rem;
    line-height: 1;
    transition: all 0.3s ease;
}
.impressionsClass:hover, .eventsClass:hover{
    transform: scale(1.1);
    box-shadow: 0 0 2rem var(--accent1);
}
.impressionsClass:hover .bigNumber, .eventsClass:hover .bigEvents{
    text-shadow: 0 0 0.5rem var(--text);
}

/* Projects Section */
#projectsSection {
    scroll-margin-top: 4.5rem;
}
.mainSection {
    display: flex;
    gap: 1rem;
    min-height: 100vh; 
    justify-content: center;
}
.mainSection h4 {
    font-family: "BBH Hegarty", sans-serif;
    color: var(--accent2);
    font-weight: lighter;
    font-size: 2rem;
    letter-spacing: 0.01rem;
    text-shadow: 0.25rem 0.25rem 0.15rem var(--bg2);
    margin: 0.5rem 0 0 0;
    user-select: none;
}
.storySection, .squareSectionOne, .squareSectionTwo {
    margin: 0;
    text-align: center;
}
.storySection {
    margin-left: 0.5rem;
}
.storySection img, .squareSectionOne img, .squareSectionTwo img {
    border-radius: 1rem;
    max-width: 23rem;
    height: auto;
    margin: 0;
    align-content: center;
}
.storySection img {
    max-width: 27rem;
    height: auto;
}
.storySection h3, .squareSectionOne h3, .squareSectionTwo h3{
    font-weight: lighter;
    font-size: 2.8rem;
    color: var(--accent1);
    user-select: none;
}
.storySection p, .squareSectionOne p, .squareSectionTwo p {
    margin-bottom: 2rem;
}

/* Contact Me Section */
#contactMe {
  scroll-margin-top: 7.75rem;
}
.contactMe h2 {
    margin-bottom: 0;
}
.contactForm {
    margin: 0 0 0 clamp(0.75rem, 3vw + 1rem, 5.25rem);
}
.contactForm h3 {
    font-family: "Fjalla One", sans-serif;
    color: var(--accent1); 
    font-weight: lighter;
    margin: 1.25rem 0 0.625rem 0;
    font-size: 2.1875rem;
    user-select: none;
}
.contactForm button {
    border: none;
    margin-top: 3.125rem;
    font-size: 1.25rem;
    font-family: "Latos", sans-serif;
    font-weight: bolder;
    color: var(--text);
    background-color: var(--accent1);
    padding: 0.4375rem clamp(1rem, 19vw + 1.35rem, 23rem) 0.4375rem clamp(1rem, 19vw + 1.35rem, 23rem);
    border-radius: var(--radius);
    transition: all 0.5s ease;
    margin-bottom: 3.125rem;
    letter-spacing: 0.04em;
}
.contactForm button:hover {
    transform: scale(1.03);
    box-shadow: 0px 0px 15px var(--accent2);
}
.contactForm input {
    border: 3px solid var(--accent1);
    border-radius: var(--radius);
    height: 1.5625rem;
    width: clamp(3rem, 40vw + 4.75rem, 50rem);
    outline: none;
    font-family: "Latos", sans-serif;
    font-weight: bold;
    color: var(--accent2);
}
.contactForm:focus-within button {
    box-shadow: 0px 0px 15px var(--accent2);
}
.contactForm .message {
    height: 3.125rem;
    border: 3px solid var(--accent1);
    border-radius: var(--radius);
    width: clamp(3rem, 40vw + 4.75rem, 50rem);
    outline: none;
    font-family: "Latos", sans-serif;
    font-weight: bold;
    color: var(--accent2);
    resize: none;
}

/* Footer */
#footerElement {
    display: flex;
    gap: clamp(5rem, 10vw + 2rem, 19rem);
    margin-bottom: 3.125rem;
    justify-content: center;
}
footer h3 {
    font-family: "BBH Hegarty", sans-serif;
    letter-spacing: 0.04em;
    color: var(--accent1);
    font-size: 2.185rem;
    user-select: none;
}
.copyright {
    margin-left: 2.5rem;
    user-select: none;
}
.footerNav, .links{
    list-style: none;
    line-height: 1.4;
}
.footerNav h3 {
    color: var(--accent2);
}
.footerNav a, .links a, .copyright p{
    text-decoration: none;
    font-family: "Latos", sans-serif;
    color: var(--text-light);
    font-weight: bold;
}
.links {
    margin-right: 2rem;
}
footer a {
    transition: all 0.5s ease;
}
footer a:hover {
    opacity: 0.5;
}

/* Element exclusive */
h2 {
    display: inline-block;
    font-family: "BBH Hegarty", sans-serif;
    margin: 1.5rem 0 3rem clamp(0.75rem, 3vw + 1rem, 5.25rem);
    font-weight: lighter;
    font-size: 2.8125rem;
    background-color: var(--accent1);
    border-radius: var(--radius);
    color: var(--text);
    padding: 0 0.5rem 0 0.5rem;
    user-select: none;
}
h3 {
    font-family: "BBH Hegarty", sans-serif;
    color: var(--text);
}
p {
    font-family: "Lato", sans-serif;
    color: var(--text);
    font-weight: bolder;
    line-height: 1.7;
}
hr {
    margin: 3.125rem auto 3.125rem auto;
    border: none;
    height: 0.4375rem;
    background-color: var(--accent1);
    max-width: 90%
}

/* A LOTTTTT of Media Inquiries */
@media (max-width: 1300px) {
    .mainSection {
        flex-wrap: wrap;
    }
}
@media (max-width: 1100px) {
    #heroSection img {
        margin-top: -10rem;
    }
    #aboutSection {
        margin-top: 11.5rem;
    }
}
@media (max-width: 1000px) {
    footer {
        flex-direction: column;
    }
    footer ul {
        margin: 0;
        justify-content: center;
    }
    .mainStats {
        gap: 8rem;
    }
}
@media (max-width: 960px) {
    #aboutSection {
        margin-top: 10rem;
    }
    .aboutClass {
        flex-direction: column;
        justify-content: center;
    }
    .imgGroup {
        margin: 0.5rem auto;
        justify-content: center;
    }
    .paragraphGroup h3 {
        justify-self: center;
        text-align: center;
    }
    .paragraphGroup p {
        text-align: center;
        justify-self: center;
        margin-left: 0.45rem;
        margin-right: 0;
    }
}
@media (max-width: 925px) {
    .headerNav > ul {
        display: none;
    }
    .hamburger {
        display: block;
        margin-left: auto;
    }
}
@media (max-width: 900px) {
    #heroSection img {
        margin-top: -9rem;
    }
}
@media (max-width: 750px) {
    #heroSection img {
        margin-top: -7rem;
    }
    #aboutSection {
        margin-top: 8rem;
    }
}
@media (max-width: 700px) {
    .mainStats {
        gap: 6rem;
    }
    .mainStats h3{
        font-size: 1.1rem;
        letter-spacing: 0.01rem;
        line-height: 1.7;
    }
    .bigNumber, .bigEvents{
        font-size: 2.75rem;
    }
    .impressionsClass:hover, .eventsClass:hover{
        transform: scale(1.04);
        box-shadow: 0 0 1.5rem var(--accent1);
    }
    .impressionsClass:hover .bigNumber, .eventsClass:hover .bigEvents{
        text-shadow: 0 0 0.3rem var(--text);
    }
}
@media (max-width: 600px) {
    #heroSection img {
        margin-top: -5rem;
    }
    #heroSection h1 {
        margin-top: 1.5rem;
        font-weight: lighter;
    }
    #aboutSection {
        margin-top: 5rem;
    }
}
@media (max-width: 576px) {
    #heroSection img {
        margin-top: -3rem;
    }
    #heroSection h1 {
        margin-top: 1rem;
    }
}