html, body {
    height: 100%;
}

html:focus-within {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background-color: #f7faf8;
    color: #0b1220;
}

:root {
    --public-bg: #f7faf8;
    --public-surface: rgba(255, 255, 255, 0.78);
    --public-border: rgba(11, 18, 32, 0.10);
    --public-text: #0b1220;
    --public-muted: rgba(11, 18, 32, 0.70);
    --public-green: #16a34a;
    --public-green-ink: #0b3a1d;
    --public-blue: #2563eb;
    --public-blue-ink: #1e40af;
    --public-shadow-lg: 0 24px 70px rgba(2, 6, 23, 0.10);
    --public-shadow-md: 0 14px 34px rgba(2, 6, 23, 0.10);
    --public-glass: rgba(255, 255, 255, 0.60);
    --public-bg-shift-y: 0px;
}

.public-bg {
    position: fixed;
    inset: 0;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    display: none;
}

.gpu .public-bg {
    display: block;
}

.public-bg-holo {
    position: absolute;
    inset: -20% -20% -20% -20%;
    background:
        radial-gradient(1100px circle at 20% 18%, rgba(22, 163, 74, 0.12), transparent 62%),
        radial-gradient(960px circle at 84% 55%, rgba(22, 163, 74, 0.07), transparent 62%),
        radial-gradient(1020px circle at 64% 105%, rgba(37, 99, 235, 0.04), transparent 65%);
    opacity: 0.9;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

.public-bg-leaf {
    position: absolute;
    pointer-events: none;
}

.public-bg-leaf.is-1 {
    top: -30px;
    left: -50px;
    width: 380px;
    opacity: 0.7;
    --leaf-rot: -60deg;
}

.public-bg-leaf.is-2 {
    top: 30px;
    right: -60px;
    width: 320px;
    opacity: 0.5;
    --leaf-rot: 35deg;
}

.public-bg-leaf.is-3 {
    bottom: 60px;
    left: 8%;
    width: 300px;
    opacity: 0.55;
    --leaf-rot: 52deg;
}

.public-bg-leaf.is-4 {
    bottom: 80px;
    right: -80px;
    width: 340px;
    opacity: 0.6;
    --leaf-rot: -56deg;
}

.public-bg-leaf.is-5 {
    top: 40%;
    left: -30px;
    width: 220px;
    opacity: 0.35;
    --leaf-rot: 18deg;
}

.public-bg-leaf.is-6 {
    top: 20%;
    right: 15%;
    width: 180px;
    opacity: 0.25;
    --leaf-rot: -32deg;
}

.public-bg-leaf.is-7 {
    top: 60%;
    right: 5%;
    width: 260px;
    opacity: 0.4;
    --leaf-rot: 72deg;
}

.public-bg-leaf.is-8 {
    top: 10%;
    left: 30%;
    width: 160px;
    opacity: 0.2;
    --leaf-rot: -15deg;
}

.public-bg-leaf.is-9 {
    top: 5%;
    left: 55%;
    width: 200px;
    opacity: 0.3;
    --leaf-rot: 42deg;
}

.public-bg-leaf.is-10 {
    top: 75%;
    left: -20px;
    width: 280px;
    opacity: 0.45;
    --leaf-rot: -68deg;
}

.public-bg-leaf.is-11 {
    top: 50%;
    right: 20%;
    width: 190px;
    opacity: 0.25;
    --leaf-rot: 28deg;
}

.public-bg-leaf.is-12 {
    top: 85%;
    right: 30%;
    width: 240px;
    opacity: 0.35;
    --leaf-rot: -40deg;
}

.public-bg-leaf.is-13 {
    top: 30%;
    left: 70%;
    width: 170px;
    opacity: 0.2;
    --leaf-rot: 58deg;
}

.public-bg-leaf.is-14 {
    top: 15%;
    left: 10%;
    width: 140px;
    opacity: 0.18;
    --leaf-rot: -22deg;
}

.public-bg-leaf.is-15 {
    top: 65%;
    left: 45%;
    width: 210px;
    opacity: 0.3;
    --leaf-rot: 75deg;
}

.public-bg-leaf.is-16 {
    top: 90%;
    left: 15%;
    width: 150px;
    opacity: 0.15;
    --leaf-rot: -48deg;
}

@media (max-width: 768px) {
    .public-bg {
        display: none !important;
    }

    .lotus-bloom {
        display: none !important;
    }

    .lotus-roi__bloom {
        display: none;
    }
}

.public-shell {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.public-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid rgba(22,163,74,0.08);
    box-shadow: 0 4px 20px rgba(22,163,74,0.04);
    transition: box-shadow 0.3s ease;
}

.public-header-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 12px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--public-green-ink);
    transition: opacity 0.2s ease;
}

.brand:hover {
    opacity: 0.8;
    color: var(--public-green-ink);
}

.brand__logo {
    transition: transform 0.3s ease;
}

.brand:hover .brand__logo {
    transform: rotate(-8deg) scale(1.05);
}

.brand__name {
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color:var(--public-green)
}

.public-nav {
    display: flex;
    gap: 6px;
    align-items: center;
}

.public-nav-link {
    text-decoration: none;
    color: var(--public-text);
    font-weight: 600;
    font-size: 13px;
    padding: 8px 14px;
    border-radius: 999px;
    transition: background 0.2s ease, color 0.2s ease;
    position: relative;
}

.public-nav-link:hover {
    background: rgba(22,163,74,0.06);
    color: var(--public-green);
}

.public-nav-link.is-active {
    background: rgba(22,163,74,0.08);
    color: var(--public-green);
}

.public-nav-link--cta {
    background: linear-gradient(135deg, #27ae60 0%, #2ecc71 100%);
    color: #fff !important;
    border-radius: 8px;
    padding: 8px 16px;
    font-weight: 600;
    transition: all 0.2s ease;
}

.public-nav-link--cta:hover {
    background: linear-gradient(135deg, #219a52 0%, #27ae60 100%);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(39, 174, 96, 0.3);
}

.public-nav-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.public-nav-dropdown__menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    padding: 8px 0;
    background: rgba(255,255,255,0.97);
    border: 1px solid rgba(22,163,74,0.1);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    z-index: 100;
}

.public-nav-dropdown:hover .public-nav-dropdown__menu,
.public-nav-dropdown:focus-within .public-nav-dropdown__menu {
    display: block;
}

.public-nav-dropdown__item {
    display: block;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--public-text);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.public-nav-dropdown__item:hover {
    background: rgba(22,163,74,0.06);
    color: var(--public-green);
}

.public-nav-link.is-active::after {
    content: '';
    position: absolute;
    bottom: 2px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--public-green);
}

.nav-separator {
    width: 1px;
    height: 20px;
    background: rgba(22,163,74,0.12);
    margin: 0 4px;
}

.nav-cta {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--public-green);
    color: white;
    text-decoration: none;
    font-weight: 700;
    font-size: 13px;
    transition: background 0.25s ease, transform 0.25s ease;
    border: none;
    white-space: nowrap;
}

.nav-cta:hover {
    background: var(--public-green-ink);
    color: white;
    transform: translateY(-1px);
}

.nav-burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
    background: none;
    border: none;
    cursor: pointer;
}

.nav-burger__line {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--public-green-ink);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(2) {
    opacity: 0;
}

.nav-burger[aria-expanded="true"] .nav-burger__line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 768px) {
    .nav-burger {
        display: flex;
    }

    .public-nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        padding: 16px 28px 24px;
        background: rgba(255, 255, 255, 1.0);
        border-bottom: 1px solid rgba(22,163,74,0.08);
        box-shadow: 0 12px 32px rgba(22,163,74,0.08);
        gap: 4px;
    }

    .public-nav.is-open {
        display: flex;
    }

    .public-nav-link {
        width: 100%;
        padding: 12px 16px;
        border-radius: 12px;
    }

    .public-nav-dropdown {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .public-nav-dropdown > .public-nav-link {
        width: 100%;
    }

    .public-nav-dropdown__menu {
        display: block;
        position: static;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0 0 0 16px;
        margin-top: 0;
        min-width: 0;
    }

    .public-nav-dropdown__item {
        padding: 8px 16px;
        border-radius: 10px;
        font-size: 12px;
    }

    .nav-separator {
        width: 100%;
        height: 1px;
        margin: 8px 0;
    }

    .public-lang-switch--desktop {
        display: none !important;
    }

    .nav-cta {
        width: 100%;
        justify-content: center;
        padding: 12px 18px;
    }

    .public-header-inner {
        position: relative;
    }
}

.public-footer-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 16px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.public-footer-inner span {
    color:var(--public-green-ink)
}

.public-lang-switch--desktop {
    position: relative;
    display: inline-flex;
    align-items: center;
}

/* ── Nav Prefs — mobile collapsible submenu ── */

.nav-prefs {
    display: none;
}

@media (max-width: 768px) {
    .nav-prefs {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .nav-prefs__toggle {
        display: flex;
        align-items: center;
        width: 100%;
        background: none;
        border: none;
        cursor: pointer;
        text-align: left;
    }

    .nav-prefs__chevron {
        font-size: 11px;
        transition: transform 0.25s ease;
    }

    .nav-prefs__toggle[aria-expanded="true"] .nav-prefs__chevron {
        transform: rotate(180deg);
    }

    .nav-prefs__panel {
        display: none;
        flex-direction: column;
        gap: 0;
        padding: 4px 0 4px 16px;
        margin-top: 2px;
        border-left: 2px solid rgba(22,163,74,0.12);
    }

    .nav-prefs.is-open .nav-prefs__panel {
        display: flex;
    }

    .nav-prefs__section {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .nav-prefs__label {
        display: flex;
        align-items: center;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: rgba(11, 18, 32, 0.45);
        padding: 8px 12px 4px;
    }

    .nav-prefs__item {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 9px 12px;
        border-radius: 10px;
        text-decoration: none;
        color: var(--public-text);
        font-size: 13px;
        font-weight: 500;
        transition: background 0.15s ease, color 0.15s ease;
    }

    .nav-prefs__item:hover {
        background: rgba(22,163,74,0.06);
        color: var(--public-green);
    }

    .nav-prefs__divider {
        height: 1px;
        background: rgba(22,163,74,0.08);
        margin: 6px 12px;
    }

    .nav-prefs__fontsize {
        display: flex;
        gap: 6px;
        padding: 6px 12px 8px;
    }

    .nav-prefs__fontsize .fontsize-btn {
        flex: 1;
        justify-content: center;
        padding: 8px 10px;
        border-radius: 10px;
        font-size: 12px;
    }

    .nav-prefs__fontsize .fontsize-btn[data-fs="large"] {
        font-size: 13px;
    }

    .nav-prefs__fontsize .fontsize-btn[data-fs="xlarge"] {
        font-size: 15px;
    }
}

@media (min-width: 769px) {
    .public-lang-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 8px 14px;
        border-radius: 999px;
        border: none;
        background: transparent;
        color: var(--public-text);
        font-weight: 600;
        font-size: 13px;
        cursor: pointer;
        transition: background 0.2s ease, color 0.2s ease;
    }

    .public-lang-btn:hover {
        background: rgba(22,163,74,0.06);
        color: var(--public-green);
    }

    .public-lang-btn i {
        font-size: 16px;
        line-height: 1;
    }
}

.public-lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    text-decoration: none;
    color: var(--public-text);
    font-size: 13px;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.public-lang-item:hover {
    background: rgba(22,163,74,0.06);
    color: var(--public-green);
}

@media (min-width: 769px) {
    .public-lang-menu {
        display: none;
        position: absolute;
        top: 100%;
        right: 0;
        min-width: 170px;
        padding: 8px 0;
        background: rgba(255,255,255,0.97);
        border: 1px solid rgba(22,163,74,0.1);
        border-radius: 14px;
        box-shadow: 0 8px 32px rgba(0,0,0,0.08);
        z-index: 100;
    }

    .public-lang-switch--desktop:hover .public-lang-menu,
    .public-lang-switch--desktop:focus-within .public-lang-menu {
        display: block;
    }
}

.public-lang-flag {
    width: 22px;
    height: 16px;
    display: inline-flex;
    justify-content: center;
    border-radius: 3px;
    border: 1px solid rgba(15, 23, 42, 0.10);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.96);
}

.public-lang-flag.is-fr {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='16'%20viewBox='0%200%2022%2016'%3E%3Crect%20width='22'%20height='16'%20fill='%23FFFFFF'/%3E%3Crect%20x='0'%20y='0'%20width='7.3333'%20height='16'%20fill='%230055A4'/%3E%3Crect%20x='14.6667'%20y='0'%20width='7.3333'%20height='16'%20fill='%23EF4135'/%3E%3C/svg%3E");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.public-lang-flag.is-en {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='22'%20height='16'%20viewBox='0%200%2060%2030'%20preserveAspectRatio='none'%3E%3Crect%20width='60'%20height='30'%20fill='%23012169'/%3E%3Cpath%20d='M0%2C0%20L60%2C30%20M60%2C0%20L0%2C30'%20stroke='white'%20stroke-width='6'/%3E%3Cpath%20d='M0%2C0%20L60%2C30%20M60%2C0%20L0%2C30'%20stroke='%23C8102E'%20stroke-width='4'/%3E%3Cpath%20d='M30%2C0%20L30%2C30%20M0%2C15%20L60%2C15'%20stroke='white'%20stroke-width='10'/%3E%3Cpath%20d='M30%2C0%20L30%2C30%20M0%2C15%20L60%2C15'%20stroke='%23C8102E'%20stroke-width='6'/%3E%3C/svg%3E");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.public-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: rgba(255,255,255, 0.3);
    background-size: cover;
}

.public-band {
    width: 100%;
}

.public-hero {
    padding-top: 18px;
}

.public-hero .public-hero-inner {
    padding-top: 48px;
    padding-bottom: 34px;
    min-height: auto;
    display: block;
}

.public-hero-content {
    max-width: 64ch;
}

.has-leaf {
    position: relative;
    overflow: hidden;
}

.leaf-layer {
    position: relative;
    z-index: 1;
}

.leaf {
    position: absolute;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    opacity: 0.8;
    --leaf-rot: 0deg;
    transform: rotate(var(--leaf-rot));
}

.leaf-method {
    bottom: -170px;
    left: -170px;
    width: 238px;
    --leaf-rot: -44deg;
}

.leaf-method-2 {
    top: -130px;
    right: -130px;
    width: 182px;
    --leaf-rot: 66deg;
}

.leaf-cta {
    top: -210px;
    left: 50%;
    width: 294px;
    --leaf-base-x: -50%;
    --leaf-rot: 44deg;
}

.leaf-cta-2 {
    bottom: -180px;
    right: -180px;
    width: 252px;
    --leaf-rot: 74deg;
}

.section-green-soft {
    background-color: rgba(21, 143, 84, 0.03);
}

.public-hero-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 72px 28px 46px;
}

.hero-title {
    font-size: 44px;
    line-height: 1.05;
    margin: 0 0 14px;
    letter-spacing: -0.02em;
    max-width: 20ch;
}

.hero-subtitle {
    font-size: 18px;
    color: var(--public-muted);
    margin: 0 0 22px;
    max-width: 68ch;
}

.public-footer {
    border-top: 1px solid var(--public-border);
    background: rgba(255, 255, 255, 0.60);
}

.public-footer-links {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: flex-end;
}

.public-section {
    max-width: 1240px;
    margin: 0 auto;
    padding: 42px 28px;
}

.home-section {
    padding-top: 62px;
    padding-bottom: 62px;
}

.home-two-col {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 38px;
    align-items: start;
}

.home-two-col.is-invert {
    grid-template-columns: 0.95fr 1.05fr;
}

.home-section-copy {
    max-width: 70ch;
}

.home-feature-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

.home-feature {
    display: grid;
    grid-template-columns: 42px 1fr;
    column-gap: 14px;
    row-gap: 4px;
    align-items: start;
    border: 1px solid rgba(11, 18, 32, 0.10);
    background: rgba(255, 255, 255, 0.88);
    border-radius: 18px;
    padding: 16px 16px 14px;
    box-shadow: var(--public-shadow-md);
}

.home-feature__icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(11, 18, 32, 0.08);
    background: linear-gradient(135deg, rgba(22, 163, 74, 0.12) 0%, rgba(37, 99, 235, 0.08) 100%);
    color: rgba(11, 58, 29, 0.95);
}

.home-feature__icon i {
    font-size: 18px;
    line-height: 1;
}

.home-feature__title {
    font-weight: 900;
    letter-spacing: -0.01em;
}

.home-feature__text {
    grid-column: 2;
    color: rgba(11, 18, 32, 0.72);
    font-weight: 650;
}

.home-metric {
    border-radius: 22px;
    border: 1px solid rgba(11, 18, 32, 0.10);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.62) 0%, rgba(255, 255, 255, 0.40) 100%);
    box-shadow: var(--public-shadow-lg);
    padding: 22px 22px;
}

.home-band {
    background-image:
        radial-gradient(760px circle at 15% 22%, rgba(22, 163, 74, 0.11), transparent 62%),
        radial-gradient(640px circle at 88% 65%, rgba(37, 99, 235, 0.08), transparent 58%);
}

.home-callout {
    border-radius: 22px;
    border: 1px solid rgba(11, 18, 32, 0.10);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.64) 0%, rgba(255, 255, 255, 0.38) 100%);
    box-shadow: var(--public-shadow-lg);
    overflow: hidden;
    position: relative;
}

.home-callout__inner {
    padding: 22px;
    position: relative;
    z-index: 1;
}

.home-callout::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(440px circle at 22% 30%, rgba(22, 163, 74, 0.16), transparent 62%),
        radial-gradient(360px circle at 78% 50%, rgba(37, 99, 235, 0.12), transparent 62%);
    opacity: 0.9;
}

.home-callout__line {
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(22, 163, 74, 0.95), rgba(22, 163, 74, 0.35), rgba(37, 99, 235, 0.75));
    background-size: 180% 100%;
    animation: homeFlow 4.2s ease-in-out infinite;
    margin-bottom: 16px;
}

@keyframes homeFlow {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.home-callout__pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    border: 1px solid rgba(11, 18, 32, 0.10);
    background: rgba(255, 255, 255, 0.65);
    font-weight: 900;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-size: 10px;
    color: rgba(11, 18, 32, 0.62);
}

.home-callout__value {
    font-size: 54px;
    font-weight: 900;
    letter-spacing: -0.05em;
    margin-top: 14px;
    line-height: 1.0;
    color: var(--public-green-ink);
}

.home-callout__label {
    margin-top: 10px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: rgba(11, 18, 32, 0.78);
}

.home-list {
    padding-left: 1.1rem;
}

.home-list li {
    margin-bottom: 10px;
}

.home-services .public-service-block {
    transition: transform 0.20s ease, box-shadow 0.20s ease, border-color 0.20s ease;
}

.home-services .public-service-block:hover {
    transform: translateY(-2px);
    box-shadow: var(--public-shadow-lg);
    border-color: rgba(22, 163, 74, 0.28);
}

[data-reveal] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

[data-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }

    [data-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .home-callout__line {
        animation: none;
    }

    .home-services .public-service-block {
        transition: none;
    }
}

.public-section.is-tight {
    padding-top: 26px;
    padding-bottom: 26px;
}

.public-section .kicker {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(11, 18, 32, 0.55);
    margin: 0 0 12px;
}

.public-section .narrow {
    max-width: 62ch;
}

.public-divider {
    border-top: 1px solid var(--public-border);
}

.public-cta-row {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.public-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: 10px 14px;
    text-decoration: none;
    font-weight: 700;
    border: 1px solid transparent;
    font-size: 14px;
    line-height: 1.1;
}

.public-btn.is-primary {
    background: var(--public-green);
    color: white;
}

.public-btn.is-primary:hover {
    background: #148a3f;
    color: white;
}

.public-link {
    color: var(--public-blue);
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
}

.public-link:hover {
    color: var(--public-blue-ink);
}

.public-big-number {
    font-size: 86px;
    letter-spacing: -0.05em;
    line-height: 0.95;
    font-weight: 800;
    color: var(--public-green-ink);
    margin: 0;
}

.public-metric {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 28px;
    align-items: baseline;
}

.public-method {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
}

.public-method-line {
    font-weight: 800;
    letter-spacing: -0.02em;
    font-size: 18px;
}

.public-method-items {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 22px;
}

.public-service-blocks {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 22px;
    align-items: start;
}

.public-home-services {
    display: grid;
    grid-template-columns: 1.35fr 0.65fr;
    gap: 22px;
    align-items: start;
}

.public-home-services .public-service-block.is-feature {
    padding: 26px 24px 22px;
    border-radius: 18px;
}

.public-home-services .public-service-stack {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.public-home-services .public-service-stack .public-service-block {
    padding: 16px 16px 14px;
}

.public-home-services .public-service-stack .public-service-block.is-shifted {
    transform: translateX(14px);
}

.public-service-block {
    border: 1px solid var(--public-border);
    background: rgba(255, 255, 255, 0.88);
    border-radius: 16px;
    padding: 18px 18px 16px;
}

.public-service-block.is-offset {
    margin-top: 18px;
}

.public-service-block h3 {
    margin: 0 0 8px;
    font-size: 16px;
    letter-spacing: -0.01em;
}

.public-service-block p {
    margin: 0 0 10px;
    color: var(--public-muted);
    max-width: 66ch;
}

.public-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    opacity: 0.72;
    align-items: center;
}

.public-tool {
    font-size: 12px;
    padding: 6px 10px;
    border: 1px solid var(--public-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    gap: 6px;
}

.public-tool__logo {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.home-metric-wow {
    position: relative;
    overflow: hidden;
}

.home-metric-wow::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, var(--public-green) 0%, transparent 70%);
    opacity: 0.1;
    animation: pulse-wow 4s ease-in-out infinite;
    animation-play-state: paused;
}

.home-metric-wow.is-revealed::before {
    animation-play-state: running;
}

@keyframes pulse-wow {
    0%, 100% {
        transform: scale(0.9);
        opacity: 0.1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.15;
    }
}

.public-method-workflow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 32px 0;
    position: relative;
}

.workflow-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    position: relative;
    z-index: 2;
}

.workflow-node__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--public-green);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    margin-bottom: 12px;
    box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.workflow-node:hover .workflow-node__icon {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(22, 163, 74, 0.4);
}

.workflow-node__content {
    max-width: 180px;
}

.workflow-node__content h3 {
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 600;
}

.workflow-node__content p {
    margin: 0;
    font-size: 12px;
    line-height: 1.4;
}

.workflow-line {
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, var(--public-green), var(--public-blue));
    position: relative;
    min-height: 2px;
}

.workflow-line::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid var(--public-blue);
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
}

@media (max-width: 900px) {
    .home-two-col,
    .home-two-col.is-invert {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .home-section {
        padding-top: 44px;
        padding-bottom: 44px;
    }

    .public-metric {
        grid-template-columns: 1fr;
    }

    .public-method-items {
        grid-template-columns: 1fr;
    }

    .public-service-blocks {
        grid-template-columns: 1fr;
    }

    .public-home-services {
        grid-template-columns: 1fr;
    }

    .public-method-workflow {
        flex-direction: column;
        gap: 24px;
    }

    .workflow-line {
        width: 2px;
        height: 30px;
        flex: none;
    }

    .workflow-line::after {
        top: 100%;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 6px solid var(--public-blue);
        border-bottom: none;
    }

    .hero-title {
        font-size: 36px;
    }

    .leaf-cta {
        width: 252px;
        top: -180px;
    }

    .leaf-cta-2 {
        width: 210px;
        right: -150px;
        bottom: -150px;
    }
}

/* ── Section Dot Navigation ─────────────────────── */

.section-dots {
    position: fixed;
    right: 28px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0;
    opacity: 0;
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.section-dots.is-visible { opacity: 1; }

/* ── Segment: short bar between two dots ── */

.section-dot-seg {
    width: 1.5px;
    height: 6px;
    border-radius: 2px;
    background: rgba(0, 0, 0, 0.08);
    transition: background 0.35s ease;
    flex-shrink: 0;
}

.section-dot-seg.is-visited {
    background: rgba(22, 163, 74, 0.35);
}

/* ── Dot ── */

.section-dot {
    position: relative;
    display: grid;
    place-items: center;
    width: 32px;
    height: 24px;
    cursor: pointer;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    flex-shrink: 0;
}

.section-dot::before {
    content: '';
    grid-area: 1 / 1;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #bbb;
    transition:
        width      0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
        height     0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
        background 0.25s ease,
        box-shadow 0.35s ease;
}

.section-dot.is-visited::before {
    background: rgba(22, 163, 74, 0.4);
}

.section-dot:hover::before {
    width: 8px;
    height: 8px;
    background: var(--public-green);
}

.section-dot.is-active::before {
    width: 9px;
    height: 9px;
    background: var(--public-green);
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.12),
                0 0 8px  rgba(22, 163, 74, 0.10);
}

/* ── Tooltip ── */

.section-dot__tip {
    position: absolute;
    right: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%) translateX(5px);
    white-space: nowrap;
    padding: 6px 14px;
    border-radius: 6px;
    background: #1a1a2e;
    color: #f5f5f5;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.015em;
    line-height: 1;
    pointer-events: none;
    opacity: 0;
    transition:
        opacity   0.2s ease,
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.10);
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.section-dot__tip::after {
    content: '';
    position: absolute;
    right: -3px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 6px;
    height: 6px;
    background: inherit;
}

.section-dot:hover .section-dot__tip {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

.section-dot.is-active .section-dot__tip {
    background: var(--public-green);
    color: #fff;
}

/* ── Responsive ── */

@media (max-width: 768px) {
    .section-dots { right: 14px; }
    .section-dot  { width: 26px; height: 20px; }
    .section-dot::before { width: 5px; height: 5px; }
    .section-dot.is-active::before { width: 7px; height: 7px; }
    .section-dot-seg { height: 4px; }
    .section-dot__tip { display: none; }
}

/* ══════════════════════════════════════════
   LOTUS HOME — Organic Lotus Design
   ══════════════════════════════════════════ */

.lotus-hero {
    position: relative;
    padding: 96px 0 72px;
    overflow: hidden;
    text-align: center;
}

.lotus-bloom {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 420px;
    height: 420px;
    transform: translate(-50%, -52%);
    pointer-events: none;
    display: none;
}

.gpu .lotus-bloom {
    display: block;
}

/* Lotus pad — flat ellipse at the base, like a leaf on water */
.lotus-bloom__pad {
    position: absolute;
    bottom: 33%;
    left: 50%;
    width: 240px;
    height: 36px;
    margin-left: -120px;
    border-radius: 50%;
    background: linear-gradient(180deg, rgba(22,163,74,0.05), rgba(22,163,74,0.12));
    z-index: 0;
    animation: lotusFade 1.4s ease-out 0.3s both;
}

/* All petals: pointed tip, wide middle, narrow base */
.lotus-bloom__petal {
    position: absolute;
    left: 50%;
    bottom: 40%;
    transform-origin: 50% 100%;
    clip-path: polygon(
        50% 0%,
        4% 38%,
        8% 70%,
        30% 92%,
        50% 100%,
        70% 92%,
        92% 70%,
        96% 38%
    );
    opacity: 0;
    animation: lotusPetalGrow 1s ease-out both;
}

/* ─── Back layer: 2 outer petals, widest spread ─── */
.lotus-bloom__petal:nth-child(2) {
    width: 90px;
    height: 170px;
    margin-left: -45px;
    background: linear-gradient(0deg, rgba(22,163,74,0.10) 0%, rgba(22,163,74,0.04) 100%);
    transform: rotate(-44deg);
    z-index: 1;
    animation-delay: 0s;
}

.lotus-bloom__petal:nth-child(3) {
    width: 90px;
    height: 170px;
    margin-left: -45px;
    background: linear-gradient(0deg, rgba(22,163,74,0.10) 0%, rgba(22,163,74,0.04) 100%);
    transform: rotate(44deg);
    z-index: 1;
    animation-delay: 0.06s;
}

/* ─── Center petal: tallest, straight up ─── */
.lotus-bloom__petal:nth-child(4) {
    width: 76px;
    height: 190px;
    margin-left: -38px;
    background: linear-gradient(0deg, rgba(22,163,74,0.13) 0%, rgba(22,163,74,0.04) 100%);
    transform: rotate(0deg);
    z-index: 2;
    animation-delay: 0.12s;
}

/* ─── Front layer: 2 inner petals ─── */
.lotus-bloom__petal:nth-child(5) {
    width: 70px;
    height: 148px;
    margin-left: -35px;
    background: linear-gradient(0deg, rgba(22,163,74,0.17) 0%, rgba(37,99,235,0.04) 100%);
    transform: rotate(-20deg);
    z-index: 3;
    animation-delay: 0.20s;
}

.lotus-bloom__petal:nth-child(6) {
    width: 70px;
    height: 148px;
    margin-left: -35px;
    background: linear-gradient(0deg, rgba(22,163,74,0.17) 0%, rgba(37,99,235,0.04) 100%);
    transform: rotate(20deg);
    z-index: 3;
    animation-delay: 0.26s;
}

/* Center — diamond like the Flowrizon logo */
.lotus-bloom__center {
    position: absolute;
    width: 14px;
    height: 14px;
    left: 50%;
    bottom: 50%;
    margin-left: -7px;
    background: radial-gradient(circle, rgba(37,99,235,0.25), rgba(22,163,74,0.08));
    transform: rotate(45deg);
    border-radius: 2px;
    z-index: 4;
    animation: lotusFade 1s ease-out 0.5s both;
}

@keyframes lotusPetalGrow {
    from {
        opacity: 0;
        scale: 1 0.08;
    }
    to {
        opacity: 1;
        scale: 1 1;
    }
}

@keyframes lotusFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lotus-hero__title {
    font-size: 50px;
    line-height: 1.08;
    letter-spacing: -0.03em;
    font-weight: 800;
    max-width: 20ch;
    margin: 0 auto 18px;
    color: var(--public-green-ink);
}

.lotus-hero__sub {
    font-size: 18px;
    color: var(--public-muted);
    margin: 0 auto 8px;
    max-width: 54ch;
    line-height: 1.6;
}

.lotus-hero__cta {
    margin-top: 28px;
}

.lotus-kicker {
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--public-green);
    font-weight: 700;
    margin: 0 0 12px;
}

h2.lotus-kicker {
    font-size: 0.8rem;
    letter-spacing: 0.2em;
    line-height: 1.4;
}

.lotus-h2 {
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 16px;
    color: var(--public-green-ink);
}

h3.lotus-h2 {
    font-size: 28px;
}

.lotus-service h4 {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--public-green-ink);
}

.lotus-btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 28px;
    border-radius: 999px;
    background: var(--public-green);
    color: white;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: background 0.25s ease, transform 0.25s ease;
    border: none;
}

.lotus-btn:hover {
    background: var(--public-green-ink);
    color: white;
    transform: translateY(-1px);
}

.lotus-link {
    color: var(--public-blue);
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    transition: color 0.2s ease;
}

.lotus-link:hover {
    color: var(--public-blue-ink);
}

.lotus-section {
    padding: 80px 0;
}

.lotus-section--tight {
    padding: 48px 0;
}

.lotus-section--accent {
    position: relative;
    overflow: hidden;
}

.lotus-section--green {
    background: linear-gradient(180deg, rgba(22,163,74,0.03) 0%, rgba(22,163,74,0.07) 50%, rgba(22,163,74,0.03) 100%);
}

.lotus-section--cta {
    position: relative;
    overflow: hidden;
    padding: 96px 0;
    margin-top:50px;
    background: linear-gradient(180deg, rgba(22,163,74,0.04) 0%, rgba(22,163,74,0.09) 50%, rgba(22,163,74,0.03) 100%);
}

.lotus-cta-petals {
    position: absolute;
    bottom: -60px;
    right: -40px;
    width: 300px;
    height: 300px;
    pointer-events: none;
    opacity: 0.4;
}

.lotus-card {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    border-radius: 16px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(255,255,255,0.5);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04);
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.3s ease;
}

.lotus-card:hover {
    box-shadow: 0 12px 32px rgba(22,163,74,0.10);
}

.lotus-card__accent {
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--public-green), rgba(22,163,74,0.2));
    border-radius: 0 4px 4px 0;
}

.lotus-card__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(22,163,74,0.14), rgba(22,163,74,0.04));
    color: var(--public-green);
    font-size: 18px;
}

.lotus-roi {
    position: relative;
    padding: 10px 0;
}

.lotus-roi__bloom {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 300px;
    height: 300px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(22,163,74,0.10) 0%, transparent 70%);
    animation: roiPulse 5s ease-in-out infinite;
    animation-play-state: paused;
    pointer-events: none;
}

.lotus-roi__bloom.is-playing {
    animation-play-state: running;
}

@keyframes roiPulse {
    0%, 100% { transform: translate(-50%, -50%) scale(0.85); opacity: 0.5; }
    50% { transform: translate(-50%, -50%) scale(1.15); opacity: 1; }
}

.lotus-roi__number {
    font-size: 96px;
    font-weight: 900;
    letter-spacing: -0.05em;
    line-height: 1;
    color: var(--public-green);
    position: relative;
    display: inline-block;
}

.lotus-flow {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    margin: 40px 0 0;
}

.lotus-flow__step {
    flex: 1;
    text-align: center;
    max-width: 220px;
    padding: 0 12px;
}

.lotus-flow__node {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--public-green);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin: 0 auto;
    box-shadow: 0 6px 20px rgba(22,163,74,0.25);
    transition: transform 0.3s ease;
}

.lotus-flow__step:hover .lotus-card__icon:hover {
    transform: scale(1.05);
}

/* Premium description block */
.lotus-premium-desc {
    position: relative;
    padding: 2rem;
    border-radius: 24px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(22,163,74,0.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.06);
    overflow: hidden;
    z-index: 10;
}

.lotus-premium-desc::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(22,163,74,0.02) 0%, 
        rgba(22,163,74,0.005) 50%, 
        rgba(255,255,255,0.01) 100%);
    pointer-events: none;
    z-index: 1;
}

.lotus-premium-desc__glass {
    position: relative;
    z-index: 2;
}

.lotus-premium-desc__content {
    position: relative;
    z-index: 3;
}

.lotus-premium-desc__paragraph {
    text-align: justify;
    color: var(--public-text);
    line-height: 1.8;
    font-size: 1.05rem;
    margin-bottom: 1.5rem;
    font-weight: 400;
    text-shadow: 0 1px 2px rgba(255,255,255,0.2);
}

.lotus-premium-desc__paragraph:last-child {
    margin-bottom: 0;
}

.lotus-premium-desc__paragraph::first-letter {
    font-weight: 600;
    color: var(--public-green);
    font-size: 1.2em;
    line-height: 1;
    margin-right: 0.05em;
}

/* Premium hover effect */
.lotus-premium-desc:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.10);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Pricing side block - à droite et légèrement en dessous */
.lotus-pricing-side {
    margin-top: 3rem;
    max-width: 320px;
    margin-left: auto;
    margin-right: 1rem;
}

.lotus-pricing-side__inner {
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(22,163,74,0.08);
    border-radius: 20px;
    padding: 1.5rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    position: relative;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.lotus-pricing-side__inner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(22,163,74,0.03) 0%, 
        rgba(22,163,74,0.01) 50%, 
        rgba(255,255,255,0.05) 100%);
    pointer-events: none;
    z-index: 1;
}

.lotus-pricing-side__icon {
    position: relative;
    z-index: 2;
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--public-green), rgba(22,163,74,0.8));
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 20px;
    margin-bottom: 1rem;
    box-shadow: 0 4px 16px rgba(22,163,74,0.25);
}

.lotus-pricing-side__content {
    position: relative;
    z-index: 2;
}

.lotus-pricing-side__label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--public-green);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem;
}

.lotus-pricing-side__price {
    margin-bottom: 1rem;
}

.lotus-pricing-side__amount {
    font-size: 2rem;
    font-weight: 700;
    color: var(--public-green-ink);
    line-height: 1;
    display: block;
}

.lotus-pricing-side__period {
    font-size: 0.9rem;
    color: var(--public-text-muted);
    font-weight: 500;
}

.lotus-pricing-side__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, var(--public-green), rgba(22,163,74,0.8));
    color: white;
    text-decoration: none;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(22,163,74,0.25);
}

.lotus-pricing-side__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(22,163,74,0.35);
    background: linear-gradient(135deg, rgba(22,163,74,0.9), var(--public-green));
}

/* Hover effect for the pricing side */
.lotus-pricing-side:hover .lotus-pricing-side__inner {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 8px 30px rgba(0,0,0,0.1);
}

/* Mobile responsive */
@media (max-width: 991px) {
    .lotus-pricing-side {
        margin-top: 2rem;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
    
    .lotus-pricing-side__inner {
        max-width: 400px;
        margin: 0 auto;
    }
}

.lotus-flow__line {
    flex: 1;
    height: 2px;
    max-width: 80px;
    margin-top: 32px;
    background: linear-gradient(90deg, var(--public-green), rgba(22,163,74,0.15));
    border-radius: 2px;
}

.lotus-contact-form {
    padding: 32px;
    border-radius: 24px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(22,163,74,0.08);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04);
}

.lotus-contact-form .form-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--public-green-ink);
    letter-spacing: 0.02em;
}

.lotus-contact-form .form-control,
.lotus-contact-form .form-select {
    border-radius: 12px;
    border: 1px solid rgba(22,163,74,0.12);
    background: rgba(255,255,255,0.6);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.lotus-contact-form .form-control:focus,
.lotus-contact-form .form-select:focus {
    border-color: var(--public-green);
    box-shadow: 0 0 0 3px rgba(22,163,74,0.08);
}

.lotus-service {
    position: relative;
    overflow: hidden;
    padding: 28px;
    border-radius: 24px;
    background: rgba(255,255,255,0.92);
    border: 1px solid rgba(22,163,74,0.06);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04);
    height: 100%;
    transition: box-shadow 0.3s ease;
}

.lotus-service:hover {
    box-shadow: 0 16px 40px rgba(22,163,74,0.12);
}

.lotus-service__petal {
    position: absolute;
    top: -30px;
    right: -30px;
    width: 80px;
    height: 80px;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    background: linear-gradient(135deg, rgba(22,163,74,0.08), rgba(22,163,74,0.02));
    transform: rotate(-30deg);
    opacity: 0.5;
}

.lotus-service:hover .lotus-service__petal {
    transform: rotate(-30deg) scale(1.4);
    opacity: 1;
}

.lotus-service p {
    margin: 0 0 14px;
    text-align: justify;
}

.lotus-tool {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 12px 8px;
    border-radius: 999px;
    border: 1px solid rgba(22,163,74,0.08);
    background: rgba(255,255,255,0.88);
    box-shadow: 0 2px 12px rgba(22,163,74,0.03);
    font-size: 12px;
    font-weight: 500;
    transition: background 0.2s ease, box-shadow 0.2s ease;
    height: 100%;
    min-height: 60px;
}

.lotus-tool:hover {
    background: rgba(255,255,255,0.98);
    box-shadow: 0 8px 24px rgba(22,163,74,0.06);
}

.lotus-tool__logo {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.lotus-list {
    padding-left: 0;
    list-style: none;
    margin: 0;
}

.lotus-list li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 12px;
    line-height: 1.6;
}

.lotus-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--public-green);
    opacity: 0.5;
}

@media (max-width: 991px) {
    .lotus-hero {
        padding: 64px 0 48px;
    }

    .lotus-hero__title {
        font-size: 36px;
    }

    .lotus-bloom {
        width: 300px;
        height: 300px;
    }

    .lotus-bloom__pad {
        width: 170px;
        height: 26px;
        margin-left: -85px;
    }

    .lotus-bloom__petal:nth-child(2),
    .lotus-bloom__petal:nth-child(3) {
        width: 64px;
        height: 120px;
        margin-left: -32px;
    }

    .lotus-bloom__petal:nth-child(4) {
        width: 54px;
        height: 135px;
        margin-left: -27px;
    }

    .lotus-bloom__petal:nth-child(5),
    .lotus-bloom__petal:nth-child(6) {
        width: 50px;
        height: 105px;
        margin-left: -25px;
    }

    .lotus-bloom__center {
        width: 10px;
        height: 10px;
        margin-left: -5px;
    }

    .lotus-roi__number {
        font-size: 72px;
    }

    .lotus-section {
        padding: 56px 0;
    }

    .lotus-flow {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .lotus-flow__line {
        width: 2px;
        height: 30px;
        max-width: none;
        margin-top: 0;
        background: linear-gradient(180deg, var(--public-green), rgba(22,163,74,0.15));
    }

    .lotus-flow__step {
        max-width: 280px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lotus-bloom__petal,
    .lotus-bloom__center,
    .lotus-bloom__pad {
        animation: none;
        opacity: 1;
    }

    .lotus-roi__bloom {
        animation: none;
    }

    .lotus-card,
    .lotus-service,
    .lotus-flow__node,
    .lotus-btn,
    .lotus-tool,
    .lotus-card__accent,
    .lotus-service__petal {
        transition: none;
    }
}

/* ═══════════════════════════════════════════════════════
   GPU MODE — Premium effects when hardware acceleration
   is available. Without GPU these are skipped for perf.
   ═══════════════════════════════════════════════════════ */

/* Background */
.gpu .public-bg-holo {
    background:
        radial-gradient(900px circle at 20% calc(18% + var(--public-bg-shift-y)), rgba(22, 163, 74, 0.16), transparent 62%),
        radial-gradient(760px circle at 84% calc(55% + var(--public-bg-shift-y)), rgba(22, 163, 74, 0.10), transparent 62%),
        radial-gradient(820px circle at 64% calc(105% + var(--public-bg-shift-y)), rgba(37, 99, 235, 0.06), transparent 65%);
    filter: blur(18px);
}

.gpu .public-bg-leaf {
    will-change: transform;
}

.gpu .leaf {
    filter: blur(2px);
    opacity: 1;
}

/* Header — glassmorphism */
.gpu .public-header {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Nav dropdown — glassmorphism */
.gpu .public-nav-dropdown__menu {
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* Mobile nav — glassmorphism */
@media (max-width: 768px) {
    .gpu .public-nav {
        background: rgba(255, 255, 255, 0.99);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }
}

/* Home feature cards */
.gpu .home-feature {
    background: rgba(255, 255, 255, 0.54);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Metrics */
.gpu .home-metric {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

/* Callout */
.gpu .home-callout {
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

/* Service blocks */
.gpu .public-service-block {
    background: rgba(255, 255, 255, 0.56);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* Lotus cards */
.gpu .lotus-card {
    background: rgba(255,255,255,0.45);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04), inset 0 1px 0 rgba(255,255,255,0.6);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.gpu .lotus-card:hover {
    box-shadow: 0 12px 32px rgba(22,163,74,0.10), inset 0 1px 0 rgba(255,255,255,0.8);
}

/* Premium description */
.gpu .lotus-premium-desc {
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.15);
    box-shadow:
        0 8px 32px rgba(0,0,0,0.08),
        inset 0 1px 0 rgba(255,255,255,0.15),
        inset 0 -1px 0 rgba(255,255,255,0.08);
}

.gpu .lotus-premium-desc:hover {
    box-shadow:
        0 12px 40px rgba(0,0,0,0.12),
        inset 0 1px 0 rgba(255,255,255,0.2),
        inset 0 -1px 0 rgba(255,255,255,0.1);
}

/* Pricing side */
.gpu .lotus-pricing-side__inner {
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow:
        0 4px 20px rgba(0,0,0,0.06),
        inset 0 1px 0 rgba(255,255,255,0.25),
        inset 0 -1px 0 rgba(255,255,255,0.12);
}

.gpu .lotus-pricing-side:hover .lotus-pricing-side__inner {
    box-shadow:
        0 8px 30px rgba(0,0,0,0.1),
        inset 0 1px 0 rgba(255,255,255,0.3),
        inset 0 -1px 0 rgba(255,255,255,0.15);
}

/* Contact form */
.gpu .lotus-contact-form {
    background: rgba(255,255,255,0.4);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,0.5);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04), inset 0 1px 0 rgba(255,255,255,0.6);
}

/* Service cards (lotus) */
.gpu .lotus-service {
    background: rgba(255,255,255,0.4);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255,255,255,0.5);
    box-shadow: 0 4px 24px rgba(22,163,74,0.04), inset 0 1px 0 rgba(255,255,255,0.6);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.gpu .lotus-service:hover {
    box-shadow: 0 16px 40px rgba(22,163,74,0.12), inset 0 1px 0 rgba(255,255,255,0.8);
}

.gpu .lotus-service__petal {
    transition: transform 0.4s ease, opacity 0.4s ease;
}

/* Tools */
.gpu .lotus-tool {
    border: 1px solid rgba(255,255,255,0.45);
    background: rgba(255,255,255,0.35);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 2px 12px rgba(22,163,74,0.03), inset 0 1px 0 rgba(255,255,255,0.5);
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.gpu .lotus-tool:hover {
    background: rgba(255,255,255,0.55);
    box-shadow: 0 8px 24px rgba(22,163,74,0.06), inset 0 1px 0 rgba(255,255,255,0.7);
}

/* ══════════════════════════════════════════
   FONT-SIZE ACCESSIBILITY WIDGET
   ══════════════════════════════════════════ */

/* ── Floating widget (desktop) ── */

.fontsize-widget {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 100;
    display: flex;
    align-items: center;
    gap: 0;
}

.fontsize-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(22,163,74,0.12);
    background: rgba(255,255,255,0.92);
    color: var(--public-green-ink);
    font-size: 16px;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.fontsize-toggle:hover {
    background: rgba(22,163,74,0.06);
    color: var(--public-green);
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(22,163,74,0.12);
}

.fontsize-panel {
    display: none;
    align-items: center;
    gap: 4px;
    margin-right: 8px;
    padding: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(22,163,74,0.10);
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    order: -1;
}

.fontsize-widget.is-open .fontsize-panel {
    display: flex;
}

.fontsize-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    color: var(--public-text);
    transition: background 0.15s ease, color 0.15s ease;
    padding: 6px 12px;
    white-space: nowrap;
    line-height: 1;
}

.fontsize-btn:hover {
    background: rgba(22,163,74,0.06);
    color: var(--public-green);
}

.fontsize-btn.is-active {
    background: var(--public-green);
    color: white;
}

.fontsize-btn[data-fs="medium"] {
    font-size: 12px;
}

.fontsize-btn[data-fs="large"] {
    font-size: 14px;
}

.fontsize-btn[data-fs="xlarge"] {
    font-size: 16px;
}

/* GPU glassmorphism */
.gpu .fontsize-toggle {
    background: rgba(255,255,255,0.75);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.gpu .fontsize-panel {
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

/* ── Mobile: hide floating widget ── */

@media (max-width: 768px) {
    .fontsize-widget {
        display: none;
    }
}

/* ── Font-size scaling on <html> ── */

html.fs-medium {
    font-size: 16px;
}

html.fs-large {
    font-size: 18px;
}

html.fs-xlarge {
    font-size: 20px;
}

/* ── Large: scale all headings & titles ── */

html.fs-large h1, html.fs-large .hero-title, html.fs-large .lotus-hero__title {
    font-size: 2.8rem;
}

html.fs-large h2, html.fs-large .lotus-h2 {
    font-size: 1.85rem;
}

html.fs-large h3 {
    font-size: 1.4rem;
}

html.fs-large h4 {
    font-size: 1.15rem;
}

html.fs-large .lotus-hero__sub, html.fs-large .hero-subtitle {
    font-size: 1.15rem;
}

html.fs-large .public-nav-link,
html.fs-large .public-nav-dropdown__item,
html.fs-large .public-lang-item,
html.fs-large .nav-cta {
    font-size: 14px;
}

html.fs-large p, html.fs-large li, html.fs-large span, html.fs-large a,
html.fs-large .lotus-premium-desc__paragraph {
    font-size: 1.05rem;
}

html.fs-large .lotus-kicker, html.fs-large .kicker {
    font-size: 0.75rem;
}

/* ── Extra-large: scale all headings & titles more ── */

html.fs-xlarge h1, html.fs-xlarge .hero-title, html.fs-xlarge .lotus-hero__title {
    font-size: 3.2rem;
}

html.fs-xlarge h2, html.fs-xlarge .lotus-h2 {
    font-size: 2.1rem;
}

html.fs-xlarge h3 {
    font-size: 1.6rem;
}

html.fs-xlarge h4 {
    font-size: 1.3rem;
}

html.fs-xlarge .lotus-hero__sub, html.fs-xlarge .hero-subtitle {
    font-size: 1.25rem;
}

html.fs-xlarge .public-nav-link,
html.fs-xlarge .public-nav-dropdown__item,
html.fs-xlarge .public-lang-item,
html.fs-xlarge .nav-cta {
    font-size: 15px;
}

html.fs-xlarge p, html.fs-xlarge li, html.fs-xlarge span, html.fs-xlarge a,
html.fs-xlarge .lotus-premium-desc__paragraph {
    font-size: 1.15rem;
}

html.fs-xlarge .lotus-kicker, html.fs-xlarge .kicker {
    font-size: 0.85rem;
}

html.fs-xlarge .lotus-roi__number {
    font-size: 110px;
}

html.fs-xlarge .public-big-number {
    font-size: 96px;
}

html.fs-xlarge .home-callout__value {
    font-size: 62px;
}

@media (prefers-reduced-motion: reduce) {
    .fontsize-toggle,
    .fontsize-btn {
        transition: none;
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   NEW COMPONENTS - Vision, Interventions, Method, Pricing
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Hero Signature ── */
.lotus-hero__signature {
    font-size: 1rem;
    color: var(--public-green);
    margin-top: 0.5rem;
    opacity: 0.9;
}

/* ── Vision Flows ── */
.lotus-vision-flows {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.lotus-vision-flow {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: var(--public-surface);
    border-radius: 12px;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-md);
}

.lotus-vision-flow i {
    font-size: 1.5rem;
    color: var(--public-green);
}

.lotus-vision-flow span {
    font-weight: 500;
    color: var(--public-text);
}

/* ── Steps (Interventions) ── */
.lotus-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 700px;
    margin: 0 auto;
}

.lotus-steps__item {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.5rem 0;
}

.lotus-steps__number {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--public-green);
    color: #fff;
    font-weight: 700;
    font-size: 1.25rem;
    border-radius: 50%;
}

.lotus-steps__content {
    flex: 1;
}

.lotus-steps__title {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--public-text);
}

.lotus-steps__text {
    font-size: 0.95rem;
    color: var(--public-muted);
    margin: 0;
}

.lotus-steps__connector {
    width: 2px;
    height: 24px;
    background: var(--public-green);
    opacity: 0.3;
    margin-left: 23px;
}

/* ── Flow Teaser (Home) ── */
.lotus-flow-teaser {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.lotus-flow-teaser__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: var(--public-surface);
    border-radius: 12px;
    border: 1px solid var(--public-border);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.lotus-flow-teaser__item:hover {
    transform: translateX(8px);
    box-shadow: var(--public-shadow-md);
}

.lotus-flow-teaser__letter {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--public-green);
    color: #fff;
    font-weight: 700;
    font-size: 1.5rem;
    border-radius: 10px;
}

.lotus-flow-teaser__label {
    font-weight: 500;
    color: var(--public-text);
}

/* ── Flow Method (Method Page) ── */
.lotus-flow-method {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.lotus-flow-method__item {
    display: flex;
    gap: 2rem;
    padding: 2rem;
    background: var(--public-surface);
    border-radius: 16px;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-md);
}

.lotus-flow-method__letter {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--public-green);
    color: #fff;
    font-weight: 700;
    font-size: 2rem;
    border-radius: 14px;
}

.lotus-flow-method__content {
    flex: 1;
}

.lotus-flow-method__title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
    color: var(--public-green-ink);
}

.lotus-flow-method__subtitle {
    font-size: 1rem;
    font-weight: 500;
    color: var(--public-text);
    margin-bottom: 0.5rem;
}

/* ── Score Cards (Method Page) ── */
.lotus-score-card {
    padding: 1.5rem;
    border-radius: 12px;
    text-align: center;
    background: var(--public-surface);
    border: 2px solid var(--public-border);
}

.lotus-score-card__range {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.lotus-score-card__label {
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.lotus-score-card__text {
    font-size: 0.85rem;
    color: var(--public-muted);
}

.lotus-score-card--red {
    border-color: #ef4444;
}
.lotus-score-card--red .lotus-score-card__range {
    color: #ef4444;
}

.lotus-score-card--orange {
    border-color: #f97316;
}
.lotus-score-card--orange .lotus-score-card__range {
    color: #f97316;
}

.lotus-score-card--yellow {
    border-color: #eab308;
}
.lotus-score-card--yellow .lotus-score-card__range {
    color: #eab308;
}

.lotus-score-card--green {
    border-color: var(--public-green);
}
.lotus-score-card--green .lotus-score-card__range {
    color: var(--public-green);
}

/* ── Pricing Cards ── */
.lotus-pricing-card {
    background: var(--public-surface);
    border-radius: 16px;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-lg);
    overflow: hidden;
}

.lotus-pricing-card--featured {
    border: 2px solid var(--public-green);
}

.lotus-pricing-card__header {
    padding: 2rem;
    text-align: center;
    border-bottom: 1px solid var(--public-border);
}

.lotus-pricing-card__title {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0.5rem 0;
    color: var(--public-text);
}

.lotus-pricing-card__price {
    margin: 1rem 0 0.5rem;
}

.lotus-pricing-card__amount {
    font-size: 3rem;
    font-weight: 700;
    color: var(--public-green);
}

.lotus-pricing-card__unit {
    font-size: 1rem;
    color: var(--public-muted);
    margin-left: 0.25rem;
}

.lotus-pricing-card__body {
    padding: 2rem;
}

.lotus-pricing-card__footer {
    padding: 1.5rem 2rem 2rem;
    text-align: center;
}

/* ── Example Box (Pricing) ── */
.lotus-example-box {
    background: rgba(22, 163, 74, 0.08);
    border-radius: 12px;
    padding: 1.5rem;
}

.lotus-example-box__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(22, 163, 74, 0.15);
}

.lotus-example-box__row:last-child {
    border-bottom: none;
}

.lotus-example-box__row--highlight {
    padding-top: 1rem;
}

.lotus-example-box__label {
    font-weight: 600;
    color: var(--public-text);
}

.lotus-example-box__row--highlight .lotus-example-box__label {
    color: var(--public-green);
    font-size: 1.1rem;
}

.lotus-example-box__detail {
    font-size: 0.9rem;
    color: var(--public-muted);
}

/* ── FAQ ── */
.lotus-faq {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.lotus-faq__item {
    background: var(--public-surface);
    border-radius: 12px;
    padding: 1.5rem;
    border: 1px solid var(--public-border);
}

.lotus-faq__question {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
    color: var(--public-text);
}

.lotus-faq__answer {
    font-size: 0.95rem;
    color: var(--public-muted);
    margin: 0;
    line-height: 1.6;
}

/* ── Numbered List ── */
.lotus-list--numbered {
    list-style: none;
    padding: 0;
    counter-reset: item;
}

.lotus-list--numbered li {
    counter-increment: item;
    padding-left: 2rem;
    position: relative;
    margin-bottom: 0.75rem;
}

.lotus-list--numbered li::before {
    content: counter(item) ".";
    position: absolute;
    left: 0;
    font-weight: 600;
    color: var(--public-green);
}

/* ── FAQ Cards (Premium) ── */
.lotus-faq-card {
    background: var(--public-surface);
    border-radius: 16px;
    padding: 1.75rem;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-md);
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.lotus-faq-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--public-shadow-lg);
}

.lotus-faq-card__icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(22, 163, 74, 0.1);
    border-radius: 12px;
    margin-bottom: 1.25rem;
}

.lotus-faq-card__icon i {
    font-size: 1.4rem;
    color: var(--public-green);
}

.lotus-faq-card__question {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--public-text);
    margin-bottom: 0.75rem;
    line-height: 1.4;
}

.lotus-faq-card__answer {
    font-size: 0.9rem;
    color: var(--public-muted);
    margin: 0;
    line-height: 1.6;
}

/* ── Button Outline Variant ── */
.lotus-btn--outline {
    background: transparent;
    border: 2px solid var(--public-green);
    color: var(--public-green);
}

.lotus-btn--outline:hover {
    background: var(--public-green);
    color: #fff;
}

/* ── Steps Flow (Interventions) ── */
.lotus-steps-flow {
    max-width: 900px;
    margin: 0 auto;
}

.lotus-steps-flow__track {
    position: relative;
}

.lotus-steps-flow__line {
    position: absolute;
    left: 50%;
    top: 24px;
    bottom: 24px;
    width: 3px;
    background: linear-gradient(180deg, var(--public-green) 0%, var(--public-green) 100%);
    transform: translateX(-50%);
    border-radius: 2px;
}

.lotus-steps-flow__item {
    display: flex;
    align-items: center;
    gap: 0;
    margin-bottom: 1.5rem;
    position: relative;
}

.lotus-steps-flow__item:last-child {
    margin-bottom: 0;
}

.lotus-steps-flow__item--left {
    flex-direction: row;
}

.lotus-steps-flow__item--right {
    flex-direction: row-reverse;
}

.lotus-steps-flow__item--left .lotus-steps-flow__card {
    margin-right: auto;
    text-align: right;
}

.lotus-steps-flow__item--right .lotus-steps-flow__card {
    margin-left: auto;
    text-align: left;
}

.lotus-steps-flow__card {
    flex: 0 0 calc(50% - 40px);
    max-width: calc(50% - 40px);
    background: var(--public-surface);
    border-radius: 16px;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-md);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.lotus-steps-flow__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--public-shadow-lg);
}

.lotus-steps-flow__item--left .lotus-steps-flow__icon {
    margin-left: auto;
}

.lotus-steps-flow__dot {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--public-green);
    color: #fff;
    font-weight: 700;
    font-size: 1.25rem;
    border-radius: 50%;
    z-index: 2;
    box-shadow: 0 0 0 5px var(--public-bg), 0 4px 12px rgba(22, 163, 74, 0.25);
}

.lotus-steps-flow__icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(22, 163, 74, 0.1);
    border-radius: 10px;
    margin-bottom: 0.75rem;
}

.lotus-steps-flow__icon i {
    font-size: 1.2rem;
    color: var(--public-green);
}

.lotus-steps-flow__title {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    color: var(--public-text);
}

.lotus-steps-flow__text {
    font-size: 0.9rem;
    color: var(--public-muted);
    margin: 0;
    line-height: 1.5;
}

/* ── Flow Card (Home Method) ── */
.lotus-flow-card {
    background: var(--public-surface);
    border-radius: 16px;
    padding: 1.5rem;
    text-align: center;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-md);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
}

.lotus-flow-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--public-shadow-lg);
}

.lotus-flow-card__letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: var(--public-green);
    color: #fff;
    font-weight: 700;
    font-size: 1.75rem;
    border-radius: 14px;
    margin-bottom: 1rem;
}

.lotus-flow-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--public-text);
    margin-bottom: 0.25rem;
}

.lotus-flow-card__subtitle {
    font-size: 0.85rem;
    color: var(--public-muted);
    margin: 0;
}

/* ── Price Box (Tarifs) ── */
.lotus-price-box {
    position: relative;
    background: var(--public-surface);
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid var(--public-border);
    box-shadow: var(--public-shadow-lg);
    display: flex;
    flex-direction: column;
}

.lotus-price-box--featured {
    border: 2px solid var(--public-green);
    background: linear-gradient(180deg, rgba(22, 163, 74, 0.03) 0%, var(--public-surface) 100%);
}

.lotus-price-box__ribbon {
    position: absolute;
    top: -1px;
    right: 24px;
    background: var(--public-green);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.5rem 1rem;
    border-radius: 0 0 8px 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lotus-price-box__badge {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--public-green);
    margin-bottom: 0.5rem;
}

.lotus-price-box__title {
    font-size: 1.35rem;
    font-weight: 600;
    color: var(--public-text);
    margin-bottom: 1rem;
}

.lotus-price-box__price {
    margin-bottom: 0.5rem;
}

.lotus-price-box__amount {
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--public-green);
    line-height: 1;
}

.lotus-price-box__unit {
    font-size: 1rem;
    color: var(--public-muted);
    margin-left: 0.25rem;
}

.lotus-price-box__duration,
.lotus-price-box__tagline {
    font-size: 0.9rem;
    color: var(--public-muted);
    margin-bottom: 1.5rem;
}

.lotus-price-box__features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
    flex-grow: 1;
}

.lotus-price-box__features li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.5rem 0;
    font-size: 0.9rem;
    color: var(--public-text);
}

.lotus-price-box__features li i {
    color: var(--public-green);
    font-size: 1rem;
    margin-top: 2px;
}

.lotus-price-box__deliverable {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: rgba(22, 163, 74, 0.08);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--public-green-ink);
    margin-bottom: 1.5rem;
}

.lotus-price-box__deliverable i {
    color: var(--public-green);
}

.lotus-price-box__example {
    background: rgba(22, 163, 74, 0.06);
    border-radius: 12px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.lotus-price-box__example-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(22, 163, 74, 0.1);
}

.lotus-price-box__example-row:last-of-type {
    border-bottom: none;
}

.lotus-price-box__example-row span {
    font-size: 0.85rem;
    color: var(--public-muted);
}

.lotus-price-box__example-row strong {
    font-size: 0.95rem;
    color: var(--public-text);
}

.lotus-price-box__example-row--negative {
    border-bottom: none;
    padding: 0.35rem 0;
}

.lotus-price-box__example-row--negative span {
    font-size: 0.8rem;
    font-style: italic;
}

.lotus-price-box__example-total {
    padding: 0.75rem 0 0 0;
    margin-top: 0.5rem;
    border-top: 2px solid rgba(22, 163, 74, 0.2);
    font-size: 1rem;
    color: var(--public-green);
}

.lotus-price-box__intro {
    font-size: 0.9rem;
    color: var(--public-muted);
    margin-bottom: 1.25rem;
}

.lotus-price-box__example-result {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding-top: 0.75rem;
    margin-top: 0.5rem;
    border-top: 1px dashed rgba(22, 163, 74, 0.2);
    font-weight: 600;
    color: var(--public-green);
    font-size: 0.9rem;
}

.lotus-price-box__guarantee {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--public-green-ink);
    margin-bottom: 1.5rem;
}

.lotus-price-box__guarantee i {
    color: var(--public-green);
    font-size: 1.1rem;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .lotus-flow-method__item {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
    
    .lotus-flow-method__letter {
        margin: 0 auto;
    }
    
    .lotus-steps-flow__line {
        left: 24px;
    }
    
    .lotus-steps-flow__item {
        flex-direction: column !important;
        align-items: flex-start;
        padding-left: 60px;
    }
    
    .lotus-steps-flow__card {
        flex: 1;
        max-width: 100%;
        text-align: left !important;
        margin: 0 !important;
    }
    
    .lotus-steps-flow__item--left .lotus-steps-flow__icon {
        margin-left: 0;
    }
    
    .lotus-steps-flow__dot {
        left: 24px;
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
    
    .lotus-price-box__amount {
        font-size: 2.25rem;
    }
    
    .lotus-flow-card__letter {
        width: 48px;
        height: 48px;
        font-size: 1.5rem;
    }
}

/* ── Tooltips ── */
.lotus-tooltip-term {
    position: relative;
    border-bottom: 2px dotted var(--public-green);
    cursor: help;
    color: var(--public-green-ink);
    font-weight: 500;
}

.lotus-tooltip-term::after {
    content: attr(data-tooltip-text);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(-5px);
    background: #1a1a2e;
    color: #f5f5f5;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 400;
    line-height: 1.4;
    white-space: normal;
    max-width: 280px;
    width: max-content;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 1000;
    text-transform: none;
    letter-spacing: normal;
}

.lotus-tooltip-term::before {
    content: '';
    position: absolute;
    bottom: calc(100% + 2px);
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top-color: #1a1a2e;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 1001;
}

.lotus-tooltip-term:hover::after,
.lotus-tooltip-term:hover::before,
.lotus-tooltip-term.active::after,
.lotus-tooltip-term.active::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.lotus-tooltip-term.active::before {
    transform: translateX(-50%);
}

@media (max-width: 768px) {
    .lotus-tooltip-term::after {
        max-width: 240px;
        font-size: 0.8rem;
        padding: 6px 10px;
    }
}
