/************ MOBILE - 360PX *************/
/*****************************************/
@media only screen and (min-width: 0em) {
    /************** BANNER *******************/
    /*****************************************/
    #banner {
        /* 175px - 260px top */
        padding: clamp(10.9375rem, 20vw, 16.25rem) 1rem clamp(6.25rem, 14vw, 12vw);
        /* clips svg wave from causing overflow issues */
        overflow: hidden;
        position: relative;
        z-index: 1;
      }
      #banner .container {
        text-align: center;
        width: 100%;
        max-width: 80rem;
        margin: auto;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
      }
      #banner .int-title {
        /* 39px - 61px */
        font-size: clamp(2.4375rem, 6.4vw, 3.8125rem);
        font-weight: 900;
        line-height: 1.2em;
        text-align: inherit;
        padding: 1.25rem;
        color: var(--textLight);
        position: relative;
      }
      #banner .background {
        width: 100%;
        height: 100%;
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
      }
      #banner .background:before {
        /* background color overlay */
        content: "";
        position: absolute;
        display: block;
        height: 100%;
        width: 100%;
        background: var(--primaryDark);
        opacity: 1;
        top: 0;
        left: 0;
        z-index: 1;
      }
      #banner .wave {
        /* we're stretching the svg wider than the viewport so it's taller and has more of a presence */
        width: 48rem;
        height: auto;
        display: block;
        position: absolute;
        left: 50%;
        bottom: -1px;
        transform: translateX(-50%);
        z-index: -1;
      }

    /***************** CONTACT ***************/
    /*****************************************/
    #contact {
        padding: var(--sectionPadding);
        background-color: var(--primaryLight);
        position: relative;
        z-index: 1;
    }
    #contact .container {
        width: 100%;
        /* changes to 1280px at tablet */
        max-width: 36.5rem;
        margin: auto;
        display: flex;
        justify-content: center;
        align-items: stretch;
        flex-direction: column;
        column-gap: auto;
        /* 48px - 64px */
        gap: clamp(2rem, 3vw, 3rem);
        position: relative;
    }
    #contact .content {
        /* set text align to left if content needs to be left aligned */
        text-align: left;
        width: 100%;
        display: flex;
        flex-direction: column;
        /* centers content horizontally, set to flex-start to left align */
        align-items: flex-start;
    }

    #contact .title {
        max-width: 23ch;
    }
    #contact .text {
        margin-bottom: 1rem;
    }
    #contact .text:last-of-type {
        margin-bottom: 2rem;
    }
    #contact .ul {
        text-align: left;
        width: 100%;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
        position: relative;
    }
    #contact .li {
        list-style: none;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 1.25rem;
    }
    #contact .li:hover .icon-wrapper {
        transform: scale(1.1);
    }
    #contact .header {
        font-size: 1.25rem;
        font-weight: 700;
        line-height: 1.2em;
        margin-bottom: 0.75rem;
        color: var(--headerColor);
        display: block;
    }
    #contact .link {
        font-size: clamp(0.75rem, calc(0.7rem + 0.5vw), 1rem);
        line-height: 1.5em;
        text-decoration: none;
        color: var(--textDark);
        display: block;
        position: relative;
    }
    #contact .link:hover {
        text-decoration: underline;
    }
    #contact .icon-wrapper {
        width: 3.75rem;
        height: 3.75rem;
        margin: 0;
        border-radius: 50%;
        border: 1px solid #bababa;
        display: flex;
        justify-content: center;
        align-items: center;
        /* prevents flexbox from squishing it */
        flex: none;
        transition: transform 0.3s;
    }
    #contact .icon {
        width: 1.5rem;
        height: auto;
        display: block;
    }
    #contact .form {
        width: 100%;
        max-width: 39.375rem;
        /* 24px - 48px top and bottom */
        /* 16px - 48px left and right */
        padding: clamp(1.5rem, 5.18vw, 3rem) clamp(1rem, 4vw, 3rem);
        /* prevents flexbox from affecting height and width */
        box-sizing: border-box;
        background-color: var(--primaryDark);
        border-radius: 1rem;
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.75rem;
    }
    #contact .h3 {
        /* 20px - 39px */
        font-size: clamp(1.25rem, 3vw, 2.4375rem);
        line-height: 1.2em;
        font-weight: 700;
        margin: 0 0 0.25rem 0;
        color: var(--textLight);
    }
    #contact .label {
        /* 14px - 16px */
        font-size: clamp(1rem, 1.5vw, 1.125rem);
        width: 100%;
        color: var(--textLight);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        gap: 0.25rem;
    }
    #contact .input {
        font-size: 1rem;
        width: 100%;
        height: 3.5rem;
        padding: 0;
        padding-left: 1.5rem;
        color: var(--textDark);
        background-color: #f7f7f7;
        border-radius: 0.5rem;
        border: none;
        /* prevents padding from adding to height and width */
        box-sizing: border-box;
    }
    #contact .input::placeholder {
        color: #7d799c;
        opacity: 0.7;
    }
    #contact .textarea {
        min-height: 7.5rem;
        padding-top: 1.5rem;
        margin-bottom: 0.75rem;
        font-family: inherit;
    }
    #contact .button-solid {
        font-size: 1.1rem;
        line-height: 3.5rem;
        text-decoration: none;
        font-weight: 700;
        overflow: hidden;
        margin: 0;
        color: #fff;
        padding: 0 3rem;
        border-radius: 1.875rem;
        background-color: var(--accentColor);
        display: inline-block;
        position: relative;
        z-index: 1;
        transition: color 0.3s;
    }
    #contact .button-solid:before {
        content: "";
        position: absolute;
        display: block;
        height: 100%;
        width: 0%;
        background: #FFF;
        opacity: 1;
        top: 0;
        left: 0;
        z-index: -1;
        transition: width 0.3s;
    }
    #contact .button-solid:hover:before {
        width: 100%;
    }
    #contact .submit {
        width: 100%;
        min-width: 12.5rem;
        border: none;
    }
    #contact .submit:hover {
        color: var(--accentColor);
        cursor: pointer;
    }
}

/************ TABLET - 768PX *************/
/*****************************************/
@media only screen and (min-width: 48rem) {
    /*************** BANNER ******************/
    /*****************************************/
    #banner .wave {
        width: 100%;
        left: 0;
        transform: none;
      }
    /*************** CONTACT *****************/
    /*****************************************/
    #contact .container {
        max-width: 80rem;
        flex-direction: row;
        justify-content: space-between;
    }
    #contact .content {
        width: 47%;
        /* prevents flexbox from squishing it */
        flex: none;
    }
    #contact .submit {
        width: auto;
    }
}

/************ DESKTOP - 1024PX ***********/
/*****************************************/
@media only screen and (min-width: 64rem) {
    /************** BANNER *******************/
    /*****************************************/
    #banner .int-title{
        padding: clamp(2.75rem, 25vw ,3rem);
    }
    /************** CONTACT ******************/
    /*****************************************/
    #contact .form {
        width: 46%;
        max-width: 36.125rem;
    }
    #contact .submit {
        width: auto;
    }
}

/******* LARGE DESKTOP - 1500PX **********/
/*****************************************/
@media only screen and (min-width: 93.75rem) {
    #contact .graphic {
        display: block;
    }
}

/************* DARK MODE *****************/
/*****************************************/
@media only screen and (min-width: 0em) {
    body.dark-mode #contact {
        background-color: var(--dark);
    }
    body.dark-mode #contact .link {
        color: var(--textLight);
        opacity: 0.88;
    }
    body.dark-mode #contact .form {
        background-color: var(--darkForm);
    }
    body.dark-mode #contact .h3,
    body.dark-mode #contact .label {
        color: var(--textLight);
    }
    body.dark-mode #contact input,
    body.dark-mode #contact textarea,
    body.dark-mode #contact select {
        background-color: var(--darkFormTextArea);
        color: var(--textLight);
    }
    body.dark-mode #contact .input::placeholder {
        color: #ffffff;
        opacity: 0.4;
    }
    body.dark-mode #contact .icon {
        filter: grayscale(2) brightness(2);
    }
}