﻿.home-content-grid {
	--padding-inline: 1rem;
	--content-max-width: 950px;
	--breakout-max-width: 1240px;
	--breakout-size: calc((var(--breakout-max-width) - var(--content-max-width)) / 2);
	display: grid;
	grid-template-columns: [full-width-start] minmax(var(--padding-inline), 1fr) [breakout-start] minmax(0, var(--breakout-size)) [content-start] min(100% - (var(--padding-inline) * 2), var(--content-max-width)) [content-end] minmax(0, var(--breakout-size)) [breakout-end] minmax(var(--padding-inline), 1fr) [full-width-end];
}

.home-step {
	display: grid;
	grid-template-columns: [left] 1fr [right] 1fr;
}

.home-content-grid > :not(.breakout, .full-width),
.full-width > :not(.breakout, .full-width) {
    grid-column: content;
}


.home-content-grid > .breakout {
    grid-column: breakout;
}

.home-content-grid > .full-width {
    grid-column: full-width;
    display: grid;
    grid-template-columns: inherit;
}

.home-top {
    display: grid;
    background-color: #2d3134;
}

.home-top__content-wrapper {
    display: grid;
    min-height: 320px;
    max-height: 490px;
    width: min(1652px, 100%);
    color: var(--color-white);
    justify-self: center;
    background-image: url('https://static.viacharacter.org/web/home/bg-clean-sized.webp');
    background-position: bottom;
    background-repeat: no-repeat;
}

.home-top__content-wrapper-inside {
    display: grid;
    grid-template-columns: 1fr .8fr;
    width: min(1240px, 100%);
    justify-self: center;
    position: relative;
}

.home-top__tagline-wrapper {
    margin-top: 2rem;
}

.home-top__tagline-wrapper h1 {
    font-size: 3.4rem;
    font-weight: var(--font-weight-light);
    font-family: var(--font-primary);
}

.home-top__tagline-wrapper h1 br {
    display: none;
}

.home-top__tagline-wrapper p {
    color: var(--color-white);
    margin-right: 6.25rem;
    margin-bottom: 0;
    margin-top: 1.25rem;
    font-size: 1.4rem;
    font-weight: var(--font-weight-light);
    line-height: 30px;
}

.home-top__strengths-wrapper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-gap: 2.8rem;
    margin-top: 1rem;
    position: absolute;
    right: -35px;
    
}

.home-top__strengths-wrapper .home-strength {
    display: grid;
    justify-items: center;
    width: 80px;
    height: 80px;
}

.home-top__strengths-wrapper .home-strength .strength-label {
    text-transform: uppercase;
    font-size: .7rem;
    font-weight: 500;
}

.home-top__strengths-wrapper .home-strength:nth-child(1) {
    margin-top: 0;
}

.home-top__strengths-wrapper .home-strength:nth-child(2) {
    margin-top: 1.5rem;
}

.home-top__strengths-wrapper .home-strength:nth-child(3) {
    margin-top: 0;
}

.home-top__strengths-wrapper .home-strength:nth-child(4) {
    margin-top: 1rem;
}

.home-top__strengths-wrapper .home-strength:nth-child(5) {
    margin-top: 1.5rem;
}

.home-paths {
    display: grid;
    background-color: var(--color-robins-egg);
    min-height: 320px;
}

.home-paths__wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 2.5rem;
    width: 1240px;
    height: 100%;
    margin-top: -1.25rem;
    padding-right: 3.4px;
    padding-bottom: 2rem;
    justify-self: center;
}

.home-path__consumers,
.home-path__pros {
    display: grid;
    grid-template-columns: 1fr;
    background-color: var(--color-white);
    border-radius: 10px;
    padding: 2.2rem;
}

.home-path__consumers > :last-child {
    margin-top: auto;
}

.home-path__consumers h2,
.home-path__pros h2 {
    color: var(--color-primary-blue);
    font-weight: var(--font-weight-bold);
    font-size: 1.8rem;
    letter-spacing: .4px;
    margin-bottom: 1.5rem;
}

.home-path__consumers h2::after,
.home-path__pros h2::after{
    display: inline-block;
    content: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='SVGRepo_bgCarrier' stroke-width='0'%3E%3C/g%3E%3Cg id='SVGRepo_tracerCarrier' stroke-linecap='round' stroke-linejoin='round'%3E%3C/g%3E%3Cg id='SVGRepo_iconCarrier'%3E%3Cpath d='M9 6L15 12L9 18' stroke='%230b78af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
    margin-left: .5rem;
    position: relative;
    top: .125em;
    flex-shrink: 0;
    width: 1em;
    height: 1em;
    transition: fill .3s;
}

.home-path__consumers p,
.home-path__pros p {
    font-size: 1rem;
    margin-bottom: 1.5rem;
}

.home-paths .action-button,
.home-step .action-button {
    height: 3.75rem;
    line-height: 60px;
    width: 320px;
    font-weight: var(--font-weight-bold);
    font-size: 1.1rem;
    border-radius: 10px;
}

.home-paths .action-button.lime {
    background-color: var(--color-lime-light);
}

.home-steps {
    margin-top: 3rem;
}

.home-steps h2,
.home-strengths-matter h2,
.home-flourishing h2,
.home-orgs h2,
.home-begin h2 {
    text-align: center;
    font-weight: var(--font-weight-extra-bold);
    margin-bottom: 3rem;
    padding-left: 4rem;
    padding-right: 4rem;
    line-height: 38px;
}

h2 span.survey-count {
    font-size: 2.2rem;
    /* Modified dark orange for contrast ratio */
    color: #BF5600;
}

.home-step {
    grid-gap: 6.25rem;
    border-bottom: 1px solid #707070;
    padding-bottom: 2.5rem;
    margin-bottom: 3.75rem;
}

.home-step:last-child {
    border-bottom: none;
}

.home-step__left {
}

.home-step__right {
    display: grid;
    justify-content: right;
}

.home-step h3 {
    color: var(--color-primary-blue);
    font-weight: var(--font-weight-extra-bold);
    font-size: 2rem;
    letter-spacing: .3px;
    text-transform: capitalize;
    margin-bottom: 1rem;
}

.home-step h4 {
    color: var(--color-text);
    font-weight: var(--font-weight-bold);
    font-size: 1.8rem;
    letter-spacing: .4px;
    text-transform: capitalize;
    margin-bottom: 1rem;
}

.home-step p {
    line-height: 22px;
    margin-bottom: 1.5rem;
}

.home-strengths-matter {
    background-color: var(--color-robins-egg-light);
}

.home-strengths-matter__content {
    padding-top: 2.5rem;
    padding-bottom: 4.4rem;
}

.home-strengths-matter__content h2 {
    margin-bottom: 1.5rem;
}

.home-strengths-matter__content p {
    margin-bottom: 2.5rem;
    width: 70%;
    text-align: center;
    justify-self: center;
}

.home-flourishing {
    margin-top: 3.75rem;
    margin-bottom: 3.75rem;
}

.home-flourishing__content {
    padding-bottom: 2rem;
}

.home-flourishing__content h2 {
    margin-bottom: 1.5rem;
}

.home-flourishing__content p.flourishing-description {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
    text-align: center;
    justify-self: center;
}

.home-flourishing__examples {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 3rem;
}

.home-flourishing-example {
    text-align: center;
}

.home-flourishing-example h3 {
    color: var(--color-primary-blue);
    font-weight: var(--font-weight-bold);
    font-size: 1.9rem;
    letter-spacing: .3px;
    text-transform: capitalize;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.home-flourishing-example p {
    line-height: 24px;
    margin-left: 1.5rem;
    margin-right: 1.5rem;
}

.home-orgs {
    /*background-color: #f7f7f7;*/
    background-color: #fff;
    padding: 4.5rem 0 4.5rem 0;
}

.home-orgs__logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4rem;
}

.home-begin {
    padding: 4.5rem 0 4.5rem 0;
}

.home-begin__content {
    justify-items: center;
}

/* Start charts */

.circular-chart {
    max-height: 180px;
    margin-bottom: 1rem;
}

.circle-bg {
    fill: none;
    stroke: #1d6e9b;
    stroke-width: 3.8px;
}

.circle {
    fill: none;
    stroke-width: 3.9px;
    stroke-linecap: square;
}

.circle.animation {
    animation: progress 3s ease-out forwards;
}

@keyframes progress {
    0% {
        stroke-dasharray: 0 100;
    }
}

.circular-chart.lime .circle {
    stroke: var(--color-lime);
}

.circular-chart.orange .circle {
    stroke: var(--color-orange);
}

.circular-chart.teal .circle {
    stroke: var(--color-aqua);
}

.single-chart {
    text-align: center;
}

.single-chart .percentage {
    fill: var(--color-primary-blue);
    font-size: 0.6em;
    font-weight: var(--font-weight-extra-bold);
    text-anchor: middle;
}

.single-chart__quote {
    font-weight: var(--font-weight-extra-bold);
    line-height: 22px;
    margin-bottom: .3rem;
}

.single-chart__source {
    font-size: .8rem;
}

/* End charts */

.home-charts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5rem;
    justify-content: center;
}


@media only screen and (max-width: 1310px) {
    .home-top__content-wrapper {
        width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
        background-position: right -150px bottom;
    }

    .home-top__strengths-wrapper {
        right: 0;
    }

    .home-paths__wrapper {
        width: 100%;
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media only screen and (max-width: 1220px) {
    .home-top__tagline-wrapper h1 {
        font-size: 3.2rem;
    }
}

@media only screen and (max-width: 1190px) {
    .home-top {
        background-image: url('https://static.viacharacter.org/web/home/bg-1024.webp');
        background-size: 100%;
        background-repeat: no-repeat;
        background-position: bottom;
    }

    .home-top__tagline-wrapper {
        grid-template-columns: 1fr;
        margin-top: 0;
    }

    .home-top__tagline-wrapper h1 {
        margin-top: 1.5rem;
        margin-bottom: 1rem;
        font-size: 48px;
    }

    .home-top__tagline-wrapper p {
        padding-left: 0;
        padding-right: 10rem;
        margin-bottom: 1rem;
        margin-right: 0;
        margin-top: 0;
    }

    .home-charts {
        grid-gap: 20px;
    }

    .home-flourishing__examples {
        grid-gap: 20px;
    }
}

@media only screen and (max-width: 1140px) {
    .home-top__tagline-wrapper h1 br {
        display: unset;
    }

    .home-top__tagline-wrapper p {
        font-size: 1.1rem;
        padding-right: 12rem;
    }
}

@media only screen and (max-width: 1024px) {
    .home-top__content-wrapper {
        background: none;
        height: 700px;
        display: block;
    }

    .home-top__content-wrapper-inside {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .home-top__tagline-wrapper h1 {
        font-size: 3.4rem;
    }

    .home-top__tagline-wrapper h1 br {
        display: none;
    }

    .home-top__tagline-wrapper p {
        display: none;
    }
    
    .home-paths__wrapper {
        grid-template-columns: 1fr;
        grid-gap: 1.5rem;
    }

    .home-top__strengths-wrapper {
        position: relative;
        margin-top: 1rem;
        width: 100%;
        display: grid;
        justify-items: center;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(1) {
        margin-top: .4rem !important;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(2) {
        margin-top: 1rem !important;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(3) {
        margin-top: -1.5rem !important;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(4) {
        margin-top: .6rem !important;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(5) {
        margin-top: 1rem !important;
    }

    .home-top__strengths-wrapper .home-strength {
        margin-top: 0 !important;
        width: 50px;
    }

    .home-top__strengths-wrapper .home-strength img {
        object-fit: contain;
        width: 50px;
    }

    .home-top__strengths-wrapper .home-strength .strength-label {
        font-size: .7rem;
    }

    .home-steps .home-step {
        grid-template-columns: 1fr;
        margin-bottom: 2rem;
    }

    .home-steps .home-step:last-child {
        margin-bottom: 0;
    }

    .home-steps .home-step h3,
    .home-steps .home-step h4,
    .home-steps .home-step p {
        text-align: center;
    }

    .home-steps h2 {
        margin-bottom: 2rem;
    }

    .home-steps .home-step__left,
    .home-steps .home-step__right {
        display: grid;
        justify-items: center;
    }

    .home-steps .home-step__image {
        display: none;
    }

    .home-steps .home-step .via-button {
        width: 100%;
    }

    .home-charts {
        grid-template-columns: 1fr;
        grid-gap: 40px;
    }

    .home-flourishing__examples {
        grid-template-columns: 1fr;
    }

    .home-flourishing-example p {
        margin-left: 100px;
        margin-right: 100px;
    }
}

@media only screen and (max-width: 768px) {

    .home-top {
        background-size: cover;
    }

    .home-top__content-wrapper {
        display: block;
        height: 450px;
    }

    .home-top__tagline-wrapper h1 {
        font-size: 3.4rem;
        line-height: 3.4rem;
        margin-bottom: .5rem;
        text-align: center;
    }

    .home-top__strengths-wrapper {
        margin-top: 1.5rem;
        position: relative;
        right: unset;
        display: grid;
        grid-gap: 0;
        height: unset;
    }

    .home-top__strengths-wrapper .home-strength:nth-child(3) {
        margin-top: 0 !important;
    }

    .home-paths__wrapper {
        width: auto;
        padding: 0;
        margin: -1.25rem 1.25rem 1.25rem 1.25rem;
        grid-gap: 1.25rem;
    }

    .home-path__consumers,
    .home-path__pros {
        padding: 1.25rem;
        justify-items: center;
        text-align: center;
    }

    .home-path__consumers h2,
    .home-path__pros h2 {
        font-weight: var(--font-weight-normal);
        margin-bottom: 1.25rem;
    }

    .home-path__consumers h2::after,
    .home-path__pros h2::after {
        content: '';
    }

    .home-path__consumers p :is(span),
    .home-path__pros p :is(span) {
        display: none;
    }

    .home-steps h2 {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .home-step {
        margin-bottom: 1.5rem;
    }

    .circular-chart {
        max-width: 140px;
    }

    .single-chart__quote {
        margin-left: 2rem;
        margin-right: 2rem;
    }

    .home-strengths-matter h2 {
        padding: 0 2rem 0 2rem;
    }

    .home-flourishing {
        margin-top: 2rem;
        margin-bottom: 2rem;
    }

    .home-flourishing h2 {
        padding-left: 0;
        padding-right: 0;
    }

    .home-flourishing__content p.flourishing-description {
        margin: 0;
    }

    .home-flourishing-example p {
        margin: 0 2rem 2rem 2rem;
    }

    .home-orgs {
        padding: 2rem 0 2rem 0;
    }

    .home-orgs h2 {
        padding: 0;
    }

    .home-orgs__logos {
        gap: 2rem;
    }

    .home-begin h2 {
        padding: 0;
    }

    .home-begin {
        padding: 2rem 0 0 0;
    }
}


@media only screen and (max-width: 552px) {

    .home-top__content-wrapper {
        height: 400px;
    }

    .home-top__strengths-wrapper .home-strength {
        width: 30px;
        height: 30px;
    }

    .home-top__strengths-wrapper .home-strength img {
        width: 30px;
        height: 30px;
    }

    .home-top__strengths-wrapper .home-strength .strength-label {
        font-size: .6rem;
        text-align: center;
    }
}

@media only screen and (max-width: 430px) {
    .home-top__tagline-wrapper h1 br {
        display: unset;
    }


    .home-top__strengths-wrapper {
        margin-top: 1.5rem;
    }

    .home-top__strengths-wrapper .home-strength {
        width: unset;
    }
}

@media only screen and (max-width: 400px) {
    .home-top__content-wrapper {
        padding: 0;
    }

    .home-path__consumers .via-button {
        width: 100%;
    }

    .home-paths__wrapper {
        width: auto;
        padding: 0;
        margin: -1.25rem 0 2rem 0;
        grid-gap: 1.25rem;
    }

    .home-paths__wrapper h2 {
        margin-bottom: 0;
    }
}

@media only screen and (max-width: 320px) {
    .home-paths__wrapper .via-button,
    .home-begin__content .via-button {
        width: 250px;
    }

    .home-top__tagline-wrapper {
        margin: 0;
    }

    .home-top__tagline-wrapper h1 {
        margin-bottom: 0;
    }

    .home-top__tagline-wrapper h1 br {
        display: none;
    }

    .home-top__strengths-wrapper {
        margin-top: .5rem;
    }
}