.fsv2-page,
.lpd {
    --lpd-ink: #203229;
    --lpd-copy: #5d6b62;
    --lpd-cream: #f5f3e9;
    --lpd-paper: #fffef9;
    --lpd-pale: #edf1df;
    --lpd-olive: #879b48;
    --lpd-olive-dark: #667b2f;
    --lpd-line: #d8dfc5;
    --lpd-water: #4e8fae;
    --lpd-steam: #b48149;
    --lpd-chemical: #7d9650;
    --lpd-alert: #ba604b;
    --lpd-graphite: #263b3d;
    color: var(--lpd-ink);
}

.fsv2-page *,
.fsv2-page *::before,
.fsv2-page *::after,
.lpd *,
.lpd *::before,
.lpd *::after {
    box-sizing: border-box;
}

.fsv2-page {
    overflow: clip;
    background: var(--lpd-paper);
}

.fsv2-hero {
    position: relative;
    min-height: clamp(500px, 62vh, 620px);
    isolation: isolate;
    overflow: hidden;
    background: var(--lpd-cream);
}

.fsv2-hero__media,
.fsv2-hero__media picture,
.fsv2-hero__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
}

.fsv2-hero__media {
    z-index: -2;
}

.fsv2-hero__media img {
    object-fit: cover;
    object-position: var(--fsv2-hero-position, center);
}

.fsv2-hero::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(249, 248, 241, .98) 0%, rgba(249, 248, 241, .94) 34%, rgba(249, 248, 241, .56) 58%, rgba(249, 248, 241, .08) 82%);
}

.fsv2-hero::after {
    position: absolute;
    z-index: -1;
    inset: auto 0 0;
    height: 1px;
    content: "";
    background: var(--lpd-line);
}

.fsv2-hero__inner {
    display: flex;
    min-height: inherit;
    align-items: center;
    padding-block: clamp(72px, 8vw, 112px) clamp(58px, 7vw, 92px);
}

.fsv2-hero__copy {
    width: min(720px, 60%);
}

.fsv2-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    margin-bottom: 26px;
    color: #647069;
    font-size: .78rem;
    font-weight: 650;
}

.fsv2-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.fsv2-breadcrumb strong {
    color: var(--lpd-olive-dark);
}

.fsv2-eyebrow,
.fsv2-section-head > span,
.fsv2-final__copy > span {
    display: block;
    color: var(--lpd-olive-dark);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.4;
    text-transform: uppercase;
}

.fsv2-hero h1 {
    max-width: 720px;
    margin: 12px 0 18px;
    color: var(--lpd-ink);
    font-size: clamp(3rem, 5.2vw, 4.25rem);
    font-weight: 650;
    letter-spacing: 0;
    line-height: .98;
}

.fsv2-hero__copy > p {
    max-width: 680px;
    margin: 0;
    color: #536159;
    font-size: clamp(1rem, 1.3vw, 1.15rem);
    line-height: 1.65;
}

.fsv2-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.fsv2-hero__actions .page-button-secondary {
    border-color: rgba(65, 82, 69, .25);
    background: rgba(255, 254, 249, .82);
    color: var(--lpd-ink);
    backdrop-filter: blur(8px);
}

.lpd {
    padding: clamp(58px, 6vw, 88px) 0;
    background: #f8f7f1;
}

.lpd__inner {
    width: min(calc(100% - 36px), 1580px);
}

.lpd__header {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .75fr);
    gap: clamp(28px, 5vw, 80px);
    align-items: end;
    margin-bottom: 26px;
}

.lpd__eyebrow,
.lpd__rail-title,
.lpd__panel-top > span,
.lpd__panel-copy span,
.lpd__panel-solutions > span,
.lpd__drawer > div > span {
    display: block;
    color: var(--lpd-olive-dark);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.35;
    text-transform: uppercase;
}

.lpd__header h2 {
    max-width: 760px;
    margin: 7px 0 0;
    color: var(--lpd-ink);
    font-size: clamp(2rem, 3.8vw, 3.6rem);
    font-weight: 650;
    letter-spacing: 0;
    line-height: 1;
}

.lpd__header p {
    max-width: 620px;
    margin: 0;
    color: var(--lpd-copy);
    font-size: .98rem;
    line-height: 1.65;
}

.lpd__toolbar {
    display: flex;
    min-height: 58px;
    align-items: center;
    gap: 18px;
    padding: 7px 10px 7px 18px;
    border: 1px solid var(--lpd-line);
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
    background: var(--lpd-paper);
}

.lpd__mode-label {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-right: auto;
}

.lpd__mode-label span,
.lpd__logic-label {
    color: #718078;
    font-size: .69rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.lpd__mode-label strong {
    color: var(--lpd-ink);
    font-size: .78rem;
}

.lpd__modes {
    display: grid;
    grid-template-columns: repeat(3, minmax(88px, 1fr));
    overflow: hidden;
    border: 1px solid var(--lpd-line);
    border-radius: 5px;
}

.lpd__modes button {
    min-height: 44px;
    padding: 0 15px;
    border: 0;
    border-right: 1px solid var(--lpd-line);
    background: #fff;
    color: #68746e;
    font: inherit;
    font-size: .72rem;
    font-weight: 750;
    cursor: pointer;
}

.lpd__modes button:last-child {
    border-right: 0;
}

.lpd__modes button[aria-pressed="true"] {
    background: var(--lpd-olive);
    color: #fff;
}

.lpd__logic-label {
    padding-right: 8px;
    color: var(--lpd-olive-dark);
}

.lpd__frame {
    display: grid;
    grid-template-columns: minmax(185px, .52fr) minmax(560px, 1.65fr) minmax(300px, .86fr);
    grid-template-areas:
        "challenges visual panel"
        "lower lower lower";
    overflow: hidden;
    border: 1px solid var(--lpd-line);
    border-radius: 0 0 7px 7px;
    background: var(--lpd-paper);
    box-shadow: 0 22px 55px rgba(45, 62, 51, .11);
}

.lpd__challenges {
    grid-area: challenges;
    min-width: 0;
    padding: 22px 14px;
    border-right: 1px solid var(--lpd-line);
    background: #f3f4e9;
}

.lpd__rail-head {
    display: flex;
    min-height: 22px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0 5px 12px;
}

.lpd__rail-head button {
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--lpd-olive-dark);
    font: inherit;
    font-size: .68rem;
    font-weight: 750;
    cursor: pointer;
}

.lpd__challenge-list {
    display: grid;
    gap: 6px;
}

.lpd__challenge {
    display: grid;
    grid-template-columns: 27px minmax(0, 1fr) 7px;
    min-height: 47px;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: transparent;
    color: #526158;
    text-align: left;
    cursor: pointer;
}

.lpd__challenge > span {
    color: var(--lpd-olive-dark);
    font-size: .68rem;
    font-weight: 800;
}

.lpd__challenge strong {
    font-size: .78rem;
    line-height: 1.28;
}

.lpd__challenge i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #c7cdbf;
}

.lpd__challenge:hover,
.lpd__challenge:focus-visible {
    border-color: #cdd7b5;
    background: rgba(255, 255, 255, .75);
    outline: none;
}

.lpd__challenge.is-active {
    border-color: #aebd80;
    background: #fff;
    color: var(--lpd-ink);
    box-shadow: inset 3px 0 var(--lpd-olive);
}

.lpd__challenge.is-active i {
    background: var(--lpd-olive);
}

.lpd__challenge.is-filtered-out {
    display: none;
}

.lpd__visual {
    grid-area: visual;
    min-width: 0;
    padding: 18px;
    background: #eef0e7;
}

.lpd__canvas {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    aspect-ratio: var(--lpd-aspect, 1672 / 941);
    min-height: 0;
    border: 1px solid #cfd7c9;
    border-radius: 5px;
    background: #f7f4eb;
}

.lpd__system {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: visible;
    pointer-events: none;
}

.lpd__floor {
    fill: rgba(255, 255, 255, .72);
    stroke: #d7ded2;
    stroke-width: 1.5;
}

.lpd__floor-edge {
    fill: rgba(199, 207, 197, .34);
    stroke: #cbd4ca;
    stroke-width: 1;
}

.lpd__grid path {
    fill: none;
    stroke: #dde3da;
    stroke-width: 1;
}

.lpd__pipe-shell {
    fill: none;
    stroke: #a9b4ae;
    stroke-width: 11;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .58;
    filter: drop-shadow(0 3px 2px rgba(38, 59, 51, .16));
}

.lpd__flow {
    fill: none;
    stroke: #779bb0;
    stroke-width: 4.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .55;
    vector-effect: non-scaling-stroke;
    transition: opacity .22s ease, stroke-width .22s ease, filter .22s ease;
}

.lpd__flow--steam,
.lpd__flow--syrup,
.lpd__flow--material,
.lpd__flow--juice,
.lpd__flow--molasses {
    stroke: var(--lpd-steam);
}

.lpd__flow--condensate,
.lpd__flow--return {
    stroke: #6f9c91;
}

.lpd__flow--chemical {
    stroke: var(--lpd-chemical);
    stroke-dasharray: 10 8;
}

.lpd__flow--control {
    stroke: #737f8d;
    stroke-width: 3;
    stroke-dasharray: 3 8;
}

.lpd__flow--wastewater {
    stroke: #7e9189;
}

.lpd__flow--sludge {
    stroke: #8c725c;
}

.lpd__flow.is-active {
    stroke-width: 7;
    opacity: 1;
    filter: drop-shadow(0 2px 2px rgba(59, 91, 78, .17));
    animation: lpd-flow 2.8s linear infinite;
}

.lpd[data-mode="problem"] .lpd__flow:not(.is-active),
.lpd[data-mode="treatment"] .lpd__flow:not(.is-active) {
    opacity: .13;
}

.lpd__component {
    cursor: pointer;
    outline: none;
    transition: opacity .2s ease;
}

.lpd__component-hit {
    fill: transparent;
    stroke: transparent;
    stroke-width: 2;
    transition: fill .2s ease, stroke .2s ease;
}

.lpd__component use {
    pointer-events: none;
}

.lpd__equipment {
    filter: drop-shadow(0 8px 6px rgba(36, 57, 47, .22));
    pointer-events: none;
    transition: filter .2s ease, transform .2s ease;
}

.lpd__eq-shadow {
    fill: rgba(34, 55, 47, .18);
    stroke: none;
}

.lpd__eq-body {
    fill: #e9eeea;
    stroke: #415b54;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lpd__eq-side {
    fill: #a5b1ab;
    stroke: #405950;
    stroke-width: 2;
    stroke-linejoin: round;
}

.lpd__eq-dark {
    fill: #52665e;
    stroke: #344b43;
    stroke-width: 2;
    stroke-linejoin: round;
}

.lpd__eq-liquid,
.lpd__eq-flow,
.lpd__eq-screen {
    fill: #6fa1b2;
    stroke: #376a7d;
    stroke-width: 1.8;
}

.lpd__eq-detail {
    fill: #f9fbf8;
    stroke: #566d64;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lpd__eq-pipe {
    fill: none;
    stroke: #8d9b95;
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lpd__eq-pipe--wide {
    stroke-width: 12;
}

.lpd__eq-fill {
    fill: #40534d;
    stroke: #31453f;
    stroke-width: 1.5;
}

.lpd__eq-waterfall path {
    fill: none;
    stroke: #5f9caf;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-dasharray: 5 4;
    animation: lpd-waterfall 1.5s linear infinite;
}

.lpd__eq-plates path,
.lpd__eq-coil,
.lpd__eq-spin,
.lpd__eq-flow {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lpd__eq-plates path,
.lpd__eq-coil {
    stroke: #657970;
    stroke-width: 2;
}

.lpd__eq-spin {
    stroke: #597043;
    stroke-width: 2;
}

.lpd__eq-flame {
    fill: #b79055;
    stroke: #7b5c31;
    stroke-width: 1.4;
}

.lpd__eq-bubbles circle {
    fill: rgba(255, 255, 255, .72);
    stroke: #427c90;
    stroke-width: 1.3;
}

.lpd__system [fill="none"] {
    fill: none;
}

.lpd__system .lpd__eq-accent {
    fill: #9eb458;
    stroke: #536b49;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.lpd__component-index {
    fill: #fff;
    stroke: #9eb276;
    stroke-width: 1.5;
}

.lpd__component-number {
    fill: #617642;
    font-size: 9px;
    font-weight: 800;
    text-anchor: middle;
    pointer-events: none;
}

.lpd__component-label {
    fill: #31453d;
    font-size: 12px;
    font-weight: 700;
    text-anchor: middle;
    pointer-events: none;
}

.lpd__label-plate {
    fill: rgba(255, 255, 252, .94);
    stroke: #bcc8b8;
    stroke-width: 1;
    pointer-events: none;
}

.lpd__component:hover .lpd__component-hit,
.lpd__component:focus-visible .lpd__component-hit {
    fill: rgba(255, 255, 255, .7);
    stroke: #96aa61;
}

.lpd__component:hover .lpd__equipment,
.lpd__component:focus-visible .lpd__equipment,
.lpd__component.is-selected .lpd__equipment,
.lpd__component.is-affected .lpd__equipment,
.lpd__component.is-treatment .lpd__equipment {
    filter: drop-shadow(0 12px 9px rgba(47, 73, 58, .28));
}

.lpd__component.is-selected .lpd__component-hit {
    fill: rgba(235, 241, 216, .7);
    stroke: var(--lpd-olive);
    stroke-width: 3;
}

.lpd__component.is-affected .lpd__component-hit {
    fill: rgba(190, 92, 67, .08);
    stroke: rgba(186, 96, 75, .72);
}

.lpd[data-mode="problem"] .lpd__component.is-quiet,
.lpd[data-mode="treatment"] .lpd__component.is-quiet {
    opacity: .28;
}

.lpd__problem-overlay {
    display: none;
    color: var(--lpd-alert);
    pointer-events: none;
}

.lpd__problem-overlay use {
    fill: currentColor;
    stroke: #8b3f34;
    stroke-width: 1.2;
}

.lpd__problem-halo {
    fill: rgba(186, 96, 75, .12);
    stroke: rgba(186, 96, 75, .65);
    stroke-width: 2;
    stroke-dasharray: 5 5;
}

.lpd[data-mode="problem"] .lpd__problem-overlay.is-active,
.lpd[data-mode="treatment"] .lpd__problem-overlay.is-active {
    display: block;
    animation: lpd-pulse 2.2s ease-in-out infinite;
}

.lpd[data-mode="treatment"] .lpd__problem-overlay.is-active {
    opacity: .38;
    transform-box: fill-box;
    transform-origin: center;
    scale: .76;
}

.lpd__treatment-node {
    display: none;
}

.lpd__treatment-node circle {
    fill: rgba(135, 155, 72, .1);
    stroke: #79913f;
    stroke-width: 2;
    stroke-dasharray: 5 5;
}

.lpd__treatment-node path {
    fill: none;
    stroke: #79913f;
    stroke-width: 2;
}

.lpd[data-mode="treatment"] .lpd__treatment-node.is-active {
    display: block;
    animation: lpd-treatment 2.4s linear infinite;
}

.lpd__visual-state {
    position: absolute;
    inset: 13px auto auto 13px;
    display: grid;
    max-width: min(360px, calc(100% - 26px));
    gap: 2px;
    padding: 8px 11px;
    border: 1px solid rgba(211, 219, 201, .9);
    border-radius: 4px;
    background: rgba(255, 254, 249, .9);
    backdrop-filter: blur(7px);
}

.lpd__visual-state span {
    color: var(--lpd-olive-dark);
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.lpd__visual-state strong {
    overflow: hidden;
    color: #4a5951;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpd__visual-help {
    margin: 10px 0 0;
    color: #68756d;
    font-size: .72rem;
    line-height: 1.45;
}

/* The machinery is a realistic generated digital twin; overlays only add interaction. */
.lpd__scene-media {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    background: #f7f4eb;
}

.lpd__scene-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: filter .24s ease, opacity .24s ease;
}

.lpd__canvas::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, .62);
    box-shadow: inset 0 0 42px rgba(68, 84, 73, .045);
    content: "";
    pointer-events: none;
}

.lpd[data-mode="problem"] .lpd__scene-media img {
    filter: saturate(.82) contrast(.97) brightness(.98);
}

.lpd[data-mode="treatment"] .lpd__scene-media img {
    filter: saturate(.92) contrast(1.01);
}

.lpd__flow-layer {
    opacity: .28;
    transition: opacity .22s ease;
}

.lpd__flow {
    stroke-width: 2.5;
    stroke-dasharray: 8 10;
}

.lpd__flow.is-active {
    stroke-width: 4.5;
    opacity: .92;
}

.lpd__component-layer,
.lpd__treatment-layer,
.lpd__problem-layer {
    position: absolute;
    z-index: 4;
    inset: 0;
    pointer-events: none;
}

.lpd__treatment-layer,
.lpd__problem-layer {
    z-index: 5;
}

.lpd__hotspot {
    position: absolute;
    left: var(--lpd-x);
    top: var(--lpd-y);
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    transform: translate(-50%, -50%);
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lpd-ink);
    font: inherit;
    pointer-events: auto;
}

.lpd__component-pin {
    position: relative;
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 2px solid rgba(255, 255, 255, .96);
    border-radius: 50%;
    background: rgba(108, 132, 54, .92);
    box-shadow: 0 0 0 1px rgba(63, 86, 54, .54), 0 5px 14px rgba(38, 58, 47, .22);
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.lpd__component-pin::after {
    position: absolute;
    inset: -7px;
    border: 1px solid rgba(122, 149, 63, .42);
    border-radius: 50%;
    content: "";
    opacity: 0;
    transform: scale(.72);
    transition: opacity .18s ease, transform .18s ease;
}

.lpd__component-pin b {
    color: #fff;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.lpd__component-name {
    position: absolute;
    top: calc(100% + 7px);
    left: 50%;
    width: max-content;
    max-width: 150px;
    padding: 5px 8px;
    transform: translateX(-50%);
    border: 1px solid rgba(181, 194, 166, .9);
    border-radius: 4px;
    background: rgba(255, 254, 249, .93);
    box-shadow: 0 4px 12px rgba(43, 61, 50, .1);
    color: #34463e;
    font-size: .62rem;
    font-weight: 750;
    line-height: 1.2;
    pointer-events: none;
    text-align: center;
    transition: opacity .16s ease, visibility .16s ease;
}

.lpd__hotspot[data-label-mode="on-demand"] .lpd__component-name {
    opacity: 0;
    visibility: hidden;
}

.lpd__hotspot[data-label-mode="on-demand"]:hover .lpd__component-name,
.lpd__hotspot[data-label-mode="on-demand"]:focus-visible .lpd__component-name,
.lpd__hotspot[data-label-mode="on-demand"].is-selected .lpd__component-name {
    opacity: 1;
    visibility: visible;
}

.lpd__hotspot[data-label-position="above"] .lpd__component-name {
    top: auto;
    bottom: calc(100% + 7px);
}

.lpd__hotspot[data-label-align="left"] .lpd__component-name {
    left: 0;
    transform: none;
    text-align: left;
}

.lpd__hotspot[data-label-align="right"] .lpd__component-name {
    right: 0;
    left: auto;
    transform: none;
    text-align: right;
}

.lpd__hotspot:hover .lpd__component-pin,
.lpd__hotspot:focus-visible .lpd__component-pin,
.lpd__hotspot.is-selected .lpd__component-pin {
    transform: scale(1.12);
    background: #4f6934;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .76), 0 7px 18px rgba(35, 55, 44, .28);
}

.lpd__hotspot:hover .lpd__component-pin::after,
.lpd__hotspot:focus-visible .lpd__component-pin::after,
.lpd__hotspot.is-selected .lpd__component-pin::after {
    opacity: 1;
    transform: scale(1);
}

.lpd__hotspot:focus-visible {
    outline: 2px solid #58713b;
    outline-offset: 6px;
}

.lpd__hotspot.is-affected .lpd__component-pin {
    background: #9a624c;
    box-shadow: 0 0 0 4px rgba(255, 250, 245, .82), 0 7px 18px rgba(107, 63, 48, .25);
}

.lpd__hotspot.is-treatment .lpd__component-pin {
    background: #78943c;
    box-shadow: 0 0 0 5px rgba(145, 172, 76, .18), 0 7px 18px rgba(63, 91, 42, .25);
}

.lpd__issue-marker {
    position: absolute;
    left: var(--lpd-x);
    top: var(--lpd-y);
    width: 74px;
    height: 74px;
    transform: translate(-50%, -50%);
}

.lpd__issue-marker i {
    position: absolute;
    inset: 0;
    border: 2px solid rgba(166, 87, 66, .78);
    border-radius: 50%;
    background: rgba(177, 92, 69, .1);
    box-shadow: 0 0 0 9px rgba(177, 92, 69, .06);
}

.lpd__issue-marker strong {
    position: absolute;
    top: 50%;
    left: calc(100% + 8px);
    width: max-content;
    max-width: 145px;
    padding: 5px 8px;
    transform: translateY(-50%);
    border: 1px solid rgba(184, 123, 103, .65);
    border-radius: 4px;
    background: rgba(255, 249, 244, .95);
    color: #7e4939;
    font-size: .61rem;
    line-height: 1.2;
}

.lpd[data-mode="treatment"] .lpd__issue-marker.is-active {
    opacity: .3;
    scale: 1;
}

.lpd__control-marker {
    position: absolute;
    left: var(--lpd-x);
    top: var(--lpd-y);
    width: 64px;
    height: 64px;
    transform: translate(-50%, -50%);
    border: 2px dashed #78913e;
    border-radius: 50%;
    background: rgba(143, 166, 78, .09);
    box-shadow: 0 0 0 8px rgba(143, 166, 78, .06);
}

.lpd[data-mode="treatment"] .lpd__control-marker.is-active {
    display: block;
    animation: lpd-control-pulse 1.8s ease-in-out infinite;
}

.lpd__visual-state {
    z-index: 8;
}

.lpd__panel {
    grid-area: panel;
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 22px;
    border-left: 1px solid var(--lpd-line);
    background: #fffefb;
}

.lpd__panel-top h3 {
    margin: 5px 0 8px;
    color: var(--lpd-ink);
    font-size: clamp(1.15rem, 1.5vw, 1.42rem);
    line-height: 1.12;
}

.lpd__panel-top b {
    display: inline-flex;
    min-height: 25px;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--lpd-pale);
    color: var(--lpd-olive-dark);
    font-size: .68rem;
}

.lpd__panel-copy {
    display: grid;
    gap: 13px;
    margin-top: 18px;
}

.lpd__panel-copy p {
    display: -webkit-box;
    overflow: hidden;
    margin: 4px 0 0;
    color: var(--lpd-copy);
    font-size: .79rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.lpd__approach-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 15px;
    padding: 0 11px;
    border: 1px solid #b9c795;
    border-radius: 4px;
    background: #f5f7ed;
    color: var(--lpd-ink);
    font: inherit;
    font-size: .72rem;
    font-weight: 750;
    cursor: pointer;
}

.lpd__benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 12px;
}

.lpd__benefits span {
    padding: 5px 7px;
    border: 1px solid #dde3ce;
    border-radius: 3px;
    background: #fbfcf7;
    color: #5b685f;
    font-size: .62rem;
    line-height: 1.25;
}

.lpd__panel-solutions {
    margin-top: 17px;
}

.lpd__solutions {
    display: grid;
    gap: 6px;
    margin-top: 7px;
}

.lpd__solution {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 14px;
    min-height: 57px;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 7px 8px;
    border: 1px solid #dfe5d0;
    border-radius: 4px;
    background: #fff;
    color: var(--lpd-ink);
    text-align: left;
    cursor: pointer;
}

.lpd__solution--primary {
    border-color: #b6c58f;
    background: #f5f7ec;
}

.lpd__solution img {
    width: 30px;
    height: 44px;
    object-fit: contain;
}

.lpd__solution-mark {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: var(--lpd-pale);
    color: var(--lpd-olive-dark);
    font-size: .62rem;
    font-weight: 800;
}

.lpd__solution > span:not(.lpd__solution-mark) {
    display: grid;
    min-width: 0;
    gap: 1px;
}

.lpd__solution small {
    color: var(--lpd-olive-dark);
    font-size: .58rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.lpd__solution strong {
    overflow: hidden;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpd__solution em {
    display: -webkit-box;
    overflow: hidden;
    color: #6a776f;
    font-size: .61rem;
    font-style: normal;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.lpd__review-note {
    display: grid;
    gap: 3px;
    margin-top: 7px;
    padding: 10px;
    border-left: 3px solid var(--lpd-olive);
    background: #f5f6ee;
}

.lpd__review-note strong {
    font-size: .72rem;
}

.lpd__review-note span {
    color: var(--lpd-copy);
    font-size: .65rem;
    line-height: 1.4;
}

.lpd__mini-review {
    margin-top: auto;
    padding-top: 15px;
    color: var(--lpd-olive-dark);
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
}

.lpd__lower {
    grid-area: lower;
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(360px, .8fr);
    border-top: 1px solid var(--lpd-line);
    background: #fff;
}

.lpd__process,
.lpd__monitoring {
    min-width: 0;
    padding: 16px 20px;
}

.lpd__process {
    border-right: 1px solid var(--lpd-line);
}

.lpd__stage-list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    margin-top: 10px;
    border: 1px solid var(--lpd-line);
    border-radius: 4px;
}

.lpd__stage {
    display: grid;
    min-height: 45px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border: 0;
    border-right: 1px solid var(--lpd-line);
    background: #fff;
    color: #536159;
    text-align: left;
    cursor: pointer;
}

.lpd__stage:last-child {
    border-right: 0;
}

.lpd__stage span {
    color: var(--lpd-olive-dark);
    font-size: .61rem;
    font-weight: 800;
}

.lpd__stage strong {
    overflow: hidden;
    font-size: .68rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lpd__stage.is-active {
    background: var(--lpd-pale);
    color: var(--lpd-ink);
    box-shadow: inset 0 -3px var(--lpd-olive);
}

.lpd__monitoring > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.lpd__monitoring small {
    color: #748178;
    font-size: .61rem;
}

.lpd__parameter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 10px;
}

.lpd__parameter,
.lpd__parameter-more summary {
    display: inline-flex;
    min-height: 27px;
    align-items: center;
    padding: 4px 8px;
    border: 1px solid #dbe1cf;
    border-radius: 999px;
    background: #fafbf6;
    color: #647169;
    font-size: .61rem;
    font-weight: 700;
}

.lpd__parameter.is-active {
    border-color: #9fb270;
    background: var(--lpd-pale);
    color: var(--lpd-olive-dark);
}

.lpd__parameter-more {
    position: relative;
}

.lpd__parameter-more summary {
    list-style: none;
    cursor: pointer;
}

.lpd__parameter-more summary::-webkit-details-marker {
    display: none;
}

.lpd__parameter-more > div {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: 33px;
    display: grid;
    min-width: 190px;
    gap: 5px;
    padding: 9px;
    border: 1px solid var(--lpd-line);
    background: #fff;
    box-shadow: 0 14px 30px rgba(35, 52, 44, .14);
}

.lpd__drawer {
    width: min(620px, calc(100% - 32px));
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: var(--lpd-paper);
    color: var(--lpd-ink);
    box-shadow: 0 28px 80px rgba(28, 44, 37, .32);
}

.lpd__drawer[open] {
    display: grid;
    grid-template-columns: minmax(0, 160px) minmax(0, 1fr);
    gap: 24px;
    padding: 30px;
}

.lpd__drawer::backdrop {
    background: rgba(31, 47, 40, .55);
    backdrop-filter: blur(3px);
}

.lpd__drawer-close {
    position: absolute;
    top: 9px;
    right: 10px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid var(--lpd-line);
    border-radius: 50%;
    background: #fff;
    color: var(--lpd-ink);
    font-size: 1.4rem;
    cursor: pointer;
}

.lpd__drawer-media {
    display: grid;
    min-height: 190px;
    place-items: center;
    background: var(--lpd-pale);
}

.lpd__drawer-media img {
    width: 110px;
    height: 160px;
    object-fit: contain;
}

.lpd__drawer-media span {
    display: grid;
    width: 72px;
    height: 72px;
    place-items: center;
    border: 1px solid #aebb85;
    border-radius: 50%;
    color: var(--lpd-olive-dark);
    font-size: .72rem;
    font-weight: 800;
}

.lpd__drawer h3 {
    margin: 7px 0 10px;
    font-size: 1.6rem;
    line-height: 1.05;
}

.lpd__drawer p {
    margin: 0;
    color: var(--lpd-copy);
    font-size: .88rem;
    line-height: 1.6;
}

.lpd__drawer-note {
    margin-top: 14px;
    padding: 9px 11px;
    border-left: 3px solid var(--lpd-olive);
    background: #f3f5e9;
    color: #59665e;
    font-size: .75rem;
}

.lpd__drawer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 18px;
}

.lpd__drawer-actions > a:last-child {
    color: var(--lpd-olive-dark);
    font-size: .76rem;
    font-weight: 750;
}

.fsv2-reference {
    position: relative;
    padding: clamp(56px, 6vw, 86px) 0;
    background: var(--lpd-paper);
}

.fsv2-section-head {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(360px, 1.15fr);
    gap: clamp(30px, 6vw, 90px);
    align-items: end;
    margin-bottom: 28px;
}

.fsv2-section-head h2 {
    max-width: 700px;
    margin: 7px 0 0;
    font-size: clamp(2rem, 3.5vw, 3.25rem);
    line-height: 1;
}

.fsv2-section-head p {
    margin: 0;
    color: var(--lpd-copy);
    line-height: 1.65;
}

.fsv2-reference__items {
    border-top: 1px solid var(--lpd-line);
}

.fsv2-reference details {
    border-bottom: 1px solid var(--lpd-line);
}

.fsv2-reference summary {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 32px;
    min-height: 64px;
    align-items: center;
    gap: 12px;
    list-style: none;
    color: var(--lpd-ink);
    cursor: pointer;
}

.fsv2-reference summary::-webkit-details-marker {
    display: none;
}

.fsv2-reference summary > span {
    color: var(--lpd-olive-dark);
    font-size: .74rem;
    font-weight: 800;
}

.fsv2-reference summary strong {
    font-size: .94rem;
}

.fsv2-reference summary b {
    font-size: 1.35rem;
    font-weight: 400;
    transition: transform .18s ease;
}

.fsv2-reference details[open] summary b {
    transform: rotate(45deg);
}

.fsv2-reference__panel {
    display: grid;
    grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
    gap: clamp(28px, 5vw, 70px);
    padding: 0 0 28px 54px;
}

.fsv2-reference__panel > p {
    margin: 0;
    color: var(--lpd-copy);
    line-height: 1.65;
}

.fsv2-reference__points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.fsv2-reference__point {
    padding: 11px 12px;
    border-left: 2px solid #b5c58e;
    background: #f7f8f2;
}

.fsv2-reference__point strong {
    display: block;
    font-size: .8rem;
}

.fsv2-reference__point span {
    display: block;
    margin-top: 3px;
    color: var(--lpd-copy);
    font-size: .72rem;
    line-height: 1.45;
}

.fsv2-reference__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: start;
}

.fsv2-reference__actions a {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #b7c493;
    border-radius: 4px;
    color: var(--lpd-ink);
    font-size: .74rem;
    font-weight: 750;
    text-decoration: none;
}

.fsv2-faq {
    display: grid;
    gap: 6px;
    margin-top: 12px;
}

.fsv2-faq details {
    border: 1px solid var(--lpd-line);
}

.fsv2-faq summary {
    display: block;
    min-height: auto;
    padding: 10px 12px;
    font-size: .76rem;
    font-weight: 750;
}

.fsv2-faq p {
    margin: 0;
    padding: 0 12px 12px;
    color: var(--lpd-copy);
    font-size: .74rem;
    line-height: 1.55;
}

.fsv2-anchor-alias {
    position: absolute;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.fsv2-final {
    padding: clamp(48px, 5vw, 72px) 0;
    background: var(--lpd-pale);
}

.fsv2-related {
    display: flex;
    overflow-x: auto;
    gap: 7px;
    padding: 0 0 22px;
    scrollbar-width: thin;
}

.fsv2-related a {
    display: inline-flex;
    min-width: max-content;
    min-height: 42px;
    align-items: center;
    padding: 0 14px;
    border: 1px solid #b7c493;
    border-radius: 4px;
    background: rgba(255, 255, 255, .55);
    color: var(--lpd-ink);
    font-size: .75rem;
    font-weight: 750;
    text-decoration: none;
}

.fsv2-related a[aria-current="page"] {
    border-color: var(--lpd-olive);
    background: var(--lpd-olive);
    color: #fff;
}

.fsv2-final__cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 30px;
    align-items: center;
    padding-top: 24px;
    border-top: 1px solid #cdd6b6;
}

.fsv2-final__copy h2 {
    margin: 6px 0 8px;
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    line-height: 1;
}

.fsv2-final__copy p {
    max-width: 850px;
    margin: 0;
    color: var(--lpd-copy);
    line-height: 1.6;
}

@keyframes lpd-flow {
    to { stroke-dashoffset: -36; }
}

@keyframes lpd-pulse {
    50% { opacity: .66; }
}

@keyframes lpd-treatment {
    to { stroke-dashoffset: -20; transform: rotate(360deg); }
}

@keyframes lpd-control-pulse {
    50% { opacity: .56; box-shadow: 0 0 0 14px rgba(143, 166, 78, .04); }
}

@keyframes lpd-waterfall {
    to { stroke-dashoffset: -18; }
}

@media (max-width: 1180px) {
    .lpd__frame {
        grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
        grid-template-areas:
            "challenges challenges"
            "visual panel"
            "lower lower";
    }

    .lpd__challenges {
        padding: 12px 14px;
        border-right: 0;
        border-bottom: 1px solid var(--lpd-line);
    }

    .lpd__challenge-list {
        display: flex;
        overflow-x: auto;
        gap: 6px;
    }

    .lpd__challenge {
        flex: 0 0 155px;
    }

    .lpd__canvas { min-height: 0; }

    .lpd__lower {
        grid-template-columns: 1fr;
    }

    .lpd__process {
        border-right: 0;
        border-bottom: 1px solid var(--lpd-line);
    }
}

@media (max-width: 860px) {
    .fsv2-hero::before {
        background: linear-gradient(90deg, rgba(249, 248, 241, .97), rgba(249, 248, 241, .84));
    }

    .fsv2-hero__copy {
        width: min(720px, 88%);
    }

    .lpd__header,
    .fsv2-section-head {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lpd__toolbar {
        flex-wrap: wrap;
    }

    .lpd__logic-label {
        width: 100%;
        padding: 0 0 3px;
    }

    .lpd__frame {
        grid-template-columns: 1fr;
        grid-template-areas:
            "lower"
            "challenges"
            "visual"
            "panel";
    }

    .lpd__panel {
        border-top: 1px solid var(--lpd-line);
        border-left: 0;
    }

    .lpd__canvas { overflow: hidden; }

    .lpd__stage-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lpd__stage:nth-child(3) {
        border-right: 0;
    }

    .lpd__stage:nth-child(-n + 3) {
        border-bottom: 1px solid var(--lpd-line);
    }

    .fsv2-reference__panel {
        grid-template-columns: 1fr;
        gap: 16px;
        padding-left: 0;
    }
}

@media (max-width: 620px) {
    .fsv2-hero {
        min-height: 530px;
    }

    .fsv2-hero::before {
        background: linear-gradient(180deg, rgba(249, 248, 241, .96) 0%, rgba(249, 248, 241, .9) 62%, rgba(249, 248, 241, .72) 100%);
    }

    .fsv2-hero__inner {
        align-items: flex-end;
        padding-block: 68px 54px;
    }

    .fsv2-hero__copy {
        width: 100%;
    }

    .fsv2-hero h1 {
        font-size: clamp(2.55rem, 13vw, 3.5rem);
    }

    .fsv2-hero__actions {
        display: grid;
    }

    .fsv2-hero__actions .page-button {
        width: 100%;
        justify-content: space-between;
    }

    .lpd {
        padding-block: 50px;
    }

    .lpd__inner {
        width: min(calc(100% - 24px), 1580px);
    }

    .lpd__toolbar {
        padding: 10px;
    }

    .lpd__mode-label {
        width: 100%;
    }

    .lpd__modes {
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
    }

    .lpd__modes button {
        min-width: 0;
        padding-inline: 7px;
    }

    .lpd__visual {
        padding: 10px;
    }

    .lpd__canvas { min-height: 0; }

    .lpd__component-name {
        display: none;
    }

    .lpd__hotspot.is-selected .lpd__component-name,
    .lpd__hotspot:focus-visible .lpd__component-name {
        display: block;
    }

    .lpd__hotspot {
        width: 44px;
        height: 44px;
    }

    .lpd__issue-marker {
        width: 54px;
        height: 54px;
    }

    .lpd__issue-marker strong {
        display: none;
    }

    .lpd__panel,
    .lpd__process,
    .lpd__monitoring {
        padding: 18px 16px;
    }

    .lpd__monitoring > div:first-child {
        align-items: flex-start;
        flex-direction: column;
    }

    .lpd__drawer[open] {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 22px;
    }

    .lpd__drawer-media {
        min-height: 110px;
    }

    .lpd__drawer-media img {
        height: 100px;
    }

    .fsv2-reference__points {
        grid-template-columns: 1fr;
    }

    .fsv2-reference summary {
        grid-template-columns: 32px minmax(0, 1fr) 26px;
    }

    .fsv2-final__cta {
        grid-template-columns: 1fr;
    }

    .fsv2-final__cta .page-button {
        width: 100%;
        justify-content: space-between;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lpd *,
    .lpd *::before,
    .lpd *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
