/* ==========================================================================
   Base & Reset
   ========================================================================== */

html {
    margin: 0;
    padding: 0;
    background-color: #F7F7F6;
    overflow-x: hidden;
    scroll-behavior: smooth;
}

body {
    width: 100%;
    padding: 0;
    margin: 0 !important;
    overflow-x: hidden;
}


/* ==========================================================================
   Typography
   ========================================================================== */

h1 {
    font-family: "proxima-nova", sans-serif;
    font-size: 1.125rem;
    color: #fff;
}

h2, h3, h4, h5, h6 {
    font-family: "eb-garamond", serif;
    font-weight: 400;
}

h2 {
    font-size: 4.875rem;
}

h3 {
    font-size: 2.813rem;
}

h4 {
    font-size: 1.5rem;
    font-weight: 600;
}

p, button, ul, .activedemand-text-wrapper {
    font-family: "proxima-nova", sans-serif;
    font-size: 18px;
}

ul {
    padding-left: 0;
}

a {
    color: #7D5E34;
    text-decoration: none;
    font-weight: 600;
}

a:hover {
    color: color-mix(in srgb, #7D5E34 50%, black 30%);
}

.garamond {
    font-family: "eb-garamond", serif;
}




/* ==========================================================================
   Lists
   ========================================================================== */

li {
    list-style: none;
    display: flex;
    align-items: flex-start;
}

ul li {
    padding-bottom: 1.5rem;
}


li::before {
    content: '';
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    background-image: url(../images/BulletPoint.png);
    background-size: contain;
    background-repeat: no-repeat;
    margin-right: 0.5rem;
}

/* Link lists: plain, no custom bullet */
.link-list li {
    display: block;
}

.link-list li::before {
    display: none;
}

/* Ordered lists: standard numbers */
ol {
    padding-inline-start: 20px;
}

ol li {
    display: list-item;
    list-style: decimal;
    font-family: "proxima-nova", sans-serif;
    font-size: 18px;
}

ol li::before {
    display: none;
}


/* ==========================================================================
   Layout
   ========================================================================== */

.two-col {
    display: flex;
}

.two-col > div {
    flex: 0 0 50vw;
    width: 50vw;
    overflow: hidden;
}

.two-col > div img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.content {
    padding: 3rem 10rem;
}


#form {
    padding-bottom: 40px;
}


/* ==========================================================================
   Utility
   ========================================================================== */

.dark {
    background-color: #EFEFEC;
}


/* ==========================================================================
   Components
   ========================================================================== */

/* Hero */
.hero {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background-color: #154734;
    color: #fff;
}

.hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(rgba(0,0,0,0) 50%, rgba(0,0,0,0.2) 100%);
    pointer-events: none;
}

.hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.hero .content {
    flex: 1;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.hero .content p {
    font-size: 1.375rem;
}

/* Logo */
.logo {
    width: min(300px, 100%);
    max-width: 300px;
    height: auto;
}

/* ActiveDemand form button */
.activedemand-button {
    font-family: "proxima-nova", sans-serif !important;
}

/* Button */
button {
    color: #fff;
    background-color: #006341;
    padding: 1rem 1.5rem;
    cursor: pointer;
}

button:hover {
    background-color: #154734 !important;
}

/* Center text band */
.center-text {
    min-height: 25vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 18em;
    background-image: url(../images/Full-Life-Flower.png);
    background-repeat: no-repeat;
    background-position: right 1rem top 1rem;
    background-size: 12rem;
}

.who-we-are {
     background-image: url(../images/Full-Life-Flower.png);
    background-repeat: no-repeat;
    background-position: right 5rem top 5rem;
    background-size: 12rem;
}

.center-text p {
    text-align: center;
}

/* Quote block with bracket image */
.copy-box.quote {
    align-self: flex-end;
}

.bracket-image {
    max-height: 250px !important;
    width: auto !important;
}

.bracket-quote {
    display: flex;
    flex-direction: row;
    max-height: 250px;
    height: fit-content;
}

.bracket-quote img {
    width: auto;
    max-height: 250px;
    object-fit: contain;
    align-self: stretch;
}



/* Site map key overlay */
.site-map-key {
    width: 15vw;
    padding: 2rem;
    box-sizing: border-box;
    background-color: #EFEFEC;
    border: #006341 2px solid;
    margin: 2rem;
}

/* Site map full-bleed */
.site-map {
    width: 100%;
    aspect-ratio: 2 / 1;
    background-image: url(../images/TFCO-SiteMap.jpg);
    background-size: cover;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
}

.site-map-mobile {
    width: 100vw;
    height: auto;
    display: none;
}

.site-map-mobile .site-map-key {
    padding: 2rem;
    border: none;
    margin: 0;
    width: 100vw;
}

.site-map-mobile img {
    width: 100%;
    height: auto;
}

/* ==========================================================================
   Tablet / narrow desktop  (≤ 1200px)
   ========================================================================== */

@media (max-width: 1200px) {
    .content {
        padding: 3rem 2rem;
    }

    .center-text {
        padding: 0 8em;
    }

    .bracket-image {
        display: none !important;
    }
}


/* ==========================================================================
   Mobile  (≤ 768px)
   ========================================================================== */

@media (max-width: 768px) {
    .content {
        padding: 2rem;
    }

    ul {
        padding: 0;
    }

    ul li {
        padding-right: 0;
        margin-bottom: 1.5rem;
    }

    .center-text {
        padding: 2rem;
    }

    .two-col {
        display: block;
    }

    .two-col > div {
        width: 100%;
        overflow: visible;
    }

    /* Swap image above copy in stripe-two on mobile */
    .stripe-two {
        display: flex;
        flex-direction: column;
    }

    .stripe-two .image-box {
        order: -1;
    }

    h1 {
        text-align: left !important;
    }

    h2 {
        font-size: 3rem;
    }

    h3 {
        font-size: 2rem
    }

    .bracket-image {
        display: none !important;
    }

    .hero {
        min-height: 100svh;
    }

    .hero::after {
        background: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2));
    }

    .logo {
        width: min(150px, 100%);
        max-width: 150px;
    }

    .site-map{
        display: none;
    }

    .site-map-mobile {
        display: block;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */

.footer {
    background-color: #006341;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer-left {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.footer a {
    color: #ffffff;
    font-family: proxima-nova, sans-serif;
    font-size: 0.875rem;
    text-decoration: none;
}

.fheo-logo {
    height: 1.25rem;
    width: auto;
    filter: brightness(0) invert(1);
    display: block;
}

.footer-icon-link {
    color: #ffffff;
    font-size: 1.25rem;
    line-height: 1;
}

.footer p {
    margin: 0;
    color: #ffffff;
    font-family: proxima-nova, sans-serif;
    font-size: 0.875rem;
}
