/* ===================================
    Unlock Farm Potential
====================================== */
/* font */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
/* variable */
:root {     
    --ufp-green: #073827;
    --ufp-lime: #CCDB29;
    --ufp-sky: #99CAFB;
    --ufp-deep-green: #002212;
    --ufp-neutral-light: #CFDCD6;
    --ufp-paper: #F7F6EF;
    --ufp-white: #FFFFFF;
    --ufp-gradient: linear-gradient(90deg, #073827 0%, #CCDB29 100%);
    --ufp-cutout-card: polygon(1.5% 1%, 98.5% 0, 100% 96%, 96% 100%, 1% 98%, 0 7%);
    --ufp-cutout-compact: polygon(3% 4%, 98% 0, 100% 88%, 94% 100%, 1% 94%, 0 12%);
    --base-color: var(--ufp-lime);
    --dark-gray: var(--ufp-green); 
    --medium-gray: #52655D;
    --alt-font: 'Montserrat', Arial, sans-serif;
    --primary-font: 'Inter', Arial, sans-serif;
    --ufp-button-font-size: 14px;
    --ufp-button-line-height: 1.05;
    --ufp-hero-title-size: clamp(82px, 5.5vw, 88px);
    --ufp-hero-title-line-height: 1.02;
    --ufp-hero-title-letter-spacing: -.045em;
} 
/* Global entrances: readable without JS; hidden before first paint only when
   the head controller is active. Each block fades once, with no position jump. */
[data-ufp-reveal] {
    opacity: 1;
    transition: none;
}
@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
    .ufp-reveal-enabled [data-ufp-reveal] {
        transition: opacity 650ms cubic-bezier(.25, .46, .45, .94);
    }
    .ufp-reveal-enabled [data-ufp-reveal]:not(.ufp-revealed) {
        opacity: 0;
    }
    .ufp-reveal-enabled [data-ufp-reveal].ufp-reveal-instant {
        transition: none;
    }
}
@media print {
    .ufp-reveal-enabled [data-ufp-reveal] {
        opacity: 1 !important;
        transition: none !important;
    }
}

/* reset */
body {
    font-size: 17px;
    line-height: 28px;
}
.alt-font { 
    word-spacing: normal;
}
.map .alt-font {
    word-spacing: normal;
}
.ws-minus-10px {
    word-spacing: -10px;
}
.ws-minus-3px {
    word-spacing: -3px;
}
section {
    padding-top: 100px;
    padding-bottom: 100px;
}
html,
body {
    overflow-x: hidden;
}
.h-700 {
    height: 650px !important;
}
/* header */
header .navbar-brand img {
    max-height: 70px;
}
.navbar .navbar-nav .nav-link {
    font-weight: 500;
    font-size: 18px;
    letter-spacing: -0.3px;
    padding: 10px 15px;
}
header .navbar-brand {
    padding: 25px 0;
}
.ufp-logo-link {
    --ufp-logo-tilt: 2.25deg;
    --ufp-logo-shadow: rgba(0, 0, 0, .3);
    transform-origin: 48% 58%;
    transition: transform 260ms cubic-bezier(.22, .75, .2, 1);
    will-change: transform;
}
.ufp-logo-link img {
    transition: filter 260ms cubic-bezier(.22, .75, .2, 1);
    will-change: filter;
}
.ufp-logo-link:hover,
.ufp-logo-link:focus-visible {
    transform: translateY(-4px) rotate(var(--ufp-logo-tilt)) scale(1.025);
}
.ufp-logo-link:hover img,
.ufp-logo-link:focus-visible img {
    filter: drop-shadow(5px 7px 0 var(--ufp-logo-shadow));
}
.ufp-logo-link:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 4px;
}
.ufp-logo-link:active {
    transform: translateY(0) rotate(0) scale(.98);
}
.ufp-logo-link:active img {
    filter: none;
}
.ufp-site-nav {
    background-color: transparent !important;
    background-image: none !important;
}
.ufp-home-page .ufp-site-nav {
    border-bottom-color: transparent !important;
}
/* RUN-25: full-bleed 16:9 scene; both reveal states share one uncropped stage. */
.ufp-home-hero {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 16 / 9;
    padding: 0 !important;
    overflow: hidden;
    background: var(--ufp-sky);
    isolation: isolate;
}
.ufp-home-hero > .container {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 82%;
    max-width: none;
    padding: 0;
    pointer-events: none;
}
.ufp-home-hero__content {
    position: absolute;
    top: 24%;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 52%;
    pointer-events: auto;
}
.ufp-home-hero .ufp-display-title.ufp-hero-title {
    margin: 0;
    font-size: clamp(52px, 4.6vw, 88px);
    line-height: .98;
    letter-spacing: -.04em;
    text-transform: uppercase;
    color: var(--ufp-green);
}
.ufp-home-hero .ufp-hero-title > span {
    display: block;
    width: fit-content;
    white-space: nowrap;
}
.ufp-home-hero .ufp-hero-title .ufp-highlight {
    margin-top: .08em;
}
.ufp-home-hero__intro {
    max-width: 490px;
    margin: 32px 0 20px;
    padding: 0;
    color: var(--ufp-deep-green);
    font-size: clamp(16px, 1.05vw, 20px);
    line-height: 1.45;
}
.ufp-home-hero .btn.ufp-button {
    max-width: 100%;
    white-space: normal;
}
.ufp-hero-reveal {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: var(--ufp-sky);
    cursor: crosshair;
    contain: paint;
}
/* RUN-26: a feathered circular mask, explicitly requested by the client. */
.ufp-hero-reveal__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: var(--ufp-hero-image-x, 50%) center;
    pointer-events: none;
    user-select: none;
}
.ufp-hero-reveal__image--base {
    z-index: 0;
    filter: blur(0);
    transform: scale(1);
    transition: filter 360ms ease, transform 360ms ease, opacity 220ms ease;
}
.ufp-hero-reveal__image--built {
    z-index: 1;
    opacity: 0;
    -webkit-mask-image: radial-gradient(circle var(--ufp-reveal-radius, 0px) at var(--ufp-reveal-x, 50%) var(--ufp-reveal-y, 50%), #000 60%, transparent 100%);
    mask-image: radial-gradient(circle var(--ufp-reveal-radius, 0px) at var(--ufp-reveal-x, 50%) var(--ufp-reveal-y, 50%), #000 60%, transparent 100%);
    transition: opacity 220ms ease;
}
.ufp-hero-reveal.is-revealing .ufp-hero-reveal__image--built,
.ufp-hero-reveal.is-fully-revealed .ufp-hero-reveal__image--built {
    opacity: 1;
}
.ufp-hero-reveal.is-revealing .ufp-hero-reveal__image--base {
    filter: blur(2.4px);
    transform: scale(1.008);
}
.ufp-hero-reveal.is-fully-revealed .ufp-hero-reveal__image--built {
    -webkit-mask-image: none;
    mask-image: none;
}
.ufp-hero-reveal.is-fully-revealed .ufp-hero-reveal__image--base {
    opacity: 0;
}
.ufp-home-hero .ufp-hero-reveal__toggle {
    position: absolute;
    z-index: 3;
    top: 16px;
    left: 16px;
    opacity: 0;
    pointer-events: none;
}
.ufp-home-hero .ufp-hero-reveal__toggle[hidden] {
    display: none !important;
}
.ufp-hero-reveal[data-reveal-mode="button"] .ufp-hero-reveal__toggle,
.ufp-hero-reveal.is-fully-revealed .ufp-hero-reveal__toggle,
.ufp-home-hero .ufp-hero-reveal__toggle:focus {
    opacity: 1;
    pointer-events: auto;
}
/* RUN-28: restore the original touch scratch on the same crop as both images. */
.ufp-hero-reveal__scratch-surface {
    position: absolute;
    z-index: 4;
    inset: 0;
    display: none;
    width: 100%;
    height: 100%;
    border: 0;
    background: transparent;
    opacity: 1;
    cursor: crosshair;
    touch-action: none;
    transition: opacity 360ms cubic-bezier(.2, .7, .2, 1);
}
.ufp-hero-reveal__scratch-surface:focus-visible {
    outline: 4px solid var(--ufp-green);
    outline-offset: -7px;
}
.ufp-hero-reveal__scratch-status {
    position: absolute;
    z-index: 6;
    right: clamp(14px, 4vw, 28px);
    top: clamp(16px, 4vw, 30px);
    display: none;
    max-width: calc(100% - 28px);
    padding: 5px 0 6px 26px;
    color: var(--ufp-deep-green);
    font-family: var(--primary-font);
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .11em;
    text-align: right;
    text-transform: uppercase;
    pointer-events: none;
    transition: opacity 220ms ease, transform 220ms ease;
}
.ufp-hero-reveal__scratch-status::before {
    position: absolute;
    top: 50%;
    left: 2px;
    width: 3px;
    height: 18px;
    background: var(--ufp-lime);
    box-shadow: 6px 0 0 var(--ufp-green), 12px 0 0 var(--ufp-lime);
    content: "";
    transform: translateY(-50%) skewX(-14deg);
}
.ufp-hero-reveal[data-reveal-mode="scratch"] .ufp-hero-reveal__image--base {
    opacity: 0;
}
.ufp-hero-reveal[data-reveal-mode="scratch"] .ufp-hero-reveal__image--built {
    opacity: 1;
    -webkit-mask-image: none;
    mask-image: none;
    transition: none;
}
.ufp-hero-reveal[data-reveal-mode="scratch"] .ufp-hero-reveal__scratch-surface:not([hidden]),
.ufp-hero-reveal[data-reveal-mode="scratch"] .ufp-hero-reveal__scratch-status:not([hidden]) {
    display: block;
}
.ufp-hero-reveal.has-scratched:not(.is-scratch-complete) .ufp-hero-reveal__scratch-status {
    opacity: 0;
    transform: translateY(-6px);
}
.ufp-hero-reveal.is-scratch-complete .ufp-hero-reveal__scratch-surface {
    opacity: 0;
}
.ufp-hero-reveal.is-scratch-complete .ufp-hero-reveal__scratch-status {
    opacity: 1;
    transform: none;
}
@media (min-width: 992px) {
    .ufp-home-hero .ufp-hero-reveal__toggle {
        top: 140px;
        left: auto;
        right: 24px;
    }
    .ufp-hero-reveal__scratch-status {
        top: 140px;
    }
}
@media (min-width: 992px) and (max-height: 699px) {
    .ufp-home-hero .ufp-display-title.ufp-hero-title {
        font-size: clamp(50px, 4.45vw, 64px);
    }
}
@media (max-width: 1199px) and (min-width: 992px) {
    .ufp-home-hero__intro {
        margin-bottom: 12px;
    }
}
@media (max-width: 991px) {
    .ufp-home-hero {
        display: flex;
        flex-direction: column;
        aspect-ratio: auto;
        padding-top: 120px !important;
    }
    .ufp-home-hero > .container {
        position: relative;
        inset: auto;
        order: 1;
        width: 100%;
        padding: 24px clamp(24px, 6vw, 60px) 0;
    }
    .ufp-home-hero__content {
        position: static;
        width: 100%;
    }
    .ufp-home-hero .ufp-display-title.ufp-hero-title {
        font-size: var(--ufp-hero-title-size);
        line-height: var(--ufp-hero-title-line-height);
        letter-spacing: var(--ufp-hero-title-letter-spacing);
    }
    .ufp-home-hero .ufp-hero-title > span {
        max-width: 100%;
        white-space: normal;
    }
    .ufp-home-hero__intro {
        max-width: 580px;
        margin: 24px 0;
        padding: 0;
        background: none;
        color: var(--ufp-deep-green);
        font-size: 17px;
    }
    .ufp-hero-reveal {
        --ufp-hero-image-x: 100%;
        position: relative;
        inset: auto;
        order: 2;
        height: auto;
        aspect-ratio: 8 / 9;
    }
}
.navbar .navbar-nav .nav-link[aria-current="page"] {
    color: var(--ufp-green);
    text-decoration-line: underline;
    text-decoration-color: var(--ufp-lime);
    text-decoration-thickness: 4px;
    text-underline-offset: 7px;
}
/* bg color */
.bg-gradient-corduroy-green-dark-goldenrod {
    background-image: var(--ufp-gradient);
}
.bg-gradient-corduroy-green-dark-goldenrod-dark {
    background: linear-gradient(34deg, var(--ufp-deep-green) 0%, var(--ufp-green) 58%, var(--ufp-lime) 100%);
}
.bg-gradient-corduroy-green-dark-goldenrod-transparent {
    background-image: linear-gradient(to top right, rgba(0, 34, 18, .9), rgba(7, 56, 39, .82), rgba(204, 219, 41, .9));
}
.bg-zircon-grey {
    background-color: #E7EEEA;
}
.bg-racing-green {
    background-color: var(--ufp-deep-green);
}
.bg-white-yellow {
    background-color: var(--ufp-lime);
}
.bg-white-transparent {
    background-color: rgba(255, 255, 255, 0.8);
}
/* text color */
.text-gradient-corduroy-green-dark-goldenrod {
    background-image: var(--ufp-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.text-light-conch-green {
    color: #CFDCD6;
}
.text-dark-golden-yellow {
    color: var(--ufp-lime);
}
/* heading */
h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
    margin-bottom: 25px;
}
h3 {
    line-height: 3rem;
}
/* border color */
.border-color-dark-golden-yellow {
    border-color: var(--ufp-lime) !important;
}
/* btn */
.btn {
    font-family: var(--primary-font);
    font-weight: 600;
    letter-spacing: 1px;
}
.btn.with-rounded > span {
    border-radius: 4px;
}
.btn.with-rounded.btn-large > span {
    line-height: 32px;
}
.btn.with-rounded.btn-large > span {
    right: 12px;
}
.btn.with-rounded.btn-extra-large > span {
    right: 14px;
}
.btn.with-rounded.btn-medium > span {
    right: 10px;
}
.btn.btn-very-small {
    padding: 8px 16px;
    font-size: 12px;
}
.btn.with-rounded.btn-extra-large {
    padding-right: 75px;
}
.btn.with-rounded.btn-large {
    padding-right: 60px;
}
.btn.with-rounded.btn-medium {
    padding-right: 55px;
}
.btn.with-rounded.btn-small {
    padding-right: 50px;
}
.btn.with-rounded.btn-very-small {
    padding-right: 40px;
}
.btn-gradient-green-goldenrod-yellow {
    background-image: var(--ufp-gradient);
    background-size: 200% auto;
    color: var(--white);
}
.btn.btn-base-color {
    color: var(--dark-gray);
}
.btn.btn-box-shadow.btn-base-color:hover {
    color: var(--dark-gray);
}
/* progress bar style */
.progress-bar-style-01 .progress {
    height: 7px;
    border-radius: 6px;
}
.progress-bar-style-01 .progress .progress-bar {
    border-radius: 6px;
}
/* pag title style */
.page-title-extra-large h1 {
    font-size: 3.8rem;
    line-height: 3.8rem;
    word-spacing: -8px;
}
.page-title-extra-large h2 {
    font-size: 19px;
    line-height: 34px;
}
.pagination-style-01 .page-item.active .page-link {
    background: var(--dark-gray);
    color: var(--white);
}
.placeholder-light::-webkit-input-placeholder { color: var(--white) !important; text-overflow: ellipsis; opacity:0.7; }
.placeholder-light::-moz-placeholder { color: var(--white) !important; text-overflow: ellipsis; opacity:0.7; }
.placeholder-light:-ms-input-placeholder { color: var(--white) !important; text-overflow: ellipsis; opacity:0.7; }
/* contact form style 03 */
.contact-form-style-03 {
    margin-bottom: -125px;
}
/* interactive banner */
.interactive-banner-style-02.hover-box * {
    will-change: auto;
}
/* footer */
footer {
    padding-top: 90px;
    padding-bottom: 90px;
    margin-top: -90px;
    position: relative;
    z-index: 1;
}
footer .footer-logo img {
    max-width: 120px;
    width: 100%;
    height: auto;
    max-height: 130px;
}
footer .nav-link {
    color: var(--ufp-neutral-light);
    font-size: 15px;
    line-height: normal;
}
footer .medium-icon a {
    font-size: 18px;
}
footer .medium-icon li {
    margin: 0 3px;
} 
.ufp-site-footer {
    margin-top: 0;
    padding-top: 100px;
    background: var(--ufp-green);
    isolation: isolate;
}
.ufp-site-footer::before,
.ufp-site-footer::after {
    position: absolute;
    right: 0;
    left: 0;
    height: 58px;
    content: "";
    pointer-events: none;
}
.ufp-site-footer::before {
    z-index: -2;
    top: -44px;
    background: var(--ufp-lime);
    clip-path: polygon(0 55%, 10% 36%, 23% 51%, 39% 23%, 55% 44%, 72% 18%, 87% 41%, 100% 24%, 100% 100%, 0 100%);
}
.ufp-site-footer::after {
    z-index: -1;
    top: -32px;
    background: var(--ufp-green);
    clip-path: polygon(0 48%, 14% 29%, 28% 46%, 44% 20%, 60% 39%, 76% 16%, 90% 34%, 100% 20%, 100% 100%, 0 100%);
}
/* google map */
#map .gmnoprint[data-control-width="40"] {  
    bottom: 30px !important;
    top: auto !important;
}
.social-icon-style-09 ul.light li a {
    border: 2px solid rgba(255, 255, 255, .65);
}
/* media query responsive */
@media (max-width: 1600px) {
    section {
        padding-top: 90px;
        padding-bottom: 90px;
    }
}
@media (max-width: 1199px) {
    .navbar .navbar-nav .nav-link {
        padding: 10px 16px;
    }
    footer .nav-link {
        padding-left: 12px;
        padding-right: 12px;
    }
}
@media (max-width: 991px) {
    section {
        padding-top: 75px;
        padding-bottom: 75px;
    }
    .contact-form-style-03 {
        margin-bottom: 75px;
    }
    .md-h-500 {
        height: 500px !important;
    }
}
@media (max-width: 767px) {
    section {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    footer {
        padding-top: 90px;
    }
    .contact-form-style-03 {
        margin-bottom: 50px;
    }
    .sm-h-400 {
        height: 400px !important;
    }
}
@media (max-width: 575px) {
    section {
        padding-top: 50px;
        padding-bottom: 50px;
    }
    footer {
        padding-top: 110px;
    }
    .large-icon a {
        font-size: 22px;
        width: 50px;
        height: 50px;
    }
}
/* home voice columns */
.home-voice-columns .home-voice-item {
    padding: 0;
    align-items: flex-start !important;
}
.home-voice-columns > [class*="col-"]:not(:last-child) .home-voice-item {
    padding-right: 40px;
}
.home-voice-columns .home-voice-item .feature-box-icon {
    min-width: 56px;
    margin-top: 2px;
}
.home-voice-columns .home-voice-item .feature-box-icon img {
    width: 56px;
    height: auto;
}
.home-voice-columns .home-voice-item .home-voice-heading {
    font-size: 21px;
    line-height: 1.35;
    letter-spacing: -0.3px;
}
.home-voice-columns .home-voice-item p {
    font-size: 16px;
    line-height: 1.65;
}
.home-video-barrier-section {
    background: var(--ufp-paper);
}
.home-video-barrier-section .home-voice-item .home-voice-heading {
    color: var(--ufp-green);
}
.home-video-barrier-section .home-voice-item p {
    color: var(--medium-gray);
}
.home-video-barrier-section .ufp-concept-icon {
    width: 56px;
    min-width: 56px;
    height: auto;
}
.home-video-barrier-section .ufp-concept-icon img {
    opacity: 1;
    visibility: visible;
    filter: none;
}
.home-farming-feature-section {
    background: var(--ufp-green);
}
.home-farming-feature-section h2 {
    color: var(--ufp-white);
}
.home-farming-feature-section p {
    color: var(--ufp-neutral-light);
}
@media (max-width: 1199px) {
    .home-voice-columns > [class*="col-"]:not(:last-child) .home-voice-item {
        padding-right: 25px;
    }
}
@media (max-width: 991px) {
    .home-voice-columns {
        row-gap: 55px;
    }
    .home-voice-columns > [class*="col-"]:not(:last-child) .home-voice-item {
        padding-right: 0;
        padding-bottom: 0;
        margin-bottom: 0 !important;
    }
    .home-voice-columns .home-voice-item .home-voice-heading {
        font-size: 21px;
        margin-bottom: 12px !important;
    }
    .home-voice-columns .home-voice-item .feature-box-icon {
        margin-right: 22px;
    }
}
@media (max-width: 767px) {
    .home-voice-columns {
        row-gap: 45px;
    }
    .home-voice-columns .home-voice-item .feature-box-icon {
        margin-right: 18px;
    }
}
/* Reusable code-built folded-paper section transition. */
.ufp-surface-paper {
    background-color: var(--ufp-paper) !important;
    background-image: none !important;
}
.ufp-paper-divider {
    --ufp-divider-accent: var(--ufp-lime);
    --ufp-divider-surface: var(--ufp-white);
    position: absolute;
    z-index: 3;
    top: -52px;
    right: 0;
    left: 0;
    height: 54px;
    background: none !important;
    pointer-events: none;
}
.ufp-paper-divider::before,
.ufp-paper-divider::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
}
.ufp-paper-divider::before {
    background: var(--ufp-divider-accent);
    clip-path: polygon(0 56%, 9% 33%, 23% 48%, 39% 20%, 55% 41%, 71% 16%, 87% 38%, 100% 22%, 100% 100%, 0 100%);
}
.ufp-paper-divider::after {
    bottom: -3px;
    background: var(--ufp-divider-surface);
    clip-path: polygon(0 69%, 12% 52%, 25% 61%, 41% 43%, 58% 57%, 74% 35%, 89% 51%, 100% 43%, 100% 100%, 0 100%);
}
.ufp-paper-divider--white {
    --ufp-divider-surface: var(--ufp-white);
}
.ufp-paper-divider--paper {
    --ufp-divider-surface: var(--ufp-paper);
}
.ufp-paper-divider--green {
    --ufp-divider-surface: var(--ufp-green);
}
.ufp-paper-divider--hero {
    top: -72px;
    height: 74px;
}
.ufp-paper-divider--hero::before {
    clip-path: polygon(0 46%, 8% 24%, 21% 39%, 36% 13%, 51% 34%, 68% 9%, 84% 31%, 100% 18%, 100% 100%, 0 100%);
}
.ufp-paper-divider--hero::after {
    bottom: -4px;
    clip-path: polygon(0 68%, 12% 50%, 25% 63%, 41% 40%, 57% 58%, 73% 35%, 89% 52%, 100% 43%, 100% 100%, 0 100%);
}
@media (max-width: 767px) {
    .ufp-paper-divider {
        top: -38px;
        height: 40px;
    }
    .ufp-paper-divider--hero {
        top: -48px;
        height: 50px;
    }
    .ufp-site-footer {
        padding-top: 80px;
    }
    .ufp-site-footer::before,
    .ufp-site-footer::after {
        height: 42px;
    }
    .ufp-site-footer::before {
        top: -32px;
    }
    .ufp-site-footer::after {
        top: -23px;
    }
}
/* home europe steps */
.home-europe-steps .process-step-style-09:hover .process-step-icon .number {
    color: var(--dark-gray);
}
/* Home map section */
.home-farmers-map-section {
    --home-map-action-gap: 66px;
    background: var(--ufp-green);
}
.home-farmers-map-section h3 {
    color: var(--ufp-white);
}
.home-farmers-map-intro {
    color: var(--ufp-neutral-light);
}
@media (max-width: 1600px) {
    .home-farmers-map-section {
        --home-map-action-gap: 56px;
    }
}
@media (max-width: 991px) {
    .home-farmers-map-section {
        --home-map-action-gap: 41px;
    }
}
@media (max-width: 767px) {
    .home-farmers-map-section {
        --home-map-action-gap: 35px;
    }
}
@media (max-width: 575px) {
    .home-farmers-map-section {
        --home-map-action-gap: 25px;
    }
}

/* ===================================
   Unlock Farm Potential style-guide adoption
====================================== */
body,
button,
input,
select,
textarea {
    font-family: var(--primary-font);
}
body {
    color: var(--medium-gray);
}
h1,
.h1,
.ufp-display-title {
    font-family: var(--alt-font);
    font-weight: 700 !important;
    font-style: italic;
}
h2,
h3,
.h2,
.h3 {
    font-family: var(--alt-font);
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: -0.035em;
}
h4,
h5,
h6,
.h4,
.h5,
.h6 {
    font-family: var(--alt-font);
    font-weight: 600;
    letter-spacing: -0.02em;
}
.ufp-display-title {
    font-size: 95px;
    line-height: 1.02;
    letter-spacing: -.045em;
    word-spacing: normal;
}
.ufp-display-title.ufp-hero-title {
    font-size: var(--ufp-hero-title-size);
    line-height: var(--ufp-hero-title-line-height);
    letter-spacing: var(--ufp-hero-title-letter-spacing);
}
@media (max-width: 1199px) {
    :root {
        --ufp-hero-title-size: clamp(68px, 7vw, 80px);
    }
}
@media (max-width: 991px) {
    :root {
        --ufp-hero-title-size: clamp(56px, 8vw, 68px);
    }
}
@media (max-width: 767px) {
    :root {
        --ufp-hero-title-size: clamp(48px, 10vw, 62px);
    }
}
@media (max-width: 575px) {
    :root {
        --ufp-hero-title-size: clamp(44px, 12vw, 50px);
    }
}
.ufp-highlight {
    display: inline;
    padding-inline: .1em;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    white-space: nowrap;
}
.ufp-display-title .ufp-highlight {
    display: inline-block;
    margin-top: .08em;
}
.ufp-site-footer .ufp-footer-highlight-link {
    display: inline-block;
    padding: .02em .12em .07em;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    line-height: 1;
    text-decoration: none;
    transition: color 180ms ease, background-color 180ms ease;
}
.ufp-site-footer .ufp-footer-highlight-link:hover {
    color: var(--ufp-deep-green);
    background: var(--ufp-paper);
}
.ufp-site-footer .ufp-footer-highlight-link:focus-visible {
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    outline: 3px solid var(--ufp-sky);
    outline-offset: 4px;
}
.text-dark-gray,
.text-dark-gray-hover:hover {
    color: var(--ufp-green) !important;
}
.text-base-color,
.text-dark-golden-yellow {
    color: var(--ufp-lime) !important;
}
.bg-dark-gray {
    background-color: var(--ufp-green) !important;
}
.bg-base-color {
    background-color: var(--ufp-lime) !important;
}
.bg-black-transparent-light {
    background-color: rgba(0, 34, 18, .84) !important;
}
.navbar .navbar-nav .nav-link {
    font-family: var(--primary-font);
    font-weight: 600;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-item.active .nav-link {
    color: var(--ufp-green);
}
.ufp-display-title + .fs-19 {
    width: 100% !important;
    max-width: 520px;
}
p,
.feature-box-content {
    overflow-wrap: break-word;
}
.home-voice-columns .feature-box-content {
    width: auto;
    min-width: 0;
    flex: 1 1 auto;
}

/* Remove the rounded Crafto language before applying cutout silhouettes. */
[class*="border-radius-"],
.rounded-circle,
.btn-rounded,
.btn-round-edge,
.btn-round-edge-small,
.btn.with-rounded > span,
.video-icon,
.video-icon .video-icon-sonar,
.video-icon .video-icon-sonar .video-icon-sonar-bfr,
.video-icon .video-icon-sonar .video-icon-sonar-afr,
.social-icon-style-09 ul li a,
.social-icon-style-09 ul li a span,
.pagination-style-01 .page-item .page-link,
.progress-bar-style-01 .progress,
.progress-bar-style-01 .progress .progress-bar,
.scroll-progress.scroll-simple .scroll-top {
    border-radius: 0 !important;
}
.border-radius-4px,
.border-radius-6px,
.border-radius-10px,
.blog-box,
.services-box-style-03,
.interactive-banner-style-02,
.blur-box {
    clip-path: var(--ufp-cutout-card);
}
img.border-radius-4px,
img.border-radius-6px,
img.border-radius-10px,
.rounded-circle {
    clip-path: var(--ufp-cutout-compact);
}
.box-shadow-double-large,
.box-shadow-extra-large,
.box-shadow-quadruple-large {
    box-shadow: 7px 9px 0 rgba(0, 34, 18, .14) !important;
}
.box-shadow-double-large-hover:hover,
.box-shadow-extra-large-hover:hover,
.box-shadow-quadruple-large-hover:hover {
    box-shadow: 10px 12px 0 rgba(0, 34, 18, .2) !important;
    transform: translateY(-3px);
}

/* Buttons use shape-only versions of the supplied SVG artwork.
   Text stays as accessible HTML and therefore always matches the page content. */
.btn.ufp-button,
button.ufp-button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 14px 34px 15px;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 100% 100% !important;
    box-shadow: none !important;
    font-family: var(--alt-font);
    font-size: var(--ufp-button-font-size) !important;
    font-weight: 700;
    font-style: italic;
    line-height: var(--ufp-button-line-height);
    letter-spacing: .015em;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    filter: none;
    transition: transform 180ms ease, filter 180ms ease, color 180ms ease, background-image 180ms ease;
}
.btn.ufp-button:hover,
.btn.ufp-button:focus,
button.ufp-button:hover,
button.ufp-button:focus {
    box-shadow: none !important;
}
.btn.ufp-button:hover,
button.ufp-button:hover {
    transform: translateY(-3px);
    filter: drop-shadow(7px 10px 0 rgba(0, 34, 18, .26));
}
.btn.ufp-button:active,
button.ufp-button:active {
    transform: translateY(0);
    filter: none;
}
.btn.ufp-button:focus-visible,
button.ufp-button:focus-visible,
.ufp-text-link:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 4px;
}
.btn.ufp-button--chevron,
button.ufp-button--chevron {
    isolation: isolate;
    min-height: 62px;
    padding: 17px 20px 18px;
    border-style: solid !important;
    border-width: 0 50px 0 9px !important;
    border-image-source: url("../../images/ufp-button-chevron.svg") !important;
    border-image-slice: 0 54 0 10 fill !important;
    border-image-width: 0 50px 0 9px !important;
    border-image-outset: 0 !important;
    border-image-repeat: stretch !important;
    color: var(--ufp-lime) !important;
    background-image: none !important;
}
.btn.ufp-button--chevron::before,
button.ufp-button--chevron::before {
    position: absolute;
    z-index: -1;
    inset: 0 -50px 0 -9px;
    border-style: solid;
    border-width: 0 50px 0 9px;
    border-image-source: url("../../images/ufp-button-chevron-hover.svg");
    border-image-slice: 0 54 0 10 fill;
    border-image-width: 0 50px 0 9px;
    border-image-outset: 0;
    border-image-repeat: stretch;
    clip-path: inset(0 100% 0 0);
    content: "";
    pointer-events: none;
    transition: clip-path 520ms cubic-bezier(.4, 0, .2, 1);
    will-change: clip-path;
}
.btn.ufp-button--chevron:hover,
button.ufp-button--chevron:hover,
.btn.ufp-button--chevron:focus-visible,
button.ufp-button--chevron:focus-visible {
    color: var(--ufp-lime) !important;
    background-image: none !important;
}
.btn.ufp-button--chevron:hover::before,
button.ufp-button--chevron:hover::before,
.btn.ufp-button--chevron:focus-visible::before,
button.ufp-button--chevron:focus-visible::before {
    clip-path: inset(0);
}
.btn.ufp-button--chevron-light,
button.ufp-button--chevron-light {
    color: var(--ufp-green) !important;
    border-image-source: url("../../images/ufp-button-chevron-light.svg") !important;
}
.btn.ufp-button--chevron-light::before,
button.ufp-button--chevron-light::before {
    border-image-source: url("../../images/ufp-button-chevron-light-hover.svg");
}
.btn.ufp-button--chevron-light:hover,
button.ufp-button--chevron-light:hover,
.btn.ufp-button--chevron-light:focus-visible,
button.ufp-button--chevron-light:focus-visible {
    color: var(--ufp-green) !important;
}
.btn.ufp-button--slanted,
button.ufp-button--slanted {
    color: var(--ufp-green) !important;
    background-image: url("../../images/ufp-button-slanted.svg") !important;
}
.btn.ufp-button--notched,
button.ufp-button--notched {
    color: var(--ufp-lime) !important;
    background-image: url("../../images/ufp-button-notched.svg") !important;
}
.btn.ufp-button--outline,
button.ufp-button--outline {
    color: var(--ufp-green) !important;
    background-image: url("../../images/ufp-button-outline.svg") !important;
    filter: none;
}
.btn.ufp-button--outline:hover,
button.ufp-button--outline:hover {
    color: var(--ufp-lime) !important;
    background-image: url("../../images/ufp-button-outline-hover.svg") !important;
    filter: drop-shadow(5px 7px 0 rgba(0, 34, 18, .18));
}
.header-button .btn.ufp-button:hover {
    filter: drop-shadow(7px 10px 0 rgba(0, 34, 18, .26));
}
.btn.ufp-tag {
    width: auto !important;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    padding: 10px 20px 11px;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--ufp-green) !important;
    background-color: transparent !important;
    background-image: url("../../images/ufp-button-slanted.svg") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 100% 100% !important;
    box-shadow: none !important;
    font-family: var(--alt-font);
    font-size: var(--ufp-button-font-size) !important;
    font-weight: 700;
    font-style: italic;
    line-height: var(--ufp-button-line-height);
    letter-spacing: .015em;
    text-transform: uppercase;
    white-space: nowrap;
}
.btn.ufp-tag:hover {
    color: var(--ufp-green) !important;
    transform: translateY(-2px);
}
.btn.ufp-text-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    min-height: 44px;
    padding: 2px 0;
    color: var(--ufp-green) !important;
    font-family: var(--alt-font);
    font-size: var(--ufp-button-font-size) !important;
    font-weight: 700;
    font-style: italic;
    line-height: var(--ufp-button-line-height);
    letter-spacing: .015em;
    text-transform: uppercase;
    white-space: nowrap;
}
.btn.ufp-text-link::after {
    width: 22px;
    height: 36px;
    flex: 0 0 auto;
    background: url("../../images/ufp-chevron.svg") center / contain no-repeat;
    content: "";
    transition: transform 180ms ease;
}
.btn.ufp-text-link:hover::after {
    background-image: url("../../images/ufp-chevron-hover.svg");
    transform: translateX(4px);
}
.btn.ufp-text-link .btn-icon {
    display: none;
}

/* Supplied campaign-story icons replace circular process counters. */
.home-europe-steps .process-step-icon {
    width: 118px !important;
    height: 128px !important;
    padding: 0;
    border-radius: 0 !important;
    background: transparent !important;
    clip-path: none;
}
.home-europe-steps .process-step-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.home-europe-steps .process-step-icon .number,
.home-europe-steps .process-step-icon .box-overlay {
    display: none;
}
.home-europe-steps .progress-right-icon {
    top: 48%;
    width: 34px;
    height: 58px;
    background: url("../../images/ufp-chevron.svg") center / contain no-repeat;
}
.home-europe-steps .progress-right-icon i {
    display: none !important;
}

/* Angular media, navigation, and utility controls. */
.video-icon-box {
    isolation: isolate;
    width: 85px;
    height: 85px;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    clip-path: none;
    filter: drop-shadow(7px 9px 0 rgba(0, 34, 18, .25));
    transition: transform 180ms ease, filter 180ms ease;
}
.video-icon-box::before,
.video-icon-box::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    content: "";
    pointer-events: none;
    transition: opacity 220ms cubic-bezier(.12, 0, .39, 0), transform 220ms cubic-bezier(.12, 0, .39, 0);
}
.video-icon-box::before {
    background-image: url("../../images/ufp-video-control-fill.svg");
    opacity: 1;
    transform: scale(1);
}
.video-icon-box::after {
    background-image: url("../../images/ufp-video-control-outline.svg");
    opacity: 0;
    transform: scale(1.12);
}
.video-icon-box:hover,
.video-icon-box:focus-visible {
    transform: translateY(-3px);
    filter: drop-shadow(8px 11px 0 rgba(0, 34, 18, .28));
}
.video-icon-box:hover::before,
.video-icon-box:focus-visible::before {
    opacity: 0;
    transform: scale(.84);
}
.video-icon-box:hover::after,
.video-icon-box:focus-visible::after {
    opacity: 1;
    transform: scale(1);
}
.video-icon-box:active {
    transform: translateY(0);
}
.video-icon-box:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 5px;
}
.video-icon-box > span {
    position: relative;
    z-index: 1;
}
.video-icon-box .video-icon {
    width: 85px;
    height: 85px;
    color: var(--ufp-deep-green) !important;
    background: transparent !important;
    clip-path: none;
    transition: color 180ms ease;
}
.video-icon-box .video-icon i {
    margin-left: 4px;
    color: var(--ufp-deep-green) !important;
    transition: color 180ms ease;
}
.video-icon-box:hover .video-icon,
.video-icon-box:focus-visible .video-icon,
.video-icon-box:hover .video-icon i,
.video-icon-box:focus-visible .video-icon i {
    color: var(--ufp-lime) !important;
}
.video-icon-box .video-icon-sonar {
    display: none;
}
.social-icon-style-09 ul li a {
    clip-path: var(--ufp-cutout-compact);
}
.social-icon-style-09 ul li a span {
    top: -2px;
    left: -2px;
    padding: 2px;
    clip-path: var(--ufp-cutout-compact);
}
.pagination-style-01 .page-item .page-link {
    clip-path: var(--ufp-cutout-compact);
}
.pagination-style-01 .page-item .page-link:hover {
    background: var(--ufp-sky);
    box-shadow: 4px 5px 0 rgba(0, 34, 18, .16) !important;
}
.pagination-style-01 .page-item.active .page-link {
    color: var(--ufp-lime);
    background: var(--ufp-green);
    box-shadow: 4px 5px 0 rgba(0, 34, 18, .18) !important;
}
.ufp-scroll-top.scroll-progress.scroll-simple {
    top: auto;
    right: clamp(18px, 2.2vw, 34px);
    bottom: clamp(18px, 2.2vw, 34px);
    z-index: 111;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    mix-blend-mode: normal;
    transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease;
}
.ufp-scroll-top.scroll-progress.scroll-simple.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top {
    position: relative;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 0;
    background: var(--ufp-lime);
    clip-path: var(--ufp-cutout-compact);
    box-shadow: none;
    filter: none;
    transition: transform 180ms ease, filter 180ms ease, background-color 180ms ease;
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top::before {
    width: 18px;
    height: 31px;
    background: url("../../images/ufp-chevron.svg") center / contain no-repeat;
    content: "";
    transform: rotate(-90deg);
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:hover,
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:focus-visible {
    background-color: var(--ufp-green);
    transform: translateY(-3px);
    filter: drop-shadow(5px 7px 0 rgba(0, 34, 18, .22));
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:hover::before,
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:focus-visible::before {
    background-image: url("../../images/ufp-chevron-hover.svg");
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 4px;
}
.ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:active {
    transform: translateY(0);
    filter: none;
}

/* Forms and content surfaces. */
.form-control,
.form-select {
    border-radius: 0 !important;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--ufp-lime) !important;
    box-shadow: 0 3px 0 var(--ufp-lime) !important;
}
.contact-form-style-03 > div {
    clip-path: var(--ufp-cutout-card);
}
.navbar .navbar-nav .nav-link,
.ufp-site-footer .footer-navbar .nav-link,
.ufp-site-footer .ufp-footer-highlight-link,
.ufp-site-footer a[href^="tel:"],
.ufp-site-footer a[href^="mailto:"] {
    display: inline-flex;
    min-height: 44px;
    box-sizing: border-box;
    align-items: center;
}
.mfp-wrap {
    cursor: zoom-out;
}
.show-search-popup .search-form-wrapper {
    cursor: default;
}

/* Disabled placeholder links. */
.ufp-home-page a.link-disabled,
.ufp-home-page a.link-disabled * {
    cursor: not-allowed !important;
}

@media (max-width: 1199px) {
    .ufp-display-title {
        font-size: 80px;
        line-height: 1.02;
    }
}
@media (max-width: 991px) {
    .navbar .menu-order {
        display: flex !important;
        align-items: center;
        margin-left: auto;
    }
    .navbar .navbar-toggler {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 48px;
        height: 44px;
        padding: 14px 12px;
        background: var(--ufp-lime);
        clip-path: var(--ufp-cutout-compact);
        filter: drop-shadow(4px 5px 0 rgba(0, 34, 18, .18));
    }
    .navbar .navbar-toggler-line {
        width: 24px;
        height: 2px;
        background: var(--ufp-green);
    }
    .navbar .navbar-toggler-line:nth-child(1) {
        top: 12px;
        width: 17px;
    }
    .navbar .navbar-toggler-line:nth-child(2),
    .navbar .navbar-toggler-line:nth-child(3) {
        top: 21px;
    }
    .navbar .navbar-toggler-line:nth-child(4) {
        top: 30px;
        width: 17px;
    }
}
@media (max-width: 767px) {
    .ufp-scroll-top.scroll-progress.scroll-simple .scroll-top {
        width: 46px;
        height: 46px;
    }
    .ufp-site-footer .bg-racing-green .col-lg-5 {
        padding-right: 76px;
    }
    .ufp-display-title {
        font-size: 62px;
        line-height: 1.02;
    }
    .home-europe-steps .process-step-icon {
        width: 104px !important;
        height: 114px !important;
    }
    .ufp-display-title + .fs-19 {
        width: calc(100% - 45px) !important;
        max-width: 310px !important;
        padding-right: 0;
    }
    .home-voice-columns .feature-box-content {
        width: calc(100vw - 140px) !important;
        max-width: calc(100vw - 140px) !important;
        flex: 0 1 calc(100vw - 140px) !important;
    }
}
@media (max-width: 575px) {
    .ufp-display-title {
        font-size: 50px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ufp-logo-link,
    .ufp-logo-link img,
    .ufp-hero-reveal__image--base,
    .ufp-hero-reveal__image--built,
    .ufp-hero-reveal__scratch-surface,
    .ufp-hero-reveal__scratch-status,
    .ufp-hero-reveal__scratch-status::before,
    .btn.ufp-button,
    button.ufp-button,
    .btn.ufp-button--chevron::before,
    button.ufp-button--chevron::before,
    .ufp-scroll-top.scroll-progress.scroll-simple,
    .ufp-scroll-top.scroll-progress.scroll-simple .scroll-top,
    .btn.ufp-text-link::after,
    .video-icon-box,
    .video-icon-box::before,
    .video-icon-box::after,
    .video-icon-box .video-icon,
    .video-icon-box .video-icon i,
    .box-shadow-double-large-hover,
    .box-shadow-extra-large-hover,
    .box-shadow-quadruple-large-hover {
        transition: none !important;
    }
    .btn.ufp-button:hover,
    button.ufp-button:hover {
        transform: none;
    }
    .ufp-logo-link:hover,
    .ufp-logo-link:focus-visible {
        transform: none;
    }
    .ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:hover,
    .ufp-scroll-top.scroll-progress.scroll-simple .scroll-top:focus-visible {
        transform: none;
    }
    .video-icon-box:hover,
    .video-icon-box:focus-visible {
        transform: none;
    }
    .ufp-hero-reveal.is-revealing .ufp-hero-reveal__image--base {
        filter: none;
        transform: none;
    }
}

/* ===================================
   Unlock farm potential policy page
====================================== */
.ufp-unlock-page {
    background: var(--ufp-paper);
}
.ufp-unlock-page main {
    overflow: hidden;
    background: var(--ufp-paper);
}
@supports (overflow: clip) {
    html:has(.ufp-unlock-page),
    body.ufp-unlock-page { overflow-x: clip; }
    .ufp-unlock-page main { overflow: clip; }
}
.ufp-unlock-page section[id] {
    scroll-margin-top: 24px;
}
.ufp-unlock-page .ufp-unlock-hero__title {
    max-width: none;
    font-size: clamp(62px, 4.5vw, 74px);
}
.ufp-unlock-hero__title-line {
    display: block;
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
}
.ufp-unlock-page .ufp-unlock-hero__intro {
    max-width: 680px;
}
.ufp-unlock-page .ufp-unlock-hero__media {
    aspect-ratio: 3 / 2;
}
.ufp-unlock-page .ufp-unlock-hero__media img {
    object-position: center;
}
.ufp-unlock-heading {
    max-width: 820px;
    margin-bottom: 0;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: clamp(38px, 4vw, 60px);
    font-weight: 600;
    font-style: normal;
    line-height: 1.02;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.ufp-unlock-heading--light {
    color: var(--ufp-white);
}

.ufp-unlock-context {
    padding-top: clamp(100px, 9vw, 140px);
    padding-bottom: clamp(105px, 9vw, 145px);
    color: var(--ufp-neutral-light);
    background: var(--ufp-green);
}
.ufp-unlock-context__heading {
    margin-bottom: clamp(32px, 4vw, 52px);
}
.ufp-unlock-context__copy p {
    max-width: 760px;
    color: var(--ufp-neutral-light);
    font-size: 18px;
    line-height: 1.72;
}
.ufp-unlock-context__copy p:last-child {
    margin-bottom: 0;
}
.ufp-unlock-context__media {
    margin: 0;
}
.ufp-unlock-context__media > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: 60% center;
    clip-path: var(--ufp-cutout-card);
}
.ufp-unlock-context__media figcaption {
    padding-top: 18px;
    color: var(--ufp-neutral-light);
    font-size: 14px;
    line-height: 1.5;
}

.ufp-unlock-demands {
    padding-top: clamp(105px, 9vw, 145px);
    padding-bottom: clamp(95px, 8vw, 125px);
}
.ufp-unlock-demands__heading {
    margin-bottom: clamp(48px, 6vw, 78px);
}
.ufp-unlock-demands__heading p {
    color: var(--medium-gray);
    font-size: 17px;
    line-height: 1.65;
}
.ufp-unlock-demand-list {
    --ufp-stack-top: 24px;
    --ufp-stack-step: 28px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    isolation: isolate;
}
.ufp-unlock-demand {
    --ufp-stack-index: 0;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: clamp(26px, 4vw, 62px);
    align-items: start;
    margin-right: 12px;
    padding: clamp(36px, 4.5vw, 64px);
    color: var(--ufp-green);
    background: var(--ufp-white);
    box-shadow: 12px 14px 0 var(--ufp-green);
    clip-path: var(--ufp-cutout-card);
    -webkit-clip-path: var(--ufp-cutout-card);
}
.ufp-unlock-demand:nth-child(2) {
    --ufp-stack-index: 1;
    background: var(--ufp-sky);
    box-shadow: 12px 14px 0 var(--ufp-lime);
}
.ufp-unlock-demand:nth-child(3) {
    --ufp-stack-index: 2;
    background: var(--ufp-lime);
    box-shadow: 12px 14px 0 var(--ufp-sky);
}
.ufp-unlock-demand__number {
    display: flex;
    min-height: 82px;
    align-items: center;
    justify-content: center;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    clip-path: polygon(2% 8%, 91% 0, 100% 79%, 83% 100%, 0 92%);
    -webkit-clip-path: polygon(2% 8%, 91% 0, 100% 79%, 83% 100%, 0 92%);
    font-family: var(--alt-font);
    font-size: 25px;
    font-weight: 800;
    font-style: italic;
}
.ufp-unlock-demand:nth-child(2) .ufp-unlock-demand__number {
    background: var(--ufp-white);
}
.ufp-unlock-demand:nth-child(3) .ufp-unlock-demand__number {
    background: var(--ufp-sky);
}
.ufp-unlock-demand__content h3 {
    max-width: 920px;
    margin-bottom: 20px;
    color: var(--ufp-deep-green);
    font-size: clamp(26px, 2.8vw, 40px);
    font-weight: 600;
    font-style: normal;
    line-height: 1.08;
    letter-spacing: -.025em;
    text-transform: uppercase;
}
.ufp-unlock-demand__content p {
    max-width: 1040px;
    color: var(--ufp-green);
    font-size: 17px;
    line-height: 1.72;
}
.ufp-unlock-demand__content p:last-child {
    margin-bottom: 0;
}

/* Only enhance when every card fits the available viewport. Native sticky
   preserves normal scrolling; the extra tail lets the completed stack rest
   briefly before leaving its section. Print and reduced motion stay linear. */
@media screen and (prefers-reduced-motion: no-preference) {
    .ufp-unlock-demand-list.is-stacking::after {
        content: "";
        flex: 0 0 clamp(140px, 20vh, 240px);
    }
    .ufp-unlock-demand-list.is-stacking .ufp-unlock-demand {
        position: sticky;
        top: calc(var(--ufp-stack-top) + var(--ufp-stack-index) * var(--ufp-stack-step));
        z-index: var(--ufp-stack-index);
    }
}

.ufp-unlock-conclusion {
    padding-top: 60px;
    padding-bottom: clamp(135px, 11vw, 180px);
}
.ufp-unlock-conclusion__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px clamp(30px, 5vw, 72px);
    align-items: center;
    margin-right: 14px;
    padding: clamp(46px, 6vw, 84px);
    color: var(--ufp-white);
    background: var(--ufp-green);
    box-shadow: 14px 16px 0 var(--ufp-lime);
    clip-path: polygon(1% 3%, 98% 0, 100% 89%, 96% 100%, 2% 97%, 0 12%);
    -webkit-clip-path: polygon(1% 3%, 98% 0, 100% 89%, 96% 100%, 2% 97%, 0 12%);
}
.ufp-unlock-conclusion__heading {
    grid-column: 1 / -1;
}
.ufp-unlock-conclusion__panel h2 {
    margin-bottom: 0;
    color: var(--ufp-white);
    font-size: clamp(38px, 4.4vw, 66px);
    font-weight: 600;
    font-style: normal;
    line-height: 1.02;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.ufp-unlock-conclusion__panel p {
    max-width: 820px;
    margin-bottom: 0;
    color: var(--ufp-neutral-light);
    font-size: 18px;
    line-height: 1.68;
}
.ufp-unlock-conclusion__panel .ufp-button {
    justify-self: start;
    max-width: 100%;
    white-space: normal;
}

@media (max-width: 1199px) {
    .ufp-display-title.ufp-hero-title.ufp-unlock-hero__title {
        font-size: clamp(50px, 5.35vw, 64px);
    }
    .ufp-unlock-conclusion__panel {
        grid-template-columns: 1fr;
        align-items: start;
    }
}

@media (max-width: 991px) {
    .ufp-display-title.ufp-hero-title.ufp-unlock-hero__title {
        font-size: clamp(48px, 7vw, 60px);
    }
    .ufp-unlock-demands__heading .col-xl-4 {
        margin-top: 28px;
    }
    .ufp-unlock-demand {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 28px;
    }
}

@media (max-width: 767px) {
    .ufp-display-title.ufp-hero-title.ufp-unlock-hero__title {
        font-size: clamp(40px, 8vw, 52px);
    }
    .ufp-unlock-heading {
        font-size: clamp(33px, 9.25vw, 46px);
    }
    .ufp-unlock-context {
        padding-top: 82px;
        padding-bottom: 100px;
    }
    .ufp-unlock-context__copy p,
    .ufp-unlock-demands__heading p,
    .ufp-unlock-demand__content p,
    .ufp-unlock-conclusion__panel p {
        font-size: 17px;
        line-height: 1.6;
    }
    .ufp-unlock-demands {
        padding-top: 82px;
        padding-bottom: 85px;
    }
    .ufp-unlock-demand-list {
        gap: 24px;
    }
    .ufp-unlock-demand {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-right: 7px;
        padding: 34px 28px 38px;
        box-shadow: 7px 9px 0 var(--ufp-green);
    }
    .ufp-unlock-demand:nth-child(2) {
        box-shadow: 7px 9px 0 var(--ufp-lime);
    }
    .ufp-unlock-demand:nth-child(3) {
        box-shadow: 7px 9px 0 var(--ufp-sky);
    }
    .ufp-unlock-demand__number {
        width: 72px;
        min-height: 55px;
        font-size: 18px;
    }
    .ufp-unlock-demand__content h3 {
        font-size: clamp(21px, 6.2vw, 30px);
    }
    .ufp-unlock-conclusion {
        padding-top: 38px;
        padding-bottom: 125px;
    }
    .ufp-unlock-conclusion__panel {
        margin-right: 8px;
        padding: 42px 28px 48px;
        box-shadow: 8px 10px 0 var(--ufp-lime);
    }
    .ufp-unlock-conclusion__panel h2 {
        font-size: clamp(33px, 9.25vw, 46px);
    }
}

@media (max-width: 575px) {
    .ufp-display-title.ufp-hero-title.ufp-unlock-hero__title {
        font-size: clamp(32px, 9.5vw, 42px);
    }
}

@supports not ((clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0))) {
    .ufp-unlock-demand,
    .ufp-unlock-demand__number,
    .ufp-unlock-conclusion__panel {
        clip-path: none;
        -webkit-clip-path: none;
    }
}

/* ===================================
   Permit barrier data story
====================================== */
.ufp-permit-page {
    background: var(--ufp-paper);
}
.ufp-permit-page main {
    overflow: hidden;
    background: var(--ufp-paper);
}
.ufp-permit-page section[id] {
    scroll-margin-top: 24px;
}
.ufp-section-kicker {
    display: block;
    margin-bottom: 14px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    line-height: 1.2;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ufp-section-kicker--light {
    color: var(--ufp-lime);
}
.ufp-permit-heading {
    max-width: 820px;
    margin-bottom: 24px;
    color: var(--ufp-green);
    font-size: clamp(38px, 4vw, 60px);
    line-height: 1.02;
}
.ufp-permit-heading--light {
    color: var(--ufp-white);
}
.ufp-permit-heading--investment {
    font-size: clamp(38px, 3.45vw, 52px);
    overflow-wrap: normal;
    word-break: normal;
}
.ufp-permit-heading--investment span {
    white-space: nowrap;
}
.ufp-permit-lead {
    max-width: 820px;
    color: var(--ufp-green);
    font-size: clamp(18px, 1.55vw, 22px);
    line-height: 1.6;
}
.ufp-permit-lead--light,
.ufp-permit-copy-light {
    color: var(--ufp-neutral-light);
}
.ufp-permit-section {
    padding-top: clamp(92px, 9vw, 140px);
    padding-bottom: clamp(105px, 10vw, 155px);
}
.ufp-permit-section[id] {
    scroll-margin-top: 24px;
}
.ufp-permit-section--green,
.ufp-permit-ripple {
    background: var(--ufp-green);
}

/* Editorial permit-barrier hero. */
.ufp-permit-hero {
    min-height: 720px;
    padding-bottom: 150px;
    background: var(--ufp-paper);
}
.ufp-permit-hero__copy {
    position: relative;
    z-index: 2;
    padding-top: clamp(30px, 3vw, 44px);
    padding-right: clamp(20px, 3.5vw, 50px);
}
.ufp-permit-hero__title {
    max-width: 680px;
    margin-bottom: 30px;
}
.ufp-permit-hero__intro {
    max-width: 630px;
    margin-bottom: 34px;
    color: var(--medium-gray);
    font-size: 19px;
    line-height: 1.65;
}
.ufp-permit-hero__media {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    min-height: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--ufp-deep-green);
    box-shadow: 14px 16px 0 var(--ufp-lime);
    clip-path: polygon(2% 4%, 97% 0, 100% 90%, 94% 100%, 4% 97%, 0 13%);
    -webkit-clip-path: polygon(2% 4%, 97% 0, 100% 90%, 94% 100%, 4% 97%, 0 13%);
    isolation: isolate;
}
.ufp-permit-media__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* In-page evidence navigation. */
.ufp-permit-chapters {
    position: relative;
    z-index: 5;
    padding: 0 0 118px;
    background: var(--ufp-paper);
}
.ufp-permit-chapters__inner {
    display: grid;
    grid-template-columns: 1.2fr repeat(4, 1fr);
    border: 0;
    background: var(--ufp-white);
    box-shadow: none;
    clip-path: polygon(.5% 5%, 99.4% 0, 100% 88%, 98.8% 100%, .8% 95%, 0 14%);
    -webkit-clip-path: polygon(.5% 5%, 99.4% 0, 100% 88%, 98.8% 100%, .8% 95%, 0 14%);
}
.ufp-permit-chapters__label,
.ufp-permit-chapters a {
    min-height: 72px;
    padding: 16px 20px;
}
.ufp-permit-chapters__label {
    display: flex;
    align-items: center;
    color: var(--ufp-paper);
    background: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.ufp-permit-chapters a {
    display: flex;
    align-items: center;
    gap: 12px;
    border-left: 1px solid rgba(0, 34, 18, .16);
    color: var(--ufp-green);
    font-family: var(--primary-font);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: color 180ms ease, background-color 180ms ease;
}
.ufp-permit-chapters a span {
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 12px;
    font-style: italic;
}
.ufp-permit-chapters a:hover,
.ufp-permit-chapters a:focus-visible {
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
}
.ufp-permit-chapters a:focus-visible {
    position: relative;
    z-index: 2;
    outline: 3px solid var(--ufp-sky);
    outline-offset: 3px;
}

/* Survey stats and chart surfaces. */
.ufp-permit-stat {
    position: relative;
    display: flex;
    min-height: 218px;
    flex-direction: column;
    justify-content: center;
    padding: 28px 34px 30px;
    color: var(--ufp-deep-green);
    box-shadow: 9px 11px 0 var(--ufp-deep-green);
    clip-path: polygon(3% 5%, 96% 0, 100% 87%, 91% 100%, 0 94%, 2% 19%);
    -webkit-clip-path: polygon(3% 5%, 96% 0, 100% 87%, 91% 100%, 0 94%, 2% 19%);
}
.ufp-permit-stat--lime {
    background: var(--ufp-lime);
}
.ufp-permit-stat strong {
    display: block;
    margin-bottom: 6px;
    font-family: var(--alt-font);
    font-size: clamp(72px, 7vw, 108px);
    font-weight: 700;
    font-style: italic;
    line-height: .82;
    letter-spacing: -.07em;
}
.ufp-permit-stat span {
    max-width: 290px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}
.ufp-chart-card {
    --ufp-chart-accent: var(--ufp-lime);
    --ufp-chart-active: var(--ufp-sky);
    position: relative;
    z-index: 1;
    margin: 0;
    padding: clamp(28px, 4vw, 58px);
    color: var(--ufp-green);
    background: var(--ufp-paper);
    box-shadow: 12px 14px 0 var(--ufp-deep-green);
    clip-path: polygon(.8% 1.2%, 98.8% 0, 100% 96%, 97% 100%, .6% 98.4%, 0 5%);
    -webkit-clip-path: polygon(.8% 1.2%, 98.8% 0, 100% 96%, 97% 100%, .6% 98.4%, 0 5%);
}
.ufp-chart-card--outlined {
    box-shadow: none;
    clip-path: none;
    -webkit-clip-path: none;
}
.ufp-chart-card--accent-sky {
    --ufp-chart-accent: var(--ufp-sky);
    --ufp-chart-active: var(--ufp-lime);
}
.ufp-chart-card__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 38px;
    padding-bottom: 24px;
    border-bottom: 2px solid var(--ufp-green);
}
.ufp-chart-card__heading > div {
    max-width: 830px;
}
.ufp-chart-card__eyebrow {
    display: block;
    margin-bottom: 9px;
    color: var(--ufp-green);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.ufp-chart-card h3 {
    margin-bottom: 0;
    color: var(--ufp-green);
    font-size: clamp(24px, 2.5vw, 38px);
    line-height: 1.12;
}
.ufp-chart-card__hint {
    max-width: 190px;
    overflow-wrap: normal;
    word-break: normal;
    margin: 0;
    color: var(--medium-gray);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    text-align: right;
}
.ufp-chart-bars {
    display: grid;
    gap: 6px;
}
.ufp-chart-row__button {
    display: grid;
    width: 100%;
    min-height: 50px;
    grid-template-columns: minmax(190px, .95fr) minmax(250px, 2fr) 72px;
    align-items: center;
    gap: 20px;
    padding: 7px 10px;
    border: 0;
    color: var(--ufp-green);
    background: transparent;
    font-family: var(--primary-font);
    text-align: left;
    cursor: pointer;
    transition: background-color 170ms ease, transform 170ms ease;
}
.ufp-chart-row__button:hover,
.ufp-chart-row__button.is-active {
    background: rgba(153, 202, 251, .24);
}
.ufp-chart-row__button:hover {
    transform: translateX(3px);
}
.ufp-chart-row__button:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 1px;
}
.ufp-chart-row__label {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.25;
}
.ufp-chart-row__track {
    position: relative;
    display: block;
    height: 18px;
    overflow: hidden;
    background: var(--ufp-neutral-light);
}
.ufp-chart-row__track::after {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(90deg, transparent 24.7%, rgba(0, 34, 18, .15) 25%, transparent 25.3%, transparent 49.7%, rgba(0, 34, 18, .15) 50%, transparent 50.3%, transparent 74.7%, rgba(0, 34, 18, .15) 75%, transparent 75.3%);
    content: "";
    pointer-events: none;
}
.ufp-chart-row__fill {
    position: relative;
    z-index: 1;
    display: block;
    width: var(--ufp-chart-width);
    min-width: 3px;
    height: 100%;
    background: var(--ufp-chart-accent);
    clip-path: polygon(0 0, 98% 0, 100% 30%, 97% 100%, 0 88%);
    -webkit-clip-path: polygon(0 0, 98% 0, 100% 30%, 97% 100%, 0 88%);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 680ms cubic-bezier(.2, .72, .2, 1), background-color 170ms ease;
}
.is-chart-visible .ufp-chart-row__fill {
    transform: scaleX(1);
}
.ufp-chart-row__fill.is-active {
    background: var(--ufp-chart-active);
}
.ufp-chart-row__value {
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 17px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}
.ufp-chart-bars--dense {
    gap: 2px;
}
.ufp-chart-bars--dense .ufp-chart-row__button {
    min-height: 44px;
    grid-template-columns: minmax(175px, 1fr) minmax(140px, 1.5fr) 126px;
    gap: 12px;
    padding-block: 4px;
}
.ufp-chart-bars--dense .ufp-chart-row__button:hover {
    transform: none;
}
.ufp-chart-bars--dense .ufp-chart-row__label {
    font-size: 13px;
}
.ufp-chart-bars--dense .ufp-chart-row__track {
    height: 14px;
}
.ufp-chart-bars--roadblocks .ufp-chart-row__fill {
    clip-path: polygon(0 6%, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 92%);
    -webkit-clip-path: polygon(0 6%, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 92%);
}
.ufp-chart-detail {
    display: flex;
    min-height: 74px;
    align-items: center;
    gap: 20px;
    margin-top: 30px;
    padding: 16px 24px;
    color: var(--ufp-white);
    background: var(--ufp-green);
    clip-path: polygon(1% 6%, 99.5% 0, 100% 88%, 98% 100%, 0 94%);
    -webkit-clip-path: polygon(1% 6%, 99.5% 0, 100% 88%, 98% 100%, 0 94%);
}
.ufp-chart-detail__value {
    min-width: 74px;
    color: var(--ufp-lime);
    font-family: var(--alt-font);
    font-size: 28px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    white-space: nowrap;
}
.ufp-chart-detail__label {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
}
.ufp-chart-card figcaption {
    margin-top: 22px;
    color: var(--medium-gray);
    font-size: 12px;
    line-height: 1.4;
}

/* The source table remains the complete no-JavaScript fallback. */
.ufp-chart-table-wrap {
    max-width: 100%;
    overflow-x: auto;
}
.ufp-chart-table-wrap table {
    width: 100%;
    border-collapse: collapse;
    color: var(--ufp-green);
    background: var(--ufp-white);
}
.ufp-chart-table-wrap caption {
    padding: 0 0 14px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-weight: 700;
    text-align: left;
}
.ufp-chart-table-wrap th,
.ufp-chart-table-wrap td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--ufp-neutral-light);
    text-align: left;
}
.ufp-chart-table-wrap td:last-child,
.ufp-chart-table-wrap th:last-child {
    width: 110px;
    text-align: right;
}

/* Angular parts-of-whole chart replacing the supplied pie chart. */
.ufp-chart-card--segmented {
    box-shadow: 12px 14px 0 var(--ufp-sky);
}

@media (min-width: 992px) {
    #rules-stack-up,
    #investment-stalls {
        padding-top: clamp(92px, 7vw, 112px);
        padding-bottom: clamp(100px, 7.5vw, 122px);
    }
    .ufp-permit-split-row {
        align-items: stretch !important;
    }
    .ufp-permit-split-copy {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: clamp(28px, 3vw, 42px);
        padding-top: clamp(24px, 2.5vw, 40px);
        padding-bottom: clamp(24px, 2.5vw, 40px);
    }
}

.ufp-permit-split-copy {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.ufp-permit-split-copy__content > p:last-child {
    margin-bottom: 0;
}

.ufp-permit-side-media {
    position: relative;
    isolation: isolate;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--ufp-deep-green);
    box-shadow: 8px 10px 0 var(--ufp-lime);
    -webkit-clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
    clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px));
}

@media (max-width: 991px) {
    .ufp-permit-side-media {
        max-width: 520px;
    }
}

.ufp-chart-segments {
    display: flex;
    width: 100%;
    height: 112px;
    gap: 3px;
    padding: 5px;
    overflow: hidden;
    background: var(--ufp-deep-green);
    clip-path: none;
    -webkit-clip-path: none;
}
.ufp-chart-segment-wrap {
    min-width: 0;
    flex-grow: var(--ufp-segment-share);
    flex-basis: 0;
}
.ufp-chart-segment {
    --ufp-segment-selection: var(--ufp-deep-green);
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 0;
    overflow: hidden;
    border: 0;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    transform: none;
    transition: box-shadow 180ms ease, filter 180ms ease;
}
.ufp-chart-segment--tone-0 {
    --ufp-segment-selection: var(--ufp-lime);
    color: var(--ufp-white);
    background: var(--ufp-green);
}
.ufp-chart-segment--tone-1 {
    background: var(--ufp-lime);
}
.ufp-chart-segment--tone-2 {
    background: var(--ufp-sky);
}
.ufp-chart-segment--tone-3 {
    background: var(--ufp-neutral-light);
}
.ufp-chart-segment.is-active {
    z-index: 2;
    box-shadow: inset 0 0 0 4px var(--ufp-segment-selection);
    transform: none;
    filter: saturate(1.08);
}
.ufp-chart-segment__index {
    overflow: hidden;
    font-family: var(--alt-font);
    font-size: 11px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    white-space: nowrap;
}
.ufp-chart-segment-legend {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(58px, auto));
    grid-auto-flow: column;
    gap: 8px 18px;
    margin-top: 32px;
}
.ufp-chart-segment-legend__button {
    display: grid;
    width: 100%;
    min-height: 58px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border: 0;
    color: var(--ufp-green);
    background: transparent;
    font-family: var(--primary-font);
    text-align: left;
    cursor: pointer;
    transition: background-color 170ms ease, transform 170ms ease;
}
.ufp-chart-segment-legend__button:hover,
.ufp-chart-segment-legend__button.is-active {
    background: rgba(153, 202, 251, .26);
    transform: translateX(3px);
}
.ufp-chart-segment-legend__button:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 1px;
}
.ufp-chart-segment-legend__number {
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 12px;
    font-weight: 800;
    font-style: italic;
}
.ufp-chart-segment-legend__copy {
    font-size: 13px;
    font-weight: 650;
    line-height: 1.3;
}
.ufp-chart-segment-legend__value {
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 17px;
    font-weight: 800;
    font-style: italic;
}

/* Consequence cards and closing action. */
.ufp-impact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}
.ufp-impact-card {
    min-height: 290px;
    padding: 30px;
    color: var(--ufp-green);
    background: var(--ufp-paper);
    clip-path: var(--ufp-cutout-card);
    -webkit-clip-path: var(--ufp-cutout-card);
}
.ufp-impact-card:nth-child(3),
.ufp-impact-card:nth-child(4),
.ufp-impact-card--wide {
    grid-column: span 2;
}
.ufp-impact-card--lime {
    background: var(--ufp-lime);
}
.ufp-impact-card--sky {
    background: var(--ufp-sky);
}
.ufp-impact-card__number {
    display: block;
    margin-bottom: 42px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 800;
    font-style: italic;
}
.ufp-impact-card h3 {
    margin-bottom: 14px;
    color: var(--ufp-green);
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.05;
}
.ufp-impact-card p {
    margin-bottom: 0;
    color: var(--medium-gray);
    font-size: 15px;
    line-height: 1.55;
}
.ufp-impact-card--lime p,
.ufp-impact-card--sky p {
    color: var(--ufp-deep-green);
}
.ufp-permit-conclusion {
    padding-top: clamp(95px, 9vw, 140px);
    padding-bottom: clamp(125px, 11vw, 175px);
}
.ufp-permit-conclusion__actions {
    display: flex;
    min-height: 230px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 34px 42px;
    background: var(--ufp-lime);
    box-shadow: 10px 12px 0 var(--ufp-sky);
    clip-path: polygon(4% 2%, 96% 0, 100% 84%, 91% 100%, 0 94%, 2% 16%);
    -webkit-clip-path: polygon(4% 2%, 96% 0, 100% 84%, 91% 100%, 0 94%, 2% 16%);
}

@media (max-width: 1199px) {
    .ufp-permit-hero {
        min-height: 680px;
        padding-bottom: 130px;
    }
    .ufp-permit-hero__media {
        min-height: 0;
    }
    .ufp-permit-chapters__inner {
        grid-template-columns: 1fr repeat(4, 1fr);
    }
    .ufp-permit-chapters__label,
    .ufp-permit-chapters a {
        padding-inline: 14px;
    }
    .ufp-chart-row__button {
        grid-template-columns: minmax(170px, .9fr) minmax(190px, 1.5fr) 64px;
        gap: 15px;
    }
    .ufp-chart-bars--dense .ufp-chart-row__button {
        grid-template-columns: minmax(160px, .9fr) minmax(140px, 1.15fr) 126px;
        gap: 12px;
    }
}

@media (min-width: 992px) and (max-width: 1199px) {
    .ufp-permit-hero__copy {
        padding-right: 15px;
    }
    .ufp-display-title.ufp-permit-hero__title {
        font-size: clamp(68px, 6.5vw, 72px);
    }
}

@media (max-width: 991px) {
    .ufp-permit-hero {
        min-height: 0;
        padding-bottom: 125px;
    }
    .ufp-permit-hero__copy {
        padding-right: 15px;
    }
    .ufp-permit-hero__title {
        max-width: 740px;
    }
    .ufp-permit-hero__intro {
        max-width: 720px;
    }
    .ufp-permit-hero__media {
        max-width: 720px;
        margin: 65px auto 0;
    }
    .ufp-permit-chapters {
        padding-bottom: 105px;
    }
    .ufp-permit-chapters__inner {
        grid-template-columns: repeat(2, 1fr);
        clip-path: var(--ufp-cutout-card);
        -webkit-clip-path: var(--ufp-cutout-card);
    }
    .ufp-permit-chapters__label {
        grid-column: 1 / -1;
    }
    .ufp-permit-chapters a:nth-of-type(odd) {
        border-left: 0;
    }
    .ufp-permit-chapters a {
        border-top: 1px solid rgba(0, 34, 18, .16);
    }
    .ufp-chart-card {
        padding: 34px 28px 38px;
    }
    .ufp-chart-card__heading {
        align-items: start;
    }
    .ufp-chart-row__button {
        grid-template-columns: minmax(165px, .8fr) minmax(170px, 1.2fr) 62px;
    }
    .ufp-chart-bars--dense .ufp-chart-row__button {
        grid-template-columns: minmax(155px, .8fr) minmax(130px, 1fr) 126px;
        gap: 11px;
    }
    .ufp-chart-segment-legend {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        grid-auto-flow: row;
    }
    .ufp-impact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .ufp-impact-card:nth-child(3),
    .ufp-impact-card:nth-child(4) {
        grid-column: span 1;
    }
    .ufp-impact-card--wide {
        grid-column: span 2;
    }
}

@media (max-width: 767px) {
    .ufp-permit-section {
        padding-top: 82px;
        padding-bottom: 100px;
    }
    .ufp-permit-hero {
        padding-bottom: 110px;
    }
    .ufp-permit-hero__intro {
        font-size: 17px;
        line-height: 1.55;
    }
    .ufp-permit-hero__media {
        margin-top: 52px;
        box-shadow: 9px 11px 0 var(--ufp-lime);
    }
    .ufp-permit-chapters {
        padding-bottom: 86px;
    }
    .ufp-permit-heading {
        font-size: clamp(36px, 10vw, 50px);
    }
    .ufp-permit-lead {
        font-size: 17px;
        line-height: 1.55;
    }
    .ufp-permit-stat {
        min-height: 190px;
    }
    .ufp-chart-card {
        padding: 28px 18px 32px;
        box-shadow: 7px 9px 0 var(--ufp-deep-green);
    }
    .ufp-chart-card--outlined {
        box-shadow: none;
    }
    .ufp-chart-card--segmented {
        box-shadow: 7px 9px 0 var(--ufp-sky);
    }
    .ufp-chart-card__heading {
        display: block;
        margin-bottom: 28px;
        padding-bottom: 20px;
    }
    .ufp-chart-card__hint {
        max-width: none;
        margin-top: 13px;
        text-align: left;
    }
    .ufp-chart-row__button {
        min-height: 70px;
        grid-template-columns: minmax(0, 1fr) 58px;
        gap: 8px 12px;
        padding: 9px 8px;
    }
    .ufp-chart-bars--dense .ufp-chart-row__button {
        min-height: 70px;
        grid-template-columns: minmax(0, 1fr) 116px;
        gap: 8px 12px;
        padding: 9px 8px;
    }
    .ufp-chart-row__label,
    .ufp-chart-bars--dense .ufp-chart-row__label {
        grid-column: 1 / -1;
        font-size: 13px;
    }
    .ufp-chart-row__track {
        height: 16px;
    }
    .ufp-chart-row__value {
        font-size: 16px;
    }
    .ufp-chart-detail {
        align-items: flex-start;
        gap: 13px;
        padding: 15px 17px;
    }
    .ufp-chart-detail__value {
        min-width: 60px;
        font-size: 23px;
    }
    .ufp-chart-card--unit-responses .ufp-chart-detail {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }
    .ufp-chart-segments {
        height: 84px;
        gap: 2px;
        padding: 4px;
    }
    .ufp-chart-segment-legend__button {
        grid-template-columns: 30px minmax(0, 1fr) auto;
        gap: 8px;
        padding-inline: 7px;
    }
    .ufp-impact-grid {
        grid-template-columns: 1fr;
    }
    .ufp-impact-card,
    .ufp-impact-card:nth-child(3),
    .ufp-impact-card:nth-child(4),
    .ufp-impact-card--wide {
        min-height: 0;
        grid-column: span 1;
    }
    .ufp-impact-card__number {
        margin-bottom: 28px;
    }
    .ufp-permit-conclusion {
        padding-top: 85px;
        padding-bottom: 125px;
    }
    .ufp-permit-conclusion__actions {
        min-height: 210px;
        padding: 30px 24px;
    }
}

@media (max-width: 575px) {
    .ufp-permit-hero__media {
        aspect-ratio: 1 / 1;
    }
    .ufp-permit-chapters__inner {
        grid-template-columns: 1fr;
    }
    .ufp-permit-chapters__label {
        grid-column: auto;
    }
    .ufp-permit-chapters a {
        min-height: 58px;
        border-left: 0;
    }
    .ufp-chart-card h3 {
        font-size: 23px;
    }
    .ufp-chart-segments {
        height: 70px;
    }
    .ufp-chart-segment__index {
        font-size: 9px;
    }
    .ufp-chart-segment-legend__button {
        min-height: 64px;
    }
    .ufp-permit-heading--investment {
        font-size: clamp(36px, 10vw, 44px);
    }
    .ufp-permit-conclusion__actions .ufp-button {
        max-width: 100%;
    }
}

@supports not (aspect-ratio: 4 / 3) {
    .ufp-permit-hero__media {
        min-height: 470px;
        height: 470px;
    }
}

@supports not ((clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0))) {
    .ufp-permit-hero__media,
    .ufp-permit-chapters__inner,
    .ufp-permit-stat,
    .ufp-chart-card,
    .ufp-chart-row__fill,
    .ufp-chart-detail,
    .ufp-chart-segments,
    .ufp-impact-card,
    .ufp-permit-conclusion__actions {
        clip-path: none;
        -webkit-clip-path: none;
    }
}

@media (min-width: 992px) and (max-width: 1300px) {
    .ufp-site-footer .bg-racing-green .col-lg-5 {
        padding-right: 86px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ufp-permit-chapters a,
    .ufp-chart-row__button,
    .ufp-chart-row__fill,
    .ufp-chart-segment,
    .ufp-chart-segment-legend__button {
        transition: none !important;
    }
    .ufp-chart-row__button:hover,
    .ufp-chart-segment-legend__button:hover {
        transform: none;
    }
    .ufp-chart-row__fill {
        transform: scaleX(1);
    }
    .ufp-chart-segment:hover,
    .ufp-chart-segment.is-active {
        transform: none;
    }
}

/* ===================================
   Share your story
====================================== */
.ufp-share-page {
    background: var(--ufp-paper);
}
.ufp-share-page main {
    overflow: hidden;
    background: var(--ufp-paper);
}
.ufp-share-page section[id] {
    scroll-margin-top: 24px;
}
.ufp-share-heading {
    max-width: 760px;
    margin-bottom: 24px;
    color: var(--ufp-green);
    font-size: clamp(38px, 4vw, 60px);
    line-height: 1.02;
}
.ufp-share-heading--light {
    color: var(--ufp-white);
}

/* Editorial split hero. */
.ufp-share-hero {
    min-height: 700px;
    padding-bottom: 150px;
    background: var(--ufp-paper);
}
.ufp-share-hero__copy {
    position: relative;
    z-index: 2;
    padding-top: clamp(30px, 3vw, 44px);
    padding-right: clamp(20px, 4vw, 70px);
}
.ufp-share-hero__title {
    max-width: 650px;
    margin-bottom: 30px;
}
.ufp-share-hero__intro {
    max-width: 610px;
    margin-bottom: 34px;
    color: var(--medium-gray);
    font-size: 19px;
    line-height: 1.65;
}
.ufp-share-hero__media-stage {
    position: relative;
    z-index: 1;
    isolation: isolate;
    margin-right: 14px;
    margin-bottom: 14px;
}
.ufp-share-hero__media-stage::before {
    position: absolute;
    z-index: -1;
    inset: 14px -14px -14px 14px;
    background: var(--ufp-lime);
    clip-path: polygon(3% 3%, 97% 0, 100% 91%, 94% 100%, 4% 97%, 0 13%);
    -webkit-clip-path: polygon(3% 3%, 97% 0, 100% 91%, 94% 100%, 4% 97%, 0 13%);
    content: "";
}
.ufp-share-hero__media {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--ufp-green);
    clip-path: polygon(2% 4%, 97% 0, 100% 90%, 94% 100%, 4% 97%, 0 13%);
    -webkit-clip-path: polygon(2% 4%, 97% 0, 100% 90%, 94% 100%, 4% 97%, 0 13%);
}
.ufp-share-hero__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Client introduction and editorial review path. */
.ufp-share-intro {
    padding-top: clamp(95px, 9vw, 135px);
    padding-bottom: clamp(105px, 9vw, 140px);
    color: var(--ufp-neutral-light);
    background: var(--ufp-green);
}
.ufp-share-intro__copy {
    padding-right: clamp(20px, 5vw, 80px);
}
.ufp-share-intro__copy p {
    max-width: 780px;
    color: var(--ufp-neutral-light);
    font-size: 18px;
    line-height: 1.7;
}
.ufp-share-process {
    padding: 36px 40px 38px;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    box-shadow: 10px 12px 0 var(--ufp-sky);
    clip-path: polygon(3% 4%, 97% 0, 100% 88%, 92% 100%, 0 95%, 2% 17%);
    -webkit-clip-path: polygon(3% 4%, 97% 0, 100% 88%, 92% 100%, 0 95%, 2% 17%);
}
.ufp-share-process h2 {
    margin-bottom: 26px;
    color: var(--ufp-deep-green);
    font-size: clamp(24px, 2.2vw, 32px);
    line-height: 1.05;
}
.ufp-share-process ol {
    margin: 0;
    padding: 0;
    list-style: none;
}
.ufp-share-process li {
    display: grid;
    min-height: 58px;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 13px 0;
    border-top: 1px solid var(--ufp-deep-green);
}
.ufp-share-process li:last-child {
    padding-bottom: 0;
}
.ufp-share-process li span {
    display: flex;
    width: 42px;
    height: 34px;
    align-items: center;
    justify-content: center;
    color: var(--ufp-deep-green);
    background: var(--ufp-sky);
    font-family: var(--alt-font);
    font-size: 12px;
    font-weight: 800;
    font-style: italic;
}
.ufp-share-process li strong {
    font-family: var(--primary-font);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
    text-transform: uppercase;
}

@media (max-width: 1199px) {
    .ufp-share-hero {
        min-height: 660px;
        padding-bottom: 130px;
    }
    .ufp-share-process {
        padding-inline: 30px;
    }
}

@media (max-width: 991px) {
    .ufp-share-hero {
        min-height: 0;
        padding-bottom: 125px;
    }
    .ufp-share-hero__copy {
        padding-right: 15px;
    }
    .ufp-share-hero__title {
        max-width: 740px;
    }
    .ufp-share-hero__intro {
        max-width: 720px;
    }
    .ufp-share-hero__media-stage {
        max-width: 720px;
        margin-top: 65px;
        margin-right: 14px;
        margin-left: auto;
    }
    .ufp-share-intro__copy {
        padding-right: 15px;
    }
    .ufp-share-process {
        max-width: 620px;
    }
}

@media (max-width: 767px) {
    .ufp-share-hero {
        padding-bottom: 108px;
    }
    .ufp-share-hero__intro,
    .ufp-share-intro__copy p {
        font-size: 17px;
        line-height: 1.58;
    }
    .ufp-share-hero__media-stage {
        margin-top: 52px;
        margin-right: 9px;
        margin-bottom: 9px;
    }
    .ufp-share-hero__media-stage::before {
        inset: 9px -9px -9px 9px;
    }
    .ufp-share-heading {
        font-size: clamp(33px, 9.25vw, 46px);
        overflow-wrap: normal;
        word-break: normal;
    }
    .ufp-share-intro {
        padding-top: 82px;
        padding-bottom: 100px;
    }
    .ufp-share-process {
        padding: 30px 24px 32px;
        box-shadow: 7px 9px 0 var(--ufp-sky);
    }
}

@media (max-width: 575px) {
    .ufp-share-hero__media {
        aspect-ratio: 1 / 1;
    }
    .ufp-share-hero__media img {
        object-position: 43% center;
    }
    .ufp-share-process li {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 11px;
    }
}

@supports not (aspect-ratio: 4 / 3) {
    .ufp-share-hero__media {
        height: 470px;
    }
}

@supports not ((clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0))) {
    .ufp-share-hero__media-stage::before,
    .ufp-share-hero__media,
    .ufp-share-process {
        clip-path: none;
        -webkit-clip-path: none;
    }
}

/* ===================================
   404 page
====================================== */
.ufp-404-page {
    background: var(--ufp-paper);
}
.ufp-404-page main {
    overflow: hidden;
    background: var(--ufp-paper);
}
.ufp-404 {
    position: relative;
    min-height: 760px;
    padding-bottom: clamp(150px, 13vw, 195px);
    background: var(--ufp-paper);
    isolation: isolate;
}
.ufp-404::before {
    position: absolute;
    z-index: -1;
    right: -7vw;
    bottom: 20%;
    width: 44vw;
    height: 15vw;
    min-height: 120px;
    background: var(--ufp-sky);
    clip-path: polygon(7% 10%, 100% 0, 93% 74%, 16% 100%, 0 63%);
    -webkit-clip-path: polygon(7% 10%, 100% 0, 93% 74%, 16% 100%, 0 63%);
    content: "";
    opacity: .42;
    pointer-events: none;
}
.ufp-404__hero-row {
    min-height: 475px;
}
.ufp-404__copy {
    padding-top: 30px;
    position: relative;
    z-index: 2;
    padding-right: clamp(20px, 3.5vw, 58px);
}
.ufp-404__title {
    max-width: 650px;
    margin-bottom: 30px;
}
.ufp-404__title-line {
    display: block;
    white-space: nowrap;
}
.ufp-404__intro {
    max-width: 600px;
    margin-bottom: 34px;
    color: var(--medium-gray);
    font-size: 19px;
    line-height: 1.65;
}
.ufp-404__actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 18px;
}
.ufp-404__actions .ufp-button--outline {
    padding-right: 28px;
    padding-left: 28px;
}
.ufp-404__visual-column {
    position: relative;
    z-index: 1;
}
.ufp-404-art {
    position: relative;
    width: min(100%, 620px);
    aspect-ratio: 1.15 / 1;
    margin: 0 0 0 auto;
    isolation: isolate;
}
.ufp-404-art__sheet,
.ufp-404-art__panel {
    position: absolute;
    pointer-events: none;
}
.ufp-404-art__sheet--sky {
    z-index: -2;
    inset: 0 8% 12% 0;
    background: var(--ufp-sky);
    clip-path: polygon(5% 2%, 96% 0, 100% 82%, 90% 100%, 3% 93%, 0 18%);
    -webkit-clip-path: polygon(5% 2%, 96% 0, 100% 82%, 90% 100%, 3% 93%, 0 18%);
}
.ufp-404-art__sheet--lime {
    z-index: -1;
    inset: 9% 0 0 10%;
    background: var(--ufp-lime);
    clip-path: polygon(1% 9%, 92% 0, 100% 18%, 96% 96%, 15% 100%, 0 79%);
    -webkit-clip-path: polygon(1% 9%, 92% 0, 100% 18%, 96% 96%, 15% 100%, 0 79%);
}
.ufp-404-art__panel {
    z-index: 0;
    inset: 4% 5% 8% 4%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
    padding: clamp(36px, 5vw, 72px);
    color: var(--ufp-white);
    background: var(--ufp-green);
    clip-path: polygon(3% 3%, 97% 0, 100% 16%, 96% 91%, 87% 100%, 2% 95%, 0 24%);
    -webkit-clip-path: polygon(3% 3%, 97% 0, 100% 16%, 96% 91%, 87% 100%, 2% 95%, 0 24%);
}
.ufp-404-art__panel::before,
.ufp-404-art__panel::after {
    position: absolute;
    content: "";
    pointer-events: none;
}
.ufp-404-art__panel::before {
    top: -10%;
    right: -8%;
    width: 58%;
    height: 37%;
    background: var(--ufp-deep-green);
    clip-path: polygon(14% 0, 100% 0, 100% 76%, 0 100%);
    -webkit-clip-path: polygon(14% 0, 100% 0, 100% 76%, 0 100%);
}
.ufp-404-art__panel::after {
    right: -6%;
    bottom: -12%;
    width: 64%;
    height: 42%;
    background: var(--ufp-sky);
    clip-path: polygon(16% 12%, 100% 0, 100% 100%, 0 86%);
    -webkit-clip-path: polygon(16% 12%, 100% 0, 100% 100%, 0 86%);
}
.ufp-404-art__number {
    position: relative;
    z-index: 2;
    display: block;
    margin-left: -.06em;
    color: var(--ufp-white);
    font-family: var(--alt-font);
    font-size: clamp(134px, 16vw, 240px);
    font-weight: 800;
    font-style: italic;
    line-height: .75;
    letter-spacing: -.095em;
    white-space: nowrap;
}
.ufp-404-art__caption {
    position: relative;
    z-index: 3;
    display: inline-block;
    margin-top: clamp(24px, 3vw, 38px);
    padding: 8px 12px 9px;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    line-height: 1;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.ufp-404-art__route {
    position: absolute;
    z-index: 2;
    right: 7%;
    bottom: 17%;
    display: flex;
    width: 38%;
    align-items: center;
    gap: 7px;
    transform: rotate(-13deg);
}
.ufp-404-art__route span {
    display: block;
    height: 8px;
    flex: 1 1 auto;
    background: var(--ufp-lime);
    clip-path: polygon(0 16%, 100% 0, 94% 100%, 5% 82%);
    -webkit-clip-path: polygon(0 16%, 100% 0, 94% 100%, 5% 82%);
}
.ufp-404-art__route span:nth-child(2) {
    flex-basis: 45%;
    transform: translateY(-12px) rotate(-8deg);
}
.ufp-404-art__route span:nth-child(3) {
    transform: translateY(-3px) rotate(5deg);
}
.ufp-404-art__route span:last-child {
    flex-basis: 28%;
    transform: translateY(-18px) rotate(-12deg);
}
.ufp-404-routes {
    position: relative;
    z-index: 2;
    margin-top: clamp(74px, 8vw, 118px);
}
.ufp-404-routes h2 {
    margin-bottom: 24px;
    color: var(--ufp-green);
    font-size: clamp(24px, 2.3vw, 34px);
    line-height: 1.05;
}
.ufp-404-routes ul {
    display: grid;
    margin: 0;
    padding: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    list-style: none;
}
.ufp-404-routes a {
    position: relative;
    display: grid;
    min-height: 146px;
    height: 100%;
    padding: 25px 56px 24px 26px;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    gap: 7px 13px;
    color: var(--ufp-green);
    background: var(--ufp-white);
    clip-path: polygon(1% 4%, 98% 0, 100% 86%, 94% 100%, 0 95%);
    -webkit-clip-path: polygon(1% 4%, 98% 0, 100% 86%, 94% 100%, 0 95%);
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease, filter 180ms ease;
}
.ufp-404-routes a::after {
    position: absolute;
    top: 50%;
    right: 22px;
    width: 17px;
    height: 29px;
    background: url("../../images/ufp-chevron.svg") center / contain no-repeat;
    content: "";
    transform: translateY(-50%);
}
.ufp-404-routes a > span {
    grid-row: 1 / 3;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    line-height: 1.1;
}
.ufp-404-routes strong {
    color: inherit;
    font-family: var(--alt-font);
    font-size: clamp(16px, 1.45vw, 20px);
    font-weight: 700;
    line-height: 1.12;
    text-transform: uppercase;
}
.ufp-404-routes small {
    max-width: 235px;
    color: var(--medium-gray);
    font-size: 14px;
    line-height: 1.45;
}
.ufp-404-routes a:hover,
.ufp-404-routes a:focus-visible {
    color: var(--ufp-lime);
    background: var(--ufp-green);
    transform: translateY(-3px);
    filter: drop-shadow(7px 9px 0 rgba(0, 34, 18, .18));
}
.ufp-404-routes a:hover::after,
.ufp-404-routes a:focus-visible::after {
    background-image: url("../../images/ufp-chevron-hover.svg");
}
.ufp-404-routes a:hover > span,
.ufp-404-routes a:focus-visible > span,
.ufp-404-routes a:hover small,
.ufp-404-routes a:focus-visible small {
    color: var(--ufp-white);
}
.ufp-404-routes a:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 5px;
}
.ufp-404-routes a:active {
    transform: translateY(0);
    filter: none;
}

@media (max-width: 1199px) {
    .ufp-404 {
        padding-bottom: 155px;
    }
    .ufp-404-art__number {
        font-size: clamp(132px, 17vw, 195px);
    }
    .ufp-404-routes a {
        padding-right: 48px;
        padding-left: 22px;
    }
}

@media (max-width: 991px) {
    .ufp-404 {
        padding-bottom: 145px;
    }
    .ufp-404__hero-row {
        min-height: 0;
    }
    .ufp-404__copy {
        padding-right: 0;
    }
    .ufp-404__title {
        max-width: 720px;
    }
    .ufp-404__intro {
        max-width: 680px;
    }
    .ufp-404__visual-column {
        margin-top: 68px;
    }
    .ufp-404-art {
        width: min(92%, 620px);
        margin-right: auto;
    }
    .ufp-404-art__number {
        font-size: clamp(165px, 29vw, 240px);
    }
    .ufp-404-routes ul {
        grid-template-columns: 1fr;
    }
    .ufp-404-routes a {
        min-height: 118px;
        padding-top: 22px;
        padding-bottom: 21px;
        clip-path: polygon(.7% 5%, 99% 0, 100% 82%, 96% 100%, 0 94%);
        -webkit-clip-path: polygon(.7% 5%, 99% 0, 100% 82%, 96% 100%, 0 94%);
    }
}

@media (max-width: 575px) {
    .ufp-404 {
        padding-bottom: 125px;
    }
    .ufp-404__intro {
        font-size: 17px;
        line-height: 1.58;
    }
    .ufp-404__actions {
        align-items: flex-start;
        flex-direction: column;
    }
    .ufp-404__visual-column {
        margin-top: 54px;
    }
    .ufp-404-art {
        width: 100%;
        aspect-ratio: 1 / 1;
    }
    .ufp-404-art__panel {
        padding: 34px;
    }
    .ufp-404-art__number {
        font-size: clamp(112px, 39vw, 170px);
    }
    .ufp-404-art__caption {
        margin-top: 22px;
        font-size: 11px;
    }
    .ufp-404-art__route {
        right: 8%;
        bottom: 16%;
        width: 42%;
    }
    .ufp-404-routes {
        margin-top: 70px;
    }
    .ufp-404-routes a {
        min-height: 128px;
        padding-right: 44px;
        padding-left: 19px;
        grid-template-columns: 29px minmax(0, 1fr);
    }
    .ufp-404-routes a::after {
        right: 16px;
    }
}

@supports not (aspect-ratio: 1.15 / 1) {
    .ufp-404-art {
        min-height: 540px;
    }
}

@supports not ((clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0))) {
    .ufp-404::before,
    .ufp-404-art__sheet,
    .ufp-404-art__panel,
    .ufp-404-art__panel::before,
    .ufp-404-art__panel::after,
    .ufp-404-art__route span,
    .ufp-404-routes a {
        clip-path: none;
        -webkit-clip-path: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ufp-404-routes a {
        transition: none;
    }
    .ufp-404-routes a:hover,
    .ufp-404-routes a:focus-visible {
        transform: none;
    }
}
/* Farmer Stories: directory, filters and shared full-story dialog. */
.ufp-stories-page main {
    overflow: hidden;
    background: var(--ufp-paper);
}

.ufp-story-heading {
    max-width: 850px;
    margin-bottom: 25px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: clamp(38px, 4vw, 58px);
    font-weight: 600;
    line-height: 1.02;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.ufp-story-heading--light {
    color: var(--ufp-white);
}
.ufp-story-explorer {
    scroll-margin-top: 60px;
    padding-top: clamp(115px, 10vw, 155px);
}
.ufp-story-filter {
    min-width: 0;
}
.ufp-story-filter label {
    display: block;
    color: var(--ufp-green);
}
.ufp-story-filter input,
.ufp-story-filter select {
    width: 100%;
    margin: 0;
    border: 2px solid var(--ufp-green);
    border-radius: 0;
    color: var(--ufp-deep-green);
}
.ufp-story-filter select {
    background-image: url("../../images/ufp-chevron.svg");
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 10px 16px;
    appearance: none;
    -webkit-appearance: none;
}
.ufp-story-filter input::placeholder {
    color: var(--medium-gray);
    opacity: 1;
}
.ufp-story-filter input:focus,
.ufp-story-filter select:focus {
    border-color: var(--ufp-deep-green);
    outline: 4px solid var(--ufp-sky);
    outline-offset: 2px;
}
.ufp-story-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
    color: var(--ufp-white);
}
.ufp-story-results-bar p:first-child {
    font-family: var(--alt-font);
    font-size: 14px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: .025em;
    text-transform: uppercase;
}
.ufp-story-noscript {
    margin: 35px 0 0;
    padding: 22px 25px;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
}

.ufp-story-directory__heading {
    max-width: 850px;
}
.ufp-story-directory__heading p {
    max-width: 720px;
    color: var(--medium-gray);
    font-size: 18px;
    line-height: 1.65;
}
.ufp-story-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(22px, 2.4vw, 34px);
}
.ufp-story-card {
    position: relative;
    display: flex;
    min-height: 410px;
    padding: 35px 34px 34px;
    flex-direction: column;
    align-items: flex-start;
    overflow: hidden;
    color: var(--ufp-green);
    background: var(--ufp-white);
    clip-path: polygon(1.5% 2%, 98% 0, 100% 91%, 94% 100%, 1% 96%, 0 10%);
    -webkit-clip-path: polygon(1.5% 2%, 98% 0, 100% 91%, 94% 100%, 1% 96%, 0 10%);
    transition: transform 180ms ease, filter 180ms ease;
}
.ufp-story-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 10px;
    background: var(--ufp-lime);
    clip-path: polygon(0 22%, 28% 0, 54% 40%, 77% 8%, 100% 34%, 100% 100%, 0 100%);
    -webkit-clip-path: polygon(0 22%, 28% 0, 54% 40%, 77% 8%, 100% 34%, 100% 100%, 0 100%);
    content: "";
}
.ufp-story-card:nth-child(3n + 2)::before {
    background: var(--ufp-sky);
}
.ufp-story-card:hover,
.ufp-story-card:focus-within {
    filter: drop-shadow(9px 12px 0 var(--ufp-green));
    transform: translateY(-4px);
}
.ufp-story-card__number {
    display: inline-flex;
    min-width: 43px;
    height: 33px;
    margin-bottom: 25px;
    padding: 0 9px;
    align-items: center;
    justify-content: center;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    font-family: var(--alt-font);
    font-size: 12px;
    font-weight: 800;
    font-style: italic;
    line-height: 1;
    clip-path: polygon(4% 9%, 91% 0, 100% 74%, 84% 100%, 0 90%);
    -webkit-clip-path: polygon(4% 9%, 91% 0, 100% 74%, 84% 100%, 0 90%);
}
.ufp-story-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 9px;
    margin-bottom: 16px;
}
.ufp-story-card__meta span {
    display: inline-block;
    padding: 5px 8px 6px;
    color: var(--ufp-deep-green);
    background: var(--ufp-sky);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.1;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.ufp-story-card__meta span:first-child {
    background: var(--ufp-lime);
}
.ufp-story-card h3 {
    margin-bottom: 12px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: clamp(21px, 1.75vw, 27px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.02em;
    text-transform: uppercase;
}
.ufp-story-card__project {
    margin-bottom: 15px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 13px;
    font-weight: 700;
    font-style: italic;
    line-height: 1.35;
}
.ufp-story-card__summary {
    margin-bottom: 26px;
    color: var(--medium-gray);
    font-size: 15px;
    line-height: 1.6;
}
.ufp-story-card__open {
    margin-top: auto;
}
.ufp-story-card__open.is-active {
    color: var(--ufp-lime);
    background: var(--ufp-green);
}
.ufp-story-empty {
    margin-top: 10px;
    padding: 38px 42px;
    color: var(--ufp-deep-green);
    background: var(--ufp-sky);
    box-shadow: 10px 12px 0 var(--ufp-lime);
    clip-path: polygon(1% 5%, 99% 0, 100% 83%, 95% 100%, 0 94%);
    -webkit-clip-path: polygon(1% 5%, 99% 0, 100% 83%, 95% 100%, 0 94%);
}
.ufp-story-empty strong,
.ufp-story-empty span {
    display: block;
    color: inherit;
}
.ufp-story-empty strong {
    margin-bottom: 6px;
    font-family: var(--alt-font);
    font-size: 22px;
    font-weight: 700;
    text-transform: uppercase;
}
.ufp-story-contribute {
    padding-top: clamp(90px, 8vw, 125px);
    padding-bottom: clamp(130px, 10vw, 165px);
    color: var(--ufp-neutral-light);
    background: var(--ufp-green);
}
.ufp-story-contribute .ufp-story-heading {
    max-width: 900px;
    margin-bottom: 20px;
}
.ufp-story-contribute p {
    max-width: 760px;
    color: var(--ufp-neutral-light);
    font-size: 18px;
    line-height: 1.65;
}
.ufp-story-contribute .ufp-button {
    text-align: left;
}

html.ufp-story-dialog-open {
    overflow: hidden;
}
.ufp-story-dialog {
    width: min(940px, calc(100% - 40px));
    max-width: none;
    max-height: calc(100svh - 40px);
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--ufp-green);
    background: transparent;
    overflow: visible;
}
.ufp-story-dialog::backdrop {
    background: var(--ufp-deep-green);
    background: color-mix(in srgb, var(--ufp-deep-green) 88%, transparent);
}
.ufp-story-dialog__sheet {
    position: relative;
    max-height: calc(100svh - 56px);
    padding: clamp(34px, 5vw, 70px);
    overflow-y: auto;
    color: var(--ufp-green);
    background: var(--ufp-paper);
    box-shadow: 14px 16px 0 var(--ufp-lime);
    clip-path: polygon(.8% 1%, 99% 0, 100% 93%, 96% 100%, .5% 98%, 0 6%);
    -webkit-clip-path: polygon(.8% 1%, 99% 0, 100% 93%, 96% 100%, .5% 98%, 0 6%);
    scrollbar-color: var(--ufp-lime) var(--ufp-paper);
    scrollbar-width: thin;
}
.ufp-story-dialog__close {
    position: sticky;
    z-index: 4;
    top: 0;
    display: flex;
    width: 48px;
    height: 48px;
    margin: 0 0 12px auto;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    color: var(--ufp-lime);
    background: var(--ufp-green);
    clip-path: polygon(5% 5%, 93% 0, 100% 79%, 78% 100%, 0 91%);
    -webkit-clip-path: polygon(5% 5%, 93% 0, 100% 79%, 78% 100%, 0 91%);
    cursor: pointer;
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease, filter 180ms ease;
}
.ufp-story-dialog__close span {
    display: block;
    font-family: var(--primary-font);
    font-size: 34px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-2px);
}
.ufp-story-dialog__close:hover,
.ufp-story-dialog__close:focus-visible {
    color: var(--ufp-green);
    background: var(--ufp-lime);
    filter: drop-shadow(5px 6px 0 var(--ufp-green));
    transform: translateY(-2px);
}
.ufp-story-dialog__close:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 4px;
}
.ufp-story-dialog__close:active {
    filter: none;
    transform: none;
}
.ufp-story-dialog__header {
    max-width: 780px;
    padding-right: 45px;
}
.ufp-story-dialog__header h2 {
    margin-bottom: 18px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: clamp(35px, 4.7vw, 58px);
    font-weight: 600;
    line-height: 1.03;
    letter-spacing: -.035em;
    text-transform: uppercase;
}
.ufp-story-dialog__header p {
    max-width: 690px;
    margin-bottom: 30px;
    color: var(--ufp-green);
    font-family: var(--alt-font);
    font-size: 18px;
    font-weight: 700;
    font-style: italic;
    line-height: 1.45;
}
.ufp-story-dialog__meta {
    display: grid;
    margin: 0 0 38px;
    padding: 20px 22px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    color: var(--ufp-deep-green);
    background: var(--ufp-lime);
    clip-path: polygon(.8% 5%, 99% 0, 100% 85%, 96% 100%, 0 94%);
    -webkit-clip-path: polygon(.8% 5%, 99% 0, 100% 85%, 96% 100%, 0 94%);
}
.ufp-story-dialog__meta div {
    min-width: 0;
    padding: 2px 13px;
    border-left: 1px solid var(--ufp-deep-green);
}
.ufp-story-dialog__meta div:first-child {
    border-left: 0;
}
.ufp-story-dialog__meta dt {
    margin-bottom: 6px;
    color: inherit;
    font-size: 9px;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.ufp-story-dialog__meta dd {
    margin: 0;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}
.ufp-story-dialog__body {
    max-width: 76ch;
}
.ufp-story-dialog__body p {
    margin-bottom: 22px;
    color: var(--medium-gray);
    font-size: 17px;
    line-height: 1.75;
}
.ufp-story-dialog__body p:first-child {
    color: var(--ufp-green);
    font-size: 19px;
}
.ufp-story-dialog__body p:last-child {
    margin-bottom: 0;
}
.ufp-story-dialog.is-fallback {
    position: fixed;
    z-index: 99999;
    inset: 20px;
    display: block;
}

@media (max-width: 1199px) {
    .ufp-story-filters__reset {
        justify-self: start;
    }
    .ufp-story-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .ufp-story-dialog__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 1px;
    }
    .ufp-story-dialog__meta div:nth-child(odd) {
        border-left: 0;
    }
}

@media (max-width: 767px) {
    .ufp-story-directory__heading p,
    .ufp-story-contribute p {
        font-size: 17px;
        line-height: 1.58;
    }
    .ufp-story-explorer {
        padding-top: 90px;
    }
    .ufp-story-results-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }
    .ufp-story-grid {
        grid-template-columns: 1fr;
    }
    .ufp-story-card {
        min-height: 0;
    }
    .ufp-story-contribute {
        padding-top: 82px;
        padding-bottom: 135px;
    }
    .ufp-story-dialog {
        width: calc(100% - 20px);
        max-height: calc(100svh - 20px);
    }
    .ufp-story-dialog__sheet {
        max-height: calc(100svh - 28px);
        padding: 28px 23px 38px;
        box-shadow: 7px 9px 0 var(--ufp-lime);
    }
    .ufp-story-dialog__header {
        padding-right: 0;
    }
    .ufp-story-dialog__header h2 {
        font-size: clamp(32px, 10vw, 46px);
    }
    .ufp-story-dialog__meta {
        grid-template-columns: 1fr;
        padding: 19px 20px;
        gap: 0;
    }
    .ufp-story-dialog__meta div,
    .ufp-story-dialog__meta div:nth-child(odd) {
        padding: 12px 0;
        border-top: 1px solid var(--ufp-deep-green);
        border-left: 0;
    }
    .ufp-story-dialog__meta div:first-child {
        padding-top: 0;
        border-top: 0;
    }
    .ufp-story-dialog__body p {
        font-size: 16px;
        line-height: 1.68;
    }
    .ufp-story-dialog__body p:first-child {
        font-size: 17px;
    }
}

@media (max-width: 575px) {
    .ufp-story-heading {
        font-size: clamp(34px, 10vw, 46px);
    }
    .ufp-story-card {
        padding: 32px 27px 31px;
    }
    .ufp-story-empty {
        padding: 31px 27px;
    }
    .ufp-story-dialog__close {
        width: 44px;
        height: 44px;
    }
}

@supports not ((clip-path: polygon(0 0)) or (-webkit-clip-path: polygon(0 0))) {
    .ufp-story-card,
    .ufp-story-card::before,
    .ufp-story-card__number,
    .ufp-story-empty,
    .ufp-story-dialog__sheet,
    .ufp-story-dialog__close,
    .ufp-story-dialog__meta {
        clip-path: none;
        -webkit-clip-path: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ufp-story-card,
    .ufp-story-dialog__close {
        transition: none;
    }
    .ufp-story-card:hover,
    .ufp-story-card:focus-within,
    .ufp-story-dialog__close:hover,
    .ufp-story-dialog__close:focus-visible {
        transform: none;
        translate: 0;
    }
}

/* RUN-01: shared navigation and initiative credit. */
.ufp-site-nav.navbar .navbar-nav .nav-item .nav-link {
    opacity: 1;
}
.ufp-site-nav .navbar-nav .nav-link:hover {
    text-decoration: underline;
    text-decoration-color: var(--ufp-lime);
    text-decoration-thickness: 4px;
    text-underline-offset: 7px;
}
.ufp-site-nav .navbar-nav .nav-link {
    line-height: 1.4;
    white-space: normal;
}
.ufp-site-nav .nav-link:focus-visible,
.ufp-site-footer .footer-navbar .nav-link:focus-visible {
    outline: 3px solid var(--ufp-sky);
    outline-offset: 2px;
}
.ufp-footer-details {
    row-gap: 35px;
}
.ufp-footer-initiative__label {
    display: block;
    margin-bottom: 16px;
    color: var(--ufp-white);
    font-size: 14px;
    line-height: 1.5;
}
.ufp-footer-initiative__logo {
    width: 240px;
    max-width: 100%;
    height: auto;
}
.ufp-site-footer .footer-navbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 12px;
}
.ufp-site-footer .footer-navbar li {
    margin: 0;
}
.ufp-site-footer .footer-navbar .nav-link {
    padding: 10px 6px;
    line-height: 1.5;
}
.ufp-site-footer .footer-navbar .nav-link[aria-current="page"] {
    text-decoration: underline;
    text-decoration-color: var(--ufp-lime);
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
}
@media (min-width: 992px) and (max-width: 1199px) {
    .ufp-site-nav .navbar-nav .nav-link {
        padding-inline: 10px;
        font-size: 16px;
    }
}
@media (max-width: 991px) {
    .ufp-site-nav .navbar-nav .nav-link {
        display: flex;
        padding-block: 14px;
    }
    .ufp-site-nav .navbar-toggler:focus-visible {
        clip-path: none;
        outline: 3px solid var(--ufp-green);
        outline-offset: 3px;
    }
}
@media (max-width: 767px) {
    .ufp-footer-copyright {
        padding-inline: 76px;
    }
}

/* Shared SVG Europe map — RUN-02; production placements in RUN-03 below. */
.ufp-europe-map {
    --ufp-map-neighbour-opacity: .22;
    --ufp-map-stories: var(--ufp-green);
    --ufp-map-selected: var(--ufp-sky);
    --ufp-map-control-focus: var(--ufp-green);
    --ufp-map-key-border: var(--ufp-green);
    color: var(--ufp-deep-green);
    background: transparent;
    padding: 0;
    font-family: var(--primary-font);
}
.ufp-europe-map__choice { max-width: 440px; }
.ufp-europe-map__choice label {
    display: block;
    margin-bottom: 8px;
    color: inherit;
    font-weight: 600;
}
.ufp-europe-map__choice select {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 10px 36px 10px 12px;
    border: 2px solid var(--ufp-green);
    border-radius: 0;
    color: var(--ufp-deep-green);
    background-color: var(--ufp-paper);
    font: inherit;
}
.ufp-europe-map__choice select:focus-visible {
    outline: 3px solid var(--ufp-map-control-focus);
    outline-offset: 3px;
}
.ufp-europe-map__hint { font-size: 14px; line-height: 1.5; margin: 12px 0 0; max-width: 70ch; }
.ufp-europe-map__canvas { position: relative; width: 100%; }
.ufp-europe-map__svg { display: block; width: 100%; height: auto; overflow: hidden; }
.ufp-europe-map__svg:focus { outline: none; }
.ufp-europe-map__country { fill: #d9ddd8; stroke: var(--ufp-green); stroke-width: .8; }
.ufp-europe-map__country:not(.is-eu) { opacity: var(--ufp-map-neighbour-opacity); }
.ufp-europe-map__country.is-eu { fill: var(--ufp-lime); cursor: pointer; }
.ufp-europe-map__country.has-stories { fill: var(--ufp-map-stories); stroke: var(--ufp-paper); stroke-width: 1.2; }
.ufp-europe-map__country.is-selected,
.ufp-europe-map__country.is-current-story,
.ufp-europe-map__country[role="button"]:hover,
.ufp-europe-map__country[role="button"]:focus-visible {
    fill: var(--ufp-map-selected);
    stroke: var(--ufp-deep-green);
    stroke-width: 3;
    vector-effect: non-scaling-stroke;
}
/* The country fill/stroke above is the focus indicator, following its geography. */
.ufp-europe-map__country:focus { outline: none; }
.ufp-europe-map__label {
    position: absolute;
    z-index: 2;
    pointer-events: none;
    max-width: calc(100% - 8px);
    padding: 4px 7px;
    border: 1px solid var(--ufp-deep-green);
    background: var(--ufp-paper);
    color: var(--ufp-deep-green);
    font: 600 13px/1.4 var(--primary-font);
    white-space: nowrap;
}
.ufp-europe-map__label[hidden] { display: none; }
.ufp-europe-map__legend { display: flex; gap: 10px 24px; flex-wrap: wrap; font-size: 14px; line-height: 1.5; }
.ufp-europe-map__legend span { display: inline-flex; align-items: center; gap: 8px; }
.ufp-europe-map__key { display: inline-block; width: 16px; height: 16px; border: 1px solid var(--ufp-map-key-border); background: #d9ddd8; }
.ufp-europe-map__key:not(.ufp-europe-map__key--eu):not(.ufp-europe-map__key--stories) { opacity: var(--ufp-map-neighbour-opacity); }
.ufp-europe-map__key--eu { background: var(--ufp-lime); }
.ufp-europe-map__key--stories { background: var(--ufp-map-stories); }
.ufp-europe-map__detail { min-height: 3em; margin: 20px 0 0; font-size: 16px; line-height: 1.5; }
.ufp-europe-map__status { margin: 12px 0 0; font-weight: 600; }
.ufp-europe-map__fallback { margin: 20px 0; }
.ufp-europe-map__fallback[hidden] { display: none; }
@media (max-width: 575px) {
    .ufp-europe-map__hint { font-size: 13px; }
}
@media (forced-colors: active) {
    .ufp-europe-map__country { fill: Canvas; stroke: CanvasText; }
    .ufp-europe-map__country.is-eu { fill: ButtonFace; }
    .ufp-europe-map__country.has-stories { fill: LinkText; }
    .ufp-europe-map__country.is-selected,
    .ufp-europe-map__country.is-current-story,
    .ufp-europe-map__country[role="button"]:focus-visible { fill: Highlight; stroke: HighlightText; }
    .ufp-europe-map__label { background: Canvas; color: CanvasText; border-color: CanvasText; }
}

/* RUN-03 — shared map placements and home campaign video. */
.home-farmers-map-section h2 { color: var(--ufp-white); }
.home-farmers-map-wrapper { margin-bottom: clamp(28px, 4vw, 56px); }
/* RUN-08: maps sit directly on their section, without an enclosing panel. */
.home-farmers-map-section .ufp-europe-map {
    --ufp-map-stories: var(--ufp-sky);
    --ufp-map-selected: var(--ufp-paper);
    --ufp-map-control-focus: var(--ufp-paper);
    --ufp-map-key-border: var(--ufp-paper);
    color: var(--ufp-paper);
}
.ufp-europe-map__canvas { max-width: 900px; margin-inline: auto; }
/* RUN-09: Home map and local story browser share one section layout. */
.home-farmers-map-section > .container { max-width: 1440px; padding-inline: clamp(16px, 3vw, 48px); }
.ufp-home-map-heading {
    display: grid;
    grid-template-columns: minmax(0, 2.3fr) minmax(300px, 1fr);
    align-items: end;
    gap: 28px 48px;
    margin-bottom: 44px;
}
.ufp-home-map-heading h2 {
    max-width: 22ch;
    margin: 0;
    font-size: clamp(30px, 3.3vw, 46px);
    line-height: 1.12;
}
.ufp-home-map-heading p { margin: 0; font-size: 17px; line-height: 1.65; }
.home-farmers-map-section [data-home-europe-map] {
    display: grid;
    grid-template-columns: minmax(0, 2.3fr) minmax(300px, 1fr);
    grid-template-areas: "map sidebar";
    align-items: start;
    gap: 24px 48px;
}
[data-home-europe-map] .ufp-europe-map__choice { grid-area: choice; max-width: none; min-width: 0; }
.ufp-home-map-sidebar { grid-area: sidebar; display: grid; grid-template-areas: "choice" "stories"; gap: 24px; min-width: 0; }
.ufp-home-map-view { grid-area: map; min-width: 0; }
.ufp-home-map-view .ufp-europe-map__legend { gap: 8px 18px; font-size: 12px; margin-top: 18px; }
.ufp-home-map-view .ufp-europe-map__detail { font-size: 14px; min-height: 3em; margin-top: 14px; }
.ufp-home-map-results { grid-area: stories; min-width: 0; }
.ufp-home-map-results__count { margin: 0 0 8px; color: var(--ufp-lime); font-size: 13px; font-weight: 600; }
.ufp-home-map-results__heading h3 { margin: 0 0 12px; font-size: 28px; line-height: 1.15; }
.ufp-home-map-stories { list-style: none; margin: 0; padding: 0; }
.ufp-home-map-stories li { border-bottom: 1px solid color-mix(in srgb, var(--ufp-paper) 25%, transparent); }
.ufp-home-map-footer a {
    font-family: var(--alt-font);
    font-size: var(--ufp-button-font-size);
    font-weight: 700;
    font-style: italic;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--ufp-lime);
}
.ufp-home-map-pagination button:focus-visible,
.ufp-home-map-footer a:focus-visible { outline: 3px solid var(--ufp-paper); outline-offset: 4px; }
.ufp-home-map-empty { margin: 12px 0; font-size: 16px; line-height: 1.6; }
.ufp-home-map-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; }
.ufp-home-map-pagination[hidden],
.ufp-home-map-empty[hidden] { display: none; }
.ufp-home-map-pagination span { font-size: 13px; }
.ufp-home-map-pagination button {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--ufp-paper);
    border-radius: 0;
    color: var(--ufp-paper);
    background: transparent;
    font-size: 22px;
    cursor: pointer;
}
.ufp-home-map-pagination button:hover:not(:disabled) { background: var(--ufp-paper); color: var(--ufp-green); }
.ufp-home-map-pagination button:disabled { opacity: .35; cursor: default; }
.ufp-home-map-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 32px; }
.ufp-home-map-footer a { display: inline-block; min-height: 44px; padding: 12px 0; text-decoration: underline; text-decoration-skip-ink: none; text-underline-offset: 5px; }
.ufp-home-map-footer a:hover { color: var(--ufp-paper); text-decoration-thickness: 2px; }
@media (max-width: 991px) {
    .ufp-home-map-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
    .ufp-home-map-heading p { max-width: 58ch; }
    .home-farmers-map-section [data-home-europe-map] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "choice" "map" "stories";
        gap: 24px;
    }
    .ufp-home-map-view .ufp-europe-map__canvas { max-width: 820px; }
    .ufp-home-map-sidebar { display: contents; }
}
.ufp-stories-page { background: var(--ufp-paper); }
.ufp-stories-page .ufp-story-explorer {
    color: var(--ufp-green);
    background: var(--ufp-paper);
    padding-bottom: 0;
}
.ufp-story-explorer > .container { max-width: 1560px; padding-inline: clamp(16px, 3vw, 40px); padding-top: clamp(24px, 3vw, 40px); }
.ufp-story-directory > .container { max-width: 1320px; padding-inline: clamp(16px, 3vw, 40px); }
.ufp-story-explorer__heading { margin-bottom: 28px; }
.ufp-story-explorer__heading h1 {
    max-width: 1000px;
    margin-bottom: 16px;
    color: var(--ufp-green);
    font-size: clamp(34px, 3.5vw, 50px);
    line-height: 1.12;
}
.ufp-story-explorer__heading p { max-width: 660px; margin-bottom: 0; color: var(--ufp-green); font-size: 17px; line-height: 1.6; }
.ufp-story-explorer__heading h1 .ufp-highlight { max-width: 100%; white-space: normal; }
.ufp-stories-page .ufp-story-filters {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--ufp-green);
    background: var(--ufp-paper);
}
.ufp-story-explorer .ufp-europe-map { padding: 0; }
.ufp-story-explorer .ufp-europe-map__canvas { max-width: 1240px; }
.ufp-story-map-stage {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    grid-template-areas: "map filters";
    gap: 40px;
    align-items: start;
    margin-bottom: 32px;
}
.ufp-story-map-geography { grid-area: map; min-width: 0; }
.ufp-story-map-stage .ufp-story-filters { grid-area: filters; min-width: 0; }
.ufp-story-map-caption {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px 36px;
    margin: 16px 0 28px;
}
.ufp-story-map-caption .ufp-europe-map__legend { font-size: 13px; gap: 8px 20px; flex: 1 1 55%; }
.ufp-story-map-caption .ufp-europe-map__detail { flex: 1 1 45%; margin: 0; min-height: 3em; font-size: 14px; text-align: right; }
.ufp-story-filters__heading { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 20px; }
.ufp-story-filters__heading h2 { margin: 0; font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; color: var(--ufp-green); }
.ufp-stories-page .ufp-story-filters__reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-shrink: 0;
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    background: transparent;
    color: var(--ufp-green);
    font: 600 14px/1.4 var(--primary-font);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.ufp-stories-page .ufp-story-filters__reset:hover { text-decoration-thickness: 2px; }
.ufp-stories-page .ufp-story-filters__reset:focus-visible { outline: 3px solid var(--ufp-green); outline-offset: 3px; }
.ufp-story-filters__fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: end; }
.ufp-story-filters .ufp-europe-map__choice { max-width: none; }
.ufp-story-filters .ufp-story-filter label { margin-bottom: 10px; font: 600 13px/1.3 var(--primary-font); letter-spacing: 0; text-transform: none; }
.ufp-stories-page .ufp-story-filter :is(input, select) {
    height: 54px;
    padding: 0 14px;
    border-width: 1px;
    background-color: var(--ufp-white);
    font: 400 15px/1.4 var(--primary-font);
}
.ufp-stories-page .ufp-story-filter select { padding-right: 38px; }
.ufp-stories-page .ufp-story-filter :is(input, select):focus-visible { outline: 3px solid var(--ufp-green); outline-offset: 3px; }
.ufp-story-filters .ufp-europe-map__hint { max-width: none; margin-top: 16px; font-size: 13px; }
.ufp-story-explorer .ufp-europe-map__status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.ufp-stories-page .ufp-story-results-bar {
    margin-top: 24px;
    margin-bottom: 0;
    padding: 16px 0;
    border-top: 0;
    border-bottom: 1px solid var(--ufp-green);
    color: var(--ufp-green);
}
.ufp-story-directory-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    color: var(--ufp-green);
    text-decoration: underline;
    text-underline-offset: 4px;
}
.ufp-story-directory-link:focus-visible { outline: 3px solid var(--ufp-green); outline-offset: 3px; }
.ufp-story-directory { scroll-margin-top: 30px; padding-top: 40px; padding-bottom: clamp(72px, 8vw, 110px); }
.ufp-story-directory__heading { margin-bottom: 32px; }

/* Shared illustrations: Home preview and RUN-15 directory cards. */
.ufp-story-preview { padding: 20px 0; color: inherit; }
.ufp-story-preview__header { display: grid; grid-template-columns: 94px minmax(0, 1fr); align-items: center; gap: 16px; margin-bottom: 20px; }
.ufp-story-illustration { width: 94px; flex-shrink: 0; margin: 0; }
.ufp-story-illustration img { display: block; width: 94px; height: 94px; object-fit: contain; }
.ufp-story-illustration figcaption { margin-top: 6px; font: 400 10px/1.4 var(--primary-font); }
.ufp-story-card__header { display: grid; grid-template-columns: 94px minmax(0, 1fr); align-items: start; gap: 18px; width: 100%; margin-bottom: 24px; }
.ufp-story-card__header .ufp-story-card__number { margin-bottom: 12px; }
.ufp-story-card__header .ufp-story-card__meta { margin-bottom: 0; }
.ufp-story-preview__meta { margin: 0 0 8px; font-size: 12px; line-height: 1.4; }
.ufp-story-preview__name { margin: 0; color: inherit; font: 600 21px/1.25 var(--alt-font); text-transform: none; }
.ufp-story-preview__project { margin: 0 0 12px; font-size: 16px; font-weight: 600; line-height: 1.45; }
.ufp-story-preview__summary { margin: 0 0 16px; font-size: 14px; line-height: 1.65; }
.ufp-story-preview__open {
    display: inline-block;
    min-height: 44px;
    padding: 10px 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: italic 700 var(--ufp-button-font-size)/1.4 var(--alt-font);
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 5px;
}
.ufp-story-preview__open:hover { text-decoration-thickness: 2px; }
.ufp-story-preview__open:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.ufp-home-map-results .ufp-story-preview__meta { color: var(--ufp-sky); }
.ufp-home-map-results .ufp-story-preview__open { color: var(--ufp-lime); }
.home-campaign-video {
    position: relative;
    display: grid;
    align-items: center;
    min-height: 450px;
    isolation: isolate;
    background: var(--ufp-deep-green);
    clip-path: var(--ufp-cutout-card);
}
.home-campaign-video__image,
.home-campaign-video::after { position: absolute; z-index: -1; inset: 0; }
.home-campaign-video__image img { width: 100%; height: 100%; object-fit: cover; object-position: 54% 48%; }
.home-campaign-video::after { content: ''; background: rgba(0, 0, 0, .48); }
.home-campaign-video__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 40px;
    padding: clamp(32px, 5vw, 72px);
}
.home-campaign-video__content h2 { margin: 0; max-width: 720px; color: var(--ufp-white); font-size: clamp(30px, 3.6vw, 52px); line-height: 1.12; }
@media (min-width: 992px) {
    /* Clip horizontal overflow without creating a scroll container that traps sticky. */
    html:has(.ufp-europe-map),
    body:has(.ufp-europe-map) { overflow-x: clip; }
    .ufp-stories-page main { overflow: clip; }
    .ufp-home-map-sidebar,
    .ufp-story-map-stage .ufp-story-filters {
        position: sticky;
        top: 16px;
        align-self: start;
        /* Leave room for the fixed scroll-to-top control at the lower right. */
        max-height: calc(100dvh - 112px);
        overflow-y: auto;
        padding: 7px;
        margin: -7px;
        scrollbar-width: thin;
    }
    .ufp-story-explorer__heading { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); column-gap: 48px; align-items: center; }
    .ufp-story-explorer__heading .ufp-section-kicker { grid-column: 1 / -1; }
    .ufp-story-explorer__heading h1 { margin-bottom: 0; }
}
@media (max-width: 991px) {
    .ufp-story-map-stage { grid-template-columns: minmax(0, 1fr); grid-template-areas: "filters" "map"; gap: 28px; }
}
@media (max-width: 767px) {
    .ufp-story-map-caption { flex-direction: column; gap: 12px; margin-bottom: 20px; }
    .ufp-story-map-caption .ufp-europe-map__detail { text-align: left; min-height: 3em; }
    .ufp-story-filters__fields { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .ufp-story-filters__heading { align-items: flex-start; }
    .ufp-stories-page .ufp-story-results-bar { align-items: flex-start; gap: 8px; }
    .ufp-story-directory { padding-top: 28px; }
    .home-campaign-video { min-height: 430px; }
    .home-campaign-video__content { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 32px; padding: 48px 26px; text-align: center; }
}

/* RUN-04: explanation first, external questionnaire second. */
.ufp-share-page .ufp-share-intro {
    padding-top: 130px; /* Header fallback; Crafto supplies the measured height. */
    padding-bottom: clamp(90px, 8vw, 120px);
}
.ufp-share-page .ufp-share-intro > .container {
    padding-top: clamp(30px, 4vw, 60px);
}
.ufp-share-page .ufp-share-hero {
    min-height: 0;
    padding-top: clamp(80px, 8vw, 120px);
    padding-bottom: clamp(100px, 9vw, 140px);
}
.ufp-share-page .ufp-share-hero__copy { padding-top: 0; }
.ufp-share-page .ufp-share-hero__title { line-height: 1.12; }
.ufp-share-page .ufp-share-hero__title .ufp-highlight { white-space: normal; }
.ufp-share-page .ufp-share-hero .ufp-button { max-width: 100%; white-space: normal; }
.ufp-share-page .ufp-share-hero .ufp-button:focus-visible { outline-color: var(--ufp-green); }
.ufp-share-page .ufp-site-nav { border-bottom-color: transparent !important; }
@media (min-width: 992px) {
    .ufp-share-page .ufp-site-nav.navbar .navbar-nav .nav-link { color: var(--ufp-white); }
}
@media (max-width: 991px) {
    .ufp-share-page .ufp-site-nav .navbar-toggler:focus-visible { outline-color: var(--ufp-sky); }
}

/* RUN-06: semantic headings, readable fallbacks and surface-aware focus. */
.home-voice-heading { text-transform: none; }
.home-farming-feature-section h2.h3,
.home-europe-steps h2.h3 { line-height: 3rem; }
.home-europe-steps h2.h3 { margin-bottom: 10px; }
.ufp-site-footer .footer-cta-heading {
    font-size: 2.375rem;
    line-height: 2.7rem;
    text-transform: none;
    letter-spacing: -.02em;
}
.ufp-home-page .ufp-home-hero .ufp-button:focus-visible,
.ufp-stories-page .ufp-story-filters__reset:focus-visible,
.ufp-permit-hero .ufp-button:focus-visible,
.ufp-unlock-hero .ufp-button:focus-visible,
.ufp-404 .ufp-button:focus-visible,
.ufp-chart-row__button:focus-visible,
.ufp-chart-segment-legend__button:focus-visible {
    outline-color: var(--ufp-green);
}
.ufp-site-nav .ufp-logo-link:focus-visible { outline-color: var(--ufp-green); }
.ufp-share-page .ufp-site-nav .ufp-logo-link:focus-visible { outline-color: var(--ufp-white); }
.ufp-home-page button.mfp-close,
.ufp-home-page button.mfp-close:active {
    width: 44px;
    height: 44px;
    border-radius: 0;
}
.ufp-home-page button.mfp-close:focus-visible {
    outline: 3px solid var(--ufp-lime);
    outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    .ufp-home-page .mfp-fade,
    .ufp-home-page .mfp-fade .mfp-content { transition: none !important; }
}
