﻿.nav{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
}

.site-preloader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #fff;
    color: #fff;
    isolation: isolate;
    transition: opacity .75s ease, visibility .75s ease;
}

.site-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.preloader-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.preloader-water-stage {
    transition: transform .45s cubic-bezier(.28, .74, .22, 1);
    will-change: transform;
}

.preloader-wave {
    transform-box: fill-box;
    transform-origin: center;
    will-change: transform;
}

.preloader-wave-back {
    animation: preloaderSvgWave 6.8s linear infinite;
}

.preloader-wave-mid {
    animation: preloaderSvgWave 4.8s linear infinite reverse;
}

.preloader-wave-front {
    animation: preloaderSvgWave 3.9s ease-in-out infinite;
}

.preloader-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 24px;
    text-align: center;
    transform: translateY(10px);
}

.preloader-logo {
    /*width: clamp(180px, 26vw, 300px);*/
    width: clamp(180px, 26vw, 200px);
    height: auto;
    color: #fff;
    fill: currentColor;
    opacity: 0;
    transform: translate3d(0, 16px, 0) scale(.96);
    filter: blur(7px) drop-shadow(0 18px 38px rgba(0, 42, 72, .32));
    transition: opacity .72s ease, transform .72s ease, filter .72s ease;
}

.preloader-wordmark {
    width: max-content;
}

.preloader-title {
    margin: 8px 0 0;
    color: #fff;
    font-family: "GenSenRounded2 TC", "GenSenRounded TW", "GenSenRounded", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
    /*font-size: clamp(36px, 6.4vw, 68px);*/
    font-size: clamp(36px, 6.4vw, 48px);
    font-weight: 600;
    letter-spacing: .16em;
    line-height: 1.08;
    text-shadow: 0 4px 0 rgba(34,153,221,.2), 0 18px 36px rgba(0,45,72,.38);
    opacity: 0;
    transform: translate3d(0, 16px, 0);
    transition: opacity .72s ease .22s, transform .72s ease .22s, filter .72s ease .22s;
    filter: blur(7px);
}

.preloader-title:after {
    content: "";
    display: block;
    width: 0;
    height: 2px;
    margin: 5px auto 5px;
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 0 18px rgba(255,255,255,.42);
}

.preloader-subtitle {
    margin: 0;
    width: 100%;
    color: #fff;
    display: flex;
    justify-content: space-around;
    font-family: Inter, "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;
    font-size: clamp(14px, 2.1vw, 24px);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    filter: blur(6px);
    text-shadow: 0 12px 26px rgba(0,45,72,.34);
    transition: opacity .72s ease .4s, transform .72s ease .4s, filter .72s ease .4s;
}

.site-preloader.is-complete .preloader-logo,
.site-preloader.is-complete .preloader-title,
.site-preloader.is-complete .preloader-subtitle {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: drop-shadow(0 18px 38px rgba(0, 42, 72, .28));
}

.site-preloader.is-complete .preloader-title:after {
    animation: preloaderTitleLine 1.1s ease .42s forwards;
}

@media (prefers-reduced-motion: reduce) {
    .preloader-wave {
        animation-duration: .01ms;
        animation-delay: 0s;
    }

    .preloader-water-stage,
    .preloader-logo,
    .preloader-title,
    .preloader-subtitle {
        transition-duration: .01ms;
        animation: none;
    }

    .site-preloader.is-complete .preloader-title:after {
        width: 52%;
        animation: none;
    }
}

.nav .container {
    width: 100%;
    max-width: none;
    margin: 0;
}

.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px clamp(18px,4vw,54px);
    border: 1px solid rgba(255,255,255,.78);
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    background: rgba(255,255,255,.90);
    border-bottom: 1px solid rgba(4,151,199,.10);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 10px 34px rgba(16,128,171,.08);
    transform: translateZ(0);
}

.logo {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
    letter-spacing: .08em;
}

    .logo img {
        height: 45px;
        width: auto;
        display: block;
    }

.menu {
    display: flex;
    gap: 24px;
    color: #39576d;
    font-size: 14px;
    font-weight: 600;
}

    .menu a {
        position: relative;
        padding: 6px 0;
    }

        .menu a:hover {
            color: var(--brand);
        }

.menu-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    /*border: 1px solid #c9edf6;
    border-radius: 50%;
    background: rgba(255,255,255,.82);*/
    border: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    z-index: 25;
    transition: .25s background, .25s box-shadow;
}

    .menu-toggle:hover {
        background: transparent;
        /*background: #fff;
        box-shadow: 0 12px 26px rgba(3,151,199,.12);*/
    }

    .menu-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        border-radius: 999px;
        background: #0b6f98;
        position: relative;
        transition: .25s transform, .25s background;
    }

        .menu-toggle span:before,
        .menu-toggle span:after {
            content: "";
            position: absolute;
            left: 0;
            width: 20px;
            height: 2px;
            border-radius: 999px;
            background: #0b6f98;
            transition: .25s transform, .25s top;
        }

        .menu-toggle span:before {
            top: -7px;
        }

        .menu-toggle span:after {
            top: 7px;
        }

body.menu-open .menu-toggle span {
    background: transparent;
}

    body.menu-open .menu-toggle span:before {
        top: 0;
        transform: rotate(45deg);
    }

    body.menu-open .menu-toggle span:after {
        top: 0;
        transform: rotate(-45deg);
    }

.mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(7,39,58,.22);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    z-index: 18;
    opacity: 0;
    pointer-events: none;
    transition: .25s opacity;
}

body.menu-open .mobile-menu-backdrop {
    opacity: 1;
    pointer-events: auto;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 999px;
    padding: 13px 20px;
    font-weight: 600;
    cursor: pointer;
    transition: .25s transform, .25s box-shadow, .25s background;
}

    .btn.primary {
        color: #fff;
        background: linear-gradient(135deg, var(--brand), var(--brand2));
        box-shadow: 0 16px 36px rgba(3,151,199,.25);
    }

    .btn.secondary {
        background: #fff;
        color: #0d6f98;
        border: 1px solid #c9edf6;
        box-shadow: 0 12px 30px rgba(3,151,199,.1);
    }

    .btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 20px 44px rgba(3,151,199,.23);
    }

    .btn:disabled {
        cursor: wait;
        opacity: .68;
        transform: none;
        box-shadow: none;
    }

.hero {
    position: relative;
    min-height: 100vh;
    padding: 132px 0 70px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: radial-gradient(circle at 18% 18%, rgba(99,216,239,.32), transparent 34%), radial-gradient(circle at 88% 10%, rgba(205,247,255,.88), transparent 34%), linear-gradient(180deg, #fbfeff 0%, #eafaff 100%);
}

#waterCanvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    opacity: .72;
    filter: saturate(.94) contrast(.98);
}

.water-overlay {
    position: absolute;
    inset: auto -10% -150px -10%;
    height: 48%;
    background: radial-gradient(ellipse at 50% 0%, rgba(8,145,178,.10), transparent 70%);
    filter: blur(26px);
    z-index: 1;
    pointer-events: none;
}

.hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 54px;
    align-items: center;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border: 1px solid #c7edf6;
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: #087da6;
    font-weight: 600;
    font-size: 13px;
    box-shadow: 0 12px 30px rgba(5,140,184,.08);
}

    .eyebrow i {
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: #19c4df;
        box-shadow: 0 0 0 7px rgba(25,196,223,.12);
    }

.lead {
    font-size: clamp(18px,2vw,23px);
    line-height: 1.78;
    color: #506b7e;
    margin: 0 0 32px;
    max-width: 650px;
}

.hero-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 34px;
}

.stats {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 14px;
    max-width: 660px;
}

.stat {
    padding: 18px;
    border-radius: 22px;
    background: rgba(255,255,255,.66);
    border: 1px solid rgba(202,238,247,.92);
    box-shadow: 0 16px 42px rgba(1,118,165,.09);
}

    .stat b {
        display: block;
        font-size: 25px;
        color: #0b7aa5;
    }

    .stat small {
        display: block;
        color: #668094;
        margin-top: 5px;
        font-weight: 600;
    }

.visual {
    position: relative;
    min-height: 540px;
    perspective: 1200px;
}

.orb {
    position: absolute;
    border-radius: 40px;
    background: rgba(255,255,255,.62);
    border: 1px solid rgba(255,255,255,.9);
    box-shadow: var(--shadow);
    backdrop-filter: blur(14px);
}

.panel-main {
    inset: 40px 0 auto 30px;
    padding: 28px;
    width: min(470px,100%);
    transform: rotate(-2deg);
}

    .panel-main h3 {
        margin: 0 0 18px;
        font-size: 24px;
    }

.bars {
    display: grid;
    gap: 13px;
}

.bar {
    height: 13px;
    background: #e1f4fa;
    border-radius: 999px;
    overflow: hidden;
}

    .bar span {
        display: block;
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(90deg,#0a91bf,#28c8e2);
        animation: flowbar 4s ease-in-out infinite;
    }

    .bar:nth-child(2) span {
        width: 76%;
        animation-delay: .4s;
    }

    .bar:nth-child(3) span {
        width: 91%;
        animation-delay: .8s;
    }

    .bar:nth-child(4) span {
        width: 62%;
        animation-delay: 1.2s;
    }

.mini {
    right: 6px;
    top: 250px;
    width: 230px;
    padding: 22px;
    animation: float 5.5s ease-in-out infinite;
}

    .mini:nth-child(3) {
        left: 0;
        right: auto;
        top: 330px;
        width: 260px;
        animation-delay: 1s;
    }

    .mini strong {
        display: block;
        color: #086f9a;
        font-size: 36px;
    }

    .mini p {
        margin: 6px 0 0;
        color: #607386;
        font-weight: 600;
    }

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 34px;
}

    .section-head h2 {
        font-size: clamp(32px,4vw,52px);
        letter-spacing: -.045em;
        line-height: 1.1;
        margin: 0;
        color: var(--heading);
    }

    .section-head p {
        max-width: 480px;
        color: var(--muted);
        line-height: 1.8;
        margin: 0;
    }

.cards {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 18px;
}

.card {
    position: relative;
    padding: 26px;
    border-radius: var(--radius);
    background: var(--card);
    border: 1px solid rgba(202,238,247,.9);
    box-shadow: 0 18px 50px rgba(12,111,154,.09);
    overflow: hidden;
}

    .card:before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg,rgba(34,195,223,.16),transparent 38%);
        opacity: .9;
    }

    .card > * {
        position: relative;
    }

.icon {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg,#e7fbff,#ffffff);
    border: 1px solid #cbeef6;
    box-shadow: 0 14px 30px rgba(4,151,199,.10);
}

    .icon svg {
        width: 33px;
        height: 33px;
        display: block;
    }

    .icon .fill-a {
        fill: #12b8d8;
    }

    .icon .fill-b {
        fill: #e7fbff;
    }

    .icon .stroke {
        fill: none;
        stroke: #047fae;
        stroke-width: 2.4;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

.card h3 {
    font-size: 21px;
    margin: 22px 0 10px;
}

.card p {
    color: var(--muted);
    line-height: 1.75;
    margin: 0;
    
}

.card ul {
    padding: 0;
    margin: 18px 0 0 20px;
    list-style: square;
    color: #477083;
    font-weight: 600;
    font-size: 14px;
}

.card li {
    margin: 8px 0;
}

    /*.card li:before {
        content: "~";
        color: #0ba9d0;
        margin-right: 8px;
    }*/

.cases {
    display: none;
}

.case {
    min-height: 330px;
    padding: 30px;
    border-radius: 32px;
    background: linear-gradient(135deg,rgba(255,255,255,.9),rgba(231,250,255,.76));
    border: 1px solid #cceff6;
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden;
}

    .case:after {
        content: "";
        position: absolute;
        width: 300px;
        height: 300px;
        border-radius: 50%;
        right: -80px;
        bottom: -110px;
        background: radial-gradient(circle,rgba(42,198,225,.3),transparent 68%);
    }

    .case .tag,
    .case-kicker {
        display: inline-flex;
        padding: 8px 12px;
        border-radius: 999px;
        background: #e5f9fe;
        color: #087da6;
        font-weight: 600;
        font-size: 13px;
    }

    .case h3 {
        font-size: 30px;
        margin: 28px 0 12px;
    }

    .case p {
        color: var(--muted);
        line-height: 1.8;
        max-width: 600px;
    }

    /*.case .chips {
        display: flex;
        gap: 9px;
        flex-wrap: wrap;
        margin-top: 24px;
    }*/

.chip {
    padding: 8px 11px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #d3eef5;
    color: #41687c;
    font-weight: 600;
    font-size: 13px;
}


/*.case-studies {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 24px;
    align-items: stretch;
}*/

.case-swiper {
    position: relative;
    overflow: hidden;
    padding-bottom: 56px;
}

    .case-swiper .swiper-wrapper {
        align-items: stretch;
    }

    .case-swiper .swiper-slide {
        height: auto;
        display: flex;
    }

.case-study {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
    min-height: 420px;
    padding: 32px;
    overflow: hidden;
    border-radius: 34px;
    background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(235,251,255,.78));
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid rgba(255,255,255,.74);
    /*box-shadow: 0 30px 80px rgba(3,91,130,.18);*/
    isolation: isolate;
    text-align: left;
}

    .case-study:before {
        content: none;
    }

    .case-study:after {
        content: none;
    }

    .case-study > * {
        position: relative;
        z-index: 1;
    }

.case-media {
    position: relative;
    display: flex;
    align-items: flex-end;
    width: 100%;
    min-height: 240px;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 26px;
    background-color: #dff5fb;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    text-decoration: none;
    box-shadow: inset 0 -90px 90px rgba(5,35,52,.28);
}

    .case-media span {
        display: inline-flex;
        align-items: center;
        margin: 20px;
        padding: 8px 12px;
        border-radius: 999px;
        background: rgba(255,255,255,.92);
        color: #0a6f90;
        font-size: 13px;
        font-weight: 600;
        box-shadow: 0 12px 24px rgba(5,35,52,.16);
    }

.case-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding: 24px 4px 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.case-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0 0 18px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #e5f9fe;
    color: #087da6;
    font-weight: 600;
    font-size: 13px;
    box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.case-study h3 {
    margin: 0 0 12px;
    font-size: 32px;
    line-height: 1.2;
    letter-spacing: 0;
    color: #123047;
    text-align: left;
}

.case-study p {
    margin: 0;
    color: #4f6779;
    line-height: 1.85;
    text-align: left;
}

.case-study .chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
    padding-top: 0;
}

.case-study .chip {
    background: #f4fbfd;
    border: 1px solid #d3eef5;
    color: #24576e;
}

.case-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    margin-top: 10px;
    padding: 11px 16px;
    border-radius: 999px;
    background: #0a91bf;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 16px 30px rgba(3,151,199,.18);
    transition: .25s transform, .25s box-shadow, .25s background;
}

    .case-link:hover {
        transform: translateY(-2px);
        background: #087da6;
        box-shadow: 0 20px 34px rgba(3,151,199,.24);
    }

.case-swiper-nav {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.case-swiper-prev,
.case-swiper-next {
    width: 46px;
    height: 46px;
    border: 1px solid #c9edf6;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    color: #0a91bf;
    cursor: pointer;
    box-shadow: 0 12px 24px rgba(3,151,199,.10);
    transition: .25s transform, .25s box-shadow, .25s background;
}

    .case-swiper-prev:hover,
    .case-swiper-next:hover {
        transform: translateY(-2px);
        box-shadow: 0 18px 30px rgba(3,151,199,.16);
        background: #fff;
    }

    .case-swiper-prev:before,
    .case-swiper-next:before {
        font-size: 18px;
        font-weight: 600;
    }

    .case-swiper-prev:before {
        content: "<";
    }

    .case-swiper-next:before {
        content: ">";
    }

.case-swiper-pagination {
    margin-top: 18px;
    text-align: center;
}

    .case-swiper-pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
        background: #b7dfea;
        opacity: 1;
    }

    .case-swiper-pagination .swiper-pagination-bullet-active {
        background: #0a91bf;
    }

.products {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px;
}

.product {
    position: relative;
    min-height: 340px;
    padding: 30px;
    border-radius: 34px;
    background: linear-gradient(145deg,#fff,rgba(239,251,255,.9));
    border: 1px solid #d7eef5;
    box-shadow: 0 18px 46px rgba(4,111,154,.08);
    overflow: hidden;
    transition: .28s transform,.28s box-shadow;
}

    .product:hover {
        transform: translateY(-6px);
        box-shadow: 0 30px 76px rgba(4,111,154,.13);
    }

    .product .top {
        position: relative;
        z-index: 2;
        display: flex;
        justify-content: flex-start;
        gap: 12px;
        align-items: center;
        margin: 008px;
    }

    .product .num {
        position: absolute;
        top: -20px;
        right: 3px;
        z-index: 1;
        line-height: .75;
        font-size: clamp(154px,13vw,190px);
        font-weight: 600;
        letter-spacing: -.08em;
        color: #577184;
        opacity: .10;
        pointer-events: none;
        user-select: none;
    }

.product-content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: 280px;
    flex-direction: column;
    align-items: flex-start;
}

.badge {
    font-weight: 600;
    color: #0795bd;
    background: #e9fbff;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 13px;
}

.product .badge {
    margin: 008px;
}

.product h3 {
    position: relative;
    z-index: 2;
    margin: 0012px;
    font-size: 26px;
    letter-spacing: -.025em;
}

.product p {
    position: relative;
    z-index: 2;
    margin: 0020px;
    color: var(--muted);
    line-height: 1.75;
}

.product ul {
    margin: auto 0 0;
    padding: 18px 0 0 20px;
    list-style: square;
    width: 100%;
    border-top: 1px solid #e1f1f6;
    color: #456a7e;
    font-size: 14px;
    font-weight: 600;
}

.product li {
    margin: 9px 0;
}

    /*.product li:before {
        content: ">";
        display: inline-grid;
        place-items: center;
        margin-right: 8px;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: #e9fbff;
        color: #0795bd;
        font-size: 12px;
        font-weight: 600;
    }*/

.process {
    --process-gap: 18px;
    --process-icon-size: 126px;
    --process-number-size: 40px;
    --process-icon-svg: 42px;
    --process-arrow-top: 97px;
    --process-arrow-gap: 9px;
    --process-line: #7fa5b5;
    --process-icon: #315f73;
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: var(--process-gap);
    align-items: start;
    overflow: hidden;
}

.step {
    position: relative;
    display: grid;
    justify-items: center;
    padding: 14px 8px 0;
    text-align: center;
    opacity: 0;
    transform: translateY(18px);
    transition: .6s ease opacity, .6s ease transform;
}

    .step b {
        position: relative;
        display: grid;
        place-items: center;
        width: var(--process-number-size);
        height: var(--process-number-size);
        margin-bottom: calc(var(--process-number-size) / -2);
        border-radius: 50%;
        background: #dff7fc;
        border: 1px solid #aee5f0;
        color: #0a6f90;
        font-size: 15px;
        font-weight: 600;
        box-shadow: 0 10px 22px rgba(42,198,225,.16);
        z-index: 3;
    }

    .step b:after {
        content: none;
    }

    .step:before {
        content: "";
        position: absolute;
        top: var(--process-arrow-top);
        left: calc(100% + var(--process-arrow-gap));
        width: 10px;
        height: 10px;
        border-top: 2px solid var(--process-line);
        border-right: 2px solid var(--process-line);
        transform: translate(-50%,-50%) rotate(45deg);
        pointer-events: none;
    }

    /*.step:after {
        content: "";
        position: absolute;
        top: 85px;
        left: calc(50% + 58px);
        width: calc(100% - 76px);
        height: 34px;
        border-top: 2px solid #111;
        border-right: 2px solid #111;
        border-radius: 0 34px 0 0;
        pointer-events: none;
    }*/

    .step:last-child:after {
        content: none;
    }

    .step:last-child:before {
        content: none;
    }

    .step-icon {
        position:relative;
        display: grid;
        place-items: center;
        align-content: center;
        gap: 10px;
        width: var(--process-icon-size);
        height: var(--process-icon-size);
        border: 2px solid var(--process-line);
        border-radius: 50%;
        background: rgba(255,255,255,.88);
        /*box-shadow: 0 18px 42px rgba(5,35,52,.08);*/
    }

        .step-icon:before {
            content: none;
        }

    .step-icon i {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--process-icon-svg);
        height: var(--process-icon-svg);
        color: var(--process-icon);
        font-size: calc(var(--process-icon-svg) * .76);
        line-height: 1;
    }

    .step span {
        display: block;
        padding: 0 8px;
        font-size: 15px;
        font-weight: 600;
        color: #315569;
        line-height: 1.45;
        letter-spacing: .04em;
        box-shadow: none;
    }

.process.show .step {
    opacity: 1;
    transform: none;
}

.process.show .step:nth-child(1) {
    transition-delay: .05s;
}

.process.show .step:nth-child(2) {
    transition-delay: .18s;
}

.process.show .step:nth-child(3) {
    transition-delay: .31s;
}

.process.show .step:nth-child(4) {
    transition-delay: .44s;
}

.process.show .step:nth-child(5) {
    transition-delay: .57s;
}

.process.show .step:nth-child(6) {
    transition-delay: .7s;
}

.contact {
    padding: 40px;
    border-radius: 38px;
    background: linear-gradient(135deg,#e9fbff,#ffffff 54%,#ddf8ff);
    border: 1px solid #c8edf6;
    box-shadow: var(--shadow);
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 28px;
}

    .contact h2 {
        font-size: 38px;
        margin: 5px 0 14px;
        letter-spacing: -.04em;
        color: var(--heading);
    }

    .contact p {
        color: var(--muted);
        line-height: 1.8;
    }

.form {
    display: grid;
    gap: 4px;
}

.form-field {
    position: relative;
    padding-bottom: 22px;
}

    .form input,
    .form textarea,
    .form select {
        width: 100%;
        border: 1px solid #c8e7f0;
        border-radius: 18px;
        padding: 15px 17px;
        font: inherit;
        background: rgba(255,255,255,.78);
        outline: none;
        transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    }

    .form textarea {
        min-height: 128px;
        resize: none;
    }

        .form input:focus,
        .form textarea:focus,
        .form select:focus {
            border-color: #19b8d8;
            box-shadow: 0 0 0 4px rgba(25,184,216,.12);
        }

    .form-error {
        position: absolute;
        left: 6px;
        bottom: 2px;
        color: #b94b57;
        font-size: 12px;
        font-weight: 600;
        line-height: 1.4;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-2px);
        transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
        pointer-events: none;
    }

    .form-field.is-invalid input,
    .form-field.is-invalid textarea,
    .form-field.is-invalid select {
        border-color: #d87983;
        background: rgba(255,246,247,.94);
        box-shadow: 0 0 0 4px rgba(216,121,131,.10);
    }

    .form-field.is-invalid .form-error {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .form-field.is-invalid input:focus,
    .form-field.is-invalid textarea:focus,
    .form-field.is-invalid select:focus {
        border-color: #ca5f6b;
        box-shadow: 0 0 0 4px rgba(202,95,107,.14);
    }

.swal2-popup.mizunado-popup {
    width: min(92vw, 440px);
    padding: 30px 30px 26px;
    border: 1px solid #ccebf3;
    border-radius: 24px;
    background: linear-gradient(145deg, #ffffff, #f0fbfe);
    box-shadow: 0 28px 80px rgba(3,91,130,.18);
    color: var(--text);
}

    .mizunado-popup .swal2-title {
        padding: 0;
        color: var(--heading);
        font-size: 26px;
        font-weight: 600;
        line-height: 1.35;
        letter-spacing: 0;
    }

    .mizunado-popup .swal2-html-container {
        margin: 12px 0 0;
        padding: 0;
        color: var(--muted);
        font-size: 15px;
        line-height: 1.75;
    }

    .mizunado-popup .swal2-icon {
        margin: 0 auto 22px;
    }

    .mizunado-popup .swal2-actions {
        width: 100%;
        gap: 10px;
        margin: 26px 0 0;
    }

    .mizunado-popup .swal2-actions button {
        min-width: 108px;
        margin: 0;
        padding: 11px 20px;
        border: 1px solid transparent;
        border-radius: 999px;
        font: inherit;
        font-weight: 600;
        box-shadow: none;
        cursor:pointer;
        transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
    }

    .mizunado-popup .swal2-actions button:hover {
        transform: translateY(-1px);
    }

    .mizunado-popup .swal2-confirm {
        background: linear-gradient(135deg, var(--brand), var(--brand2));
        color: #fff;
        box-shadow: 0 12px 26px rgba(4,151,199,.20);
    }

    .mizunado-popup .swal2-confirm:hover {
        background: linear-gradient(135deg, #0788b4, #18b6d2);
    }

    .mizunado-popup .swal2-cancel {
        border-color: #9fc9d6;
        background: #deeff4;
        color: #315f73;
    }

    .mizunado-popup .swal2-cancel:hover {
        border-color: #78adbd;
        background: #cce5ec;
    }

    .mizunado-popup .swal2-deny {
        border-color: #e5b5bc;
        background: #fff6f7;
        color: #a54f5a;
    }

    .mizunado-popup .swal2-deny:hover {
        border-color: #d88c96;
        background: #fdecef;
    }

    .mizunado-popup .swal2-actions button:focus-visible {
        outline: 0;
        box-shadow: 0 0 0 4px rgba(25,184,216,.16);
    }

.swal2-container.mizunado-popup-container {
    background: rgba(18,56,74,.26);
    backdrop-filter: blur(4px);
}

.footer-inner {
    position: relative;
    display: flex;
    justify-content: center;
    gap: 20px;
    align-items: center;
    padding: 24px 0;
    font-size: 1rem;
}

    .footer-inner:before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        width: 100vw;
        height: 1px;
        background: #d8edf4;
        transform: translateX(-50%);
    }

.glass-card,
.floating-card {
    position: absolute;
    border: 1px solid rgba(255,255,255,.9);
    background: linear-gradient(145deg,rgba(255,255,255,.78),rgba(240,252,255,.46));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 30px 90px rgba(5,119,165,.14), inset 0 1px 0 rgba(255,255,255,.75);
}

.flow-card {
    left: 28px;
    right: 6px;
    top: 48px;
    min-height: 355px;
    border-radius: 42px;
    padding: 28px;
    transform: rotate(-1.5deg);
}

    .flow-card:before {
        content: "";
        position: absolute;
        inset: 14px;
        border-radius: 32px;
        background: linear-gradient(135deg,rgba(34,195,223,.14),transparent 42%,rgba(255,255,255,.38));
        pointer-events: none;
    }

    .flow-card > * {
        position: relative;
        z-index: 1;
    }

.flow-card-head {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #087da6;
    font-weight: 600;
    letter-spacing: .02em;
}

    .flow-card-head small {
        margin-left: auto;
        color: #86a8b9;
        font-weight: 600;
    }

.live-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #19c4df;
    box-shadow: 0008px rgba(25,196,223,.12);
}

.flow-diagram {
    display: grid;
    grid-template-columns: 1fr48px1fr48px1fr;
    align-items: center;
    gap: 10px;
    margin: 42px 0 30px;
}

.flow-node {
    min-height: 94px;
    border-radius: 26px;
    background: rgba(255,255,255,.74);
    border: 1px solid #d5f1f7;
    display: grid;
    place-items: center;
    text-align: center;
    box-shadow: 0 16px 34px rgba(4,151,199,.08);
}

    .flow-node b {
        font-size: 22px;
        color: #0b789f;
    }

    .flow-node span {
        font-size: 12px;
        color: #6a8798;
        font-weight: 600;
        text-transform: uppercase;
    }

    .flow-node.active {
        background: linear-gradient(135deg,#0b91bf,#28c8e2);
    }

        .flow-node.active b,
        .flow-node.active span {
            color: #fff;
        }

.flow-line {
    height: 2px;
    background: linear-gradient(90deg,#bfeef7,#20bfdb);
    position: relative;
}

    .flow-line:after {
        content: "";
        position: absolute;
        right: -2px;
        top: 50%;
        width: 8px;
        height: 8px;
        border-top: 2px solid #20bfdb;
        border-right: 2px solid #20bfdb;
        transform: translateY(-50%) rotate(45deg);
    }

.metric-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
}

    .metric-grid div {
        border-radius: 22px;
        padding: 16px;
        background: rgba(255,255,255,.62);
        border: 1px solid #d8f2f7;
    }

    .metric-grid strong {
        display: block;
        color: #087da6;
        font-size: 24px;
    }

    .metric-grid span {
        display: block;
        color: #668094;
        font-size: 13px;
        font-weight: 600;
        margin-top: 3px;
    }

.flow-progress {
    margin-top: 24px;
    height: 10px;
    border-radius: 999px;
    background: #dff4fa;
    overflow: hidden;
}

    .flow-progress span {
        display: block;
        width: 66%;
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(90deg,#0a91bf,#6ee7f5);
        animation: softProgress 5.8s ease-in-out infinite;
    }

.floating-card {
    border-radius: 30px;
    padding: 22px;
    width: 238px;
}

    .floating-card strong {
        display: block;
        color: #087da6;
        font-size: 34px;
    }

    .floating-card p {
        margin: 8px 0 0;
        color: #607386;
        font-weight: 600;
        line-height: 1.55;
    }

.card-api {
    right: 0;
    top: 330px;
    animation: float 7s ease-in-out infinite;
}

.card-system {
    left: 0;
    top: 390px;
    width: 265px;
    animation: float 7s ease-in-out infinite 1.1s;
}

.own-products-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 42px;
    padding: 34px;
    background: linear-gradient(135deg,rgba(235,251,255,.82),rgba(255,255,255,.92));
    border: 1px solid #cdeff6;
    box-shadow: var(--shadow);
}

    .own-products-wrap:before {
        content: "";
        position: absolute;
        inset: -120px auto auto -110px;
        width: 320px;
        height: 320px;
        border-radius: 50%;
        background: radial-gradient(circle,rgba(34,195,223,.26),transparent 68%);
    }

    .own-products-wrap:after {
        content: "MIZUNADO";
        position: absolute;
        right: 24px;
        bottom: -12px;
        font-size: clamp(64px,9vw,132px);
        font-weight: 600;
        letter-spacing: -.08em;
        color: transparent;
        background: linear-gradient(120deg, #0497c7 0%, #22c3df 48%, #0f6ea6 100%);
        -webkit-background-clip: text;
        background-clip: text;
        opacity: .12;
        line-height: .8;
        pointer-events: none;
    }

.own-products {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 18px;
}

.own-product {
    --accent: #0ea5e9;
    position: relative;
    min-height: 280px;
    padding: 26px;
    border-radius: 30px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(217,240,247,.96);
    box-shadow: 0 18px 46px rgba(4,111,154,.08);
    overflow: hidden;
    transition: .28s transform,.28s box-shadow,.28s border-color;
}

    .own-product:hover {
        transform: translateY(-6px);
        box-shadow: 0 30px 76px rgba(4,111,154,.14);
        border-color: rgba(14,165,233,.32);
    }

    .own-product:before {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 82% 10%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 48%);
        opacity: .95;
        pointer-events: none;
    }

    .own-product:after {
        content: attr(data-mark);
        position: absolute;
        right: -8px;
        top: -12px;
        font-size: 96px;
        font-weight: 600;
        line-height: 1;
        color: var(--accent);
        opacity: .09;
        letter-spacing: -.08em;
        pointer-events: none;
    }

    .own-product > * {
        position: relative;
        z-index: 1;
    }

.own-icon {
    width: 58px;
    height: 58px;
    padding: 8px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    background: color-mix(in srgb,var(--accent)12%,white);
    border: 1px solid color-mix(in srgb,var(--accent) 20%,#d9f0f7);
    color: var(--accent);
    font-weight: 600;
    font-size: 22px;
    box-shadow: 0 14px 30px rgba(4,151,199,.08);
}

    .own-icon img {
        display: block;
        max-width: 100%;
        max-height: 100%;
        width: auto;
        height: auto;
        object-fit: contain;
    }

.own-product .own-label {
    display: inline-flex;
    margin: 24px 0 10px;
    padding: 7px 11px;
    border-radius: 999px;
    background: color-mix(in srgb,var(--accent) 11%,white);
    color: var(--accent);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.own-product h3 {
    margin: 0 0 10px;
    font-size: 25px;
    letter-spacing: -.035em;
}

.own-product p {
    margin: 0;
    color: var(--muted);
    line-height: 1.72;
    font-size: 15px;
}

.own-product .own-link {
    position:relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    color: var(--accent);
    font-weight: 600;
    font-size: 14px;
}

    .own-product .own-link:after {
        position:absolute;
        top:4px;
        right:-15px;
        content: "\f105";
        font-family: "Font Awesome 7 Free";
        font-weight: 900;
        font-size: 12px;
        transition:all .25s;
    }

.own-product:hover .own-link:after {
    /*transform: translateX(4px);*/
    right:-20px;
}

.own-product.win {
    --accent: #3b82f6;
}

.own-product.plant {
    --accent: #10b981;
}

.own-product.aimo {
    --accent: #f59e0b;
}

.own-product.market {
    --accent: #8b5cf6;
}
