:root {
    --sustainability-green: #315b3b;
    --sustainability-deep-green: #173b29;
    --sustainability-rice: #d7b45b;
    --sustainability-paper: #f5f6f2;
    --sustainability-charcoal: #202622;
    --sustainability-red: #e51e2a;
}

.sustainability-page {
    overflow:clip;
    color:var(--sustainability-charcoal);
    background:#fff;
}

.sustainability-shell {
    width:min(1400px,calc(100% - 96px));
    margin:0 auto;
}

.sustainability-hero {
    position:relative;
    height:600px;
    min-height:520px;
    overflow:hidden;
    color:#fff;
    background:#161d18;
}

.sustainability-hero-video {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.sustainability-hero-shade {
    position:absolute;
    inset:0;
    z-index:1;
    background:rgba(8,17,12,.34);
}

.sustainability-carousel {
    position:absolute;
    inset:0;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
}

.sustainability-slides {
    position:relative;
    width:100%;
    height:110px;
    overflow:hidden;
}

.sustainability-slide {
    position:absolute;
    inset:0;
    display:grid;
    visibility:hidden;
    place-items:center;
    transform:translate3d(100%,0,0);
}

.sustainability-slide.is-active {
    z-index:1;
    visibility:visible;
    transform:translate3d(0,0,0);
}

.sustainability-slide.is-entering-right,
.sustainability-slide.is-entering-left,
.sustainability-slide.is-leaving-left,
.sustainability-slide.is-leaving-right {
    z-index:2;
    visibility:visible;
    animation-duration:.72s;
    animation-fill-mode:forwards;
    animation-timing-function:cubic-bezier(.22,.61,.36,1);
}

.sustainability-slide.is-entering-right {
    animation-name:sustainability-slide-in-right;
}

.sustainability-slide.is-entering-left {
    animation-name:sustainability-slide-in-left;
}

.sustainability-slide.is-leaving-left {
    z-index:1;
    animation-name:sustainability-slide-out-left;
}

.sustainability-slide.is-leaving-right {
    z-index:1;
    animation-name:sustainability-slide-out-right;
}

@keyframes sustainability-slide-in-right {
    from { transform:translate3d(100%,0,0); }
    to { transform:translate3d(0,0,0); }
}

@keyframes sustainability-slide-in-left {
    from { transform:translate3d(-100%,0,0); }
    to { transform:translate3d(0,0,0); }
}

@keyframes sustainability-slide-out-left {
    from { transform:translate3d(0,0,0); }
    to { transform:translate3d(-100%,0,0); }
}

@keyframes sustainability-slide-out-right {
    from { transform:translate3d(0,0,0); }
    to { transform:translate3d(100%,0,0); }
}

.sustainability-hero-copy {
    width:min(900px,calc(100% - 80px));
    text-align:center;
}

.sustainability-kicker,
.sustainability-statement-copy > p {
    margin:0 0 18px;
    color:inherit;
    font-size:13px;
    font-weight:700;
    letter-spacing:.18em;
}

.sustainability-hero-copy h1,
.sustainability-hero-copy h2 {
    margin:0 auto;
    font-size:42px;
    font-weight:400;
    letter-spacing:0;
    line-height:1.3;
}

.sustainability-hero-copy p {
    margin:20px 0 0;
    color:#fff;
    font-size:17px;
    font-weight:400;
    letter-spacing:.08em;
    line-height:1.7;
}

.sustainability-dots {
    display:flex;
    justify-content:center;
    gap:16px;
}

.sustainability-dots button {
    display:grid;
    width:18px;
    height:18px;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer;
    place-items:center;
}

.sustainability-dots span {
    display:block;
    width:10px;
    height:10px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 4px rgba(0,0,0,.25);
    transition:background-color .25s ease,transform .25s ease;
}

.sustainability-dots button.is-active span {
    background:#e6232a;
}

.sustainability-dots button:hover span,
.sustainability-dots button:focus-visible span {
    transform:scale(1.18);
}

.sustainability-dots button:focus-visible {
    outline:2px solid #fff;
    outline-offset:2px;
}

.sustainability-intro {
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:120px;
    align-items:start;
    padding:142px 0 150px;
}

.sustainability-kicker {
    color:var(--sustainability-red);
}

.sustainability-intro h2,
.sustainability-initiative h2,
.sustainability-statement h2 {
    margin:0;
    letter-spacing:0;
}

.sustainability-intro h2 {
    max-width:620px;
    font-size:46px;
    font-weight:500;
    line-height:1.36;
}

.sustainability-intro-copy {
    padding-top:32px;
}

.sustainability-intro-copy p {
    margin:0;
    color:#59615c;
    font-size:17px;
    line-height:2;
}

.sustainability-intro-copy p + p {
    margin-top:24px;
}

.sustainability-statement {
    position:relative;
    display:grid;
    height:610px;
    overflow:hidden;
    place-items:center;
    color:#fff;
}

.sustainability-statement > img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

.sustainability-statement-shade {
    position:absolute;
    inset:0;
    background:rgba(20,52,32,.52);
}

.sustainability-statement-copy {
    position:relative;
    z-index:1;
    width:min(900px,calc(100% - 80px));
    text-align:center;
}

.sustainability-statement h2 {
    font-size:50px;
    font-weight:500;
    line-height:1.3;
}

.sustainability-statement-copy span {
    display:block;
    max-width:750px;
    margin:28px auto 0;
    color:rgba(255,255,255,.9);
    font-size:18px;
    line-height:1.8;
}

.sustainability-initiatives {
    padding:130px 0 150px;
}

.sustainability-initiative {
    display:grid;
    grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
    gap:110px;
    align-items:center;
}

.sustainability-initiative + .sustainability-initiative {
    margin-top:150px;
}

.sustainability-initiative--reverse figure {
    order:2;
}

.sustainability-initiative--reverse .sustainability-initiative-copy {
    order:1;
}

.sustainability-initiative figure {
    position:relative;
    overflow:hidden;
    margin:0;
    aspect-ratio:1;
    background:var(--sustainability-paper);
}

.sustainability-initiative figure::after {
    position:absolute;
    right:0;
    bottom:0;
    width:82px;
    height:7px;
    content:"";
    background:var(--sustainability-red);
}

.sustainability-initiative figure img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.sustainability-initiative:hover figure img {
    transform:scale(1.025);
}

.sustainability-initiative-copy {
    max-width:570px;
}

.sustainability-initiative h2 {
    font-size:42px;
    font-weight:500;
    line-height:1.36;
}

.sustainability-initiative-copy > p:not(.sustainability-kicker) {
    margin:28px 0 0;
    color:#5a625c;
    font-size:17px;
    line-height:1.95;
}

.sustainability-initiative ul {
    margin:32px 0 0;
    padding:0;
    list-style:none;
}

.sustainability-initiative li {
    position:relative;
    margin:0;
    padding:16px 0 16px 27px;
    border-top:1px solid #dfe4df;
    color:#3c453f;
    font-size:15px;
    line-height:1.7;
}

.sustainability-initiative li:last-child {
    border-bottom:1px solid #dfe4df;
}

.sustainability-initiative li::before {
    position:absolute;
    top:26px;
    left:2px;
    width:8px;
    height:8px;
    border-radius:50%;
    content:"";
    background:var(--sustainability-green);
}

.js .sustainability-page [data-reveal] {
    opacity:0;
    transform:translateY(34px);
    transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);
}

.js .sustainability-page [data-reveal].is-visible {
    opacity:1;
    transform:none;
}

@media (max-width:1100px) {
    .sustainability-shell {
        width:calc(100% - 64px);
    }

    .sustainability-hero {
        height:560px;
    }

    .sustainability-hero-copy h1,
    .sustainability-hero-copy h2 {
        font-size:38px;
    }

    .sustainability-intro {
        gap:70px;
        padding:110px 0 120px;
    }

    .sustainability-intro h2 {
        font-size:39px;
    }

    .sustainability-initiative {
        gap:60px;
    }

    .sustainability-initiative h2 {
        font-size:36px;
    }
}

@media (max-width:780px) {
    .sustainability-shell {
        width:calc(100% - 40px);
    }

    .sustainability-hero {
        height:480px;
        min-height:0;
    }

    .sustainability-hero-copy {
        width:calc(100% - 48px);
    }

    .sustainability-hero-copy h1,
    .sustainability-hero-copy h2 {
        font-size:34px;
    }

    .sustainability-dots {
        gap:14px;
    }

    .sustainability-intro {
        grid-template-columns:1fr;
        gap:36px;
        padding:82px 0 88px;
    }

    .sustainability-intro-copy {
        padding-top:0;
    }

    .sustainability-statement {
        height:520px;
    }

    .sustainability-statement-copy {
        width:calc(100% - 40px);
    }

    .sustainability-statement h2 {
        font-size:38px;
    }

    .sustainability-initiatives {
        padding:90px 0 100px;
    }

    .sustainability-initiative {
        grid-template-columns:1fr;
        gap:46px;
    }

    .sustainability-initiative + .sustainability-initiative {
        margin-top:110px;
    }

    .sustainability-initiative--reverse figure,
    .sustainability-initiative--reverse .sustainability-initiative-copy {
        order:initial;
    }

    .sustainability-initiative-copy {
        max-width:none;
    }
}

@media (max-width:520px) {
    .sustainability-shell {
        width:calc(100% - 32px);
    }

    .sustainability-hero {
        height:430px;
    }

    .sustainability-hero-copy h1,
    .sustainability-hero-copy h2 {
        font-size:30px;
        line-height:1.28;
    }

    .sustainability-kicker,
    .sustainability-statement-copy > p {
        margin-bottom:13px;
        font-size:11px;
    }

    .sustainability-hero-copy p {
        margin-top:16px;
        font-size:15px;
        letter-spacing:0;
    }

    .sustainability-intro h2,
    .sustainability-statement h2,
    .sustainability-initiative h2 {
        font-size:30px;
    }

    .sustainability-intro-copy p,
    .sustainability-initiative-copy > p:not(.sustainability-kicker) {
        font-size:16px;
        line-height:1.9;
    }

    .sustainability-statement {
        height:450px;
    }

    .sustainability-statement-copy span {
        margin-top:22px;
        font-size:16px;
    }

    .sustainability-initiatives {
        padding-top:70px;
    }

    .sustainability-initiative + .sustainability-initiative {
        margin-top:86px;
    }

    .sustainability-initiative figure::after {
        width:60px;
        height:5px;
    }

    .sustainability-initiative li {
        padding-left:24px;
        font-size:14px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .sustainability-slide,
    .sustainability-slide.is-entering-right,
    .sustainability-slide.is-entering-left,
    .sustainability-slide.is-leaving-left,
    .sustainability-slide.is-leaving-right,
    .sustainability-dots span,
    .sustainability-initiative figure img,
    .js .sustainability-page [data-reveal] {
        transition:none;
        animation:none;
    }

    .js .sustainability-page [data-reveal] {
        opacity:1;
        transform:none;
    }
}
