/* Default css*/

html {
    font-size: 16px;
}

@media (min-width: 768px) {
    html {
        font-size: 18px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.btn-lg {
    font-size: 1.5rem;
}

html {
    position: relative;
    min-height: 100%;
}

a {
    color: currentColor;
    text-decoration: none;
}

img {
    object-fit: cover;
}


/* Abby's CSS */

:root {
    --city-orange: #F5A117;
    --cooperation-orange: #D05000;
    --cooperation-white: #F4E9E6;
    --off-black: #23201E;
    --off-white: rgb(232, 217, 212, 0.35);
    --off-white-solid: #f7f2f0;
    --border-radius: 0.5rem;
}


body {
    font-family: "Lexend", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    line-height: 1.7;
    max-width: 1920px;
}

[class^='heading-'] {
    font-weight: 900;
    line-height: 1;
    letter-spacing: -1px;
}

h1 {
    margin-bottom: 2rem;
}

.heading-xl {
    font-size: clamp(2.1rem, 4vw + 2rem, 7rem);
}

.heading-lg {
    font-size: clamp(3.2rem, .7vw + 2.5rem, 4rem);
}

.heading-md {
    font-size: clamp(2rem, .7vw + 1rem, 3rem);
}

.heading-sm {
    font-size: clamp(1rem, .5vw + 1rem, 2rem);
    letter-spacing: 0;
}

.heading-xs {
    font-size: clamp(1rem, .2vw + 1rem, 1.5rem);
    letter-spacing: 0;
}

.row {
    margin-left: 0px;
    margin-right: 0px;
}

.text-lg {
    font-size: clamp(1rem, 0.4vw + 1rem, 1.5rem);
}

.gap-8 {
    gap: 4.8rem
}

.orange-text {
    color: var(--city-orange);
}


/*Cookie Consent Banner*/

.cookieConsentContainer {
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 101;
    text-align: center;
}

    .cookieConsentContainer .alert {
        margin-bottom: 0px !important;
    }

/* Nav bar */
/* (Lewis) made some changes here June 9th for design V8 */

.navbarContainer {
    z-index: 101;
    position: absolute;
    top: 0;
    width: 100%;
    max-width: 1903px;
    margin: auto;
    padding-top: 0;
    padding-bottom: 50px;
}

.navbar {
    color: var(--off-black);
    padding-left: 4rem;
    padding-right: 4rem;
    max-width: 1903px;
    margin: auto;
    padding-top: 0;
    padding-bottom: 0;
}

.nav-logo {
    display: flex;
    text-align: left;
    justify-content: left;
    gap: 1rem;
    align-items: center;
    height: 100%;
}

    .nav-logo > h1, ul {
        margin: 0;
        list-style-type: none;
        font-weight: bold;
    }

    .nav-logo:hover {
        color: #23201E;
        text-decoration: none;
    }

.nav-buttons {
    position: relative;
    display: flex;
    height: 100%;
    align-items: center;
    gap: 1.5rem;
    font-weight: bold;
    font-size: larger;
}

    .nav-buttons > li > a:hover,
    .sidenav-buttons > li > a:hover {
        text-decoration: underline;
        color: #23201E;
    }

#donate-button {
    background-color: #D05000;
    border-radius: 10px;
    padding: 0.5rem 1.2rem 0.5rem 1.2rem;
    color: #fff;
}

    #donate-button > a:hover {
        color: #fff;
    }

#nav-hamburger {
    color: #23201E;
    border-radius: 10px 10px 0 0;
    border: 0;
    background: transparent;
    top: 10px;
    padding-bottom: 20px;
    position: relative;
}

.nav-logo > img {
    height: 4rem;
    vertical-align: middle;
    margin: 0.4rem;
}

.nav-logo > h1 {
    font-size: 2em;
    font-weight: 700;
    margin: auto;
}

.sidenav {
    align-items: center;
    text-align: center;
    background-color: white;
    z-index: 10;
    right: 0;
    padding: 0;
    margin-right: 2rem;
    position: absolute;
    border-radius: 0% 0% 10% 10%;
    transition: all;
}

.sidenav-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    padding: 2rem;
}

.mobile-only {
    display: none;
}

@media (max-width: 1240px) {
    .nav-buttons {
        font-size: large;
    }

    .nav-logo > h1 {
        font-size: larger;
    }
}

@media (max-width: 1120px) {
    .nav-buttons {
        font-size: medium
    }

    .nav-logo > h1 {
        font-size: large;
    }
}

@media (max-width: 991px) {
    .mobile-only {
        display: block;
    }

    .nav-logo {
        padding: 0.5rem;
        gap: 0.2rem;
    }

    .desktop-only {
        display: none;
    }

    .navbar {
        padding-left: 15px;
        padding-right: 15px;
        z-index: 1;
    }


    .nav-logo > h1 {
        font-size: 1rem;
    }

    .nav-logo > img {
        height: 3rem;
    }

    .nav-logo > h1 {
        font-size: 1rem;
    }

    .sidenav {
        margin-right: 0;
        border-radius: 15% 0% 0% 15%;
    }
}


/* footer */
.footer {
    background-color: black;
    color: white;
    position: relative;
    min-height: 200px;
    overflow-y: hidden;
    max-width: 1920px;
    margin: auto;
}

    .footer .footer-content {
        display: flex;
        flex-wrap: wrap;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        max-width: 100%;
    }

    .footer .footer-content-left {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .footer .footer-links {
        display: flex;
        flex-wrap: wrap;
        z-index: 10;
        gap: 24px;
    }

    .footer .footer-socials {
        display: flex;
        gap: 24px;
        z-index: 10;
        margin-bottom: 50px;
    }

    .footer .footer-illustration {
        position: absolute;
        bottom: -6px;
        right: 0;
        width: clamp(500px, 100vw, 50%);
        filter: invert(1);
    }

@media(min-width: 768px) {
    .footer .footer-content {
        flex-direction: row;
        justify-content: space-between;
        gap: 12px;
    }
}

@media(min-width: 1280px) {
    .footer .footer-content-left {
        flex-direction: row;
        gap: 48px;
    }
}

/* standard page defaults */


.main-content {
    min-height: 86vh;
    color: var(--off-black);
}


    .main-content .content-page {
        background-color: var(--city-orange);
        min-height: 86vh;
        padding-top: 12vh;
    }


/* Home Page */

.homepage-text-block {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.homepage-image {
    max-width: 99svw;
    overflow: hidden;
}

/*Hero*/

.hero {
    color: var(--off-black);
    background: var(--cooperation-white)
}

.hero-container {
    min-height: 100svh;
    display: grid;
}

.hero-image-container {
    padding: 0px;
    background-image: url("../assets/img/hero-mobile.png");
    background-repeat: no-repeat;
    background-position: bottom left;
    background-size: cover;
}

@media screen and (min-width: 768px) {
    .hero-image-container {
        background-image: url("../assets/img/hero-tablet.png");
    }
}

@media screen and (min-width: 992px) {
    .hero-image-container {
        background-image: url("../assets/img/hero-desktop.png");
    }

    .hero-container {
        min-height: 850px;
        height: 100vh;
        max-height: 1080px;
    }
}

.hero img {
    width: 100%;
    object-fit: contain;
}

.hero button {
    color: white;
    background-color: var(--cooperation-orange);
    margin-top: 1.5rem;
    font-weight: 800;
    border-width: 0;
    display: inline-block;
    width: 15rem;
}

.hero p {
    margin-left: .5rem;
}

.hero-text {
    margin: 7rem 3rem 6rem 3rem;
    max-width: 80%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
}

.hero-image-container,
.hero-text {
    grid-area: 1/-1;
}

.this-is {
    margin-bottom: 0;
}


/* Homepage block */

.homepage-block > .row {
    padding: 3rem 2rem;
}

@media (min-width: 992px) {
    .homepage-block > .row {
        padding: 4rem;
    }
}

@media (max-width: 992px) {
    .homepage-block > .row {
        padding: 2rem 0rem;
    }
}

.homepage-block > div {
    min-height: 10vh;
}


.homepage-block.white {
    background-color: var(--cooperation-white);
}

.homepage-block.orange {
    background-color: var(--city-orange);
}


.homepage-block p {
    margin-bottom: 0.3rem;
}

.homepage-block .pattern-image {
    max-width: 100%;
    opacity: 0.3;
}


.homepage-block .video-container {
    max-width: 75%;
    margin: auto;
    position: relative;
    padding-bottom: 50%;
    height: 100%;
    width: 100%;
}

    .homepage-block .video-container iframe {
        position: absolute;
        top: 50%;
        left: 0;
        width: 100%;
        padding: 10%;
        height: 97.5%;
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
    }

.homepage-block.sign-up {
    background-color: var(--city-orange);
    background-image: url("../assets/img/spot 3 1.png");
    background-position-x: left;
    background-position-y: bottom;
    background-repeat: no-repeat;
}

.homepage-block .white a:link {
    color: var(--city-orange)
}

.homepage-block .white a:visited {
    color: var(--city-orange)
}

.homepage-block .white a:hover {
    color: var(--off-black)
}

.homepage-block .white a:hover {
    color: var(--off-black)
}

.homepage-block.how-we-work {
    background-color: black;
    color: white;
    display: flex;
    flex-wrap: wrap;
}


.hww {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap-reverse;
    background-color: #23201E;
    position: relative;
    overflow: hidden;
    color: white;
    padding: 2rem;
    padding-bottom: 0;
}

    .hww::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 33%;
        bottom: 0;
        z-index: -1;
        background-image: url("../assets/img/trees-pattern-grey.png");
        background-repeat: no-repeat;
    }

    .hww .spot {
        position: absolute;
        margin: auto;
        left: 42%;
        bottom: 0;
        z-index: 0;
    }

    .hww .video {
        z-index: 10;
        min-width: 50%;
        height: auto;
    }

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

.blurb {
    text-align: justify;
    height: 100%;
    padding-left: 10px;
    padding-right: 10px;
    z-index: 1;
}

    .blurb h1 {
        text-align: center;
        font-weight: bold;
    }

    .blurb a {
        text-decoration: underline;
    }

        .blurb a:hover {
            cursor: pointer;
        }

@media(min-width:1000px) {
    .hww {
        background-image: url("../assets/img/pattern\ 1\ 1\ grey.png");
        background-position-y: left;
        background-repeat: no-repeat;
        background-color: #23201E;
        color: white;
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
    }

        .hww > .p-0 {
            padding-bottom: 0;
        }

        .hww::before {
            visibility: hidden;
        }

        .hww .spot {
            position: absolute;
            bottom: 0;
            right: 33%;
        }

        .hww h1 {
            text-align: left;
        }

        .hww .video {
            min-width: 50%;
            height: auto;
            padding: 0% 0% 0 0;
        }

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

    .hww .blurb {
        margin-top: 0;
        transform: none;
    }
}

.homepage-block .feature-image-container {
    padding: 0 clamp(10px, 4vw, 40px);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100vw;
    &.white

{
    width: 66%;
    background-color: white;
    border-radius: 12px;
    padding: 30px;
}

& > img {
    width: 100%;
    max-width: 500px;
}

}

/*Content Page*/

.content-text {
    padding: 2rem;
    max-width: 100%;
}

    .content-text .top-image {
        height: 8rem;
        width: 100%;
        background-image: url('../assets/img/contentpagetupimage1.png');
        /*display: none;*/
    }

.content-text-block {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 3rem;
}

.content-text h1 {
    margin-bottom: 2rem;
    margin-top: 2rem;
}

.content-text li {
    margin-bottom: 1rem;
}

.content-text a {
    color: white;
}

    .content-text a:hover {
        text-decoration: underline;
    }

.button-link {
    background-color: var(--cooperation-orange);
    color: var(--cooperation-white);
    border-radius: 4px;
    padding: 2px 10px;
    width: max-content;
}


    .button-link:hover {
        text-decoration: underline;
        color: var(--cooperation-white);
    }


.content-text .assemblies-image-container {
    margin: auto;
    background-color: white;
    border-radius: var(--border-radius);
}


    .content-text .assemblies-image-container img {
        max-width: 100%;
    }


.content-text figure {
    max-width: 100%;
    text-align: center;
}

    .content-text figure img {
        max-width: 100%;
        padding: 2rem;
        text-align: center;
    }


.content-text .footnote {
    font-size: 0.8em;
}

.content-text .superscript {
    vertical-align: super;
    font-size: 0.8em;
    color: var(--off-black);
}

.content-text .subscript {
    vertical-align: sub;
    font-size: 0.8em;
}

.content-text .quote {
    font-style: italic;
    border-left: 4px solid var(--city-orange);
    padding-left: 1.5rem;
    margin-left: 0;
    background-color: rgba(213, 80, 0, 0.1);
    padding: 1rem 1rem 1rem 1.5rem;
}

.valuesList li {
    margin-bottom: 3rem;
}


    .valuesList li p {
        margin-left: 1rem;
    }

    .valuesList li h3 {
        padding-bottom: 1rem;
    }

    .valuesList li::marker {
        font-size: x-large;
    }


.content-text-block ul li {
    list-style: disc;
}

/* Safe zone within sibling sections that the call out block can "eat into". May need to be updated once responsivity is tweaked in other sections */
body {
    --call-out-block-safe-area-y: 290px;
    margin: auto;
}

@media (min-width: 400px) {
    body {
        --call-out-block-safe-area-y: 300px;
    }
}

@media (min-width: 992px) {
    body {
        --call-out-block-safe-area-y: 170px;
    }
}

section:has(+ .call-out-block-wrapper) {
    padding-bottom: var(--call-out-block-safe-area-y);
}

.call-out-block-wrapper + section {
    padding-top: calc(var(--call-out-block-safe-area-y));
}

.call-out-block-wrapper + section {
    padding-top: calc(var(--call-out-block-safe-area-y));
}

.call-out-block-wrapper {
    position: absolute;
    transform: translateY(-50%);
    max-width: 1920px;
    z-index: 10;
}

.call-out-block {
    position: relative;
    width: 90%;
    margin: 0 auto;
    background-color: var(--city-orange);
    padding: 2rem 1rem;
    border-radius: 8px;
    overflow: hidden;
    z-index: 0;
}

@media (min-width: 992px) {
    .call-out-block {
        padding: 2rem;
    }
}

@media (min-width: 1280px) {
    .call-out-block {
        padding: 3rem 3rem;
    }
}

.call-out-block-illo {
    position: absolute;
    bottom: -8%;
    left: 36%;
    z-index: -1;
    width: 160px;
}

@media (min-width: 992px) {
    .call-out-block-illo {
        left: 36%;
        width: 230px;
    }
}

.call-out-block-text {
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    > p

{
    margin-bottom: 0;
}

}

@media (min-width: 1280px) {
    .call-out-block-text > p {
        width: 80%;
    }
}

.call-out-block-form {
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0;
}

    .call-out-block-form label {
        color: white;
        margin-bottom: 0;
    }

    .call-out-block-form input {
        border: none;
    }

    .call-out-block-form button {
        color: white;
        background-color: var(--cooperation-orange);
        border: none;
        font-weight: 800;
    }

.form-final-row > * {
    /* Recreating bootstrap's `row` padding without any of its other baggage */
    padding-left: calc(var(--bs-gutter-x) * 0.5);
    padding-right: calc(var(--bs-gutter-x) * 0.5);
}


.call-out-block-form .errorMessage {
    color: green;
    font-weight: bold;
}


.call-out-block-form #form-completed {
    text-align: center;
}

#whats-happening-scroll {
    display: none;
}

@media (max-width: 992px) {
    #happening-next-boxes {
        display: flex;
        overflow-x: scroll;
        flex-wrap: nowrap;
        gap: 2.5rem;
    }

    #whats-happening-scroll {
        display: block;
    }

    .event-item {
        width: 350px;
    }

    #happening-next-boxes-container {
        padding: 0;
    }
}

.event-item p {
    margin-bottom: 0;
}

/*Embedded form styling*/

#can-form-area-support-the-hull-peoples-assembly {
    max-width: 90%;
    margin: auto;
    color: var(--off-black);
}


    #can-form-area-support-the-hull-peoples-assembly #can_embed_form_inner > h2 {
        font-size: clamp(3.2rem, .7vw + 2.5rem, 4rem);
        font-weight: 900;
        line-height: 1;
        letter-spacing: -1px;
        margin-top: 2rem;
        border-bottom: none;
    }


    #can-form-area-support-the-hull-peoples-assembly #can_embed_form_inner > h4 {
        font-size: clamp(2rem, .7vw + 1rem, 3rem);
        font-weight: 900;
        line-height: 1;
        letter-spacing: -1px;
        margin-top: 2rem;
        border-bottom: none;
    }


    #can-form-area-support-the-hull-peoples-assembly #can_embed_form p {
        font: inherit;
        font-size: 1.2em;
    }

    #can-form-area-support-the-hull-peoples-assembly #can_embed_form span > label,
    #can-form-area-support-the-hull-peoples-assembly #can_embed_form span,
    #can-form-area-support-the-hull-peoples-assembly #can_embed_form li label {
        font: inherit;
        font-size: 16px;
    }

    #can-form-area-support-the-hull-peoples-assembly #can_embed_form input[type=submit] {
        border-radius: var(--border-radius);
        background: var(--cooperation-orange);
        font-size: 2rem;
        font: inherit;
    }


    #can-form-area-support-the-hull-peoples-assembly .floatlabel-input::placeholder {
        color: var(--off-black);
    }

    #can-form-area-support-the-hull-peoples-assembly #can_embed_form input[type=text],
    #can-form-area-support-the-hull-peoples-assembly #can_embed_form input[type=email] {
        min-height: calc(1.5em + 1rem + 2px);
        padding: .5rem 1rem;
        font-size: 1.25rem;
        border-radius: var(--border-radius);
    }

    #can-form-area-support-the-hull-peoples-assembly #can_embed_form input[type=checkbox] {
        transform: scale(1.5);
    }

.blog-post-summary {
    position: relative;
    display: flex;
    flex-direction: row;
    color: var(--off-black);
    background-color: var(--cooperation-white);
    margin-bottom: 5%;
    border-radius: 1rem;
    padding: 0.5rem;
}

.blog-summary-list-image-container {
    padding: 0.5rem;
}

    .blog-summary-list-image-container img {
        width: 100%;
        border-radius: 10%;
        object-fit: cover;
    }


.blog-summary-text-container {
    padding-top: 1rem;
    width: 80%;
    padding-right: 3rem;
    padding-left: 2rem;
}

    .blog-summary-text-container h3,
    .blog-post-latest-container h3 {
        margin-left: 0;
        font-weight: bolder;
    }

    .blog-summary-text-container .text-line,
    .blog-post-latest-container .text-line {
        font-weight: bold;
        margin-left: 0;
        margin-bottom: 0;
    }

.blog-summary-link-container {
    width: 5rem;
    margin-top: auto;
    margin-bottom: auto;
}

    .blog-summary-link-container img {
        object-fit: contain;
    }


.blog-post-latest-container {
    color: var(--off-black);
    background-color: var(--cooperation-white);
    margin-bottom: 5%;
    border-radius: 1rem;
    padding: 1.5rem;
}

    .blog-post-latest-container p {
        margin-left: 0;
    }

.blog-summary-latest-image-container {
    text-align: center;
    border-radius: 4rem;
    margin-bottom: 1rem;
}

    .blog-summary-latest-image-container img {
        border-radius: 1rem;
        width: 100%;
    }


.blog-post-latest-container .summary-text {
    margin-top: 0.5rem;
}

.blog-post-latest-link-container {
    margin-top: auto;
    margin-bottom: auto;
    display: flex;
    justify-content: space-between;
}

.blog-post-date,
.blog-summary-date {
    color: var(--cooperation-orange);
}

.blog-summary-text {
    color: #474747;
    margin-bottom: 0.5rem;
}

.our-blog-subtitle {
    font-weight: bold;
}


@media only screen and (max-width: 600px) {
    .blog-post-summary {
        position: relative;
        display: flex;
        flex-direction: column;
        color: var(--off-black);
        background-color: var(--cooperation-white);
        margin-bottom: 5%;
        border-radius: 1rem;
        padding: 0.5rem;
    }

    .blog-summary-link-container {
        width: 5rem;
        margin-top: auto;
        margin-bottom: auto;
        margin-left: 85%;
    }

        .blog-summary-link-container img {
            object-fit: contain;
        }
}

.blog-post-summary-container .page-link {
    color: var(--cooperation-orange);
}

.blog-post-summary-container .page-item.active .page-link {
    background-color: var(--cooperation-orange);
    border-color: var(--cooperation-orange);
}

.blog-post-summary-container ul {
    padding-left: 0;
}



/*Event items*/
.event-item {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    background-color: var(--off-black);
    color: var(--cooperation-white);
    border-radius: 8px;
    overflow: hidden;
    transition: transform 100ms;
    &:has(a:hover)

{
    transform: translateY(-0.2rem);
}

}

.event-item .header-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.event-item .date-tag {
    background-color: var(--cooperation-white);
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: 0.2rem 1rem;
    color: black;
    z-index: 100;
    text-align: center;
    border-radius: 6px;
}

.event-item .content {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
    gap: 0.2rem;

}

    .event-item .content .description-block {
        display: flex;
        flex-direction: row;
        gap: 1rem;
        align-items: end;
        margin-top: 0.8rem;
    }

        .event-item .content .description-block .text-sm {
            line-height: 1.4;
        }

    .event-item .content p {
        font-size: 1rem;
    }

.event-item .event-time-and-location p {
    color: var(--city-orange);
}

.event-item .event-time-and-location a {
    color: var(--city-orange);
    text-decoration: underline;
}

